From 3ae16b0c61a63c5d8504024a884f976232028228 Mon Sep 17 00:00:00 2001 From: Eric Date: Tue, 15 Aug 2017 12:53:15 +0200 Subject: [PATCH] Instantly update hologram text after buying/selling --- .../listeners/ShopInteractListener.java | 42 ++++++++++++++++++- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/epiceric/shopchest/listeners/ShopInteractListener.java b/src/main/java/de/epiceric/shopchest/listeners/ShopInteractListener.java index abaf351..482a570 100644 --- a/src/main/java/de/epiceric/shopchest/listeners/ShopInteractListener.java +++ b/src/main/java/de/epiceric/shopchest/listeners/ShopInteractListener.java @@ -914,7 +914,7 @@ public class ShopInteractListener implements Listener { * @param shop Shop, from which the player buys * @param stack Whether a whole stack should be bought */ - private void buy(Player executor, Shop shop, boolean stack) { + private void buy(Player executor, final Shop shop, boolean stack) { plugin.debug(executor.getName() + " is buying (#" + shop.getID() + ")"); int amount = shop.getProduct().getAmount(); @@ -1000,6 +1000,15 @@ public class ShopInteractListener implements Listener { removeFromInventory(c.getInventory(), newProduct); executor.updateInventory(); + new BukkitRunnable() { + @Override + public void run() { + if (plugin.getHologramFormat().isDynamic()) { + shop.updateHologramText(); + } + } + }.runTaskLater(plugin, 1L); + String vendorName = (shop.getVendor().getName() == null ? shop.getVendor().getUniqueId().toString() : shop.getVendor().getName()); executor.sendMessage(LanguageUtils.getMessage(LocalizedMessage.Message.BUY_SUCCESS, new LocalizedMessage.ReplacedPlaceholder(Placeholder.AMOUNT, String.valueOf(newAmount)), new LocalizedMessage.ReplacedPlaceholder(Placeholder.ITEM_NAME, LanguageUtils.getItemName(product)), new LocalizedMessage.ReplacedPlaceholder(Placeholder.BUY_PRICE, String.valueOf(newPrice)), @@ -1033,6 +1042,16 @@ public class ShopInteractListener implements Listener { addToInventory(inventory, newProduct); executor.updateInventory(); + + new BukkitRunnable() { + @Override + public void run() { + if (plugin.getHologramFormat().isDynamic()) { + shop.updateHologramText(); + } + } + }.runTaskLater(plugin, 1L); + executor.sendMessage(LanguageUtils.getMessage(LocalizedMessage.Message.BUY_SUCCESS_ADMIN, new LocalizedMessage.ReplacedPlaceholder(Placeholder.AMOUNT, String.valueOf(newAmount)), new LocalizedMessage.ReplacedPlaceholder(Placeholder.ITEM_NAME, LanguageUtils.getItemName(product)), new LocalizedMessage.ReplacedPlaceholder(Placeholder.BUY_PRICE, String.valueOf(newPrice)))); @@ -1056,7 +1075,7 @@ public class ShopInteractListener implements Listener { * @param executor Player, who executed the command and will sell the product * @param shop Shop, to which the player sells */ - private void sell(Player executor, Shop shop, boolean stack) { + private void sell(Player executor, final Shop shop, boolean stack) { plugin.debug(executor.getName() + " is selling (#" + shop.getID() + ")"); int amount = shop.getProduct().getAmount(); @@ -1141,6 +1160,15 @@ public class ShopInteractListener implements Listener { removeFromInventory(executor.getInventory(), newProduct); executor.updateInventory(); + new BukkitRunnable() { + @Override + public void run() { + if (plugin.getHologramFormat().isDynamic()) { + shop.updateHologramText(); + } + } + }.runTaskLater(plugin, 1L); + String vendorName = (shop.getVendor().getName() == null ? shop.getVendor().getUniqueId().toString() : shop.getVendor().getName()); executor.sendMessage(LanguageUtils.getMessage(LocalizedMessage.Message.SELL_SUCCESS, new LocalizedMessage.ReplacedPlaceholder(Placeholder.AMOUNT, String.valueOf(newAmount)), new LocalizedMessage.ReplacedPlaceholder(Placeholder.ITEM_NAME, LanguageUtils.getItemName(product)), new LocalizedMessage.ReplacedPlaceholder(Placeholder.SELL_PRICE, String.valueOf(newPrice)), @@ -1175,6 +1203,16 @@ public class ShopInteractListener implements Listener { removeFromInventory(executor.getInventory(), newProduct); executor.updateInventory(); + + new BukkitRunnable() { + @Override + public void run() { + if (plugin.getHologramFormat().isDynamic()) { + shop.updateHologramText(); + } + } + }.runTaskLater(plugin, 1L); + executor.sendMessage(LanguageUtils.getMessage(LocalizedMessage.Message.SELL_SUCCESS_ADMIN, new LocalizedMessage.ReplacedPlaceholder(Placeholder.AMOUNT, String.valueOf(newAmount)), new LocalizedMessage.ReplacedPlaceholder(Placeholder.ITEM_NAME, LanguageUtils.getItemName(product)), new LocalizedMessage.ReplacedPlaceholder(Placeholder.SELL_PRICE, String.valueOf(newPrice))));