->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
main: sig.plugin.TwosideKeeper.TwosideKeeper
version: 3.8.5a
version: 3.8.5ar1
commands:
money:
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);
//TwosideKeeper.log("In lore: "+lore.get(i)+". Old tier: "+oldtier,2);
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;
break;
}
@ -99,6 +98,7 @@ public enum ItemSet {
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);
@ -324,4 +324,31 @@ public enum ItemSet {
}
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) {
List<String> lore = new ArrayList<String>();
int type = (int)(Math.random()*3);
if (item.getType().name().contains("LEATHER") || item.getType()==Material.BOW) {
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;
switch (type) {
case 0:{
set = ItemSet.PANROS;
tierbonus = modifyTierBonus(item,tierbonus);
set_name = prefix+"Panros Striker "+GenericFunctions.UserFriendlyMaterialName(item.getType()); //Striker set.
}break;
case 1:{
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")) {
item.setType(Material.SHIELD);
tierbonus/=2;
}
tierbonus = modifyTierBonus(item,tierbonus);
set_name = prefix+"Songsteel Defender "+GenericFunctions.UserFriendlyMaterialName(item.getType()); //Defender set.
}break;
case 2:{
set = ItemSet.DAWNTRACKER;
case DAWNTRACKER:{
if (item.getType().toString().contains("SWORD")) {
item.setType(Material.valueOf(item.getType().toString().replace("SWORD","")+"AXE"));
}
tierbonus = modifyTierBonus(item,tierbonus);
set_name = prefix+"Dawntracker Barbarian "+GenericFunctions.UserFriendlyMaterialName(item.getType());
}break;
case 3:{
set = ItemSet.LORASYS;
case LORASYS:{
if (item.getType().toString().contains("SWORD")) {
//Convert Slayer weapon here. ???
}
tierbonus = modifyTierBonus(item,tierbonus);
set_name = prefix+"Lorasys Slayer "+GenericFunctions.UserFriendlyMaterialName(item.getType());
}break;
case 4:{
set = ItemSet.JAMDAK;
case JAMDAK:{
if (item.getType().toString().contains("SWORD")) {
item.setType(Material.BOW);
tierbonus/=2;
}
set_name = prefix+"Jamdak Ranger "+GenericFunctions.UserFriendlyMaterialName(item.getType());
if (Math.random()<=0.5 && tierbonus<2) {
tierbonus+=2;
}
}break;
case 5:{
set = ItemSet.DARNYS;
case DARNYS:{
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());
if (Math.random()<=0.5 && tierbonus<1) {
tierbonus+=1;
}
}break;
case 6:{
set = ItemSet.ALIKAHN;
case ALIKAHN:{
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());
if (Math.random()<=0.1 && tierbonus<1) {
tierbonus+=1;
}
}break;
case 7:{
set = ItemSet.LORASAADI;
case LORASAADI:{
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());
if (tierbonus>0 && Math.random()<=0.5) {

View File

@ -362,8 +362,12 @@ public class MonsterController {
int patterns = (int)(Math.random()*7)+1;
List<Pattern> patternlist = new ArrayList<Pattern>();
for (int i=0;i<patterns;i++) {
int patternnumb = (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)],
PatternType.values()[(int)(Math.random()*PatternType.values().length)]));
type));
}
}
aPlugin.API.setShieldBannerPattern(shield, DyeColor.values()[(int)(Math.random()*DyeColor.values().length)], patternlist);
m.getEquipment().setItemInOffHand(shield);
@ -483,8 +487,12 @@ public class MonsterController {
int patterns = (int)(Math.random()*7)+1;
List<Pattern> patternlist = new ArrayList<Pattern>();
for (int i=0;i<patterns;i++) {
int patternnumb = (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)],
PatternType.values()[(int)(Math.random()*PatternType.values().length)]));
type));
}
}
aPlugin.API.setShieldBannerPattern(shield, DyeColor.values()[(int)(Math.random()*DyeColor.values().length)], patternlist);
m.getEquipment().setItemInOffHand(shield);
@ -538,8 +546,12 @@ public class MonsterController {
int patterns = (int)(Math.random()*7)+1;
List<Pattern> patternlist = new ArrayList<Pattern>();
for (int i=0;i<patterns;i++) {
int patternnumb = (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)],
PatternType.values()[(int)(Math.random()*PatternType.values().length)]));
type));
}
}
aPlugin.API.setShieldBannerPattern(shield, DyeColor.values()[(int)(Math.random()*DyeColor.values().length)], patternlist);
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);
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());
ItemStack upgrade = UPGRADE_SHARD.getItemStack();
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) {
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.
public static ServerType getServerType() {
@ -315,6 +318,9 @@ public final class TwosideKeeperAPI {
public static void setItemTier(ItemStack item,int tier) {
ItemSet.SetTier(item, tier);
}
public static void setItemSet(ItemStack item, ItemSet set) {
ItemSet.SetItemSet(item, set);
}
public static boolean isUpgradeShard(ItemStack item) {
return GenericFunctions.isUpgradeShard(item);
}