diff --git a/src/main/java/com/Acrobot/ChestShop/Events/PreShopCreationEvent.java b/src/main/java/com/Acrobot/ChestShop/Events/PreShopCreationEvent.java index 69cc1bae9..7de3d5aa3 100644 --- a/src/main/java/com/Acrobot/ChestShop/Events/PreShopCreationEvent.java +++ b/src/main/java/com/Acrobot/ChestShop/Events/PreShopCreationEvent.java @@ -124,6 +124,14 @@ public String getSignLine(byte line) { return signLines[line]; } + public String getOwnerName() { + return getSignLine((byte) 0); + } + + public void setOwnerName(String name) { + this.setSignLine((byte) 0, name); + } + /** * Returns the text on the sign * diff --git a/src/main/java/com/Acrobot/ChestShop/Listeners/Block/Break/SignBreak.java b/src/main/java/com/Acrobot/ChestShop/Listeners/Block/Break/SignBreak.java index f4816ea64..170e67be7 100644 --- a/src/main/java/com/Acrobot/ChestShop/Listeners/Block/Break/SignBreak.java +++ b/src/main/java/com/Acrobot/ChestShop/Listeners/Block/Break/SignBreak.java @@ -2,20 +2,11 @@ import static com.Acrobot.ChestShop.Permission.ADMIN; import static com.Acrobot.ChestShop.Permission.MOD; -import static com.Acrobot.ChestShop.Signs.ChestShopSign.NAME_LINE; -import com.Acrobot.Breeze.Utils.BlockUtil; -import com.Acrobot.ChestShop.ChestShop; -import com.Acrobot.ChestShop.Permission; -import com.Acrobot.ChestShop.Configuration.Properties; -import com.Acrobot.ChestShop.Events.ShopDestroyedEvent; -import com.Acrobot.ChestShop.Signs.ChestShopSign; -import com.Acrobot.ChestShop.UUIDs.NameManager; -import com.Acrobot.ChestShop.Utils.uBlock; -import com.google.common.collect.Lists; import java.util.Collections; import java.util.LinkedList; import java.util.List; + import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; @@ -34,6 +25,15 @@ import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.metadata.FixedMetadataValue; +import com.Acrobot.Breeze.Utils.BlockUtil; +import com.Acrobot.ChestShop.ChestShop; +import com.Acrobot.ChestShop.Permission; +import com.Acrobot.ChestShop.Configuration.Properties; +import com.Acrobot.ChestShop.Events.ShopDestroyedEvent; +import com.Acrobot.ChestShop.Signs.ChestShopSign; +import com.Acrobot.ChestShop.Utils.uBlock; +import com.google.common.collect.Lists; + /** * @author Acrobot */ @@ -128,7 +128,7 @@ public static boolean canBlockBeBroken(Block block, Player breaker) { continue; } - if (Properties.TURN_OFF_SIGN_PROTECTION || canDestroyShop(breaker, sign.getLine(NAME_LINE))) { + if (Properties.TURN_OFF_SIGN_PROTECTION || canDestroyShop(breaker, sign)) { brokenBlocks.add(sign); } else { canBeBroken = false; @@ -146,8 +146,8 @@ public static boolean canBlockBeBroken(Block block, Player breaker) { return true; } - private static boolean canDestroyShop(Player player, String name) { - return player != null && (hasShopBreakingPermission(player) || NameManager.canUseName(player, name)); + private static boolean canDestroyShop(Player player, Sign sign) { + return player != null && (hasShopBreakingPermission(player) || ChestShopSign.isOwner(player, sign)); } private static boolean hasShopBreakingPermission(Player player) { diff --git a/src/main/java/com/Acrobot/ChestShop/Listeners/Player/PlayerInteract.java b/src/main/java/com/Acrobot/ChestShop/Listeners/Player/PlayerInteract.java index 504c5fa3e..02f46684a 100644 --- a/src/main/java/com/Acrobot/ChestShop/Listeners/Player/PlayerInteract.java +++ b/src/main/java/com/Acrobot/ChestShop/Listeners/Player/PlayerInteract.java @@ -5,31 +5,13 @@ import static com.Acrobot.ChestShop.Events.TransactionEvent.TransactionType.BUY; import static com.Acrobot.ChestShop.Events.TransactionEvent.TransactionType.SELL; import static com.Acrobot.ChestShop.Signs.ChestShopSign.ITEM_LINE; -import static com.Acrobot.ChestShop.Signs.ChestShopSign.NAME_LINE; import static com.Acrobot.ChestShop.Signs.ChestShopSign.PRICE_LINE; import static com.Acrobot.ChestShop.Signs.ChestShopSign.QUANTITY_LINE; import static org.bukkit.event.block.Action.LEFT_CLICK_BLOCK; import static org.bukkit.event.block.Action.RIGHT_CLICK_BLOCK; -import com.Acrobot.Breeze.Utils.BlockUtil; -import com.Acrobot.Breeze.Utils.InventoryUtil; -import com.Acrobot.Breeze.Utils.MaterialUtil; -import com.Acrobot.Breeze.Utils.NumberUtil; -import com.Acrobot.Breeze.Utils.PriceUtil; -import com.Acrobot.ChestShop.Permission; -import com.Acrobot.ChestShop.Security; -import com.Acrobot.ChestShop.Commands.ItemInfo; -import com.Acrobot.ChestShop.Configuration.Messages; -import com.Acrobot.ChestShop.Configuration.Properties; -import com.Acrobot.ChestShop.Containers.AdminInventory; -import com.Acrobot.ChestShop.Events.PreTransactionEvent; -import com.Acrobot.ChestShop.Events.TransactionEvent; -import com.Acrobot.ChestShop.Events.TransactionEvent.TransactionType; -import com.Acrobot.ChestShop.Plugins.ChestShop; -import com.Acrobot.ChestShop.Signs.ChestShopSign; -import com.Acrobot.ChestShop.UUIDs.NameManager; -import com.Acrobot.ChestShop.Utils.uBlock; import java.util.UUID; + import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.OfflinePlayer; @@ -47,6 +29,24 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; +import com.Acrobot.Breeze.Utils.BlockUtil; +import com.Acrobot.Breeze.Utils.InventoryUtil; +import com.Acrobot.Breeze.Utils.MaterialUtil; +import com.Acrobot.Breeze.Utils.NumberUtil; +import com.Acrobot.Breeze.Utils.PriceUtil; +import com.Acrobot.ChestShop.Permission; +import com.Acrobot.ChestShop.Security; +import com.Acrobot.ChestShop.Commands.ItemInfo; +import com.Acrobot.ChestShop.Configuration.Messages; +import com.Acrobot.ChestShop.Configuration.Properties; +import com.Acrobot.ChestShop.Containers.AdminInventory; +import com.Acrobot.ChestShop.Events.PreTransactionEvent; +import com.Acrobot.ChestShop.Events.TransactionEvent; +import com.Acrobot.ChestShop.Events.TransactionEvent.TransactionType; +import com.Acrobot.ChestShop.Plugins.ChestShop; +import com.Acrobot.ChestShop.Signs.ChestShopSign; +import com.Acrobot.ChestShop.Utils.uBlock; + /** * @author Acrobot */ @@ -169,12 +169,11 @@ private static void showShopInfo(Player player, Sign sign) { } private static PreTransactionEvent preparePreTransactionEvent(Sign sign, Player player, Action action) { - String name = sign.getLine(NAME_LINE); + String quantity = sign.getLine(QUANTITY_LINE); String prices = sign.getLine(PRICE_LINE); String material = sign.getLine(ITEM_LINE); - - UUID uuid = NameManager.getUUIDFor(name); + UUID uuid = ChestShopSign.getOwnerUUID(sign); if (uuid == null) { return null; diff --git a/src/main/java/com/Acrobot/ChestShop/Listeners/PostShopCreation/CreationFeeGetter.java b/src/main/java/com/Acrobot/ChestShop/Listeners/PostShopCreation/CreationFeeGetter.java index 5208123ac..636ab23c0 100644 --- a/src/main/java/com/Acrobot/ChestShop/Listeners/PostShopCreation/CreationFeeGetter.java +++ b/src/main/java/com/Acrobot/ChestShop/Listeners/PostShopCreation/CreationFeeGetter.java @@ -1,7 +1,6 @@ package com.Acrobot.ChestShop.Listeners.PostShopCreation; import static com.Acrobot.ChestShop.Permission.NOFEE; -import static com.Acrobot.ChestShop.Signs.ChestShopSign.NAME_LINE; import java.math.BigDecimal; @@ -33,7 +32,7 @@ public static void onShopCreation(ShopCreatedEvent event) { return; } - if (ChestShopSign.isAdminShop(event.getSignLine(NAME_LINE))) { + if (ChestShopSign.isAdminShop(event.getSign())) { return; } diff --git a/src/main/java/com/Acrobot/ChestShop/Listeners/PostShopCreation/ShopCreationLogger.java b/src/main/java/com/Acrobot/ChestShop/Listeners/PostShopCreation/ShopCreationLogger.java index 594169d4d..15ef7db32 100644 --- a/src/main/java/com/Acrobot/ChestShop/Listeners/PostShopCreation/ShopCreationLogger.java +++ b/src/main/java/com/Acrobot/ChestShop/Listeners/PostShopCreation/ShopCreationLogger.java @@ -1,14 +1,17 @@ package com.Acrobot.ChestShop.Listeners.PostShopCreation; -import com.Acrobot.Breeze.Utils.LocationUtil; -import com.Acrobot.ChestShop.ChestShop; -import com.Acrobot.ChestShop.Events.ShopCreatedEvent; -import com.Acrobot.ChestShop.Signs.ChestShopSign; +import static com.Acrobot.ChestShop.Signs.ChestShopSign.ITEM_LINE; +import static com.Acrobot.ChestShop.Signs.ChestShopSign.PRICE_LINE; +import static com.Acrobot.ChestShop.Signs.ChestShopSign.QUANTITY_LINE; + import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; -import static com.Acrobot.ChestShop.Signs.ChestShopSign.*; +import com.Acrobot.Breeze.Utils.LocationUtil; +import com.Acrobot.ChestShop.ChestShop; +import com.Acrobot.ChestShop.Events.ShopCreatedEvent; +import com.Acrobot.ChestShop.Signs.ChestShopSign; /** * @author Acrobot @@ -19,8 +22,7 @@ public class ShopCreationLogger implements Listener { @EventHandler(priority = EventPriority.MONITOR) public static void onShopCreation(final ShopCreatedEvent event) { String creator = event.getPlayer().getName(); - String shopOwner = event.getSignLine(NAME_LINE); - String typeOfShop = ChestShopSign.isAdminShop(shopOwner) ? "an Admin Shop" : "a shop"; + String typeOfShop = ChestShopSign.isAdminShop(event.getSign()) ? "an Admin Shop" : "a shop"; String item = event.getSignLine(QUANTITY_LINE) + ' ' + event.getSignLine(ITEM_LINE); String prices = event.getSignLine(PRICE_LINE); diff --git a/src/main/java/com/Acrobot/ChestShop/Listeners/PostShopCreation/SignSticker.java b/src/main/java/com/Acrobot/ChestShop/Listeners/PostShopCreation/SignSticker.java index e638f74e7..95984d1bc 100644 --- a/src/main/java/com/Acrobot/ChestShop/Listeners/PostShopCreation/SignSticker.java +++ b/src/main/java/com/Acrobot/ChestShop/Listeners/PostShopCreation/SignSticker.java @@ -1,12 +1,5 @@ package com.Acrobot.ChestShop.Listeners.PostShopCreation; -import static com.Acrobot.ChestShop.Signs.ChestShopSign.NAME_LINE; - -import com.Acrobot.Breeze.Utils.BlockUtil; -import com.Acrobot.ChestShop.Configuration.Properties; -import com.Acrobot.ChestShop.Events.ShopCreatedEvent; -import com.Acrobot.ChestShop.Signs.ChestShopSign; -import com.Acrobot.ChestShop.Utils.uBlock; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.block.Block; @@ -16,6 +9,12 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; +import com.Acrobot.Breeze.Utils.BlockUtil; +import com.Acrobot.ChestShop.Configuration.Properties; +import com.Acrobot.ChestShop.Events.ShopCreatedEvent; +import com.Acrobot.ChestShop.Signs.ChestShopSign; +import com.Acrobot.ChestShop.Utils.uBlock; + /** * @author Acrobot */ @@ -27,7 +26,7 @@ public static void onShopCreation(ShopCreatedEvent event) { return; } - if (ChestShopSign.isAdminShop(event.getSign().getLine(NAME_LINE))) { + if (ChestShopSign.isAdminShop(event.getSign())) { return; } diff --git a/src/main/java/com/Acrobot/ChestShop/Listeners/PreShopCreation/ChestChecker.java b/src/main/java/com/Acrobot/ChestShop/Listeners/PreShopCreation/ChestChecker.java index c4ed8802f..f08889de1 100644 --- a/src/main/java/com/Acrobot/ChestShop/Listeners/PreShopCreation/ChestChecker.java +++ b/src/main/java/com/Acrobot/ChestShop/Listeners/PreShopCreation/ChestChecker.java @@ -3,19 +3,19 @@ import static com.Acrobot.ChestShop.Events.PreShopCreationEvent.CreationOutcome.NO_CHEST; import static com.Acrobot.ChestShop.Events.PreShopCreationEvent.CreationOutcome.NO_PERMISSION_FOR_CHEST; import static com.Acrobot.ChestShop.Permission.ADMIN; -import static com.Acrobot.ChestShop.Signs.ChestShopSign.NAME_LINE; -import com.Acrobot.ChestShop.Permission; -import com.Acrobot.ChestShop.Security; -import com.Acrobot.ChestShop.Events.PreShopCreationEvent; -import com.Acrobot.ChestShop.Signs.ChestShopSign; -import com.Acrobot.ChestShop.Utils.uBlock; import org.bukkit.block.Container; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; +import com.Acrobot.ChestShop.Permission; +import com.Acrobot.ChestShop.Security; +import com.Acrobot.ChestShop.Events.PreShopCreationEvent; +import com.Acrobot.ChestShop.Signs.ChestShopSign; +import com.Acrobot.ChestShop.Utils.uBlock; + /** * @author Acrobot */ @@ -23,9 +23,8 @@ public class ChestChecker implements Listener { @EventHandler(priority = EventPriority.LOW) public static void onPreShopCreation(PreShopCreationEvent event) { - String nameLine = event.getSignLine(NAME_LINE); - if (ChestShopSign.isAdminShop(nameLine)) { + if (ChestShopSign.isAdminShop(event.getSign())) { return; } diff --git a/src/main/java/com/Acrobot/ChestShop/Listeners/PreShopCreation/MoneyChecker.java b/src/main/java/com/Acrobot/ChestShop/Listeners/PreShopCreation/MoneyChecker.java index 2fc702c0f..37e61ad02 100644 --- a/src/main/java/com/Acrobot/ChestShop/Listeners/PreShopCreation/MoneyChecker.java +++ b/src/main/java/com/Acrobot/ChestShop/Listeners/PreShopCreation/MoneyChecker.java @@ -1,20 +1,20 @@ package com.Acrobot.ChestShop.Listeners.PreShopCreation; -import com.Acrobot.ChestShop.ChestShop; -import com.Acrobot.ChestShop.Configuration.Properties; -import com.Acrobot.ChestShop.Events.Economy.CurrencyCheckEvent; -import com.Acrobot.ChestShop.Events.PreShopCreationEvent; -import com.Acrobot.ChestShop.Permission; -import com.Acrobot.ChestShop.Signs.ChestShopSign; +import static com.Acrobot.ChestShop.Events.PreShopCreationEvent.CreationOutcome.NOT_ENOUGH_MONEY; +import static com.Acrobot.ChestShop.Permission.NOFEE; + +import java.math.BigDecimal; + import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import java.math.BigDecimal; - -import static com.Acrobot.ChestShop.Events.PreShopCreationEvent.CreationOutcome.NOT_ENOUGH_MONEY; -import static com.Acrobot.ChestShop.Permission.NOFEE; -import static com.Acrobot.ChestShop.Signs.ChestShopSign.NAME_LINE; +import com.Acrobot.ChestShop.ChestShop; +import com.Acrobot.ChestShop.Permission; +import com.Acrobot.ChestShop.Configuration.Properties; +import com.Acrobot.ChestShop.Events.PreShopCreationEvent; +import com.Acrobot.ChestShop.Events.Economy.CurrencyCheckEvent; +import com.Acrobot.ChestShop.Signs.ChestShopSign; /** * @author Acrobot @@ -29,7 +29,7 @@ public static void onPreShopCreation(PreShopCreationEvent event) { return; } - if (ChestShopSign.isAdminShop(event.getSignLine(NAME_LINE))) { + if (ChestShopSign.isAdminShop(event.getSign())) { return; } diff --git a/src/main/java/com/Acrobot/ChestShop/Listeners/PreShopCreation/NameChecker.java b/src/main/java/com/Acrobot/ChestShop/Listeners/PreShopCreation/NameChecker.java index 418895598..f4ab81f22 100644 --- a/src/main/java/com/Acrobot/ChestShop/Listeners/PreShopCreation/NameChecker.java +++ b/src/main/java/com/Acrobot/ChestShop/Listeners/PreShopCreation/NameChecker.java @@ -1,7 +1,5 @@ package com.Acrobot.ChestShop.Listeners.PreShopCreation; -import static com.Acrobot.ChestShop.Signs.ChestShopSign.NAME_LINE; - import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -19,15 +17,15 @@ public class NameChecker implements Listener { @EventHandler(priority = EventPriority.LOWEST) public static void onPreShopCreation(PreShopCreationEvent event) { - String name = event.getSignLine(NAME_LINE); + + String name = event.getOwnerName(); Player player = event.getPlayer(); if (Properties.ADMIN_SHOP_NAME.equalsIgnoreCase(name)) { name = Properties.ADMIN_SHOP_NAME; - event.setSignLine(NAME_LINE, name); } if (name.isEmpty() || (!NameManager.canUseName(player, name) && !Permission.has(player, Permission.ADMIN))) { - String shortName = NameManager.getNameFor(player); - event.setSignLine(NAME_LINE, shortName); + name = NameManager.getNameFor(player); } + event.setOwnerName(name); } } diff --git a/src/main/java/com/Acrobot/ChestShop/Listeners/PreShopCreation/TerrainChecker.java b/src/main/java/com/Acrobot/ChestShop/Listeners/PreShopCreation/TerrainChecker.java index 79c6e89d0..b9f405a09 100644 --- a/src/main/java/com/Acrobot/ChestShop/Listeners/PreShopCreation/TerrainChecker.java +++ b/src/main/java/com/Acrobot/ChestShop/Listeners/PreShopCreation/TerrainChecker.java @@ -2,7 +2,12 @@ import static com.Acrobot.ChestShop.Events.PreShopCreationEvent.CreationOutcome.NO_PERMISSION_FOR_TERRAIN; import static com.Acrobot.ChestShop.Permission.ADMIN; -import static com.Acrobot.ChestShop.Signs.ChestShopSign.NAME_LINE; + +import org.bukkit.Location; +import org.bukkit.block.Container; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; import com.Acrobot.ChestShop.ChestShop; import com.Acrobot.ChestShop.Permission; @@ -11,11 +16,6 @@ import com.Acrobot.ChestShop.Events.Protection.BuildPermissionEvent; import com.Acrobot.ChestShop.Signs.ChestShopSign; import com.Acrobot.ChestShop.Utils.uBlock; -import org.bukkit.Location; -import org.bukkit.block.Container; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; /** * @author Acrobot @@ -24,9 +24,8 @@ public class TerrainChecker implements Listener { @EventHandler public static void onPreShopCreation(PreShopCreationEvent event) { - String nameLine = event.getSignLine(NAME_LINE); - if (ChestShopSign.isAdminShop(nameLine)) { + if (ChestShopSign.isAdminShop(event.getSign())) { return; } diff --git a/src/main/java/com/Acrobot/ChestShop/Listeners/ShopRemoval/ShopRefundListener.java b/src/main/java/com/Acrobot/ChestShop/Listeners/ShopRemoval/ShopRefundListener.java index 24a58310e..a8be38dc8 100644 --- a/src/main/java/com/Acrobot/ChestShop/Listeners/ShopRemoval/ShopRefundListener.java +++ b/src/main/java/com/Acrobot/ChestShop/Listeners/ShopRemoval/ShopRefundListener.java @@ -1,7 +1,6 @@ package com.Acrobot.ChestShop.Listeners.ShopRemoval; import static com.Acrobot.ChestShop.Permission.NOFEE; -import static com.Acrobot.ChestShop.Signs.ChestShopSign.NAME_LINE; import java.math.BigDecimal; import java.util.UUID; @@ -18,6 +17,7 @@ import com.Acrobot.ChestShop.Events.ShopDestroyedEvent; import com.Acrobot.ChestShop.Events.Economy.CurrencyAddEvent; import com.Acrobot.ChestShop.Events.Economy.CurrencySubtractEvent; +import com.Acrobot.ChestShop.Signs.ChestShopSign; import com.Acrobot.ChestShop.UUIDs.NameManager; /** @@ -32,7 +32,7 @@ public static void onShopDestroy(ShopDestroyedEvent event) { return; } - UUID owner = NameManager.getUUIDFor(event.getSign().getLine(NAME_LINE)); + UUID owner = ChestShopSign.getOwnerUUID(event.getSign()); CurrencyAddEvent currencyEvent = new CurrencyAddEvent(BigDecimal.valueOf(refundPrice), owner, event.getSign().getWorld()); ChestShop.callEvent(currencyEvent); diff --git a/src/main/java/com/Acrobot/ChestShop/Listeners/ShopRemoval/ShopRemovalLogger.java b/src/main/java/com/Acrobot/ChestShop/Listeners/ShopRemoval/ShopRemovalLogger.java index a1bb4d276..079723be3 100644 --- a/src/main/java/com/Acrobot/ChestShop/Listeners/ShopRemoval/ShopRemovalLogger.java +++ b/src/main/java/com/Acrobot/ChestShop/Listeners/ShopRemoval/ShopRemovalLogger.java @@ -1,14 +1,18 @@ package com.Acrobot.ChestShop.Listeners.ShopRemoval; -import com.Acrobot.Breeze.Utils.LocationUtil; -import com.Acrobot.ChestShop.ChestShop; -import com.Acrobot.ChestShop.Events.ShopDestroyedEvent; -import com.Acrobot.ChestShop.Signs.ChestShopSign; +import static com.Acrobot.ChestShop.Signs.ChestShopSign.ITEM_LINE; +import static com.Acrobot.ChestShop.Signs.ChestShopSign.PRICE_LINE; +import static com.Acrobot.ChestShop.Signs.ChestShopSign.QUANTITY_LINE; + import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; -import static com.Acrobot.ChestShop.Signs.ChestShopSign.*; +import com.Acrobot.Breeze.Utils.LocationUtil; +import com.Acrobot.ChestShop.ChestShop; +import com.Acrobot.ChestShop.Events.ShopDestroyedEvent; +import com.Acrobot.ChestShop.Signs.ChestShopSign; +import com.Acrobot.ChestShop.UUIDs.NameManager; /** * @author Acrobot @@ -22,8 +26,8 @@ public static void onShopRemoval(final ShopDestroyedEvent event) { return; } - String shopOwner = event.getSign().getLine(NAME_LINE); - String typeOfShop = ChestShopSign.isAdminShop(shopOwner) ? "An Admin Shop" : "A shop belonging to " + shopOwner; + String shopOwner = NameManager.getFullNameFor(ChestShopSign.getOwnerUUID(event.getSign())); + String typeOfShop = ChestShopSign.isAdminShop(event.getSign()) ? "An Admin Shop" : "A shop belonging to " + shopOwner; String item = event.getSign().getLine(QUANTITY_LINE) + ' ' + event.getSign().getLine(ITEM_LINE); String prices = event.getSign().getLine(PRICE_LINE); diff --git a/src/main/java/com/Acrobot/ChestShop/Plugins/ChestShop.java b/src/main/java/com/Acrobot/ChestShop/Plugins/ChestShop.java index f9e17f4ad..29496c297 100644 --- a/src/main/java/com/Acrobot/ChestShop/Plugins/ChestShop.java +++ b/src/main/java/com/Acrobot/ChestShop/Plugins/ChestShop.java @@ -13,7 +13,6 @@ import com.Acrobot.ChestShop.Permission; import com.Acrobot.ChestShop.Events.Protection.ProtectionCheckEvent; import com.Acrobot.ChestShop.Signs.ChestShopSign; -import com.Acrobot.ChestShop.UUIDs.NameManager; import com.Acrobot.ChestShop.Utils.uBlock; /** @@ -67,6 +66,6 @@ private static boolean canBeProtected(Block block) { } private static boolean isShopMember(Player player, Sign sign) { - return NameManager.canUseName(player, sign.getLine(ChestShopSign.NAME_LINE)); + return ChestShopSign.isAccessor(player, sign); } } diff --git a/src/main/java/com/Acrobot/ChestShop/Security.java b/src/main/java/com/Acrobot/ChestShop/Security.java index 2646606a1..72a570b09 100644 --- a/src/main/java/com/Acrobot/ChestShop/Security.java +++ b/src/main/java/com/Acrobot/ChestShop/Security.java @@ -1,13 +1,7 @@ package com.Acrobot.ChestShop; -import com.Acrobot.Breeze.Utils.BlockUtil; -import com.Acrobot.ChestShop.Configuration.Properties; -import com.Acrobot.ChestShop.Events.Protection.ProtectBlockEvent; -import com.Acrobot.ChestShop.Events.Protection.ProtectionCheckEvent; -import com.Acrobot.ChestShop.Signs.ChestShopSign; -import com.Acrobot.ChestShop.UUIDs.NameManager; -import com.Acrobot.ChestShop.Utils.uBlock; import java.util.UUID; + import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.Container; @@ -15,6 +9,13 @@ import org.bukkit.entity.Player; import org.bukkit.event.Event; +import com.Acrobot.Breeze.Utils.BlockUtil; +import com.Acrobot.ChestShop.Configuration.Properties; +import com.Acrobot.ChestShop.Events.Protection.ProtectBlockEvent; +import com.Acrobot.ChestShop.Events.Protection.ProtectionCheckEvent; +import com.Acrobot.ChestShop.Signs.ChestShopSign; +import com.Acrobot.ChestShop.Utils.uBlock; + /** * @author Acrobot */ @@ -45,7 +46,7 @@ public static boolean canPlaceSign(Player player, Sign sign) { if (chest != null) { Sign existingShopSign = uBlock.getConnectedSign(chest.getBlock(), sign.getBlock()); if (existingShopSign != null) { - UUID existingSignUUID = NameManager.getUUIDFor(existingShopSign.getLine(ChestShopSign.NAME_LINE)); + UUID existingSignUUID = ChestShopSign.getOwnerUUID(sign); if (existingSignUUID == null || !existingSignUUID.equals(player.getUniqueId())) { return false; } diff --git a/src/main/java/com/Acrobot/ChestShop/Signs/ChestShopSign.java b/src/main/java/com/Acrobot/ChestShop/Signs/ChestShopSign.java index 1da748baf..db0f5ad9b 100644 --- a/src/main/java/com/Acrobot/ChestShop/Signs/ChestShopSign.java +++ b/src/main/java/com/Acrobot/ChestShop/Signs/ChestShopSign.java @@ -3,6 +3,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.HashSet; +import java.util.UUID; import java.util.regex.Pattern; import org.bukkit.NamespacedKey; @@ -31,7 +32,7 @@ * @author Acrobot */ public class ChestShopSign { - public static final byte NAME_LINE = 0; + private static final byte NAME_LINE = 0; public static final byte QUANTITY_LINE = 1; public static final byte PRICE_LINE = 2; public static final byte ITEM_LINE = 3; @@ -55,15 +56,15 @@ public static boolean isAdminShop(Inventory ownerInventory) { return ownerInventory instanceof AdminInventory; } - private static boolean isAdminShop(String owner) { - return owner.replace(" ", "").equalsIgnoreCase(Properties.ADMIN_SHOP_NAME.replace(" ", "")); + public static boolean isAdminShopNameString(String string) { + return string.replace(" ", "").equalsIgnoreCase(Properties.ADMIN_SHOP_NAME.replace(" ", "")); } public static boolean isAdminShop(Sign sign) { PersistentDataContainer persistentDataContainer = sign.getPersistentDataContainer(); if (!persistentDataContainer.has(ADMINSHOP_NAMESPACED_KEY, PersistentDataType.BOOLEAN)) { - if (!isAdminShop(sign.getLine(NAME_LINE))) { + if (!isAdminShopNameString(sign.getLine(NAME_LINE))) { return false; } @@ -100,7 +101,6 @@ public static boolean canAccess(OfflinePlayer player, Sign sign) { } public static boolean isOwner(OfflinePlayer player, Sign sign) { - PersistentDataContainer persistentDataContainer = sign.getPersistentDataContainer(); String playerUUIDAsString = player.getUniqueId().toString(); @@ -113,8 +113,20 @@ public static boolean isOwner(OfflinePlayer player, Sign sign) { persistentDataContainer.set(OWNER_NAMESPACED_KEY, PersistentDataType.STRING, playerUUIDAsString); } - String ownerUUID = persistentDataContainer.get(OWNER_NAMESPACED_KEY, PersistentDataType.STRING); - return playerUUIDAsString.equals(ownerUUID); + String owner = getOwner(sign); + return playerUUIDAsString.equals(owner); + } + + public static String getOwner(Sign sign) { + return sign.getPersistentDataContainer().get(OWNER_NAMESPACED_KEY, PersistentDataType.STRING); + } + + public static UUID getOwnerUUID(Sign sign) { + String owner = getOwner(sign); + if (owner == null) + return null; + + return UUID.fromString(owner); } public static boolean isAccessor(OfflinePlayer player, Sign sign) { diff --git a/src/main/java/com/Acrobot/ChestShop/UUIDs/NameManager.java b/src/main/java/com/Acrobot/ChestShop/UUIDs/NameManager.java index 70778f5a1..4e66a4b58 100644 --- a/src/main/java/com/Acrobot/ChestShop/UUIDs/NameManager.java +++ b/src/main/java/com/Acrobot/ChestShop/UUIDs/NameManager.java @@ -4,6 +4,7 @@ import java.util.HashMap; import java.util.Map; import java.util.UUID; + import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; @@ -137,9 +138,11 @@ private static String storeUsername(final UUID uuid, String name) { } public static boolean canUseName(OfflinePlayer player, String name) { - if (ChestShopSign.isAdminShop(name)) { + + if (ChestShopSign.isAdminShopNameString(name)) { return false; } + UUID inUse = usedShortNames.get(name.toLowerCase()); return inUse != null && inUse.equals(player.getUniqueId()); }