From 9c0c0470ee0527b7a1e2bec7e0c06087f3fb0dbf Mon Sep 17 00:00:00 2001 From: Pheenixm Date: Fri, 4 Jan 2013 23:40:06 -0500 Subject: [PATCH 1/2] Added tinie_snipah's changes In testing on my computer, proved unstable for some reason. Unknown why, just is --- .classpath | 8 +++---- .../PrisonPearl/PrisonPearlManager.java | 23 ++++++++++++++++++- .../PrisonPearl/PrisonPearlPlugin.java | 6 ++--- 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/.classpath b/.classpath index bb537a2..7cefeef 100644 --- a/.classpath +++ b/.classpath @@ -1,9 +1,9 @@ - - - - + + + + diff --git a/src/com/untamedears/PrisonPearl/PrisonPearlManager.java b/src/com/untamedears/PrisonPearl/PrisonPearlManager.java index a0e461b..831b654 100644 --- a/src/com/untamedears/PrisonPearl/PrisonPearlManager.java +++ b/src/com/untamedears/PrisonPearl/PrisonPearlManager.java @@ -1,5 +1,6 @@ package com.untamedears.PrisonPearl; +import java.util.ArrayList; import java.util.Map.Entry; import java.util.concurrent.Callable; @@ -14,6 +15,7 @@ import org.bukkit.block.DoubleChest; import org.bukkit.block.Furnace; import org.bukkit.configuration.Configuration; +import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Entity; import org.bukkit.entity.Item; import org.bukkit.entity.Player; @@ -34,6 +36,7 @@ import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.InventoryView; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; class PrisonPearlManager implements Listener { private final PrisonPearlPlugin plugin; @@ -116,7 +119,25 @@ public boolean imprisonPlayer(String imprisonedname, Player imprisoner) { return false; } - inv.setItem(pearlnum, new ItemStack(Material.ENDER_PEARL, 1, pp.getID())); // give it to the imprisoner + // START OF 'TinieSnipah' EDIT - MORE PEARL TWEAKS + + ItemStack is = new ItemStack(Material.ENDER_PEARL, 1);// create pearl + ItemMeta im = is.getItemMeta(); + im.setDisplayName(pp.getImprisonedName());// rename pearl to that of imprisoned player + ArrayList lore = new ArrayList(); + lore.add(pp.getImprisonedName() + " is held within this pearl");// gives pearl lore that says more info when hovered over + im.addEnchant(Enchantment.DURABILITY, 1, true);// given enchantment effect (durability used because it doesn't affect pearl behaviour) + im.setLore(lore);// lore set + is.setItemMeta(im);// meta data set + is.removeEnchantment(Enchantment.DURABILITY); + pp.getHolderPlayer().getInventory().addItem(is);// given to imprisoner + + // Previous line: + // inv.setItem(pearlnum, new ItemStack(Material.ENDER_PEARL, 1, pp.getID())); // give it to the imprisoner + + // Reason for edit: Gives pearl enchantment effect (distinguishable, unstackable) Gives name of prisoner in inventory. + + // END OF 'TinieSnipah' EDIT - MORE PEARL TWEAKS if (getConfig().getBoolean("prison_resetbed")) { Player imprisoned = Bukkit.getPlayerExact(imprisonedname); diff --git a/src/com/untamedears/PrisonPearl/PrisonPearlPlugin.java b/src/com/untamedears/PrisonPearl/PrisonPearlPlugin.java index d0316d4..e2c45ad 100644 --- a/src/com/untamedears/PrisonPearl/PrisonPearlPlugin.java +++ b/src/com/untamedears/PrisonPearl/PrisonPearlPlugin.java @@ -96,10 +96,10 @@ public void run() { // shamelessly swiped from bookworm, not sure why there isn't a Bukkit API for this // this causes items to be stacked by their durability value try { - Method method = net.minecraft.server.Item.class.getDeclaredMethod("a", boolean.class); - if (method.getReturnType() == net.minecraft.server.Item.class) { + Method method = net.minecraft.server.v1_4_5.Item.class.getDeclaredMethod("a", boolean.class); + if (method.getReturnType() == net.minecraft.server.v1_4_5.Item.class) { method.setAccessible(true); - method.invoke(net.minecraft.server.Item.ENDER_PEARL, true); + method.invoke(net.minecraft.server.v1_4_5.Item.ENDER_PEARL, true); } } catch (Exception e) { e.printStackTrace(); From 14db43198365532ec4bbcbe4b11152f579502c4e Mon Sep 17 00:00:00 2001 From: Pheenixm Date: Sun, 6 Jan 2013 00:05:39 -0500 Subject: [PATCH 2/2] Fixed ID bug --- src/com/untamedears/PrisonPearl/PrisonPearlManager.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/com/untamedears/PrisonPearl/PrisonPearlManager.java b/src/com/untamedears/PrisonPearl/PrisonPearlManager.java index 831b654..cc401a9 100644 --- a/src/com/untamedears/PrisonPearl/PrisonPearlManager.java +++ b/src/com/untamedears/PrisonPearl/PrisonPearlManager.java @@ -121,7 +121,7 @@ public boolean imprisonPlayer(String imprisonedname, Player imprisoner) { // START OF 'TinieSnipah' EDIT - MORE PEARL TWEAKS - ItemStack is = new ItemStack(Material.ENDER_PEARL, 1);// create pearl + ItemStack is = new ItemStack(Material.ENDER_PEARL, 1, pp.getID());// create pearl ItemMeta im = is.getItemMeta(); im.setDisplayName(pp.getImprisonedName());// rename pearl to that of imprisoned player ArrayList lore = new ArrayList(); @@ -130,10 +130,10 @@ public boolean imprisonPlayer(String imprisonedname, Player imprisoner) { im.setLore(lore);// lore set is.setItemMeta(im);// meta data set is.removeEnchantment(Enchantment.DURABILITY); - pp.getHolderPlayer().getInventory().addItem(is);// given to imprisoner + //pp.getHolderPlayer().getInventory().addItem(is);// given to imprisoner // Previous line: - // inv.setItem(pearlnum, new ItemStack(Material.ENDER_PEARL, 1, pp.getID())); // give it to the imprisoner + inv.setItem(pearlnum, is); // give it to the imprisoner // Reason for edit: Gives pearl enchantment effect (distinguishable, unstackable) Gives name of prisoner in inventory.