Bugfixes: Anvil name in PrepareAnvilCraft event, Malleable Base Quest

handles Jack o'Lanterns properly now, Added Roman Numerals for
enchantments beyond Level 10 when displaying. Attack Speed modified to
disable AoE and charging combat system. Notify Discord when the server
is shutting down. Looting slightly affects mob drops now! World shops
now cancel out in reasonable places. Durability issues have been fixed
for spawned mobs.
dev
sigonasr2 9 years ago
parent b9e31e5f7a
commit 4c20ce325f
  1. BIN
      TwosideKeeper.jar
  2. 2
      src/plugin.yml
  3. 23
      src/sig/plugin/TwosideKeeper/HelperStructures/Common/GenericFunctions.java
  4. 4
      src/sig/plugin/TwosideKeeper/HelperStructures/MalleableBaseQuest.java
  5. 99
      src/sig/plugin/TwosideKeeper/HelperStructures/WorldShop.java
  6. 188
      src/sig/plugin/TwosideKeeper/MonsterController.java
  7. 108
      src/sig/plugin/TwosideKeeper/TwosideKeeper.java
  8. 11
      src/sig/plugin/TwosideKeeper/TwosideKeeperAPI.java

Binary file not shown.

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

@ -492,6 +492,15 @@ public class GenericFunctions {
case SMOOTH_STAIRS:{
return "Stone Brick Stairs";
}
case LEATHER_HELMET:{
return "Leather Cap";
}
case LEATHER_CHESTPLATE:{
return "Leather Tunic";
}
case LEATHER_LEGGINGS:{
return "Leather Pants";
}
case STEP:{
switch (type.getDurability()) {
case 0:{
@ -523,6 +532,9 @@ public class GenericFunctions {
case SULPHUR:{
return "Gunpowder";
}
case TNT:{
return "TNT";
}
case POTION:{
PotionMeta pm = (PotionMeta)type.getItemMeta();
/*
@ -1257,4 +1269,15 @@ public class GenericFunctions {
}
}
public static boolean hasNoLore(ItemStack item) {
if (item!=null &&
item.getType()!=Material.AIR &&
item.hasItemMeta() &&
item.getItemMeta().hasLore()) {
return false;
} else {
return true;
}
}
}

@ -115,8 +115,12 @@ public class MalleableBaseQuest {
ItemMeta m = base.getItemMeta();
List<String> lore = m.getLore();
String material_name = lore.get(1).split("'")[1];
if (lore.get(1).contains("Jack o")) {
return "Jack o'Lantern";
} else {
return material_name;
}
}
public static int getCurrentProgress(ItemStack base) {
//How many quest items have been completed already?
ItemMeta m = base.getItemMeta();

@ -2,7 +2,9 @@ package sig.plugin.TwosideKeeper.HelperStructures;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.bukkit.ChatColor;
import org.bukkit.Location;
@ -117,40 +119,40 @@ public class WorldShop {
if (item.getType().toString().contains("RECORD")) {
switch (item.getType()) {
case GREEN_RECORD:{
message+=ChatColor.GRAY+"\nC418 - cat";
message+="\n"+ChatColor.GRAY+"C418 - cat";
}break;
case GOLD_RECORD:{
message+=ChatColor.GRAY+"\nC418 - 13";
message+="\n"+ChatColor.GRAY+"C418 - 13";
}break;
case RECORD_3:{
message+=ChatColor.GRAY+"\nC418 - blocks";
message+="\n"+ChatColor.GRAY+"C418 - blocks";
}break;
case RECORD_4:{
message+=ChatColor.GRAY+"\nC418 - chirp";
message+="\n"+ChatColor.GRAY+"C418 - chirp";
}break;
case RECORD_5:{
message+=ChatColor.GRAY+"\nC418 - far";
message+="\n"+ChatColor.GRAY+"C418 - far";
}break;
case RECORD_6:{
message+=ChatColor.GRAY+"\nC418 - mall";
message+="\n"+ChatColor.GRAY+"C418 - mall";
}break;
case RECORD_7:{
message+=ChatColor.GRAY+"\nC418 - melohi";
message+="\n"+ChatColor.GRAY+"C418 - melohi";
}break;
case RECORD_8:{
message+=ChatColor.GRAY+"\nC418 - stal";
message+="\n"+ChatColor.GRAY+"C418 - stal";
}break;
case RECORD_9:{
message+=ChatColor.GRAY+"\nC418 - strad";
message+="\n"+ChatColor.GRAY+"C418 - strad";
}break;
case RECORD_10:{
message+=ChatColor.GRAY+"\nC418 - ward";
message+="\n"+ChatColor.GRAY+"C418 - ward";
}break;
case RECORD_11:{
message+=ChatColor.GRAY+"\nC418 - 11";
message+="\n"+ChatColor.GRAY+"C418 - 11";
}break;
case RECORD_12:{
message+=ChatColor.GRAY+"\nC418 - wait";
message+="\n"+ChatColor.GRAY+"C418 - wait";
}break;
}
}
@ -370,42 +372,43 @@ public class WorldShop {
return "";
}
static String toRomanNumeral(int val) {
switch (val) {
case 1:{
return "I";
}
case 2:{
return "II";
}
case 3:{
return "III";
}
case 4:{
return "IV";
}
case 5:{
return "V";
}
case 6:{
return "VI";
}
case 7:{
return "VII";
}
case 8:{
return "VIII";
}
case 9:{
return "IX";
}
case 10:{
return "X";
}
default:{
return "";
}
}
/**
*
* @param numb The number to convert to Roman Numerals.
* @return A String version of the number converted in Roman Numeral Format.
*/
public static String toRomanNumeral(int Int) {
LinkedHashMap<String, Integer> roman_numerals = new LinkedHashMap<String, Integer>();
roman_numerals.put("M", 1000);
roman_numerals.put("CM", 900);
roman_numerals.put("D", 500);
roman_numerals.put("CD", 400);
roman_numerals.put("C", 100);
roman_numerals.put("XC", 90);
roman_numerals.put("L", 50);
roman_numerals.put("XL", 40);
roman_numerals.put("X", 10);
roman_numerals.put("IX", 9);
roman_numerals.put("V", 5);
roman_numerals.put("IV", 4);
roman_numerals.put("I", 1);
String res = "";
for(Map.Entry<String, Integer> entry : roman_numerals.entrySet()){
int matches = Int/entry.getValue();
res += repeat(entry.getKey(), matches);
Int = Int % entry.getValue();
}
return res;
}
public static String repeat(String s, int n) {
if(s == null) {
return null;
}
final StringBuilder sb = new StringBuilder();
for(int i = 0; i < n; i++) {
sb.append(s);
}
return sb.toString();
}
public static boolean isWorldShopSign(Sign s) {

@ -105,33 +105,45 @@ public class MonsterController {
switch (lv) {
case 1:{
if (Math.random()<0.5) {
m.getEquipment().setHelmet(new ItemStack(Material.LEATHER_HELMET));
m.getEquipment().getHelmet().setDurability((short)Math.round(Math.random()*128));
ItemStack helm = new ItemStack(Material.LEATHER_HELMET);
helm.setDurability((short)Math.round(Math.random()*54));
m.getEquipment().setHelmet(helm);
} else {
m.getEquipment().setHelmet(new ItemStack(Material.IRON_HELMET));
m.getEquipment().getHelmet().setDurability((short)Math.round(Math.random()*128));
ItemStack helm = new ItemStack(Material.IRON_HELMET);
helm.setDurability((short)Math.round(Math.random()*128));
m.getEquipment().setHelmet(helm);
}
if (Math.random()<0.5) {
m.getEquipment().setChestplate(new ItemStack(Material.LEATHER_CHESTPLATE));
m.getEquipment().getChestplate().setDurability((short)Math.round(Math.random()*128));
ItemStack helm = new ItemStack(Material.LEATHER_CHESTPLATE);
helm.setDurability((short)Math.round(Math.random()*54));
m.getEquipment().setChestplate(helm);
} else {
m.getEquipment().setChestplate(new ItemStack(Material.IRON_CHESTPLATE));
m.getEquipment().getChestplate().setDurability((short)Math.round(Math.random()*128));
ItemStack helm = new ItemStack(Material.IRON_CHESTPLATE);
helm.setDurability((short)Math.round(Math.random()*128));
m.getEquipment().setChestplate(helm);
}
if (Math.random()<0.5) {
m.getEquipment().setLeggings(new ItemStack(Material.LEATHER_LEGGINGS));
m.getEquipment().getLeggings().setDurability((short)Math.round(Math.random()*128));
ItemStack helm = new ItemStack(Material.LEATHER_LEGGINGS);
helm.setDurability((short)Math.round(Math.random()*54));
m.getEquipment().setLeggings(helm);
} else {
m.getEquipment().setLeggings(new ItemStack(Material.IRON_LEGGINGS));
m.getEquipment().getLeggings().setDurability((short)Math.round(Math.random()*128));
ItemStack helm = new ItemStack(Material.IRON_LEGGINGS);
helm.setDurability((short)Math.round(Math.random()*128));
m.getEquipment().setLeggings(helm);
}
if (Math.random()<0.5) {
m.getEquipment().setBoots(new ItemStack(Material.LEATHER_BOOTS));
m.getEquipment().getBoots().setDurability((short)Math.round(Math.random()*128));
} else {
m.getEquipment().setBoots(new ItemStack(Material.IRON_BOOTS));
m.getEquipment().getBoots().setDurability((short)Math.round(Math.random()*128));
}
ItemStack helm = new ItemStack(Material.LEATHER_BOOTS);
helm.setDurability((short)Math.round(Math.random()*54));
m.getEquipment().setBoots(helm);
} else {
ItemStack helm = new ItemStack(Material.IRON_BOOTS);
helm.setDurability((short)Math.round(Math.random()*128));
m.getEquipment().setBoots(helm);
}
TwosideKeeper.log("Helmet durability set to "+m.getEquipment().getHelmet().getDurability(), 5);
TwosideKeeper.log("Chestplate durability set to "+m.getEquipment().getChestplate().getDurability(), 5);
TwosideKeeper.log("Leggings durability set to "+m.getEquipment().getLeggings().getDurability(), 5);
TwosideKeeper.log("Boots durability set to "+m.getEquipment().getBoots().getDurability(), 5);
if (m.getEquipment().getHelmet()!=null && Math.random()<0.3) {
m.getEquipment().setHelmet(RandomizeEnchantments(m.getEquipment().getHelmet(),ItemRarity.RARE));
if (Math.random()<TwosideKeeper.RARE_DROP_RATE && m.getEquipment().getHelmet().getType()==Material.IRON_HELMET) {
@ -199,32 +211,40 @@ public class MonsterController {
}break;
case 2:{
if (Math.random()<0.5) {
m.getEquipment().setHelmet(new ItemStack(Material.DIAMOND_HELMET));
m.getEquipment().getHelmet().setDurability((short)Math.round(Math.random()*128));
ItemStack helm = new ItemStack(Material.DIAMOND_HELMET);
helm.setDurability((short)(Math.round(Math.random()*100)+256));
m.getEquipment().setHelmet(helm);
} else {
m.getEquipment().setHelmet(new ItemStack(Material.IRON_HELMET));
m.getEquipment().getHelmet().setDurability((short)Math.round(Math.random()*128));
ItemStack helm = new ItemStack(Material.DIAMOND_HELMET);
helm.setDurability((short)(Math.round(Math.random()*128)));
m.getEquipment().setHelmet(helm);
}
if (Math.random()<0.5) {
m.getEquipment().setChestplate(new ItemStack(Material.DIAMOND_CHESTPLATE));
m.getEquipment().getChestplate().setDurability((short)Math.round(Math.random()*128));
ItemStack helm = new ItemStack(Material.DIAMOND_CHESTPLATE);
helm.setDurability((short)(Math.round(Math.random()*100)+256));
m.getEquipment().setChestplate(helm);
} else {
m.getEquipment().setChestplate(new ItemStack(Material.IRON_CHESTPLATE));
m.getEquipment().getChestplate().setDurability((short)Math.round(Math.random()*128));
ItemStack helm = new ItemStack(Material.IRON_CHESTPLATE);
helm.setDurability((short)(Math.round(Math.random()*100)+256));
m.getEquipment().setChestplate(helm);
}
if (Math.random()<0.5) {
m.getEquipment().setLeggings(new ItemStack(Material.DIAMOND_LEGGINGS));
m.getEquipment().getLeggings().setDurability((short)Math.round(Math.random()*128));
ItemStack helm = new ItemStack(Material.DIAMOND_LEGGINGS);
helm.setDurability((short)(Math.round(Math.random()*100)+256));
m.getEquipment().setLeggings(helm);
} else {
m.getEquipment().setLeggings(new ItemStack(Material.IRON_LEGGINGS));
m.getEquipment().getLeggings().setDurability((short)Math.round(Math.random()*128));
ItemStack helm = new ItemStack(Material.IRON_LEGGINGS);
helm.setDurability((short)(Math.round(Math.random()*128)));
m.getEquipment().setLeggings(helm);
}
if (Math.random()<0.5) {
m.getEquipment().setBoots(new ItemStack(Material.DIAMOND_BOOTS));
m.getEquipment().getBoots().setDurability((short)Math.round(Math.random()*128));
ItemStack helm = new ItemStack(Material.DIAMOND_BOOTS);
helm.setDurability((short)(Math.round(Math.random()*100)+256));
m.getEquipment().setBoots(helm);
} else {
m.getEquipment().setBoots(new ItemStack(Material.IRON_BOOTS));
m.getEquipment().getBoots().setDurability((short)Math.round(Math.random()*128));
ItemStack helm = new ItemStack(Material.IRON_BOOTS);
helm.setDurability((short)(Math.round(Math.random()*128)));
m.getEquipment().setBoots(helm);
}
if (m.getEquipment().getHelmet()!=null && Math.random()<0.3) {
@ -295,6 +315,10 @@ public class MonsterController {
ItemStack weapon = new ItemStack(Material.GOLD_SWORD);
m.getEquipment().setItemInMainHand(weapon);
}
TwosideKeeper.log("Helmet durability set to "+m.getEquipment().getHelmet().getDurability(), 5);
TwosideKeeper.log("Chestplate durability set to "+m.getEquipment().getChestplate().getDurability(), 5);
TwosideKeeper.log("Leggings durability set to "+m.getEquipment().getLeggings().getDurability(), 5);
TwosideKeeper.log("Boots durability set to "+m.getEquipment().getBoots().getDurability(), 5);
m.getEquipment().setBootsDropChance(0.3f);
m.getEquipment().setChestplateDropChance(0.3f);
m.getEquipment().setLeggingsDropChance(0.3f);
@ -302,33 +326,45 @@ public class MonsterController {
}break;
case 3:{
if (Math.random()<0.5) {
m.getEquipment().setHelmet(new ItemStack(Material.DIAMOND_HELMET));
m.getEquipment().getHelmet().setDurability((short)Math.round(Math.random()*128));
ItemStack helm = new ItemStack(Material.DIAMOND_HELMET);
helm.setDurability((short) (Math.round(Math.random()*100)+256));
m.getEquipment().setHelmet(helm);
} else {
m.getEquipment().setHelmet(new ItemStack(Material.GOLD_HELMET));
m.getEquipment().getHelmet().setDurability((short)Math.round(Math.random()*128));
ItemStack helm = new ItemStack(Material.GOLD_HELMET);
helm.setDurability((short)Math.round(Math.random()*64));
m.getEquipment().setHelmet(helm);
}
if (Math.random()<0.5) {
m.getEquipment().setChestplate(new ItemStack(Material.DIAMOND_CHESTPLATE));
m.getEquipment().getChestplate().setDurability((short)Math.round(Math.random()*128));
ItemStack helm = new ItemStack(Material.DIAMOND_CHESTPLATE);
helm.setDurability((short)(Math.round(Math.random()*100)+256));
m.getEquipment().setChestplate(helm);
} else {
m.getEquipment().setChestplate(new ItemStack(Material.GOLD_CHESTPLATE));
m.getEquipment().getChestplate().setDurability((short)Math.round(Math.random()*128));
ItemStack helm = new ItemStack(Material.GOLD_CHESTPLATE);
helm.setDurability((short)Math.round(Math.random()*64));
m.getEquipment().setChestplate(helm);
}
if (Math.random()<0.5) {
m.getEquipment().setLeggings(new ItemStack(Material.DIAMOND_LEGGINGS));
m.getEquipment().getLeggings().setDurability((short)Math.round(Math.random()*128));
ItemStack helm = new ItemStack(Material.DIAMOND_LEGGINGS);
helm.setDurability((short)(Math.round(Math.random()*100)+256));
m.getEquipment().setLeggings(helm);
} else {
m.getEquipment().setLeggings(new ItemStack(Material.GOLD_LEGGINGS));
m.getEquipment().getLeggings().setDurability((short)Math.round(Math.random()*128));
ItemStack helm = new ItemStack(Material.GOLD_LEGGINGS);
helm.setDurability((short)Math.round(Math.random()*64));
m.getEquipment().setLeggings(helm);
}
if (Math.random()<0.5) {
m.getEquipment().setBoots(new ItemStack(Material.DIAMOND_BOOTS));
m.getEquipment().getBoots().setDurability((short)Math.round(Math.random()*128));
} else {
m.getEquipment().setBoots(new ItemStack(Material.GOLD_BOOTS));
m.getEquipment().getBoots().setDurability((short)Math.round(Math.random()*128));
}
ItemStack helm = new ItemStack(Material.DIAMOND_BOOTS);
helm.setDurability((short)(Math.round(Math.random()*100)+256));
m.getEquipment().setBoots(helm);
} else {
ItemStack helm = new ItemStack(Material.GOLD_BOOTS);
helm.setDurability((short)Math.round(Math.random()*64));
m.getEquipment().setBoots(helm);
}
TwosideKeeper.log("Helmet durability set to "+m.getEquipment().getHelmet().getDurability(), 5);
TwosideKeeper.log("Chestplate durability set to "+m.getEquipment().getChestplate().getDurability(), 5);
TwosideKeeper.log("Leggings durability set to "+m.getEquipment().getLeggings().getDurability(), 5);
TwosideKeeper.log("Boots durability set to "+m.getEquipment().getBoots().getDurability(), 5);
if (m.getEquipment().getHelmet()!=null && Math.random()<0.3) {
m.getEquipment().setHelmet(RandomizeEnchantments(m.getEquipment().getHelmet(),ItemRarity.LEGENDARY));
@ -402,24 +438,36 @@ public class MonsterController {
default:{
if (Math.random()<0.1) {
if (Math.random()<0.5) {
m.getEquipment().setHelmet(new ItemStack(Material.LEATHER_HELMET));
m.getEquipment().getHelmet().setDurability((short)Math.round(Math.random()*128));
m.getEquipment().setChestplate(new ItemStack(Material.LEATHER_CHESTPLATE));
m.getEquipment().getChestplate().setDurability((short)Math.round(Math.random()*128));
m.getEquipment().setLeggings(new ItemStack(Material.LEATHER_LEGGINGS));
m.getEquipment().getLeggings().setDurability((short)Math.round(Math.random()*128));
m.getEquipment().setBoots(new ItemStack(Material.LEATHER_BOOTS));
m.getEquipment().getBoots().setDurability((short)Math.round(Math.random()*128));
} else {
m.getEquipment().setHelmet(new ItemStack(Material.IRON_HELMET));
m.getEquipment().getHelmet().setDurability((short)Math.round(Math.random()*128));
m.getEquipment().setChestplate(new ItemStack(Material.IRON_CHESTPLATE));
m.getEquipment().getChestplate().setDurability((short)Math.round(Math.random()*128));
m.getEquipment().setLeggings(new ItemStack(Material.IRON_LEGGINGS));
m.getEquipment().getLeggings().setDurability((short)Math.round(Math.random()*128));
m.getEquipment().setBoots(new ItemStack(Material.IRON_BOOTS));
m.getEquipment().getBoots().setDurability((short)Math.round(Math.random()*128));
}
ItemStack helm = new ItemStack(Material.LEATHER_HELMET);
helm.setDurability((short)Math.round(Math.random()*54));
m.getEquipment().setHelmet(helm);
helm = new ItemStack(Material.LEATHER_CHESTPLATE);
helm.setDurability((short)Math.round(Math.random()*64));
m.getEquipment().setChestplate(helm);
helm = new ItemStack(Material.LEATHER_LEGGINGS);
helm.setDurability((short)Math.round(Math.random()*64));
m.getEquipment().setLeggings(helm);
helm = new ItemStack(Material.LEATHER_BOOTS);
helm.setDurability((short)Math.round(Math.random()*64));
m.getEquipment().setBoots(helm);
} else {
ItemStack helm = new ItemStack(Material.IRON_HELMET);
helm.setDurability((short)Math.round(Math.random()*128));
m.getEquipment().setHelmet(helm);
helm = new ItemStack(Material.IRON_CHESTPLATE);
helm.setDurability((short)Math.round(Math.random()*128));
m.getEquipment().setChestplate(helm);
helm = new ItemStack(Material.IRON_LEGGINGS);
helm.setDurability((short)Math.round(Math.random()*128));
m.getEquipment().setLeggings(helm);
helm = new ItemStack(Material.IRON_BOOTS);
helm.setDurability((short)Math.round(Math.random()*128));
m.getEquipment().setBoots(helm);
}
TwosideKeeper.log("Helmet durability set to "+m.getEquipment().getHelmet().getDurability(), 5);
TwosideKeeper.log("Chestplate durability set to "+m.getEquipment().getChestplate().getDurability(), 5);
TwosideKeeper.log("Leggings durability set to "+m.getEquipment().getLeggings().getDurability(), 5);
TwosideKeeper.log("Boots durability set to "+m.getEquipment().getBoots().getDurability(), 5);
}
if ((m.getType()==EntityType.ZOMBIE &&
!((Zombie)m).isBaby()) ||

@ -17,6 +17,7 @@ import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.attribute.Attribute;
import org.bukkit.block.Block;
import org.bukkit.block.Chest;
import org.bukkit.block.Sign;
@ -31,6 +32,7 @@ import org.bukkit.entity.Creeper;
import org.bukkit.entity.EnderDragon;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Guardian;
import org.bukkit.entity.Horse;
import org.bukkit.entity.Horse.Variant;
import org.bukkit.entity.HumanEntity;
@ -75,6 +77,7 @@ import org.bukkit.event.inventory.InventoryCloseEvent;
import org.bukkit.event.inventory.InventoryDragEvent;
import org.bukkit.event.inventory.InventoryOpenEvent;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.event.inventory.PrepareAnvilEvent;
import org.bukkit.event.inventory.PrepareItemCraftEvent;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.event.player.PlayerAchievementAwardedEvent;
@ -494,6 +497,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "scoreboard objectives remove Party"+i);
}
saveOurData(); //Saves all of our server variables and closes down.
DiscordMessageSender.sendItalicizedRawMessageDiscord("Server is shutting down and restarting...");
}
@ -665,6 +669,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
//Update player max health. Check equipment too.
setPlayerMaxHealth(ev.getPlayer());
ev.getPlayer().getScoreboard().getTeam(ev.getPlayer().getName().toLowerCase()).setSuffix(createHealthbar(((ev.getPlayer().getHealth())/ev.getPlayer().getMaxHealth())*100,ev.getPlayer()));
}
@EventHandler(priority=EventPriority.LOW)
@ -842,7 +847,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
}
}
} else {
ev.getPlayer().sendMessage("That is not a valid number! Please try again.");
ev.getPlayer().sendMessage("That is not a valid number!");
TwosideShops.RemoveSession(ev.getPlayer());
}
break;
case BUY_CREATE:
@ -857,7 +863,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
TwosideShops.RemoveSession(ev.getPlayer());
}
} else {
ev.getPlayer().sendMessage("That is not a valid number! Please try again.");
ev.getPlayer().sendMessage("That is not a valid number!");
TwosideShops.RemoveSession(ev.getPlayer());
}
break;
case PRICE:
@ -879,13 +886,15 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
} else {
if (amt>999999999999.99) {
ev.getPlayer().sendMessage("You cannot sell an item for that ridiculous amount. Please try again.");
ev.getPlayer().sendMessage("You cannot sell an item for that ridiculous amount.");
} else {
ev.getPlayer().sendMessage("You cannot sell an item for free. Please try again.");
ev.getPlayer().sendMessage("You cannot sell an item for free.");
}
TwosideShops.RemoveSession(ev.getPlayer());
}
} else {
ev.getPlayer().sendMessage("That is not a valid number! Please try again.");
ev.getPlayer().sendMessage("That is not a valid number!");
TwosideShops.RemoveSession(ev.getPlayer());
}
break;
case BUY_PRICE:
@ -906,13 +915,15 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
} else {
if (amt>999999999999.99) {
ev.getPlayer().sendMessage("You cannot buy an item for that ridiculous amount. Please try again.");
ev.getPlayer().sendMessage("You cannot buy an item for that ridiculous amount.");
} else {
ev.getPlayer().sendMessage("You cannot buy an item for free. Please try again.");
ev.getPlayer().sendMessage("You cannot buy an item for free.");
}
TwosideShops.RemoveSession(ev.getPlayer());
}
} else {
ev.getPlayer().sendMessage("That is not a valid number! Please try again.");
ev.getPlayer().sendMessage("That is not a valid number!");
TwosideShops.RemoveSession(ev.getPlayer());
}
break;
case EDIT:
@ -932,10 +943,11 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
current_session.SetSession(SessionState.UPDATE);
} else {
if (amt<=0) {
ev.getPlayer().sendMessage("You cannot add a non-existent amount of items. Please try again.");
ev.getPlayer().sendMessage("You cannot add a non-existent amount of items.");
} else {
ev.getPlayer().sendMessage("You only have "+GenericFunctions.CountItems(ev.getPlayer(), shop.GetItem())+" of "+ChatColor.GREEN+shop.GetItemName()+ChatColor.WHITE+". Please try again with a lower amount.");
ev.getPlayer().sendMessage("You only have "+GenericFunctions.CountItems(ev.getPlayer(), shop.GetItem())+" of "+ChatColor.GREEN+shop.GetItemName()+ChatColor.WHITE+".");
}
TwosideShops.RemoveSession(ev.getPlayer());
}
} else {
if (-amt<=shop.GetAmount()) {
@ -986,7 +998,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
}
}
} else {
ev.getPlayer().sendMessage("That is not a valid number! Please try again.");
ev.getPlayer().sendMessage("That is not a valid number!");
TwosideShops.RemoveSession(ev.getPlayer());
}
break;
case BUY_EDIT:
@ -1045,7 +1058,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
}
}
} else {
ev.getPlayer().sendMessage("That is not a valid number! Please try again.");
ev.getPlayer().sendMessage("That is not a valid number!");
TwosideShops.RemoveSession(ev.getPlayer());
}
break;
case UPDATE:
@ -1060,13 +1074,15 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
TwosideShops.RemoveSession(ev.getPlayer());
} else {
if (amt>999999999999.99) {
ev.getPlayer().sendMessage("You cannot sell an item for that ridiculous amount. Please try again.");
ev.getPlayer().sendMessage("You cannot sell an item for that ridiculous amount.");
} else {
ev.getPlayer().sendMessage("You cannot sell an item for free. Please try again.");
ev.getPlayer().sendMessage("You cannot sell an item for free.");
}
TwosideShops.RemoveSession(ev.getPlayer());
}
} else {
ev.getPlayer().sendMessage("That is not a valid number! Please try again.");
ev.getPlayer().sendMessage("That is not a valid number!");
TwosideShops.RemoveSession(ev.getPlayer());
}
break;
case BUY_UPDATE:
@ -1081,13 +1097,15 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
TwosideShops.RemoveSession(ev.getPlayer());
} else {
if (amt>999999999999.99) {
ev.getPlayer().sendMessage("You cannot buy an item for that ridiculous amount. Please try again.");
ev.getPlayer().sendMessage("You cannot buy an item for that ridiculous amount.");
} else {
ev.getPlayer().sendMessage("You cannot buy an item for free. Please try again.");
ev.getPlayer().sendMessage("You cannot buy an item for free.");
}
TwosideShops.RemoveSession(ev.getPlayer());
}
} else {
ev.getPlayer().sendMessage("That is not a valid number! Please try again.");
ev.getPlayer().sendMessage("That is not a valid number!");
TwosideShops.RemoveSession(ev.getPlayer());
}
break;
case PURCHASE:
@ -1147,7 +1165,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
TwosideShops.RemoveSession(ev.getPlayer());
}
} else {
ev.getPlayer().sendMessage("That is not a valid number! Please try again.");
ev.getPlayer().sendMessage("That is not a valid number!");
TwosideShops.RemoveSession(ev.getPlayer());
}
break;
case SELL:
@ -1186,7 +1205,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
TwosideShops.RemoveSession(ev.getPlayer());
}
} else {
ev.getPlayer().sendMessage("That is not a valid number! Please try again.");
ev.getPlayer().sendMessage("That is not a valid number!");
TwosideShops.RemoveSession(ev.getPlayer());
}
break;
default:
@ -1234,7 +1254,6 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
setPlayerMaxHealth(player);
}
},1);
if (ev.getClickedBlock()!=null && ev.getClickedBlock().getType()==Material.CHEST &&
TwosideRecyclingCenter.isChoosingRecyclingCenter() &&
ev.getPlayer().hasPermission("TwosideKeeper.recyclingcenter")) {
@ -1300,7 +1319,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
if (ev.getPlayer().getInventory().getItem(i)!=null) {
log("Malleable Base Quest: Comparing "+ev.getPlayer().getInventory().getItem(i).getType()+" to "+ev.getPlayer().getInventory().getItem(i).getType(),4);
}
if (ev.getPlayer().getInventory().getItem(i)!=null && GenericFunctions.UserFriendlyMaterialName(ev.getPlayer().getInventory().getItem(i)).equalsIgnoreCase(MalleableBaseQuest.getItem(ev.getPlayer().getEquipment().getItemInMainHand()))) {
if (ev.getPlayer().getInventory().getItem(i)!=null && GenericFunctions.hasNoLore(ev.getPlayer().getInventory().getItem(i)) && !Artifact.isArtifact(ev.getPlayer().getInventory().getItem(i)) && GenericFunctions.UserFriendlyMaterialName(ev.getPlayer().getInventory().getItem(i)).equalsIgnoreCase(MalleableBaseQuest.getItem(ev.getPlayer().getEquipment().getItemInMainHand()))) {
//This is good. Take one away from the player to continue the quest.
log(ChatColor.YELLOW+"Success! Next Item...",5);
ItemStack newitem = ev.getPlayer().getInventory().getItem(i);
@ -1852,6 +1871,30 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
}
}
@EventHandler(priority=EventPriority.LOW)
public void onAnvilPrepareCraftEvent(PrepareAnvilEvent ev) {
//The results slot was clicked. We should set the result's item name properly back to what it was.
if (ev.getResult()!=null &&
ev.getInventory().getItem(0)!=null &&
ev.getInventory().getItem(0).getItemMeta().hasDisplayName()) {
//It's possible we may have to fix the color code for this item. Check the first two characters.
String oldname = ev.getInventory().getItem(0).getItemMeta().getDisplayName();
String strippedname = ChatColor.stripColor(oldname);
String colorcodes = oldname.replace(strippedname, "");
if (colorcodes.length()==2) {
colorcodes=colorcodes.substring(1);
} else
if (colorcodes.length()==4) {
colorcodes=Character.toString(colorcodes.charAt(1))+Character.toString(colorcodes.charAt(3));
}
log("Color codes are: <"+colorcodes+">. Length is "+colorcodes.length(),4);
//ev.getWhoClicked().sendMessage(ChatColor.getByChar(colorcodes)+"This is the color.");
ItemMeta m = ev.getResult().getItemMeta();
m.setDisplayName(ChatColor.getByChar(colorcodes)+m.getDisplayName().replaceFirst(colorcodes, ""));
ev.getResult().setItemMeta(m);
}
}
@EventHandler(priority=EventPriority.LOW)
public void onInventoryClick(InventoryClickEvent ev) {
final Player player = (Player)ev.getWhoClicked();
@ -2139,8 +2182,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
int quantity=ev.getCursor().getAmount();
log("Amount held: "+quantity,5);
for (int i=0;i<size;i++) {
if (virtual_inventory.get(i).getType()==ev.getCursor().getType() &&
virtual_inventory.get(i).getItemMeta().equals(ev.getCursor().getItemMeta()) &&
if (virtual_inventory.get(i).isSimilar(ev.getCursor()) &&
virtual_inventory.get(i).getMaxStackSize()>virtual_inventory.get(i).getAmount()) {
log("Entered Loop",5);
//This is the same, and we have room to throw some in.
@ -2250,8 +2292,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
log("Amount held: "+quantity,5);
for (int i=0;i<size;i++) {
if (ev.getView().getTopInventory().getItem(i)!=null &&
ev.getView().getTopInventory().getItem(i).getType()==ev.getCursor().getType() &&
ev.getView().getTopInventory().getItem(i).getItemMeta().equals(ev.getCursor().getItemMeta()) &&
ev.getView().getTopInventory().getItem(i).isSimilar(ev.getCursor()) &&
ev.getView().getTopInventory().getItem(i).getMaxStackSize()>ev.getView().getTopInventory().getItem(i).getAmount()) {
log("Entered Loop",5);
//This is the same, and we have room to throw some in.
@ -2821,7 +2862,6 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
updateTitle(p,headshot);
}
}
}
@EventHandler(priority=EventPriority.LOW)
@ -2833,12 +2873,22 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
Player p = (Player)m.getKiller();
PlayerStructure pd = (PlayerStructure)playerdata.get(p.getUniqueId());
dropmult+=pd.partybonus*0.1;
ItemStack item = p.getEquipment().getItemInMainHand();
if (item!=null &&
item.getType()!=Material.AIR &&
GenericFunctions.isWeapon(item)) {
dropmult+=item.getEnchantmentLevel(Enchantment.LOOT_BONUS_MOBS)*0.1;
}
}
if (Math.random()<0.00390625*dropmult*ARTIFACT_RARITY) {
ev.getDrops().add(Artifact.createArtifactItem(ArtifactItem.ARTIFACT_ESSENCE));
}
if (m.getType()==EntityType.ZOMBIE &&
MonsterController.isZombieLeader(m)) {
if ((m.getType()==EntityType.ZOMBIE &&
MonsterController.isZombieLeader(m)) ||
(m.getType()==EntityType.GUARDIAN &&
((Guardian)m).isElder()) ||
m.getType()==EntityType.ENDER_DRAGON ||
m.getType()==EntityType.WITHER) {
ev.setDroppedExp(ev.getDroppedExp()*2);
dropmult+=0.4;
}

@ -8,6 +8,7 @@ import org.bukkit.entity.Monster;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import sig.plugin.TwosideKeeper.HelperStructures.ArtifactItem;
import sig.plugin.TwosideKeeper.HelperStructures.MonsterDifficulty;
import sig.plugin.TwosideKeeper.HelperStructures.MonsterType;
import sig.plugin.TwosideKeeper.HelperStructures.Common.GenericFunctions;
@ -58,6 +59,16 @@ public final class TwosideKeeperAPI {
return MonsterController.getMonsterDifficulty(m);
}
//Artifact Commands.
public static ItemStack dropArtifactItem(ArtifactItem type) {
return Artifact.createArtifactItem(type);
}
//Time Commands.
public static long getServerTickTime() {
return TwosideKeeper.getServerTickTime();
}
//Hardened Item Commands.
public static boolean isHardenedItem(ItemStack i) {
return GenericFunctions.isHardenedItem(i);

Loading…
Cancel
Save