->/craft menu is now categorized, allowing players to view a specific

category instead of a gigantic list of items at once.
->Added a crafting recipe for converting Handmade arrows to Piercing
arrows. See /craft for more information.
->Fixed a bug that did not cause Mending from being randomly knocked off
of Armor occasionally.
->Infinity Knockoff on bows should not be happening if the player melees
with the bow anymore.
->Spleef bugs have been fixed. Players also have their movement speed
properly reset when entering the Spleef arena now.
dev
sigonasr2 9 years ago
parent 18aff61a01
commit a7c367f8f1
  1. BIN
      TwosideKeeper.jar
  2. 2
      src/plugin.yml
  3. 29
      src/sig/plugin/TwosideKeeper/CustomDamage.java
  4. 30
      src/sig/plugin/TwosideKeeper/HelperStructures/Common/GenericFunctions.java
  5. 10
      src/sig/plugin/TwosideKeeper/HelperStructures/Common/RecipeCategory.java
  6. 147
      src/sig/plugin/TwosideKeeper/HelperStructures/Common/RecipeLinker.java
  7. 8
      src/sig/plugin/TwosideKeeper/HelperStructures/CustomItem.java
  8. 2
      src/sig/plugin/TwosideKeeper/HelperStructures/ItemSet.java
  9. 34
      src/sig/plugin/TwosideKeeper/HelperStructures/PlayerMode.java
  10. 5
      src/sig/plugin/TwosideKeeper/HelperStructures/ShopPurchase.java
  11. 17
      src/sig/plugin/TwosideKeeper/SpleefGame.java
  12. 45
      src/sig/plugin/TwosideKeeper/TwosideKeeper.java
  13. 8
      src/sig/plugin/TwosideKeeper/WorldShopManager.java

Binary file not shown.

@ -1,6 +1,6 @@
name: TwosideKeeper
main: sig.plugin.TwosideKeeper.TwosideKeeper
version: 3.9.0
version: 3.9.0a
commands:
money:
description: Tells the player the amount of money they are holding.

@ -213,6 +213,7 @@ public class CustomDamage {
aPlugin.API.critEntity(target, 15);}
dmg += critdmg;
double armorpendmg = addToPlayerLogger(damager,target,"Armor Pen",calculateArmorPen(damager,dmg,weapon));
dmg -= getDamageFromBarbarianSetBonus(target);
addToLoggerActual(damager,dmg);
addToPlayerRawDamage(dmg,target);
if (!isFlagSet(flags, TRUEDMG)) {
@ -230,6 +231,14 @@ public class CustomDamage {
return dmg;
}
private static double getDamageFromBarbarianSetBonus(LivingEntity target) {
if (target instanceof Player) {
Player p = (Player)target;
return ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p), p, ItemSet.DAWNTRACKER);
}
return 0.0;
}
private static void addToPlayerRawDamage(double damage, LivingEntity target) {
if (target instanceof Player) {
Player p = (Player)target;
@ -398,6 +407,9 @@ public class CustomDamage {
pd.slayermegahit=false;
pd.lastcombat=TwosideKeeper.getServerTickTime();
pd.lasthitdesc=reason;
for (ItemStack item : GenericFunctions.getArmor(p)) {
removePermEnchantments(p,item);
}
damage = calculateDefenderAbsorption(p, damager, damage);
@ -485,12 +497,14 @@ public class CustomDamage {
}
}
}}
,100);
,100);
increaseSwordComboCount(weapon, p);
}
performMegaKnockback(damager,target);
removePermEnchantments(p,weapon);
if (damager instanceof Arrow || weapon.getType()!=Material.BOW) {
removePermEnchantments(p,weapon);
}
//GenericFunctions.knockOffGreed(p);
castEruption(p,target,weapon);
addHealthFromLifesteal(p,damage,weapon,reason);
@ -703,12 +717,6 @@ public class CustomDamage {
pd.damagepool=0;
return damage;
}
} else {
if (damage>GetDamageReductionFromDawntrackerPieces(p)) {
return damage-GetDamageReductionFromDawntrackerPieces(p);
} else {
return 0;
}
}
}
return damage;
@ -2308,6 +2316,9 @@ public class CustomDamage {
}
private static double hardCapDamage(double damage) {
if (damage<0) {
damage=0;
}
return Math.min(damage, TwosideKeeper.CUSTOM_DAMAGE_IDENTIFIER-1);
}
@ -2534,6 +2545,6 @@ public class CustomDamage {
}
public static int GetDamageReductionFromDawntrackerPieces(Player p) {
return ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p), p, ItemSet.DAWNTRACKER)/2;
return ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p), p, ItemSet.DAWNTRACKER)/3;
}
}

@ -3118,6 +3118,34 @@ public class GenericFunctions {
return new ItemStack[]{};
}
}
public static ItemStack[] getArmor(LivingEntity ent) {
return getArmor(ent,false);
}
public static ItemStack[] getArmor(LivingEntity ent, boolean offhand) {
if (ent!=null) {
if (offhand && (ent instanceof Player)) {
Player p = (Player)ent;
return new ItemStack[]{
p.getInventory().getExtraContents()[0],
ent.getEquipment().getHelmet(),
ent.getEquipment().getChestplate(),
ent.getEquipment().getLeggings(),
ent.getEquipment().getBoots()
};
} else {
return new ItemStack[]{
ent.getEquipment().getHelmet(),
ent.getEquipment().getChestplate(),
ent.getEquipment().getLeggings(),
ent.getEquipment().getBoots()
};
}
} else {
return new ItemStack[]{};
}
}
public static void updateSetItemsInInventory(Inventory inv) {
TwosideKeeper.log("Inventory is size "+inv.getSize(),5);
@ -4537,7 +4565,7 @@ public class GenericFunctions {
(GenericFunctions.getBowMode(p.getEquipment().getItemInMainHand())==BowMode.DEBILITATION)) {
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
if (pd.last_siphon+GetModifiedCooldown(TwosideKeeper.SIPHON_COOLDOWN,p)<=TwosideKeeper.getServerTickTime()) {
List<LivingEntity> list = GenericFunctions.getNearbyMobs(p.getLocation(), 8);
List<LivingEntity> list = GenericFunctions.getNearbyMobs(p.getLocation(), 16);
List<LivingEntity> poisonlist = new ArrayList<LivingEntity>();
int totalpoisonstacks = 0;
for (LivingEntity ent : list) {

@ -0,0 +1,10 @@
package sig.plugin.TwosideKeeper.HelperStructures.Common;
public enum RecipeCategory {
CONTAINERS,
MISC_ITEMS,
HARDENED_ARMOR,
ARTIFACT_RECIPES,
UPGRADE_RECIPES,
CUSTOM_ARROWS
}

@ -12,365 +12,370 @@ import sig.plugin.TwosideKeeper.HelperStructures.ArtifactItemType;
import sig.plugin.TwosideKeeper.HelperStructures.CustomItem;
public enum RecipeLinker {
ic("Containers",ChatColor.YELLOW,"Item Cube",
ic(RecipeCategory.CONTAINERS,ChatColor.YELLOW,"Item Cube",
new ItemStack[]{
CustomItem.ItemCube(),
new ItemStack(Material.WOOD),new ItemStack(Material.WOOD),new ItemStack(Material.WOOD),
new ItemStack(Material.WOOD),new ItemStack(Material.CHEST),new ItemStack(Material.WOOD),
new ItemStack(Material.WOOD),new ItemStack(Material.WOOD),new ItemStack(Material.WOOD),
}),
lic("Containers",ChatColor.YELLOW,"Large Item Cube",new ItemStack[]{
lic(RecipeCategory.CONTAINERS,ChatColor.YELLOW,"Large Item Cube",new ItemStack[]{
CustomItem.LargeItemCube(),
new ItemStack(Material.WOOD),new ItemStack(Material.WOOD),new ItemStack(Material.WOOD),
new ItemStack(Material.GOLD_BLOCK),new ItemStack(Material.CHEST),new ItemStack(Material.GOLD_BLOCK),
new ItemStack(Material.WOOD),new ItemStack(Material.WOOD),new ItemStack(Material.WOOD),
}),
eic("Containers",ChatColor.YELLOW,"Ender Item Cube",new ItemStack[]{
eic(RecipeCategory.CONTAINERS,ChatColor.YELLOW,"Ender Item Cube",new ItemStack[]{
CustomItem.EnderItemCube(),
new ItemStack(Material.OBSIDIAN),new ItemStack(Material.OBSIDIAN),new ItemStack(Material.OBSIDIAN),
new ItemStack(Material.EMERALD),new ItemStack(Material.CHEST),new ItemStack(Material.EMERALD),
new ItemStack(Material.OBSIDIAN),new ItemStack(Material.OBSIDIAN),new ItemStack(Material.OBSIDIAN),
}),
dc("Containers",ChatColor.YELLOW,"Duplicate Ender Item Cube",new ItemStack[]{
dc(RecipeCategory.CONTAINERS,ChatColor.YELLOW,"Duplicate Ender Item Cube",new ItemStack[]{
CustomItem.EnderItemCube(2),
CustomItem.EnderItemCube(),new ItemStack(Material.NETHER_STAR)
}),
aq("Misc Items",ChatColor.RED,"Arrow Quiver",new ItemStack[]{
aq(RecipeCategory.MISC_ITEMS,ChatColor.RED,"Arrow Quiver",new ItemStack[]{
CustomItem.ArrowQuiver(),
null,new ItemStack(Material.LEATHER),new ItemStack(Material.EMERALD_BLOCK),
new ItemStack(Material.LEATHER),new ItemStack(Material.SPECTRAL_ARROW),new ItemStack(Material.LEATHER),
null,new ItemStack(Material.LEATHER)
}),
ihelm("Hardened Armor",ChatColor.WHITE,"Hardened Iron Helmet",new ItemStack[]{
ihelm(RecipeCategory.HARDENED_ARMOR,ChatColor.WHITE,"Hardened Iron Helmet",new ItemStack[]{
CustomItem.HardenedPiece(Material.IRON_HELMET),
new ItemStack(Material.IRON_BLOCK),new ItemStack(Material.IRON_BLOCK),new ItemStack(Material.IRON_BLOCK),
new ItemStack(Material.IRON_BLOCK),null,new ItemStack(Material.IRON_BLOCK)
}),
ichest("Hardened Armor",ChatColor.WHITE,"Hardened Iron Chestplate",new ItemStack[]{
ichest(RecipeCategory.HARDENED_ARMOR,ChatColor.WHITE,"Hardened Iron Chestplate",new ItemStack[]{
CustomItem.HardenedPiece(Material.IRON_CHESTPLATE),
new ItemStack(Material.IRON_BLOCK),null,new ItemStack(Material.IRON_BLOCK),
new ItemStack(Material.IRON_BLOCK),new ItemStack(Material.IRON_BLOCK),new ItemStack(Material.IRON_BLOCK),
new ItemStack(Material.IRON_BLOCK),new ItemStack(Material.IRON_BLOCK),new ItemStack(Material.IRON_BLOCK)
}),
ileg("Hardened Armor",ChatColor.WHITE,"Hardened Iron Leggings",new ItemStack[]{
ileg(RecipeCategory.HARDENED_ARMOR,ChatColor.WHITE,"Hardened Iron Leggings",new ItemStack[]{
CustomItem.HardenedPiece(Material.IRON_LEGGINGS),
new ItemStack(Material.IRON_BLOCK),new ItemStack(Material.IRON_BLOCK),new ItemStack(Material.IRON_BLOCK),
new ItemStack(Material.IRON_BLOCK),null,new ItemStack(Material.IRON_BLOCK),
new ItemStack(Material.IRON_BLOCK),null,new ItemStack(Material.IRON_BLOCK)
}),
iboots("Hardened Armor",ChatColor.WHITE,"Hardened Iron Boots",new ItemStack[]{
iboots(RecipeCategory.HARDENED_ARMOR,ChatColor.WHITE,"Hardened Iron Boots",new ItemStack[]{
CustomItem.HardenedPiece(Material.IRON_BOOTS),
new ItemStack(Material.IRON_BLOCK),null,new ItemStack(Material.IRON_BLOCK),
new ItemStack(Material.IRON_BLOCK),null,new ItemStack(Material.IRON_BLOCK)
}),
dhelm("Hardened Armor",ChatColor.AQUA,"Hardened Diamond Helmet",new ItemStack[]{
dhelm(RecipeCategory.HARDENED_ARMOR,ChatColor.AQUA,"Hardened Diamond Helmet",new ItemStack[]{
CustomItem.HardenedPiece(Material.DIAMOND_HELMET),
new ItemStack(Material.DIAMOND_BLOCK),new ItemStack(Material.DIAMOND_BLOCK),new ItemStack(Material.DIAMOND_BLOCK),
new ItemStack(Material.DIAMOND_BLOCK),null,new ItemStack(Material.DIAMOND_BLOCK)
}),
dchest("Hardened Armor",ChatColor.AQUA,"Hardened Diamond Chestplate",new ItemStack[]{
dchest(RecipeCategory.HARDENED_ARMOR,ChatColor.AQUA,"Hardened Diamond Chestplate",new ItemStack[]{
CustomItem.HardenedPiece(Material.DIAMOND_CHESTPLATE),
new ItemStack(Material.DIAMOND_BLOCK),null,new ItemStack(Material.DIAMOND_BLOCK),
new ItemStack(Material.DIAMOND_BLOCK),new ItemStack(Material.DIAMOND_BLOCK),new ItemStack(Material.DIAMOND_BLOCK),
new ItemStack(Material.DIAMOND_BLOCK),new ItemStack(Material.DIAMOND_BLOCK),new ItemStack(Material.DIAMOND_BLOCK)
}),
dleg("Hardened Armor",ChatColor.AQUA,"Hardened Diamond Leggings",new ItemStack[]{
dleg(RecipeCategory.HARDENED_ARMOR,ChatColor.AQUA,"Hardened Diamond Leggings",new ItemStack[]{
CustomItem.HardenedPiece(Material.DIAMOND_LEGGINGS),
new ItemStack(Material.DIAMOND_BLOCK),new ItemStack(Material.DIAMOND_BLOCK),new ItemStack(Material.DIAMOND_BLOCK),
new ItemStack(Material.DIAMOND_BLOCK),null,new ItemStack(Material.DIAMOND_BLOCK),null,
new ItemStack(Material.DIAMOND_BLOCK),null,new ItemStack(Material.DIAMOND_BLOCK)
}),
dboots("Hardened Armor",ChatColor.AQUA,"Hardened Diamond Boots",new ItemStack[]{
dboots(RecipeCategory.HARDENED_ARMOR,ChatColor.AQUA,"Hardened Diamond Boots",new ItemStack[]{
CustomItem.HardenedPiece(Material.DIAMOND_BOOTS),
new ItemStack(Material.DIAMOND_BLOCK),null,new ItemStack(Material.DIAMOND_BLOCK),
new ItemStack(Material.DIAMOND_BLOCK),null,new ItemStack(Material.DIAMOND_BLOCK)
}),
ghelm("Hardened Armor",ChatColor.GOLD,"Hardened Gold Helmet",new ItemStack[]{
ghelm(RecipeCategory.HARDENED_ARMOR,ChatColor.GOLD,"Hardened Gold Helmet",new ItemStack[]{
CustomItem.HardenedPiece(Material.GOLD_HELMET),
new ItemStack(Material.GOLD_BLOCK),new ItemStack(Material.GOLD_BLOCK),new ItemStack(Material.GOLD_BLOCK),
new ItemStack(Material.GOLD_BLOCK),null,new ItemStack(Material.GOLD_BLOCK)
}),
gchest("Hardened Armor",ChatColor.GOLD,"Hardened Gold Chestplate",new ItemStack[]{
gchest(RecipeCategory.HARDENED_ARMOR,ChatColor.GOLD,"Hardened Gold Chestplate",new ItemStack[]{
CustomItem.HardenedPiece(Material.GOLD_CHESTPLATE),
new ItemStack(Material.GOLD_BLOCK),null,new ItemStack(Material.GOLD_BLOCK),
new ItemStack(Material.GOLD_BLOCK),new ItemStack(Material.GOLD_BLOCK),new ItemStack(Material.GOLD_BLOCK),
new ItemStack(Material.GOLD_BLOCK),new ItemStack(Material.GOLD_BLOCK),new ItemStack(Material.GOLD_BLOCK)
}),
gleg("Hardened Armor",ChatColor.GOLD,"Hardened Gold Leggings",new ItemStack[]{
gleg(RecipeCategory.HARDENED_ARMOR,ChatColor.GOLD,"Hardened Gold Leggings",new ItemStack[]{
CustomItem.HardenedPiece(Material.GOLD_LEGGINGS),
new ItemStack(Material.GOLD_BLOCK),new ItemStack(Material.GOLD_BLOCK),new ItemStack(Material.GOLD_BLOCK),
new ItemStack(Material.GOLD_BLOCK),null,new ItemStack(Material.GOLD_BLOCK),
new ItemStack(Material.GOLD_BLOCK),null,new ItemStack(Material.GOLD_BLOCK)
}),
gboots("Hardened Armor",ChatColor.GOLD,"Hardened Gold Boots",new ItemStack[]{
gboots(RecipeCategory.HARDENED_ARMOR,ChatColor.GOLD,"Hardened Gold Boots",new ItemStack[]{
CustomItem.HardenedPiece(Material.GOLD_BOOTS),
new ItemStack(Material.GOLD_BLOCK),null,new ItemStack(Material.GOLD_BLOCK),
new ItemStack(Material.GOLD_BLOCK),null,new ItemStack(Material.GOLD_BLOCK)
}),
@SuppressWarnings("deprecation")
wool("Misc Items",ChatColor.BLUE,"Wool Recoloring",new ItemStack[]{
wool(RecipeCategory.MISC_ITEMS,ChatColor.BLUE,"Wool Recoloring",new ItemStack[]{
new ItemStack(Material.WOOL,8,(short)11),
new ItemStack(Material.WOOL,1,(short)2),new ItemStack(Material.WOOL,1,(short)3),new ItemStack(Material.WOOL,1,(short)5),
new ItemStack(Material.WOOL,1,(short)7),new ItemStack(Material.getMaterial(351),1,(short)4),new ItemStack(Material.WOOL,1,(short)8),
new ItemStack(Material.WOOL,1,(short)13),new ItemStack(Material.WOOL,1,(short)11),new ItemStack(Material.WOOL,1,(short)9)
}),
slab("Misc Items",ChatColor.BLUE,"Slab Reconstruction",new ItemStack[]{
slab(RecipeCategory.MISC_ITEMS,ChatColor.BLUE,"Slab Reconstruction",new ItemStack[]{
new ItemStack(Material.WOOD,1,(short)2),
new ItemStack(Material.WOOD_STEP,1,(short)2),new ItemStack(Material.WOOD_STEP,1,(short)2)
}),
check("Misc Items",ChatColor.BLUE,"Money Check",new ItemStack[]{
check(RecipeCategory.MISC_ITEMS,ChatColor.BLUE,"Money Check",new ItemStack[]{
CustomItem.MoneyCheck(),
new ItemStack(Material.FEATHER),new ItemStack(Material.INK_SACK),null,
new ItemStack(Material.PAPER),
}),
sword("Artifact Recipes",ChatColor.LIGHT_PURPLE,"Artifact Sword Recipe",new ItemStack[]{
sword(RecipeCategory.ARTIFACT_RECIPES,ChatColor.LIGHT_PURPLE,"Artifact Sword Recipe",new ItemStack[]{
Artifact.createRecipe(0, ArtifactItemType.SWORD),
Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),
Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),
Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE)
}),
axe("Artifact Recipes",ChatColor.LIGHT_PURPLE,"Artifact Axe Recipe",new ItemStack[]{
axe(RecipeCategory.ARTIFACT_RECIPES,ChatColor.LIGHT_PURPLE,"Artifact Axe Recipe",new ItemStack[]{
Artifact.createRecipe(0, ArtifactItemType.AXE),
Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),null,
Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),null,
null,Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE)
}),
boots("Artifact Recipes",ChatColor.LIGHT_PURPLE,"Artifact Boots Recipe",new ItemStack[]{
boots(RecipeCategory.ARTIFACT_RECIPES,ChatColor.LIGHT_PURPLE,"Artifact Boots Recipe",new ItemStack[]{
Artifact.createRecipe(0, ArtifactItemType.BOOTS),
Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),null,Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),
Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),null,Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),
}),
chest("Artifact Recipes",ChatColor.LIGHT_PURPLE,"Artifact Chestplate Recipe",new ItemStack[]{
chest(RecipeCategory.ARTIFACT_RECIPES,ChatColor.LIGHT_PURPLE,"Artifact Chestplate Recipe",new ItemStack[]{
Artifact.createRecipe(0, ArtifactItemType.CHESTPLATE),
Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),null,Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),
Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),
Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE)
}),
leg("Artifact Recipes",ChatColor.LIGHT_PURPLE,"Artifact Leggings Recipe",new ItemStack[]{
leg(RecipeCategory.ARTIFACT_RECIPES,ChatColor.LIGHT_PURPLE,"Artifact Leggings Recipe",new ItemStack[]{
Artifact.createRecipe(0, ArtifactItemType.LEGGINGS),
Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),
Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),null,Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),
Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),null,Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE)
}),
helm("Artifact Recipes",ChatColor.LIGHT_PURPLE,"Artifact Helmet Recipe",new ItemStack[]{
helm(RecipeCategory.ARTIFACT_RECIPES,ChatColor.LIGHT_PURPLE,"Artifact Helmet Recipe",new ItemStack[]{
Artifact.createRecipe(0, ArtifactItemType.HELMET),
Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),
Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),null,Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE)
}),
bow("Artifact Recipes",ChatColor.LIGHT_PURPLE,"Artifact Bow Recipe",new ItemStack[]{
bow(RecipeCategory.ARTIFACT_RECIPES,ChatColor.LIGHT_PURPLE,"Artifact Bow Recipe",new ItemStack[]{
Artifact.createRecipe(0, ArtifactItemType.BOW),
Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),null,
Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),null,Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),
Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE)
}),
scythe("Artifact Recipes",ChatColor.LIGHT_PURPLE,"Artifact Scythe Recipe",new ItemStack[]{
scythe(RecipeCategory.ARTIFACT_RECIPES,ChatColor.LIGHT_PURPLE,"Artifact Scythe Recipe",new ItemStack[]{
Artifact.createRecipe(0, ArtifactItemType.HOE),
Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),null,
null,Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),null,
null,Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE)
}),
rod("Artifact Recipes",ChatColor.LIGHT_PURPLE,"Artifact Fishing Rod Recipe",new ItemStack[]{
rod(RecipeCategory.ARTIFACT_RECIPES,ChatColor.LIGHT_PURPLE,"Artifact Fishing Rod Recipe",new ItemStack[]{
Artifact.createRecipe(0, ArtifactItemType.FISHING_ROD),
null,null,Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),
null,Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),
Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),null,Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE)
}),
pickaxe("Artifact Recipes",ChatColor.LIGHT_PURPLE,"Artifact Pickaxe Recipe",new ItemStack[]{
pickaxe(RecipeCategory.ARTIFACT_RECIPES,ChatColor.LIGHT_PURPLE,"Artifact Pickaxe Recipe",new ItemStack[]{
Artifact.createRecipe(0, ArtifactItemType.PICKAXE),
Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),
null,Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),null,
null,Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),null
}),
shovel("Artifact Recipes",ChatColor.LIGHT_PURPLE,"Artifact Shovel Recipe",new ItemStack[]{
shovel(RecipeCategory.ARTIFACT_RECIPES,ChatColor.LIGHT_PURPLE,"Artifact Shovel Recipe",new ItemStack[]{
Artifact.createRecipe(0, ArtifactItemType.SHOVEL),
null,Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),null,
null,Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),null,
null,Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE),null
}),
recipe("Artifact Recipes",ChatColor.DARK_AQUA,"Recipe To Artifact",new ItemStack[]{
recipe(RecipeCategory.ARTIFACT_RECIPES,ChatColor.DARK_AQUA,"Recipe To Artifact",new ItemStack[]{
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.CHESTPLATE.getTieredItem(1),1,ArtifactItemType.CHESTPLATE.getDataValue()),
Artifact.createRecipe(0, ArtifactItemType.CHESTPLATE)
}),
t2("Upgrade Recipes",ChatColor.DARK_AQUA,"Upgrade to T2",new ItemStack[]{
t2(RecipeCategory.UPGRADE_RECIPES,ChatColor.DARK_AQUA,"Upgrade to T2",new ItemStack[]{
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.SHOVEL.getTieredItem(2),2,ArtifactItemType.SHOVEL.getDataValue()),
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.SHOVEL.getTieredItem(1),1,ArtifactItemType.SHOVEL.getDataValue()),Artifact.createRecipe(0, ArtifactItemType.SHOVEL)
}),
t3("Upgrade Recipes",ChatColor.DARK_AQUA,"Upgrade to T3",new ItemStack[]{
t3(RecipeCategory.UPGRADE_RECIPES,ChatColor.DARK_AQUA,"Upgrade to T3",new ItemStack[]{
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.LEGGINGS.getTieredItem(3),3,ArtifactItemType.LEGGINGS.getDataValue()),
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.LEGGINGS.getTieredItem(2),2,ArtifactItemType.LEGGINGS.getDataValue()),Artifact.createRecipe(2, ArtifactItemType.LEGGINGS)
}),
t4("Upgrade Recipes",ChatColor.DARK_AQUA,"Upgrade to T4",new ItemStack[]{
t4(RecipeCategory.UPGRADE_RECIPES,ChatColor.DARK_AQUA,"Upgrade to T4",new ItemStack[]{
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.BOOTS.getTieredItem(4),4,ArtifactItemType.BOOTS.getDataValue()),
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.BOOTS.getTieredItem(3),3,ArtifactItemType.BOOTS.getDataValue()),Artifact.createRecipe(3, ArtifactItemType.BOOTS)
}),
t5("Upgrade Recipes",ChatColor.DARK_AQUA,"Upgrade to T5",new ItemStack[]{
t5(RecipeCategory.UPGRADE_RECIPES,ChatColor.DARK_AQUA,"Upgrade to T5",new ItemStack[]{
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.HELMET.getTieredItem(5),5,ArtifactItemType.HELMET.getDataValue()),
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.HELMET.getTieredItem(4),4,ArtifactItemType.HELMET.getDataValue()),Artifact.createRecipe(4, ArtifactItemType.HELMET)
}),
t6("Upgrade Recipes",ChatColor.DARK_AQUA,"Upgrade to T6",new ItemStack[]{
t6(RecipeCategory.UPGRADE_RECIPES,ChatColor.DARK_AQUA,"Upgrade to T6",new ItemStack[]{
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.SWORD.getTieredItem(6),6,ArtifactItemType.SWORD.getDataValue()),
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.SWORD.getTieredItem(5),5,ArtifactItemType.SWORD.getDataValue()),Artifact.createRecipe(5, ArtifactItemType.SWORD)
}),
t7("Upgrade Recipes",ChatColor.DARK_AQUA,"Upgrade to T7",new ItemStack[]{
t7(RecipeCategory.UPGRADE_RECIPES,ChatColor.DARK_AQUA,"Upgrade to T7",new ItemStack[]{
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.HOE.getTieredItem(7),7,ArtifactItemType.HOE.getDataValue()),
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.HOE.getTieredItem(6),6,ArtifactItemType.HOE.getDataValue()),Artifact.createRecipe(6, ArtifactItemType.HOE)
}),
t8("Upgrade Recipes",ChatColor.DARK_AQUA,"Upgrade to T8",new ItemStack[]{
t8(RecipeCategory.UPGRADE_RECIPES,ChatColor.DARK_AQUA,"Upgrade to T8",new ItemStack[]{
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.AXE.getTieredItem(8),8,ArtifactItemType.AXE.getDataValue()),
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.AXE.getTieredItem(7),7,ArtifactItemType.AXE.getDataValue()),Artifact.createRecipe(7, ArtifactItemType.AXE)
}),
t9("Upgrade Recipes",ChatColor.DARK_AQUA,"Upgrade to T9",new ItemStack[]{
t9(RecipeCategory.UPGRADE_RECIPES,ChatColor.DARK_AQUA,"Upgrade to T9",new ItemStack[]{
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.PICKAXE.getTieredItem(9),9,ArtifactItemType.PICKAXE.getDataValue()),
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.PICKAXE.getTieredItem(8),8,ArtifactItemType.PICKAXE.getDataValue()),Artifact.createRecipe(8, ArtifactItemType.PICKAXE)
}),
t10("Upgrade Recipes",ChatColor.DARK_AQUA,"Upgrade to T10",new ItemStack[]{
t10(RecipeCategory.UPGRADE_RECIPES,ChatColor.DARK_AQUA,"Upgrade to T10",new ItemStack[]{
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.SHOVEL.getTieredItem(10),10,ArtifactItemType.SHOVEL.getDataValue()),
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.SHOVEL.getTieredItem(9),9,ArtifactItemType.SHOVEL.getDataValue()),Artifact.createRecipe(9, ArtifactItemType.SHOVEL)
}),
t11("Upgrade Recipes",ChatColor.DARK_AQUA,"Upgrade to T11",new ItemStack[]{
t11(RecipeCategory.UPGRADE_RECIPES,ChatColor.DARK_AQUA,"Upgrade to T11",new ItemStack[]{
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.PICKAXE.getTieredItem(11),11,ArtifactItemType.PICKAXE.getDataValue()),
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.PICKAXE.getTieredItem(10),10,ArtifactItemType.PICKAXE.getDataValue()),Artifact.createRecipe(10, ArtifactItemType.PICKAXE)
}),
t12("Upgrade Recipes",ChatColor.DARK_AQUA,"Upgrade to T12",new ItemStack[]{
t12(RecipeCategory.UPGRADE_RECIPES,ChatColor.DARK_AQUA,"Upgrade to T12",new ItemStack[]{
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.AXE.getTieredItem(12),12,ArtifactItemType.AXE.getDataValue()),
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.AXE.getTieredItem(11),11,ArtifactItemType.AXE.getDataValue()),Artifact.createRecipe(11, ArtifactItemType.AXE)
}),
t13("Upgrade Recipes",ChatColor.DARK_AQUA,"Upgrade to T13",new ItemStack[]{
t13(RecipeCategory.UPGRADE_RECIPES,ChatColor.DARK_AQUA,"Upgrade to T13",new ItemStack[]{
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.HOE.getTieredItem(13),13,ArtifactItemType.HOE.getDataValue()),
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.HOE.getTieredItem(12),12,ArtifactItemType.HOE.getDataValue()),Artifact.createRecipe(12, ArtifactItemType.HOE)
}),
t14("Upgrade Recipes",ChatColor.DARK_AQUA,"Upgrade to T14",new ItemStack[]{
t14(RecipeCategory.UPGRADE_RECIPES,ChatColor.DARK_AQUA,"Upgrade to T14",new ItemStack[]{
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.FISHING_ROD.getTieredItem(14),14,ArtifactItemType.FISHING_ROD.getDataValue()),
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.FISHING_ROD.getTieredItem(13),13,ArtifactItemType.FISHING_ROD.getDataValue()),Artifact.createRecipe(13, ArtifactItemType.FISHING_ROD)
}),
t15("Upgrade Recipes",ChatColor.DARK_AQUA,"Upgrade to T15",new ItemStack[]{
t15(RecipeCategory.UPGRADE_RECIPES,ChatColor.DARK_AQUA,"Upgrade to T15",new ItemStack[]{
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.BOW.getTieredItem(15),15,ArtifactItemType.BOW.getDataValue()),
AwakenedArtifact.convertToAwakenedArtifact(ArtifactItemType.BOW.getTieredItem(14),14,ArtifactItemType.BOW.getDataValue()),Artifact.createRecipe(14, ArtifactItemType.BOW)
}),
t2recipe("Artifact Recipes",ChatColor.WHITE,"T2 Artifact Recipe",new ItemStack[]{
t2recipe(RecipeCategory.ARTIFACT_RECIPES,ChatColor.WHITE,"T2 Artifact Recipe",new ItemStack[]{
Artifact.createRecipe(2, ArtifactItemType.SHOVEL),
Artifact.createRecipe(0, ArtifactItemType.SHOVEL),Artifact.createRecipe(0, ArtifactItemType.SHOVEL),null,
Artifact.createArtifactItem(ArtifactItem.ARTIFACT_ESSENCE)
}),
t3recipe("Artifact Recipes",ChatColor.WHITE,"T3 Artifact Recipe",new ItemStack[]{
t3recipe(RecipeCategory.ARTIFACT_RECIPES,ChatColor.WHITE,"T3 Artifact Recipe",new ItemStack[]{
Artifact.createRecipe(3, ArtifactItemType.SHOVEL),
Artifact.createRecipe(2, ArtifactItemType.SHOVEL),Artifact.createRecipe(2, ArtifactItemType.SHOVEL),null,
Artifact.createArtifactItem(ArtifactItem.ARTIFACT_CORE)
}),
t4recipe("Artifact Recipes",ChatColor.WHITE,"T4 Artifact Recipe",new ItemStack[]{
t4recipe(RecipeCategory.ARTIFACT_RECIPES,ChatColor.WHITE,"T4 Artifact Recipe",new ItemStack[]{
Artifact.createRecipe(4, ArtifactItemType.SHOVEL),
Artifact.createRecipe(3, ArtifactItemType.SHOVEL),Artifact.createRecipe(3, ArtifactItemType.SHOVEL),null,
Artifact.createArtifactItem(ArtifactItem.ARTIFACT_BASE)
}),
t5recipe("Artifact Recipes",ChatColor.WHITE,"T5 Artifact Recipe",new ItemStack[]{
t5recipe(RecipeCategory.ARTIFACT_RECIPES,ChatColor.WHITE,"T5 Artifact Recipe",new ItemStack[]{
Artifact.createRecipe(5, ArtifactItemType.SHOVEL),
Artifact.createRecipe(4, ArtifactItemType.SHOVEL),Artifact.createRecipe(4, ArtifactItemType.SHOVEL),null,
Artifact.createArtifactItem(ArtifactItem.ANCIENT_ESSENCE)
}),
t6recipe("Artifact Recipes",ChatColor.WHITE,"T6 Artifact Recipe",new ItemStack[]{
t6recipe(RecipeCategory.ARTIFACT_RECIPES,ChatColor.WHITE,"T6 Artifact Recipe",new ItemStack[]{
Artifact.createRecipe(6, ArtifactItemType.SHOVEL),
Artifact.createRecipe(5, ArtifactItemType.SHOVEL),Artifact.createRecipe(5, ArtifactItemType.SHOVEL),null,
Artifact.createArtifactItem(ArtifactItem.ANCIENT_CORE)
}),
t7recipe("Artifact Recipes",ChatColor.WHITE,"T7 Artifact Recipe",new ItemStack[]{
t7recipe(RecipeCategory.ARTIFACT_RECIPES,ChatColor.WHITE,"T7 Artifact Recipe",new ItemStack[]{
Artifact.createRecipe(7, ArtifactItemType.SHOVEL),
Artifact.createRecipe(6, ArtifactItemType.SHOVEL),Artifact.createRecipe(6, ArtifactItemType.SHOVEL),null,
Artifact.createArtifactItem(ArtifactItem.ANCIENT_BASE)
}),
t8recipe("Artifact Recipes",ChatColor.WHITE,"T8 Artifact Recipe",new ItemStack[]{
t8recipe(RecipeCategory.ARTIFACT_RECIPES,ChatColor.WHITE,"T8 Artifact Recipe",new ItemStack[]{
Artifact.createRecipe(8, ArtifactItemType.SHOVEL),
Artifact.createRecipe(7, ArtifactItemType.SHOVEL),Artifact.createRecipe(7, ArtifactItemType.SHOVEL),null,
Artifact.createArtifactItem(ArtifactItem.LOST_ESSENCE)
}),
t9recipe("Artifact Recipes",ChatColor.WHITE,"T9 Artifact Recipe",new ItemStack[]{
t9recipe(RecipeCategory.ARTIFACT_RECIPES,ChatColor.WHITE,"T9 Artifact Recipe",new ItemStack[]{
Artifact.createRecipe(9, ArtifactItemType.SHOVEL),
Artifact.createRecipe(8, ArtifactItemType.SHOVEL),Artifact.createRecipe(8, ArtifactItemType.SHOVEL),null,
Artifact.createArtifactItem(ArtifactItem.LOST_CORE)
}),
t10recipe("Artifact Recipes",ChatColor.WHITE,"T10 Artifact Recipe",new ItemStack[]{
t10recipe(RecipeCategory.ARTIFACT_RECIPES,ChatColor.WHITE,"T10 Artifact Recipe",new ItemStack[]{
Artifact.createRecipe(10, ArtifactItemType.SHOVEL),
Artifact.createRecipe(9, ArtifactItemType.SHOVEL),Artifact.createRecipe(9, ArtifactItemType.SHOVEL),null,
Artifact.createArtifactItem(ArtifactItem.LOST_BASE)
}),
t11recipe("Artifact Recipes",ChatColor.WHITE,"T11 Artifact Recipe",new ItemStack[]{
t11recipe(RecipeCategory.ARTIFACT_RECIPES,ChatColor.WHITE,"T11 Artifact Recipe",new ItemStack[]{
Artifact.createRecipe(11, ArtifactItemType.SHOVEL),
Artifact.createRecipe(10, ArtifactItemType.SHOVEL),Artifact.createRecipe(10, ArtifactItemType.SHOVEL),null,
Artifact.createArtifactItem(ArtifactItem.DIVINE_ESSENCE)
}),
t12recipe("Artifact Recipes",ChatColor.WHITE,"T12 Artifact Recipe",new ItemStack[]{
t12recipe(RecipeCategory.ARTIFACT_RECIPES,ChatColor.WHITE,"T12 Artifact Recipe",new ItemStack[]{
Artifact.createRecipe(12, ArtifactItemType.SHOVEL),
Artifact.createRecipe(11, ArtifactItemType.SHOVEL),Artifact.createRecipe(11, ArtifactItemType.SHOVEL),null,
Artifact.createArtifactItem(ArtifactItem.DIVINE_CORE)
}),
t13recipe("Artifact Recipes",ChatColor.WHITE,"T13 Artifact Recipe",new ItemStack[]{
t13recipe(RecipeCategory.ARTIFACT_RECIPES,ChatColor.WHITE,"T13 Artifact Recipe",new ItemStack[]{
Artifact.createRecipe(13, ArtifactItemType.SHOVEL),
Artifact.createRecipe(12, ArtifactItemType.SHOVEL),Artifact.createRecipe(12, ArtifactItemType.SHOVEL),null,
Artifact.createArtifactItem(ArtifactItem.DIVINE_BASE)
}),
t14recipe("Artifact Recipes",ChatColor.WHITE,"T14 Artifact Recipe",new ItemStack[]{
t14recipe(RecipeCategory.ARTIFACT_RECIPES,ChatColor.WHITE,"T14 Artifact Recipe",new ItemStack[]{
Artifact.createRecipe(14, ArtifactItemType.SHOVEL),
Artifact.createRecipe(13, ArtifactItemType.SHOVEL),Artifact.createRecipe(13, ArtifactItemType.SHOVEL),null,
Artifact.createArtifactItem(ArtifactItem.DIVINE_ESSENCE),
Artifact.createArtifactItem(ArtifactItem.DIVINE_CORE),
Artifact.createArtifactItem(ArtifactItem.DIVINE_BASE)
}),
tierup("Artifact Recipes",ChatColor.YELLOW,"Increase Artifact Material Tier",new ItemStack[]{
tierup(RecipeCategory.ARTIFACT_RECIPES,ChatColor.YELLOW,"Increase Artifact Material Tier",new ItemStack[]{
Artifact.createArtifactItem(ArtifactItem.LOST_ESSENCE),
Artifact.createArtifactItem(ArtifactItem.ANCIENT_ESSENCE),
Artifact.createArtifactItem(ArtifactItem.ANCIENT_ESSENCE)
}),
tierdown("Artifact Recipes",ChatColor.YELLOW,"Decrease Artifact Material Tier",new ItemStack[]{
tierdown(RecipeCategory.ARTIFACT_RECIPES,ChatColor.YELLOW,"Decrease Artifact Material Tier",new ItemStack[]{
Artifact.createArtifactItem(ArtifactItem.ANCIENT_ESSENCE,2),
Artifact.createArtifactItem(ArtifactItem.LOST_ESSENCE)
}),
empower("Artifact Recipes",ChatColor.YELLOW,"Empower Artifact Materials to Divine Tier",new ItemStack[]{
empower(RecipeCategory.ARTIFACT_RECIPES,ChatColor.YELLOW,"Empower Artifact Materials to Divine Tier",new ItemStack[]{
Artifact.createArtifactItem(ArtifactItem.DIVINE_CORE),
Artifact.createArtifactItem(ArtifactItem.ARTIFACT_CORE),new ItemStack(Material.NETHER_STAR),
}),
arrow2("Custom Arrows",ChatColor.GREEN,"Hand-made Arrow",new ItemStack[]{
arrow2(RecipeCategory.CUSTOM_ARROWS,ChatColor.GREEN,"Handmade Arrow",new ItemStack[]{
Recipes.getArrowFromMeta("DOUBLE_DAMAGE_ARR"),
new ItemStack(Material.FLINT),new ItemStack(Material.STICK),null,
new ItemStack(Material.FEATHER),
}),
arrow4("Custom Arrows",ChatColor.GREEN,"Diamond-Tipped Arrow",new ItemStack[]{
arrow4(RecipeCategory.CUSTOM_ARROWS,ChatColor.GREEN,"Diamond-Tipped Arrow",new ItemStack[]{
Recipes.getArrowFromMeta("QUADRUPLE_DAMAGE_ARR"),
Recipes.getArrowFromMeta("DOUBLE_DAMAGE_ARR"),new ItemStack(Material.DIAMOND)
}),
traparrow("Custom Arrows",ChatColor.GREEN,"Trapping Arrow",new ItemStack[]{
traparrow(RecipeCategory.CUSTOM_ARROWS,ChatColor.GREEN,"Trapping Arrow",new ItemStack[]{
Recipes.getArrowFromMeta("TRAP_ARR"),
new ItemStack(Material.WEB),new ItemStack(Material.STICK),null,
new ItemStack(Material.FEATHER),
}),
explodearrow("Custom Arrows",ChatColor.GREEN,"Exploding Arrow",new ItemStack[]{
explodearrow(RecipeCategory.CUSTOM_ARROWS,ChatColor.GREEN,"Exploding Arrow",new ItemStack[]{
Recipes.getArrowFromMeta("EXPLODE_ARR"),
new ItemStack(Material.SULPHUR),new ItemStack(Material.STICK),null,
new ItemStack(Material.FEATHER),
}),
poisonarrow("Custom Arrows",ChatColor.GREEN,"Poison Arrow",new ItemStack[]{
poisonarrow(RecipeCategory.CUSTOM_ARROWS,ChatColor.GREEN,"Poison Arrow",new ItemStack[]{
Recipes.getArrowFromMeta("POISON_ARR"),
new ItemStack(Material.RAW_FISH,1,(short)3),new ItemStack(Material.STICK),null,
new ItemStack(Material.FEATHER),
}),
piercingarrow("Custom Arrows",ChatColor.GREEN,"Piercing Arrow",new ItemStack[]{
piercingarrow(RecipeCategory.CUSTOM_ARROWS,ChatColor.GREEN,"Piercing Arrow",new ItemStack[]{
Recipes.getArrowFromMeta("PIERCING_ARR"),
new ItemStack(Material.REDSTONE,1),new ItemStack(Material.REDSTONE,1),new ItemStack(Material.REDSTONE,1),
new ItemStack(Material.REDSTONE,1),new ItemStack(Material.FEATHER),new ItemStack(Material.FLINT),
new ItemStack(Material.STICK),
}),
piercingarrow2(RecipeCategory.CUSTOM_ARROWS,ChatColor.GREEN,"Piercing Arrow (From Handmade Arrow)",new ItemStack[]{
Recipes.getArrowFromMeta("PIERCING_ARR"),
new ItemStack(Material.REDSTONE,1),new ItemStack(Material.REDSTONE,1),new ItemStack(Material.REDSTONE,1),
new ItemStack(Material.REDSTONE,1),Recipes.getArrowFromMeta("DOUBLE_DAMAGE_ARR"),
});
String name = "";
ItemStack[] rec = null;
ChatColor col = null;
String category = "";
RecipeCategory category = null;
RecipeLinker(String cat, ChatColor col, String name, ItemStack[] recipe) {
RecipeLinker(RecipeCategory cat, ChatColor col, String name, ItemStack[] recipe) {
this.col=col;
this.name=name;
this.rec=recipe;
this.category=cat;
}
public String getCategory() {
public RecipeCategory getCategory() {
return category;
}

@ -122,6 +122,14 @@ public class CustomItem {
piercingarrow_recipe.addIngredient(Material.FEATHER);
return piercingarrow_recipe;
}
private static ShapelessRecipe Piercing2ArrowRecipe() {
ItemStack piercingarrow = Recipes.getArrowFromMeta("PIERCING_ARR");
ShapelessRecipe piercingarrow_recipe = new ShapelessRecipe(piercingarrow);
piercingarrow_recipe.addIngredient(Material.TIPPED_ARROW);
piercingarrow_recipe.addIngredient(4,Material.REDSTONE);
return piercingarrow_recipe;
}
@SuppressWarnings("deprecation")
private static ShapelessRecipe PoisonArrowRecipe() {

@ -238,7 +238,7 @@ public enum ItemSet {
case DAWNTRACKER:{
lore.add(ChatColor.LIGHT_PURPLE+"Barbarian Gear");
lore.add(ChatColor.GOLD+""+ChatColor.BOLD+"T"+tier+" Dawntracker Set");
lore.add(ChatColor.YELLOW+"-"+(ItemSet.GetBaseAmount(set, tier, 1)/2)+" Health taken per hit");
lore.add(ChatColor.YELLOW+"-"+(ItemSet.GetBaseAmount(set, tier, 1)/3)+" Damage taken per hit");
}break;
case LORASYS:{
lore.add(ChatColor.LIGHT_PURPLE+"Slayer Gear");

@ -33,9 +33,11 @@ public enum PlayerMode {
+ ChatColor.WHITE+"- "+ChatColor.BOLD+"Sniping Mode:"+ChatColor.RESET+ChatColor.WHITE+" \n"
+ ChatColor.GRAY+" Headshot collision area increases by x3. Headshots will deal an extra x0.25 damage for each headshot landed, up to a cap of 8 stacks. Each stack also increases your Slowness level by 1. You lose 10% dodge chance per Slowness stack, but gain one Resistance level and 10% critical chance per Slowness stack.\n"
+ ChatColor.WHITE+" Arrows are lightning-fast in Sniping Mode.\n"
+ ChatColor.GRAY+" Press the drop key in Sniping Mode to unleash 26 piercing arrows rapidly against your enemies.\n\n"
+ ChatColor.GRAY+"- "+ChatColor.BOLD+"Debilitation Mode:"+ChatColor.RESET+ChatColor.WHITE+" \n"
+ ChatColor.WHITE+" Adds a stack of Poison when hitting non-poisoned targets (20 second duration). Hitting mobs in this mode refreshes the duration of the poison stacks. Headshots made in this mode will increase the level of Poison on the mob, making the mob more and more vulnerable.\n"
+ ChatColor.GRAY+" Headshots also remove one level of a buff (does not affect debuffs) applied to the mob at random.\n"),
+ ChatColor.GRAY+" Headshots also remove one level of a buff (does not affect debuffs) applied to the mob at random.\n"
+ ChatColor.WHITE+" Press the drop key in Debilitation Mode when at least 1 poisoned target is nearby. Deals (Poison Level x 10) True Damage and Slows all targets the same level as the number of poison stacks applied to nearby targets for 15 seconds, and grants 4 Absorption health (2 hearts) to the Ranger per poison stack. Refreshes Poison duration on all nearby poisoned targets.\n"),
DEFENDER(ChatColor.GRAY,"D","Defender",
ChatColor.GRAY+""+ChatColor.BOLD+"Defender mode Perks: "+ChatColor.RESET+"\n"
+ ChatColor.WHITE+"->Players are identified as 'Defenders' when they use a shield in their main hand.\n"
@ -53,7 +55,35 @@ public enum PlayerMode {
+ ChatColor.WHITE+"- "+ChatColor.BOLD+"Rejuvenation"+ChatColor.RESET+ChatColor.WHITE+"\n"
+ ChatColor.GRAY+"->Dropping your shield will give you Regeneration X for 10 seconds and 2 seconds of invulnerability. It also costs 400 shield durability!\n"),
BARBARIAN(ChatColor.GOLD,"B","Barbarian",
ChatColor.GOLD+""+ChatColor.BOLD+"Barbarian mode Perks: "+ChatColor.RESET+"\n"),
ChatColor.GOLD+""+ChatColor.BOLD+"Barbarian mode Perks: "+ChatColor.RESET+"\n"
+ ChatColor.WHITE+"->Players are identified as 'Barbarians' by wielding an axe in both the main hand and the offhand.\n"
+ ChatColor.GRAY+"->Barbarians swing their off-hand by right-clicking.\n"
+ ChatColor.WHITE+"->Barbarians gain 2 HP (1 Heart) per 1% of Damage reduction.\n"
+ ChatColor.GRAY+"->When Barbarians are hit, they take damage as if they had 0% Damage reduction.\n"
+ ChatColor.WHITE+"->Players are identified as 'Slayers' by wearing no armor, and wearing a Bauble in their hotbar.\n"
+ ChatColor.GRAY+"->Barbarians deal 20% more damage for every 20% of an enemy's missing health.\n"
+ ChatColor.WHITE+"->Barbarians gain Bonus Lifesteal stacks as they hit enemies. Each stack increases Lifesteal by 1%, up to a cap of 100% extra Lifesteal. The stacks refresh every hit, but wear off after 5 seconds.\n"
+ ChatColor.GRAY+"->Barbarians do not instantly take full damage when hit. Instead, the HP is stored in a 'Damage Pool' and distributed every second.\n"
+ ChatColor.WHITE+"->If Barbarians have points in their 'Damage Pool', they will take up to 15 damage every second. The amount taken goes down by wearing Barbarian gear.\n"
+ ChatColor.GRAY+"->When a monster is killed by a Barbarian, the amount of remaining damage in their Damage Pool is divided by 4.\n"
+ ChatColor.WHITE+"->Barbarians automatically consume Rotten Flesh and Spider Eyes that are picked up. Each one heals for 1% of their health. Rotten Flesh and Spider Eyes in a Barbarian's inventory will automatically be consumed as the Barbarian gets hungry.\n"
+ ChatColor.GRAY+"->Barbarians build up Weapon Charges in two ways: +1 Charge for attacking an enemy with the main hand weapon and +2 Charges for taking damage.\n"
+ ChatColor.WHITE+"->Barbarians have 70% knockback resistance.\n"
+ ChatColor.GRAY+"->Barbarians can release their Weapon Charges by using a variety of commands:\n"
+ ChatColor.WHITE+"->Right-Click (Costs 10 Charges): Power Swing - Swing your off-hand weapon to deal an attack with +100% Lifesteal and +100% Crit Chance bonus. Gives 10 Bonus Lifesteal stacks.\n"
+ ChatColor.GRAY+"->Shift Left-Click (Costs 30 Charges): Forceful Strike - Hit all enemies in a line in front of you, dealing double damage and suppressing them for 3 seconds.\n"
+ ChatColor.WHITE+"->Shift Right-Click (Costs 30 Charges): Sweep Up - Performs a sweeping attack which knocks up and damages all enemies within a 4m radius of you. Doubles your Bonus Lifesteal stacks. Lifesteal effects are doubled during this attack.\n"
+ ChatColor.GRAY+"->Swap Item Key (100 Charges Minimum, Costs ALL Charges): Barbarian's Rage - Converts your missing health into Absorption Hearts and applies powerful buffs. This ability is stronger the more stacks consumed.\n"
+ ChatColor.WHITE+" Barbarian's Rage: \n"
+ ChatColor.GRAY+" -- Strength Level: +1 per 10 charges\n"
+ ChatColor.WHITE+" -- LifeSteal: +1% per 2 charges\n"
+ ChatColor.GRAY+" -- Speed V\n"
+ ChatColor.WHITE+" -- Duration of Rage: +1 second per 10 charges\n"
+ ChatColor.GRAY+" -- +2 seconds of invulnerability per 100 charges\n"
+ ChatColor.WHITE+"During Rage you gain double the number of Bonus Lifesteal stacks. You do not gain Weapon Charges during Barbarian's Rage.\n"
+ ChatColor.GRAY+"->Leaping Strike: Barbarians that take fall damage deal triple the damage taken from the fall as damage to all enemies nearby. The range of this attack increases based on how fast the Barbarian falls.\n"
+ ChatColor.WHITE+"->Mock: Press the drop key to perform a Mock attack to all enemies near you. Affected enemies become aggro'd to the Barbarian for 15 seconds and receive 2 stacks of Weakness that lasts 15 seconds. This can stack up to Weakness VI. 20 second cooldown.\n"
),
SLAYER(ChatColor.DARK_BLUE,"SL","Slayer",
ChatColor.DARK_BLUE+""+ChatColor.BOLD+"Slayer mode Perks: "+ChatColor.RESET+"\n"
+ ChatColor.WHITE+"->Players are identified as 'Slayers' by wearing no armor, and wearing a Bauble in their hotbar.\n"

@ -77,4 +77,9 @@ public class ShopPurchase {
return finalmsg;
}
}
public String toString() {
return "ShopPurchase[Seller:"+player+",Customer:"+customer+",Item:"+item.toString()+",Money:"+money+",Amt:"+amt+",Sell:"+sell+"]";
//return player;
}
}

@ -400,8 +400,10 @@ public class SpleefGame implements Listener {
), TeleportCause.PLUGIN);
if (rs==RemovePlayerReason.OUTOFBOUNDS ||
rs==RemovePlayerReason.QUIT) {
PlayerStructure pd = (PlayerStructure)TwosideKeeper.playerdata.get(Bukkit.getServer().getPlayer(p.player));
pd.spleef_pts+=registered_players.size()-players.size()-1;
PlayerStructure pd = PlayerStructure.GetPlayerStructure(Bukkit.getPlayer(p.player));
if (registered_players!=null && players!=null) {
pd.spleef_pts+=registered_players.size()-players.size()-1;
}
Bukkit.getServer().broadcastMessage(ChatColor.GREEN+p.player+ChatColor.GOLD+" "+ChatColor.ITALIC+"has been knocked out of this round of Spleef!");
}
PlayerStructure pd = PlayerStructure.GetPlayerStructure(Bukkit.getServer().getPlayer(p.player));
@ -416,10 +418,12 @@ public class SpleefGame implements Listener {
RemovePlayer(players.get(i), RemovePlayerReason.GENERAL);
i--;
}
PlayerStructure pd = (PlayerStructure)TwosideKeeper.playerdata.get(Bukkit.getServer().getPlayer(winner.player));
pd.spleef_pts+=registered_players.size();
pd.spleef_wins+=1;
registered_players.clear();
PlayerStructure pd = PlayerStructure.GetPlayerStructure(Bukkit.getPlayer(winner.player));
if (registered_players!=null) {
pd.spleef_pts+=registered_players.size();
pd.spleef_wins+=1;
registered_players.clear();
}
Bukkit.getServer().broadcastMessage(ChatColor.GOLD+"Congratulations to Player "+ChatColor.GREEN+winner.player+ChatColor.GOLD+" for winning this round of Spleef!");
active=false;
}
@ -546,6 +550,7 @@ class SpleefPlayerData {
}
public void ClearInventory() {
plug.getServer().getPlayer(this.player).getInventory().clear();
plug.getServer().getPlayer(this.player).setWalkSpeed(0.2f);
}
public boolean IsOutOfBounds(Location corner1, Location corner2) {
Player p = plug.getServer().getPlayer(this.player);

@ -179,6 +179,7 @@ import sig.plugin.TwosideKeeper.HelperStructures.WorldShopSession;
import sig.plugin.TwosideKeeper.HelperStructures.Common.ArrowQuiver;
import sig.plugin.TwosideKeeper.HelperStructures.Common.GenericFunctions;
import sig.plugin.TwosideKeeper.HelperStructures.Common.Habitation;
import sig.plugin.TwosideKeeper.HelperStructures.Common.RecipeCategory;
import sig.plugin.TwosideKeeper.HelperStructures.Common.RecipeLinker;
import sig.plugin.TwosideKeeper.Logging.BowModeLogger;
import sig.plugin.TwosideKeeper.Logging.LootLogger;
@ -1254,7 +1255,11 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
if (args.length==0) {
DisplayArguments(p);
} else {
DisplayCraftingRecipe(p,args[0]);
if (args.length==1) {
DisplayArguments(p,args[0]);
} else {
DisplayCraftingRecipe(p,args[0]);
}
}
return true;
}
@ -1270,12 +1275,13 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
aPlugin.API.viewRecipe(p, l.getRec()[0], newarray);
}
private void DisplayArguments(Player p) {
p.sendMessage(ChatColor.GREEN+"Choose a recipe to view:");
p.sendMessage(ChatColor.GREEN+"Choose a category to view:");
int j=0;
TextComponent fin = new TextComponent("");
for (int i=0;i<RecipeLinker.values().length;i++) {
for (int i=0;i<RecipeCategory.values().length;i++) {
j++;
RecipeLinker val = RecipeLinker.values()[i];
RecipeCategory val = RecipeCategory.values()[i];
/*
TextComponent tc = new TextComponent(ChatColor.values()[j+2]+"["+val.getColor()+val.getName()+ChatColor.values()[j+2]+"] ");
tc.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT,new ComponentBuilder("Click to view the recipe for "+val.getColor()+val.getName()).create()));
tc.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND,"/craft "+val.name()));
@ -1284,6 +1290,37 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
j=0;
}
fin.addExtra(tc);
*/
String cat = ChatColor.GOLD+""+ChatColor.BOLD+GenericFunctions.CapitalizeFirstLetters(val.name().replace("_", " "));
TextComponent tc = new TextComponent(ChatColor.GREEN+"["+cat+ChatColor.GREEN+"] ");
tc.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT,new ComponentBuilder("Click to view the recipes in the "+cat+ChatColor.RESET+" category.").create()));
tc.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND,"/craft "+val.name()));
if (j>1) {
tc.addExtra("\n");
j=0;
}
fin.addExtra(tc);
}
p.spigot().sendMessage(fin);
}
private void DisplayArguments(Player p,String arg) {
p.sendMessage(ChatColor.GREEN+"Choose a recipe to view:");
int j=0;
TextComponent fin = new TextComponent("");
for (int i=0;i<RecipeLinker.values().length;i++) {
RecipeLinker val = RecipeLinker.values()[i];
if (val.getCategory().equals(RecipeCategory.valueOf(arg))) {
j++;
TextComponent tc = new TextComponent(ChatColor.values()[j+2]+"["+val.getColor()+val.getName()+ChatColor.values()[j+2]+"] ");
tc.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT,new ComponentBuilder("Click to view the recipe for "+val.getColor()+val.getName()).create()));
tc.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND,"/craft "+val.name()+" view"));
if (j>2) {
tc.addExtra("\n");
j=0;
}
fin.addExtra(tc);
}
}
p.spigot().sendMessage(fin);
}

@ -297,7 +297,7 @@ public class WorldShopManager {
TwosideKeeper.log("Config exists. Entering.",5);
FileConfiguration workable = YamlConfiguration.loadConfiguration(config);
for (int i=0;i<workable.getKeys(false).size()/6;i++) {
purchases.add(
ShopPurchase sp =
new ShopPurchase(
workable.getString("player"+i),
workable.getString("customer"+i),
@ -305,9 +305,11 @@ public class WorldShopManager {
workable.getDouble("money"+i),
workable.getInt("amt"+i),
workable.getBoolean("sell"+i)
)
);
);
purchases.add(sp);
TwosideKeeper.log("--Added Purchase: "+sp.toString(),5);
}
TwosideKeeper.log("Purchase List: "+purchases.toString(), 5);
}
//config.delete();
}

Loading…
Cancel
Save