diff --git a/bedwars-api/src/main/java/com/andrei1058/bedwars/api/events/shop/ShopBuyEvent.java b/bedwars-api/src/main/java/com/andrei1058/bedwars/api/events/shop/ShopBuyEvent.java index 706f10698..5b5b356b9 100644 --- a/bedwars-api/src/main/java/com/andrei1058/bedwars/api/events/shop/ShopBuyEvent.java +++ b/bedwars-api/src/main/java/com/andrei1058/bedwars/api/events/shop/ShopBuyEvent.java @@ -34,6 +34,7 @@ public class ShopBuyEvent extends Event implements Cancellable { private final Player buyer; private final IArena arena; private final ICategoryContent categoryContent; + private final int slot; private boolean cancelled = false; /** @@ -46,17 +47,35 @@ public ShopBuyEvent(Player buyer, ICategoryContent categoryContent) { this.categoryContent = categoryContent; this.buyer = buyer; this.arena = null; + this.slot = -1; } /** * Triggered when a player buys from the shop + * + * @deprecated Use {@link #ShopBuyEvent(Player, IArena, ICategoryContent, int)} */ + @Deprecated public ShopBuyEvent(Player buyer, IArena arena, ICategoryContent categoryContent) { this.categoryContent = categoryContent; this.buyer = buyer; this.arena = arena; + this.slot = -1; } + /** + * Triggered when a player buys from the shop + */ + public ShopBuyEvent(Player buyer, IArena arena, ICategoryContent categoryContent, int slot) { + this.categoryContent = categoryContent; + this.buyer = buyer; + this.arena = arena; + this.slot = slot; + } + + /** + * Get the arena + */ public IArena getArena() { return arena; } @@ -75,6 +94,13 @@ public ICategoryContent getCategoryContent() { return categoryContent; } + /** + * Get the slot + */ + public int getSlot() { + return slot; + } + @Override public HandlerList getHandlers() { return HANDLERS; diff --git a/bedwars-plugin/pom.xml b/bedwars-plugin/pom.xml index a6fc8af58..560a72732 100644 --- a/bedwars-plugin/pom.xml +++ b/bedwars-plugin/pom.xml @@ -22,6 +22,10 @@ + + papermc + https://repo.papermc.io/repository/maven-public/ + simonsators-repo https://simonsator.de/repo/ @@ -66,10 +70,6 @@ citizens-repo https://maven.citizensnpcs.co/repo - - papermc - https://papermc.io/repo/repository/maven-public/ - @@ -216,7 +216,7 @@ me.clip placeholderapi - 2.11.3 + 2.11.6 provided @@ -320,18 +320,6 @@ 24.2 compile - - com.andrei1058.spigot.sidebar - sidebar-v1_20_R4 - 24.2 - compile - - - com.andrei1058.spigot.sidebar - sidebar-v1_20_R4 - 23.12 - compile - com.andrei1058.spigot.sidebar sidebar-v1_20_R4 diff --git a/bedwars-plugin/src/main/java/com/andrei1058/bedwars/shop/main/CategoryContent.java b/bedwars-plugin/src/main/java/com/andrei1058/bedwars/shop/main/CategoryContent.java index 982615e54..a114664b4 100644 --- a/bedwars-plugin/src/main/java/com/andrei1058/bedwars/shop/main/CategoryContent.java +++ b/bedwars-plugin/src/main/java/com/andrei1058/bedwars/shop/main/CategoryContent.java @@ -139,7 +139,7 @@ public void execute(Player player, ShopCache shopCache, int slot) { IContentTier ct; - //check weight + // Check weight if (shopCache.getCategoryWeight(father) > weight) return; if (shopCache.getContentTier(getIdentifier()) > contentTiers.size()) { @@ -147,21 +147,19 @@ public void execute(Player player, ShopCache shopCache, int slot) { return; } - //check if can re-buy + // Check if can re-buy if (shopCache.getContentTier(getIdentifier()) == contentTiers.size()) { if (isPermanent() && shopCache.hasCachedItem(this)) { player.sendMessage(getMsg(player, Messages.SHOP_ALREADY_BOUGHT)); Sounds.playSound(ConfigPath.SOUNDS_INSUFF_MONEY, player); return; } - //current tier + + // Current tier ct = contentTiers.get(shopCache.getContentTier(getIdentifier()) - 1); } else { - if (!shopCache.hasCachedItem(this)) { - ct = contentTiers.get(0); - } else { - ct = contentTiers.get(shopCache.getContentTier(getIdentifier())); - } + if (!shopCache.hasCachedItem(this)) ct = contentTiers.get(0); + else ct = contentTiers.get(shopCache.getContentTier(getIdentifier())); } //check money @@ -173,37 +171,31 @@ public void execute(Player player, ShopCache shopCache, int slot) { return; } - ShopBuyEvent event; - //call shop buy event - Bukkit.getPluginManager().callEvent(event = new ShopBuyEvent(player, Arena.getArenaByPlayer(player), this)); - - if (event.isCancelled()){ - return; - } + // Call shop buy event + ShopBuyEvent event = new ShopBuyEvent(player, Arena.getArenaByPlayer(player), this, slot); + Bukkit.getPluginManager().callEvent(event); + if (event.isCancelled()) return; - //take money + // Take money takeMoney(player, ct.getCurrency(), ct.getPrice()); - //upgrade if possible + // Upgrade if possible shopCache.upgradeCachedItem(this, slot); - //give items + // Give items giveItems(player, shopCache, Arena.getArenaByPlayer(player)); - //play sound + // Play sound Sounds.playSound(ConfigPath.SOUNDS_BOUGHT, player); - //send purchase msg + // Send purchase msg if (itemNamePath == null || Language.getPlayerLanguage(player).getYml().get(itemNamePath) == null) { ItemStack displayItem = ct.getItemStack(); if (displayItem.getItemMeta() != null && displayItem.getItemMeta().hasDisplayName()) { player.sendMessage(getMsg(player, Messages.SHOP_NEW_PURCHASE).replace("{item}", displayItem.getItemMeta().getDisplayName())); } - } else { - player.sendMessage(getMsg(player, Messages.SHOP_NEW_PURCHASE).replace("{item}", ChatColor.stripColor(getMsg(player, itemNamePath))).replace("{color}", "").replace("{tier}", "")); - } - + } else player.sendMessage(getMsg(player, Messages.SHOP_NEW_PURCHASE).replace("{item}", ChatColor.stripColor(getMsg(player, itemNamePath))).replace("{color}", "").replace("{tier}", "")); shopCache.setCategoryWeight(father, weight); } @@ -236,14 +228,10 @@ public boolean hasQuick(Player player) { public ItemStack getItemStack(Player player, ShopCache shopCache) { IContentTier ct; - if (shopCache.getContentTier(identifier) == contentTiers.size()) { - ct = contentTiers.get(contentTiers.size() - 1); - } else { - if (shopCache.hasCachedItem(this)) { - ct = contentTiers.get(shopCache.getContentTier(identifier)); - } else { - ct = contentTiers.get(shopCache.getContentTier(identifier) - 1); - } + if (shopCache.getContentTier(identifier) == contentTiers.size()) ct = contentTiers.get(contentTiers.size() - 1); + else { + if (shopCache.hasCachedItem(this)) ct = contentTiers.get(shopCache.getContentTier(identifier)); + else ct = contentTiers.get(shopCache.getContentTier(identifier) - 1); } ItemStack i = ct.getItemStack(); @@ -264,16 +252,11 @@ public ItemStack getItemStack(Player player, ShopCache shopCache) { String buyStatus; if (isPermanent() && shopCache.hasCachedItem(this) && shopCache.getCachedItem(this).getTier() == getContentTiers().size()) { - if (!(nms.isArmor(i))){ - buyStatus = getMsg(player, Messages.SHOP_LORE_STATUS_MAXED); //ARMOR - }else { - buyStatus = getMsg(player, Messages.SHOP_LORE_STATUS_ARMOR); - } - } else if (!canAfford) { - buyStatus = getMsg(player, Messages.SHOP_LORE_STATUS_CANT_AFFORD).replace("{currency}", translatedCurrency); - } else { - buyStatus = getMsg(player, Messages.SHOP_LORE_STATUS_CAN_BUY); - } + if (!(nms.isArmor(i))) buyStatus = getMsg(player, Messages.SHOP_LORE_STATUS_MAXED); //ARMOR + else buyStatus = getMsg(player, Messages.SHOP_LORE_STATUS_ARMOR); + } else if (!canAfford) buyStatus = getMsg(player, Messages.SHOP_LORE_STATUS_CANT_AFFORD).replace("{currency}", translatedCurrency); + else buyStatus = getMsg(player, Messages.SHOP_LORE_STATUS_CAN_BUY); + im.setDisplayName(getMsg(player, itemNamePath).replace("{color}", color).replace("{tier}", tier)); @@ -282,14 +265,9 @@ public ItemStack getItemStack(Player player, ShopCache shopCache) { for (String s : Language.getList(player, itemLorePath)) { if (s.contains("{quick_buy}")) { if (hasQuick) { - if (ShopIndex.getIndexViewers().contains(player.getUniqueId())) { - s = getMsg(player, Messages.SHOP_LORE_QUICK_REMOVE); - } else { - continue; - } - } else { - s = getMsg(player, Messages.SHOP_LORE_QUICK_ADD); - } + if (ShopIndex.getIndexViewers().contains(player.getUniqueId())) s = getMsg(player, Messages.SHOP_LORE_QUICK_REMOVE); + else continue; + } else s = getMsg(player, Messages.SHOP_LORE_QUICK_ADD); } s = s.replace("{tier}", tier).replace("{color}", color).replace("{cost}", cColor + String.valueOf(ct.getPrice())) .replace("{currency}", cColor + translatedCurrency).replace("{buy_status}", buyStatus); @@ -313,9 +291,7 @@ public boolean hasQuick(PlayerQuickBuyCache c) { * Get player's money amount */ public static int calculateMoney(Player player, Material currency) { - if (currency == Material.AIR) { - return (int) BedWars.getEconomy().getMoney(player); - } + if (currency == Material.AIR) return (int) BedWars.getEconomy().getMoney(player); int amount = 0; for (ItemStack is : player.getInventory().getContents()) {