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()) {