Shrapnel DoT effects.
>Fixed UUID issues with World Shops and Daily Challenge scoreboards.
>Minibosses no longer spawn in player-built locations (Similar to Elite
spawning behavior.)
lore.add(ChatColor.DARK_AQUA+" 2 - "+ChatColor.WHITE+" Gain immunity to Explosions.");
lore.add(ChatColor.DARK_AQUA+" "+ChatColor.WHITE+" Consumes "+ChatColor.YELLOW+ItemSet.GetBaseAmount(set,tier,2)+" XP"+ChatColor.WHITE+" per absorbed hit.");
lore.add(ChatColor.DARK_AQUA+" "+ChatColor.GRAY+ChatColor.ITALIC+"Must have at least "+ChatColor.YELLOW+ChatColor.ITALIC+ItemSet.GetBaseAmount(set,tier,2)+" XP"+ChatColor.GRAY+ChatColor.ITALIC+" to trigger.");
lore.add(ChatColor.DARK_AQUA+" 3 - "+ChatColor.WHITE+" Resists all fire, poison, and wither damage.");
lore.add(ChatColor.DARK_AQUA+" 3 - "+ChatColor.WHITE+" Resists all fire, poison, bleeding, infection and wither damage.");
lore.add(ChatColor.DARK_AQUA+" "+ChatColor.WHITE+" Consumes "+ChatColor.YELLOW+ItemSet.GetBaseAmount(set,tier,3)+" XP"+ChatColor.WHITE+" per absorbed hit.");
lore.add(ChatColor.DARK_AQUA+" "+ChatColor.GRAY+ChatColor.ITALIC+"Must have at least "+ChatColor.YELLOW+ChatColor.ITALIC+ItemSet.GetBaseAmount(set,tier,3)+" XP"+ChatColor.GRAY+ChatColor.ITALIC+" to trigger.");
lore.add(ChatColor.DARK_AQUA+" 5 - "+ChatColor.WHITE+" Backstabs spill "+ChatColor.YELLOW+ItemSet.GetBaseAmount(set,tier,4)+" XP"+ChatColor.WHITE+" out from the target hit.");
TextComponentmessage1=newTextComponent("Player "+ChatColor.BLUE+customer+ChatColor.WHITE+" has purchased "+ChatColor.YELLOW+amt+ChatColor.WHITE+" of your ");
TextComponentmessage1=newTextComponent("Player "+ChatColor.BLUE+WorldShop.getFriendlyOwnerName(customer)+ChatColor.WHITE+" has purchased "+ChatColor.YELLOW+amt+ChatColor.WHITE+" of your ");
TextComponentmessage3=newTextComponent(". You have earned $"+df.format(money)+". "+ChatColor.GRAY+""+ChatColor.ITALIC+"(See /money)");
@ -67,7 +69,7 @@ public class ShopPurchase {
finalmsg.addExtra(message3);
returnfinalmsg;
}else{
TextComponentmessage1=newTextComponent("Player "+ChatColor.BLUE+customer+ChatColor.WHITE+" has sold "+ChatColor.YELLOW+amt+ChatColor.WHITE+" ");
TextComponentmessage1=newTextComponent("Player "+ChatColor.BLUE+WorldShop.getFriendlyOwnerName(customer)+ChatColor.WHITE+" has sold "+ChatColor.YELLOW+amt+ChatColor.WHITE+" ");
TextComponentmessage3=newTextComponent(" to you. $"+df.format(money)+" has been deducted from your bank account. "+ChatColor.GRAY+""+ChatColor.ITALIC+"(Check your shop to collect your items.)");
@ -293,8 +293,8 @@ public class GenericBoss extends CustomMonster{
it.setPickupDelay(0);*/
}
}
Bukkit.getServer().broadcastMessage(ChatColor.GREEN+participants_list.toString()+ChatColor.WHITE+" "+(participants_list.length()==1?"has single-handedly taken down the ":"have successfully slain ")+GenericFunctions.getDisplayName(m)+ChatColor.WHITE+"!");
aPlugin.API.discordSendRaw(ChatColor.GREEN+participants_list.toString()+ChatColor.WHITE+" "+(participants_list.length()==1?"has single-handedly taken down the ":"have successfully slain ")+"**"+GenericFunctions.getDisplayName(m)+ChatColor.WHITE+"**!");
Bukkit.getServer().broadcastMessage(ChatColor.GREEN+participants_list.toString()+ChatColor.WHITE+" "+(participants.size()==1?"has single-handedly taken down the ":"have successfully slain ")+GenericFunctions.getDisplayName(m)+ChatColor.WHITE+"!");
aPlugin.API.discordSendRaw(ChatColor.GREEN+participants_list.toString()+ChatColor.WHITE+" "+(participants.size()==1?"has single-handedly taken down the ":"have successfully slain ")+"**"+GenericFunctions.getDisplayName(m)+ChatColor.WHITE+"**!");
WAITFORPLAYERS,//Waits 10 seconds for any additional players to join in.
WAITFORROUNDCHOICES,//Asks all participants to submit a round choice. (10 seconds Max)
WAITFORTEAMCHOICES,//Asks all participants to submit a team choice.
WAITFORSTAGECHOICES,//Asks all participants to submit a stage choice. (10 seconds Max)
PREPAREFORBATTLE,//Gives players 10 seconds before transferring them.
FIGHTING,//The actual fighting
@ -457,29 +612,39 @@ enum CHOICEENGINE {
enumPVPOption{
NONE(0,"No Choice","Hey look! It's my favorite streamer! The one and only >>Legendary<<, yes LEGENDARY Captain_Marrow aka Storm! We break ultimate plates, alchemize Artifacts, miss skillshots, break Master Swords, collect food because we cannot dodge the Ganon, deny our combat-buddies from keeping their legendary equipment, and jump off boats right before they leave ( cy@ VoHiYo )! Come join the fun! Kappa"),
ROUNDS3(1,ChatColor.WHITE+"Best of 3","The player that wins 2 of 3 total rounds wins the duel."),
ROUNDS5(2,ChatColor.GRAY+"Best of 5","The player that wins 3 of 5 total rounds wins the duel."),
ROUNDS7(3,ChatColor.WHITE+"Best of 7","The player that wins 4 of 7 total rounds wins the duel."),
ROUNDS15(4,ChatColor.GRAY+"Best of 15","The player that wins 8 of 15 total rounds wins the duel."),
MIN3(5,ChatColor.WHITE+"3 Min Deathmatch","The player that gets the highest score within 3 minutes wins the duel. "+ChatColor.GREEN+"+1 Point per Kill"+ChatColor.RESET+", "+ChatColor.RED+"-1 Point per Death"),
MIN5(6,ChatColor.GRAY+"5 Min Deathmatch","The player that gets the highest score within 5 minutes wins the duel. "+ChatColor.GREEN+"+1 Point per Kill"+ChatColor.RESET+", "+ChatColor.RED+"-1 Point per Death"),
MIN10(7,ChatColor.WHITE+"10 Min Deathmatch","The player that gets the highest score within 10 minutes wins the duel. "+ChatColor.GREEN+"+1 Point per Kill"+ChatColor.RESET+", "+ChatColor.RED+"-1 Point per Death"),
ROUNDS3(1,ChatColor.WHITE+"Best of 3","The team that wins 2 of 3 total rounds wins the duel."),
ROUNDS5(2,ChatColor.GRAY+"Best of 5","The team that wins 3 of 5 total rounds wins the duel."),
ROUNDS7(3,ChatColor.WHITE+"Best of 7","The team that wins 4 of 7 total rounds wins the duel."),
ROUNDS15(4,ChatColor.GRAY+"Best of 15","The team that wins 8 of 15 total rounds wins the duel."),
MIN3(5,ChatColor.WHITE+"3 Min Deathmatch","The player that gets the highest score within 3 minutes wins the duel. "+ChatColor.GREEN+"+1 Point per Kill"+ChatColor.RESET+", "+ChatColor.RED+"-1 Point per Death",20*60*3),
MIN5(6,ChatColor.GRAY+"5 Min Deathmatch","The player that gets the highest score within 5 minutes wins the duel. "+ChatColor.GREEN+"+1 Point per Kill"+ChatColor.RESET+", "+ChatColor.RED+"-1 Point per Death",20*60*5),
MIN10(7,ChatColor.WHITE+"10 Min Deathmatch","The player that gets the highest score within 10 minutes wins the duel. "+ChatColor.GREEN+"+1 Point per Kill"+ChatColor.RESET+", "+ChatColor.RED+"-1 Point per Death",20*60*10),
OPENWORLD(1,ChatColor.WHITE+"Open World","Fight in the current location you are located at."+ChatColor.RED+"\n NOTE: "+ChatColor.WHITE+"You may not wander more than 32 blocks away from your starting battle location."),
SMALLBATTLEFIELD(2,ChatColor.GRAY+"Small Battlefield","Fight in a small, instanced battlefield"),
AQUATICFORT(3,ChatColor.WHITE+"Aquatic Fort","Fight in a small, decorated fort with a moat surrounding the area."),
NETHERFORTRESS(4,ChatColor.GRAY+"Nether Fortress","Fight in a medium-sized fortress sitting upon the fiery flames of hell."),
THEEND(5,ChatColor.WHITE+"The End","This is where all battles come to a spectacular end. A medium platform suspended high into the void. Falling off is inevitable.");
THEEND(5,ChatColor.WHITE+"The End","This is where all battles come to a spectacular end. A medium platform suspended high into the void. Falling off is inevitable."),
Bukkit.broadcastMessage(mostusedmode.getColor()+"("+mostusedmode.getAbbreviation()+")"+ChatColor.RESET+ChatColor.GREEN+r.getName()+ChatColor.RESET+" has completed "+ChatColor.AQUA+ChatColor.BOLD+this.name+ChatColor.RESET+" with a score of "+ChatColor.YELLOW+ChatColor.BOLD+df.format(score));
aPlugin.API.discordSendRaw(mostusedmode.getColor()+"*("+mostusedmode.getAbbreviation()+")*"+r.getName()+" has completed **"+this.name+"** with a score of "+ChatColor.YELLOW+ChatColor.BOLD+df.format(score));
if(!this.name.contains("Hall of Fame")){
Bukkit.broadcastMessage(mostusedmode.getColor()+"("+mostusedmode.getAbbreviation()+")"+ChatColor.RESET+ChatColor.GREEN+WorldShop.getFriendlyOwnerName(r.getName())+ChatColor.RESET+" has completed "+ChatColor.AQUA+ChatColor.BOLD+this.name+ChatColor.RESET+" with a score of "+ChatColor.YELLOW+ChatColor.BOLD+df.format(score));
aPlugin.API.discordSendRaw(mostusedmode.getColor()+"*("+mostusedmode.getAbbreviation()+")*"+WorldShop.getFriendlyOwnerName(r.getName())+" has completed **"+this.name+"** with a score of "+ChatColor.YELLOW+ChatColor.BOLD+df.format(score));
Recordrecordbeat=recordlist.get(1);//Get the record we beat.
//DecimalFormat df = new DecimalFormat("0.00");
Bukkit.broadcastMessage(newRecordAdded.getMode().getColor()+"("+newRecordAdded.getMode().getAbbreviation()+")"+ChatColor.RESET+ChatColor.GREEN+newRecordAdded.getName()+ChatColor.RESET+" has beat "+recordbeat.getMode().getColor()+"("+recordbeat.getMode().getAbbreviation()+")"+ChatColor.RESET+ChatColor.GREEN+recordbeat.getName()+ChatColor.RESET+" in "+ChatColor.AQUA+ChatColor.BOLD+name+ChatColor.RESET+" with a score of "+ChatColor.YELLOW+ChatColor.BOLD+df.format(newRecordAdded.getScore())+"!!");
aPlugin.API.discordSendRaw("*("+newRecordAdded.getMode().getAbbreviation()+")*"+newRecordAdded.getName()+" has beat *("+recordbeat.getMode().getAbbreviation()+")*"+recordbeat.getName()+" in **"+name+"** with a score of "+ChatColor.YELLOW+ChatColor.BOLD+df.format(newRecordAdded.getScore())+"!!");
Bukkit.broadcastMessage(newRecordAdded.getMode().getColor()+"("+newRecordAdded.getMode().getAbbreviation()+")"+ChatColor.RESET+ChatColor.GREEN+WorldShop.getFriendlyOwnerName(newRecordAdded.getName())+ChatColor.RESET+" has beat "+recordbeat.getMode().getColor()+"("+recordbeat.getMode().getAbbreviation()+")"+ChatColor.RESET+ChatColor.GREEN+WorldShop.getFriendlyOwnerName(recordbeat.getName())+ChatColor.RESET+" in "+ChatColor.AQUA+ChatColor.BOLD+name+ChatColor.RESET+" with a score of "+ChatColor.YELLOW+ChatColor.BOLD+df.format(newRecordAdded.getScore())+"!!");
aPlugin.API.discordSendRaw("*("+newRecordAdded.getMode().getAbbreviation()+")*"+WorldShop.getFriendlyOwnerName(newRecordAdded.getName())+" has beat *("+recordbeat.getMode().getAbbreviation()+")*"+WorldShop.getFriendlyOwnerName(recordbeat.getName())+" in **"+name+"** with a score of "+ChatColor.YELLOW+ChatColor.BOLD+df.format(newRecordAdded.getScore())+"!!");
leader=currentRecord;
}else{
Bukkit.broadcastMessage(newRecordAdded.getMode().getColor()+"("+newRecordAdded.getMode().getAbbreviation()+")"+ChatColor.RESET+ChatColor.GREEN+newRecordAdded.getName()+ChatColor.RESET+" has completed "+ChatColor.AQUA+ChatColor.BOLD+name+ChatColor.RESET+" with a score of "+ChatColor.YELLOW+ChatColor.BOLD+df.format(newRecordAdded.getScore()));
aPlugin.API.discordSendRaw(newRecordAdded.getMode().getColor()+"*("+newRecordAdded.getMode().getAbbreviation()+")*"+newRecordAdded.getName()+" has completed **"+name+"** with a score of "+ChatColor.YELLOW+ChatColor.BOLD+df.format(newRecordAdded.getScore()));
Bukkit.broadcastMessage(newRecordAdded.getMode().getColor()+"("+newRecordAdded.getMode().getAbbreviation()+")"+ChatColor.RESET+ChatColor.GREEN+WorldShop.getFriendlyOwnerName(newRecordAdded.getName())+ChatColor.RESET+" has completed "+ChatColor.AQUA+ChatColor.BOLD+name+ChatColor.RESET+" with a new personal best score of "+ChatColor.YELLOW+ChatColor.BOLD+df.format(newRecordAdded.getScore()));
aPlugin.API.discordSendRaw(newRecordAdded.getMode().getColor()+"*("+newRecordAdded.getMode().getAbbreviation()+")*"+WorldShop.getFriendlyOwnerName(newRecordAdded.getName())+" has completed **"+name+"** with a new personal best score of "+ChatColor.YELLOW+ChatColor.BOLD+df.format(newRecordAdded.getScore()));
}
}
@ -164,7 +193,7 @@ public class RecordKeeping {
if(recordlist.size()>0){
p.sendMessage(ChatColor.AQUA+"Records for "+ChatColor.BOLD+name);
ev.getPlayer().sendMessage("You do not have enough money to buy that many (You can buy "+ChatColor.GREEN+(int)(getPlayerMoney(ev.getPlayer())/shop.GetUnitPrice())+ChatColor.WHITE+" of them)! Please try again.");
@ -3582,9 +3586,9 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
ev.getPlayer().sendMessage(ChatColor.LIGHT_PURPLE+shop.GetOwner()+ChatColor.WHITE+" only has enough money in their bank to buy "+ChatColor.GREEN+(int)(getPlayerBankMoney(shop.GetOwner())/shop.GetUnitPrice())+ChatColor.WHITE+" of "+ChatColor.GREEN+shop.GetItemName()+ChatColor.WHITE+"! Please try again.");
ev.getPlayer().sendMessage(ChatColor.LIGHT_PURPLE+WorldShop.getFriendlyOwnerName(shop.GetOwner())+ChatColor.WHITE+" only has enough money in their bank to buy "+ChatColor.GREEN+(int)(getPlayerBankMoney(shop.GetOwner())/shop.GetUnitPrice())+ChatColor.WHITE+" of "+ChatColor.GREEN+shop.GetItemName()+ChatColor.WHITE+"! Please try again.");
}
}else{
ev.getPlayer().sendMessage("The shop owner is only requesting "+ChatColor.GREEN+shop.GetAmount()+ChatColor.WHITE+" of "+ChatColor.GREEN+shop.GetItemName()+ChatColor.WHITE+"! Please try again.");
@ -4282,8 +4286,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
ev.getPlayer().sendMessage("This shop belongs to "+ChatColor.LIGHT_PURPLE+WorldShop.getFriendlyOwnerName(shop.GetOwner())+ChatColor.WHITE+"! You cannot look at other's shops!");
ev.setCancelled(true);
return;
}
@ -4402,10 +4406,10 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
//We need to make sure the chest is not a world shop. If it is, we can see if we're the owner of it.
@ -4499,7 +4503,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
ev.setCancelled(true);
return;
}else{
ev.getPlayer().sendMessage("This shop is owned by "+ChatColor.LIGHT_PURPLE+owner+ChatColor.WHITE+". You cannot dump item cubes into others' shops!");
ev.getPlayer().sendMessage("This shop is owned by "+ChatColor.LIGHT_PURPLE+WorldShop.getFriendlyOwnerName(owner)+ChatColor.WHITE+". You cannot dump item cubes into others' shops!");
ev.setCancelled(true);
return;
}
@ -4575,7 +4579,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
//player.sendMessage("Insert more "+ChatColor.GREEN+shop.GetItemName()+ChatColor.WHITE+" by typing a positive amount "+ChatColor.GREEN+"(MAX:"+GenericFunctions.CountItems(player,shop.GetItem())+")"+ChatColor.WHITE+". Or withdraw "+ChatColor.GREEN+shop.GetItemName()+ChatColor.WHITE+" by typing a negative amount "+ChatColor.GREEN+"(MAX:"+shop.GetAmount()+")"+ChatColor.WHITE+"."); //OBSOLETE!
DecimalFormatdf=newDecimalFormat("0.00");
@ -4610,7 +4614,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
ev.setCancelled(true);
return;
}else{
p.sendMessage(ChatColor.GOLD+"Sorry! "+ChatColor.WHITE+"This shop is sold out! Let "+ChatColor.LIGHT_PURPLE+shop.GetOwner()+ChatColor.WHITE+" know to restock the shop!");
p.sendMessage(ChatColor.GOLD+"Sorry! "+ChatColor.WHITE+"This shop is sold out! Let "+ChatColor.LIGHT_PURPLE+WorldShop.getFriendlyOwnerName(shop.GetOwner())+ChatColor.WHITE+" know to restock the shop!");
ev.setCancelled(true);
return;
}
@ -4674,7 +4678,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
//player.sendMessage("Request more "+ChatColor.GREEN+shop.GetItemName()+ChatColor.WHITE+" by typing a positive amount "+ChatColor.WHITE+". Or withdraw stored "+ChatColor.GREEN+shop.GetItemName()+ChatColor.WHITE+" by typing a negative amount "+ChatColor.GREEN+"(MAX:"+shop.GetStoredAmount()+")"+ChatColor.WHITE+".");
@ -5114,9 +5118,9 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
//This is not allowed! We can't expand shops that are not ours.
ev.getPlayer().sendMessage("There's a shop owned by "+ChatColor.LIGHT_PURPLE+shop.GetOwner()+ChatColor.WHITE+" right next to your chest! You cannot expand others' shops!");
ev.getPlayer().sendMessage("There's a shop owned by "+ChatColor.LIGHT_PURPLE+WorldShop.getFriendlyOwnerName(shop.GetOwner())+ChatColor.WHITE+" right next to your chest! You cannot expand others' shops!");
ev.setCancelled(true);
return;
}
@ -6379,6 +6383,13 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
@ -8439,8 +8450,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
}
}
}
Bukkit.getServer().broadcastMessage(ChatColor.GREEN+participants_list.toString()+ChatColor.WHITE+" "+(participants_list.length()==1?"has single-handedly taken down the ":"have successfully slain ")+GenericFunctions.getDisplayName(m)+ChatColor.WHITE+"!");
aPlugin.API.discordSendRaw(ChatColor.GREEN+participants_list.toString()+ChatColor.WHITE+" "+(participants_list.length()==1?"has single-handedly taken down the ":"have successfully slain ")+"**"+GenericFunctions.getDisplayName(m)+ChatColor.WHITE+"**!");
Bukkit.getServer().broadcastMessage(ChatColor.GREEN+participants_list.toString()+ChatColor.WHITE+" "+(participants.size()==1?"has single-handedly taken down the ":"have successfully slain ")+GenericFunctions.getDisplayName(m)+ChatColor.WHITE+"!");
aPlugin.API.discordSendRaw(ChatColor.GREEN+participants_list.toString()+ChatColor.WHITE+" "+(participants.size()==1?"has single-handedly taken down the ":"have successfully slain ")+"**"+GenericFunctions.getDisplayName(m)+ChatColor.WHITE+"**!");
//We are going to see if this shop had items in it.
/*if(shop.GetAmount()>0){//LEGACY CODE.
//It did, we are going to release those items.
@ -8993,7 +9004,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
return;
}else{
//They are not the owner! Do not allow this shop to be broken.
p.sendMessage("This shop belongs to "+ChatColor.LIGHT_PURPLE+owner+ChatColor.WHITE+"! You cannot break others' shops!");
p.sendMessage("This shop belongs to "+ChatColor.LIGHT_PURPLE+WorldShop.getFriendlyOwnerName(owner)+ChatColor.WHITE+"! You cannot break others' shops!");
ev.setCancelled(true);
return;
}
@ -9004,8 +9015,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
//This is a shop. Let's find out who the owner is.
//We are going to see if this shop had items in it.
/*if(shop.GetStoredAmount()>0){//LEGACY CODE.
//It did, we are going to release those items.
@ -9055,7 +9066,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
return;
}else{
//They are not the owner! Do not allow this shop to be broken.
p.sendMessage("This shop belongs to "+ChatColor.LIGHT_PURPLE+owner+ChatColor.WHITE+"! You cannot break others' shops!");
p.sendMessage("This shop belongs to "+ChatColor.LIGHT_PURPLE+WorldShop.getFriendlyOwnerName(owner)+ChatColor.WHITE+"! You cannot break others' shops!");
ev.setCancelled(true);
return;
}
@ -10848,24 +10859,38 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
TwosideKeeper.log(" Converted to UUID standard. Owner is now "+op.getUniqueId()+".",2);
}else{
TwosideKeeper.log(" WARNING ! Failed to convert this World Shop! Could not find player "+workable.getString("owner"+id)+". Converting to admin shop...",1);