->Added generateSetPiece() and SetItemSet() to API to generate a very

specific piece for an item set.
->Fixed bugged Monster shields.
This commit is contained in:
sigonasr2 2016-08-24 21:34:30 -05:00
parent 6c16d1c816
commit 36b3f7bbbf
8 changed files with 116 additions and 31 deletions

Binary file not shown.

View File

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

View File

@ -0,0 +1,5 @@
package sig.plugin.TwosideKeeper.HelperStructures.Common;
public enum CustomRecipe {
}

View File

@ -91,7 +91,6 @@ public enum ItemSet {
int oldtier=GetTier(item); int oldtier=GetTier(item);
//TwosideKeeper.log("In lore: "+lore.get(i)+". Old tier: "+oldtier,2); //TwosideKeeper.log("In lore: "+lore.get(i)+". Old tier: "+oldtier,2);
lore.set(i, lore.get(i).replace("T"+oldtier, "T"+tier)); lore.set(i, lore.get(i).replace("T"+oldtier, "T"+tier));
GenericFunctions.UpdateItemLore(item); //Update this item now that we upgraded the tier.
found=true; found=true;
break; break;
} }
@ -99,6 +98,7 @@ public enum ItemSet {
ItemMeta m = item.getItemMeta(); ItemMeta m = item.getItemMeta();
m.setLore(lore); m.setLore(lore);
item.setItemMeta(m); item.setItemMeta(m);
GenericFunctions.UpdateItemLore(item); //Update this item now that we upgraded the tier.
} }
if (!found) { if (!found) {
TwosideKeeper.log(ChatColor.RED+"[ERROR] Could not detect proper tier of "+item.toString()+"!", 1); TwosideKeeper.log(ChatColor.RED+"[ERROR] Could not detect proper tier of "+item.toString()+"!", 1);
@ -324,4 +324,31 @@ public enum ItemSet {
} }
return lore; return lore;
} }
public static void SetItemSet(ItemStack item, ItemSet set) {
//Convert this item to a different set.
boolean found=false;
if (isSetItem(item) &&
item.getItemMeta().hasLore()) {
List<String> lore = item.getItemMeta().getLore();
for (int i=0;i<lore.size();i++) {
if (lore.get(i).contains(ChatColor.GOLD+""+ChatColor.BOLD+"T")) {
//This is the tier line.
ItemSet oldset=GetSet(item);
//TwosideKeeper.log("In lore: "+lore.get(i)+". Old tier: "+oldtier,2);
//lore.set(i, lore.get(i).replace("T"+oldtier, "T"+tier));
lore.set(i, lore.get(i).replace(GenericFunctions.CapitalizeFirstLetters(oldset.name()), GenericFunctions.CapitalizeFirstLetters(set.name())));
found=true;
break;
}
}
ItemMeta m = item.getItemMeta();
m.setLore(lore);
item.setItemMeta(m);
GenericFunctions.UpdateItemLore(item); //Update this item now that we upgraded the tier.
}
if (!found) {
TwosideKeeper.log(ChatColor.RED+"[ERROR] Could not detect proper tier of "+item.toString()+"!", 1);
}
}
} }

View File

@ -135,79 +135,112 @@ public class Loot {
} }
public static ItemStack GenerateSetPiece(ItemStack item, boolean hardened, int tierbonus) { public static ItemStack GenerateSetPiece(ItemStack item, boolean hardened, int tierbonus) {
List<String> lore = new ArrayList<String>();
int type = (int)(Math.random()*3); int type = (int)(Math.random()*3);
if (item.getType().name().contains("LEATHER") || item.getType()==Material.BOW) { if (item.getType().name().contains("LEATHER") || item.getType()==Material.BOW) {
type=4+(int)(Math.random()*4); type=4+(int)(Math.random()*4);
} }
String set_name = "";
String prefix = "";
prefix = (hardened)?(ChatColor.LIGHT_PURPLE+""+ChatColor.BOLD+"Hardened Mega "):(ChatColor.AQUA+""+ChatColor.BOLD+"Mega ");
ItemSet set = null; ItemSet set = null;
switch (type) { switch (type) {
case 0:{ case 0:{
set = ItemSet.PANROS; set = ItemSet.PANROS;
tierbonus = modifyTierBonus(item,tierbonus);
set_name = prefix+"Panros Striker "+GenericFunctions.UserFriendlyMaterialName(item.getType()); //Striker set.
}break; }break;
case 1:{ case 1:{
set = ItemSet.SONGSTEEL; set = ItemSet.SONGSTEEL;
}break;
case 2:{
set = ItemSet.DAWNTRACKER;
}break;
case 3:{
set = ItemSet.LORASYS;
}break;
case 4:{
set = ItemSet.JAMDAK;
}break;
case 5:{
set = ItemSet.DARNYS;
}break;
case 6:{
set = ItemSet.ALIKAHN;
}break;
case 7:{
set = ItemSet.LORASAADI;
}break;
default:
set = ItemSet.PANROS;
}
return GenerateSetPiece(item,set,hardened,tierbonus);
}
public static ItemStack GenerateSetPiece(Material item, ItemSet set, boolean hardened, int tierbonus) {
return GenerateSetPiece(new ItemStack(item),set,hardened,tierbonus);
}
public static ItemStack GenerateSetPiece(ItemStack item, ItemSet set, boolean hardened, int tierbonus) {
List<String> lore = new ArrayList<String>();
String set_name = "";
String prefix = "";
prefix = (hardened)?(ChatColor.LIGHT_PURPLE+""+ChatColor.BOLD+"Hardened Mega "):(ChatColor.AQUA+""+ChatColor.BOLD+"Mega ");
switch (set) {
case PANROS:{
tierbonus = modifyTierBonus(item,tierbonus);
set_name = prefix+"Panros Striker "+GenericFunctions.UserFriendlyMaterialName(item.getType()); //Striker set.
}break;
case SONGSTEEL:{
if (item.getType().toString().contains("SWORD")) { if (item.getType().toString().contains("SWORD")) {
item.setType(Material.SHIELD); item.setType(Material.SHIELD);
tierbonus/=2;
} }
tierbonus = modifyTierBonus(item,tierbonus); tierbonus = modifyTierBonus(item,tierbonus);
set_name = prefix+"Songsteel Defender "+GenericFunctions.UserFriendlyMaterialName(item.getType()); //Defender set. set_name = prefix+"Songsteel Defender "+GenericFunctions.UserFriendlyMaterialName(item.getType()); //Defender set.
}break; }break;
case 2:{ case DAWNTRACKER:{
set = ItemSet.DAWNTRACKER;
if (item.getType().toString().contains("SWORD")) { if (item.getType().toString().contains("SWORD")) {
item.setType(Material.valueOf(item.getType().toString().replace("SWORD","")+"AXE")); item.setType(Material.valueOf(item.getType().toString().replace("SWORD","")+"AXE"));
} }
tierbonus = modifyTierBonus(item,tierbonus); tierbonus = modifyTierBonus(item,tierbonus);
set_name = prefix+"Dawntracker Barbarian "+GenericFunctions.UserFriendlyMaterialName(item.getType()); set_name = prefix+"Dawntracker Barbarian "+GenericFunctions.UserFriendlyMaterialName(item.getType());
}break; }break;
case 3:{ case LORASYS:{
set = ItemSet.LORASYS;
if (item.getType().toString().contains("SWORD")) { if (item.getType().toString().contains("SWORD")) {
//Convert Slayer weapon here. ??? //Convert Slayer weapon here. ???
} }
tierbonus = modifyTierBonus(item,tierbonus); tierbonus = modifyTierBonus(item,tierbonus);
set_name = prefix+"Lorasys Slayer "+GenericFunctions.UserFriendlyMaterialName(item.getType()); set_name = prefix+"Lorasys Slayer "+GenericFunctions.UserFriendlyMaterialName(item.getType());
}break; }break;
case 4:{ case JAMDAK:{
set = ItemSet.JAMDAK;
if (item.getType().toString().contains("SWORD")) { if (item.getType().toString().contains("SWORD")) {
item.setType(Material.BOW); item.setType(Material.BOW);
tierbonus/=2;
} }
set_name = prefix+"Jamdak Ranger "+GenericFunctions.UserFriendlyMaterialName(item.getType()); set_name = prefix+"Jamdak Ranger "+GenericFunctions.UserFriendlyMaterialName(item.getType());
if (Math.random()<=0.5 && tierbonus<2) { if (Math.random()<=0.5 && tierbonus<2) {
tierbonus+=2; tierbonus+=2;
} }
}break; }break;
case 5:{ case DARNYS:{
set = ItemSet.DARNYS;
if (item.getType().toString().contains("SWORD")) { if (item.getType().toString().contains("SWORD")) {
//Convert Slayer weapon here. ??? item.setType(Material.BOW);
tierbonus/=2;
} }
set_name = prefix+"Darnys Ranger "+GenericFunctions.UserFriendlyMaterialName(item.getType()); set_name = prefix+"Darnys Ranger "+GenericFunctions.UserFriendlyMaterialName(item.getType());
if (Math.random()<=0.5 && tierbonus<1) { if (Math.random()<=0.5 && tierbonus<1) {
tierbonus+=1; tierbonus+=1;
} }
}break; }break;
case 6:{ case ALIKAHN:{
set = ItemSet.ALIKAHN;
if (item.getType().toString().contains("SWORD")) { if (item.getType().toString().contains("SWORD")) {
//Convert Slayer weapon here. ??? item.setType(Material.BOW);
tierbonus/=2;
} }
set_name = prefix+"Alikahn Ranger "+GenericFunctions.UserFriendlyMaterialName(item.getType()); set_name = prefix+"Alikahn Ranger "+GenericFunctions.UserFriendlyMaterialName(item.getType());
if (Math.random()<=0.1 && tierbonus<1) { if (Math.random()<=0.1 && tierbonus<1) {
tierbonus+=1; tierbonus+=1;
} }
}break; }break;
case 7:{ case LORASAADI:{
set = ItemSet.LORASAADI;
if (item.getType().toString().contains("SWORD")) { if (item.getType().toString().contains("SWORD")) {
//Convert Slayer weapon here. ??? item.setType(Material.BOW);
tierbonus/=2;
} }
set_name = prefix+"Lorasaadi Ranger "+GenericFunctions.UserFriendlyMaterialName(item.getType()); set_name = prefix+"Lorasaadi Ranger "+GenericFunctions.UserFriendlyMaterialName(item.getType());
if (tierbonus>0 && Math.random()<=0.5) { if (tierbonus>0 && Math.random()<=0.5) {

View File

@ -362,8 +362,12 @@ public class MonsterController {
int patterns = (int)(Math.random()*7)+1; int patterns = (int)(Math.random()*7)+1;
List<Pattern> patternlist = new ArrayList<Pattern>(); List<Pattern> patternlist = new ArrayList<Pattern>();
for (int i=0;i<patterns;i++) { for (int i=0;i<patterns;i++) {
patternlist.add(new Pattern(DyeColor.values()[(int)(Math.random()*DyeColor.values().length)], int patternnumb = (int)(Math.random()*PatternType.values().length);
PatternType.values()[(int)(Math.random()*PatternType.values().length)])); PatternType type = PatternType.values()[patternnumb];
if (type!=PatternType.BASE) {
patternlist.add(new Pattern(DyeColor.values()[(int)(Math.random()*DyeColor.values().length)],
type));
}
} }
aPlugin.API.setShieldBannerPattern(shield, DyeColor.values()[(int)(Math.random()*DyeColor.values().length)], patternlist); aPlugin.API.setShieldBannerPattern(shield, DyeColor.values()[(int)(Math.random()*DyeColor.values().length)], patternlist);
m.getEquipment().setItemInOffHand(shield); m.getEquipment().setItemInOffHand(shield);
@ -483,8 +487,12 @@ public class MonsterController {
int patterns = (int)(Math.random()*7)+1; int patterns = (int)(Math.random()*7)+1;
List<Pattern> patternlist = new ArrayList<Pattern>(); List<Pattern> patternlist = new ArrayList<Pattern>();
for (int i=0;i<patterns;i++) { for (int i=0;i<patterns;i++) {
patternlist.add(new Pattern(DyeColor.values()[(int)(Math.random()*DyeColor.values().length)], int patternnumb = (int)(Math.random()*PatternType.values().length);
PatternType.values()[(int)(Math.random()*PatternType.values().length)])); PatternType type = PatternType.values()[patternnumb];
if (type!=PatternType.BASE) {
patternlist.add(new Pattern(DyeColor.values()[(int)(Math.random()*DyeColor.values().length)],
type));
}
} }
aPlugin.API.setShieldBannerPattern(shield, DyeColor.values()[(int)(Math.random()*DyeColor.values().length)], patternlist); aPlugin.API.setShieldBannerPattern(shield, DyeColor.values()[(int)(Math.random()*DyeColor.values().length)], patternlist);
m.getEquipment().setItemInOffHand(shield); m.getEquipment().setItemInOffHand(shield);
@ -538,8 +546,12 @@ public class MonsterController {
int patterns = (int)(Math.random()*7)+1; int patterns = (int)(Math.random()*7)+1;
List<Pattern> patternlist = new ArrayList<Pattern>(); List<Pattern> patternlist = new ArrayList<Pattern>();
for (int i=0;i<patterns;i++) { for (int i=0;i<patterns;i++) {
patternlist.add(new Pattern(DyeColor.values()[(int)(Math.random()*DyeColor.values().length)], int patternnumb = (int)(Math.random()*PatternType.values().length);
PatternType.values()[(int)(Math.random()*PatternType.values().length)])); PatternType type = PatternType.values()[patternnumb];
if (type!=PatternType.BASE) {
patternlist.add(new Pattern(DyeColor.values()[(int)(Math.random()*DyeColor.values().length)],
type));
}
} }
aPlugin.API.setShieldBannerPattern(shield, DyeColor.values()[(int)(Math.random()*DyeColor.values().length)], patternlist); aPlugin.API.setShieldBannerPattern(shield, DyeColor.values()[(int)(Math.random()*DyeColor.values().length)], patternlist);
m.getEquipment().setItemInOffHand(shield); m.getEquipment().setItemInOffHand(shield);

View File

@ -1135,7 +1135,9 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
}*/ }*/
/*Monster m = MonsterController.convertMonster((Monster)p.getWorld().spawnEntity(p.getLocation(),EntityType.ZOMBIE), MonsterDifficulty.ELITE); /*Monster m = MonsterController.convertMonster((Monster)p.getWorld().spawnEntity(p.getLocation(),EntityType.ZOMBIE), MonsterDifficulty.ELITE);
m.setHealth(m.getMaxHealth()/16d);*/ m.setHealth(m.getMaxHealth()/16d);*/
p.getWorld().dropItemNaturally(p.getLocation(), TwosideKeeperAPI.generateMegaPiece(Material.LEATHER_CHESTPLATE, true, true, 5)); //aPlugin.API.sendActionBarMessage(p, "Testing/nMultiple Lines.\nLolz");
TwosideKeeperAPI.setItemSet(p.getEquipment().getItemInMainHand(), ItemSet.PANROS);
//p.getWorld().dropItemNaturally(p.getLocation(), TwosideKeeperAPI.generateMegaPiece(Material.LEATHER_CHESTPLATE, true, true, 5));
/*p.getWorld().dropItemNaturally(p.getLocation(), UPGRADE_SHARD.getItemStack()); /*p.getWorld().dropItemNaturally(p.getLocation(), UPGRADE_SHARD.getItemStack());
ItemStack upgrade = UPGRADE_SHARD.getItemStack(); ItemStack upgrade = UPGRADE_SHARD.getItemStack();
GenericFunctions.setUpgradeShardTier(upgrade,3); GenericFunctions.setUpgradeShardTier(upgrade,3);

View File

@ -130,6 +130,9 @@ public final class TwosideKeeperAPI {
public static ItemStack generateMegaPiece(Material item, boolean hardened, boolean isSetPiece, int basetier) { public static ItemStack generateMegaPiece(Material item, boolean hardened, boolean isSetPiece, int basetier) {
return Loot.GenerateMegaPiece(item, hardened, isSetPiece, basetier); return Loot.GenerateMegaPiece(item, hardened, isSetPiece, basetier);
} }
public static ItemStack generateSetPiece(Material item, ItemSet set, boolean hardened, int basetier) {
return Loot.GenerateSetPiece(item, set, hardened, basetier);
}
//Server COMMANDS. //Server COMMANDS.
public static ServerType getServerType() { public static ServerType getServerType() {
@ -315,6 +318,9 @@ public final class TwosideKeeperAPI {
public static void setItemTier(ItemStack item,int tier) { public static void setItemTier(ItemStack item,int tier) {
ItemSet.SetTier(item, tier); ItemSet.SetTier(item, tier);
} }
public static void setItemSet(ItemStack item, ItemSet set) {
ItemSet.SetItemSet(item, set);
}
public static boolean isUpgradeShard(ItemStack item) { public static boolean isUpgradeShard(ItemStack item) {
return GenericFunctions.isUpgradeShard(item); return GenericFunctions.isUpgradeShard(item);
} }