From df8aab96c514cee0750582c146dbf12cac23c638 Mon Sep 17 00:00:00 2001 From: Tim Goddard Date: Fri, 25 Jan 2013 13:42:31 +1300 Subject: [PATCH 1/2] Allow reclaiming bottles when using XP bottles on table --- .../untamedears/bottleO/EventListener.java | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/com/untamedears/bottleO/EventListener.java b/src/com/untamedears/bottleO/EventListener.java index 04bc76b..b81aee6 100644 --- a/src/com/untamedears/bottleO/EventListener.java +++ b/src/com/untamedears/bottleO/EventListener.java @@ -191,7 +191,7 @@ public void onPlayerInteractEvent(PlayerInteractEvent e) { } } } - } else if (e.getMaterial() == Material.EMERALD || e.getMaterial() == Material.EMERALD_BLOCK) { + } else if (e.getMaterial() == Material.EMERALD || e.getMaterial() == Material.EMERALD_BLOCK || e.getMaterial() == Material.EXP_BOTTLE) { Player p = e.getPlayer(); //check player has waited for the required amount of time if (!playerWaitHash.containsKey(p.getName())) { @@ -211,15 +211,28 @@ public void onPlayerInteractEvent(PlayerInteractEvent e) { ItemStack i = p.getItemInHand(); Material m = e.getMaterial(); int amount = i.getAmount(); - int xp = amount*BOTTLES_PER_EMERALD*XP_PER_BOTTLE; - if (m == Material.EMERALD_BLOCK) { - xp *= EMERALDS_PER_BLOCK; + int xp = 0; + switch (m) { + case EMERALD_BLOCK: + xp = amount * EMERALDS_PER_BLOCK * BOTTLES_PER_EMERALD * XP_PER_BOTTLE; + break; + case EMERALD: + xp = amount * BOTTLES_PER_EMERALD * XP_PER_BOTTLE; + break; + case EXP_BOTTLE: + xp = amount * XP_PER_BOTTLE; + break; } PlayerExpChangeEvent event = new PlayerExpChangeEvent(p, xp); Bukkit.getPluginManager().callEvent(event); - //destroy items - p.setItemInHand(new ItemStack(Material.AIR)); + if (m == Material.EXP_BOTTLE) { + //return empty bottles + p.setItemInHand(new ItemStack(Material.GLASS_BOTTLE, amount)); + } else { + //destroy items + p.setItemInHand(new ItemStack(Material.AIR)); + } p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 40, 3)); From eada1cdec500db9bae3911ae92981a6a30869225 Mon Sep 17 00:00:00 2001 From: Tim Goddard Date: Fri, 25 Jan 2013 13:46:52 +1300 Subject: [PATCH 2/2] No potion effect when saving bottles --- src/com/untamedears/bottleO/EventListener.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/com/untamedears/bottleO/EventListener.java b/src/com/untamedears/bottleO/EventListener.java index b81aee6..e048083 100644 --- a/src/com/untamedears/bottleO/EventListener.java +++ b/src/com/untamedears/bottleO/EventListener.java @@ -232,10 +232,9 @@ public void onPlayerInteractEvent(PlayerInteractEvent e) { } else { //destroy items p.setItemInHand(new ItemStack(Material.AIR)); + p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 40, 3)); } - p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 40, 3)); - //restart cool-down timer playerWaitHash.put(p.getName(), System.currentTimeMillis());