From 59218c78b9585afc47435cb8c9700b032e9d6630 Mon Sep 17 00:00:00 2001 From: Mrec <66518248+RecoTG@users.noreply.github.com> Date: Sun, 17 Aug 2025 00:32:09 +0100 Subject: [PATCH] Handle missing Vault gracefully --- .../java/com/yourorg/servershop/ServerShopPlugin.java | 4 +--- .../com/yourorg/servershop/commands/SellAllCommand.java | 1 + .../java/com/yourorg/servershop/commands/SellCommand.java | 1 + src/main/java/com/yourorg/servershop/gui/ItemsMenu.java | 4 ++++ src/main/java/com/yourorg/servershop/gui/MenuManager.java | 8 +++++++- src/main/java/com/yourorg/servershop/gui/SearchMenu.java | 1 + src/main/java/com/yourorg/servershop/gui/SellMenu.java | 2 ++ src/main/java/com/yourorg/servershop/gui/WeeklyMenu.java | 1 + 8 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/yourorg/servershop/ServerShopPlugin.java b/src/main/java/com/yourorg/servershop/ServerShopPlugin.java index 5f18fb9..3980816 100644 --- a/src/main/java/com/yourorg/servershop/ServerShopPlugin.java +++ b/src/main/java/com/yourorg/servershop/ServerShopPlugin.java @@ -28,9 +28,7 @@ public final class ServerShopPlugin extends JavaPlugin { saveResource("messages.yml", false); saveResource("shop.yml", false); if (!setupEconomy()) { - getLogger().severe("Vault economy not found. Disabling."); - Bukkit.getPluginManager().disablePlugin(this); - return; + getLogger().warning("Vault economy not found. Buy/Sell disabled."); } this.categorySettings = new CategorySettings(this); this.catalog = new Catalog(this); catalog.reload(); diff --git a/src/main/java/com/yourorg/servershop/commands/SellAllCommand.java b/src/main/java/com/yourorg/servershop/commands/SellAllCommand.java index 7897b0c..ef00aa3 100644 --- a/src/main/java/com/yourorg/servershop/commands/SellAllCommand.java +++ b/src/main/java/com/yourorg/servershop/commands/SellAllCommand.java @@ -10,6 +10,7 @@ public final class SellAllCommand implements CommandExecutor { @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (!(sender instanceof Player p)) { sender.sendMessage(plugin.prefixed(plugin.getConfig().getString("messages.not-a-player"))); return true; } + if (plugin.economy() == null) { p.sendMessage(plugin.prefixed(plugin.getConfig().getString("messages.no-economy"))); return true; } plugin.menus().openSell(p); return true; } diff --git a/src/main/java/com/yourorg/servershop/commands/SellCommand.java b/src/main/java/com/yourorg/servershop/commands/SellCommand.java index a2d9f50..2816893 100644 --- a/src/main/java/com/yourorg/servershop/commands/SellCommand.java +++ b/src/main/java/com/yourorg/servershop/commands/SellCommand.java @@ -11,6 +11,7 @@ public final class SellCommand implements CommandExecutor { @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (!(sender instanceof Player p)) { sender.sendMessage(plugin.prefixed(plugin.getConfig().getString("messages.not-a-player"))); return true; } + if (plugin.economy() == null) { p.sendMessage(plugin.prefixed(plugin.getConfig().getString("messages.no-economy"))); return true; } if (args.length < 2) { p.sendMessage(plugin.prefixed("/sell ")); return true; } Material mat = Util.parseMaterial(args[1]); int qty; try { qty = Math.max(1, Integer.parseInt(args.length > 2 ? args[2] : "1")); } catch (Exception e) { qty = 1; } diff --git a/src/main/java/com/yourorg/servershop/gui/ItemsMenu.java b/src/main/java/com/yourorg/servershop/gui/ItemsMenu.java index d5a3820..f552269 100644 --- a/src/main/java/com/yourorg/servershop/gui/ItemsMenu.java +++ b/src/main/java/com/yourorg/servershop/gui/ItemsMenu.java @@ -44,6 +44,10 @@ public final class ItemsMenu implements MenuView { p.sendMessage(plugin.prefixed(m.name()+": $"+String.format("%.2f", buy))); return; } + if (plugin.economy() == null) { + p.sendMessage(plugin.prefixed(plugin.getConfig().getString("messages.no-economy"))); + return; + } int qty = e.isShiftClick() ? 16 : 1; plugin.shop().buy(p, m, qty).ifPresent(err -> p.sendMessage(plugin.prefixed(err))); } diff --git a/src/main/java/com/yourorg/servershop/gui/MenuManager.java b/src/main/java/com/yourorg/servershop/gui/MenuManager.java index 7a00242..8cfa059 100644 --- a/src/main/java/com/yourorg/servershop/gui/MenuManager.java +++ b/src/main/java/com/yourorg/servershop/gui/MenuManager.java @@ -17,7 +17,13 @@ public final class MenuManager implements Listener { public void openCategories(Player p) { open(p, new CategoryMenu(plugin)); } public void openItems(Player p, String category) { open(p, new ItemsMenu(plugin, category)); } public void openWeekly(Player p) { if (p!=null) open(p, new WeeklyMenu(plugin)); } - public void openSell(Player p) { open(p, new SellMenu(plugin)); } + public void openSell(Player p) { + if (plugin.economy() == null) { + p.sendMessage(plugin.prefixed(plugin.getConfig().getString("messages.no-economy"))); + return; + } + open(p, new SellMenu(plugin)); + } public void openSearch(Player p, String query, java.util.List results) { open(p, new SearchMenu(plugin, query, results, 0)); } public void openSearch(Player p, String query, java.util.List results, int page) { open(p, new SearchMenu(plugin, query, results, page)); } diff --git a/src/main/java/com/yourorg/servershop/gui/SearchMenu.java b/src/main/java/com/yourorg/servershop/gui/SearchMenu.java index 429c3c9..c57f3ba 100644 --- a/src/main/java/com/yourorg/servershop/gui/SearchMenu.java +++ b/src/main/java/com/yourorg/servershop/gui/SearchMenu.java @@ -52,6 +52,7 @@ public SearchMenu(ServerShopPlugin plugin, String query, List results, var m = org.bukkit.Material.matchMaterial(org.bukkit.ChatColor.stripColor(it.getItemMeta().getDisplayName())); if (m == null) return; if (e.isRightClick()) { double buy = plugin.shop().priceBuy(m); p.sendMessage(plugin.prefixed(m.name()+": $"+String.format("%.2f", buy))); return; } + if (plugin.economy() == null) { p.sendMessage(plugin.prefixed(plugin.getConfig().getString("messages.no-economy"))); return; } int qty = e.isShiftClick() ? 16 : 1; plugin.shop().buy(p, m, qty).ifPresent(err -> p.sendMessage(plugin.prefixed(err))); } diff --git a/src/main/java/com/yourorg/servershop/gui/SellMenu.java b/src/main/java/com/yourorg/servershop/gui/SellMenu.java index 1cceda8..24ed16e 100644 --- a/src/main/java/com/yourorg/servershop/gui/SellMenu.java +++ b/src/main/java/com/yourorg/servershop/gui/SellMenu.java @@ -22,6 +22,7 @@ public final class SellMenu implements MenuView { if (!(e.getWhoClicked() instanceof Player p)) return; var it = e.getCurrentItem(); if (it == null) return; var m = it.getType(); if (m == Material.AIR) return; + if (plugin.economy() == null) { p.sendMessage(plugin.prefixed(plugin.getConfig().getString("messages.no-economy"))); return; } if (it.getItemMeta() != null && org.bukkit.ChatColor.stripColor(it.getItemMeta().getDisplayName()).equalsIgnoreCase("Sell All")) { sellAll(p); return; } @@ -52,6 +53,7 @@ public void refresh(Player p) { } private void sellAll(Player p) { + if (plugin.economy() == null) { p.sendMessage(plugin.prefixed(plugin.getConfig().getString("messages.no-economy"))); return; } double total = 0.0; int stacks = 0; for (int i = 0; i < p.getInventory().getSize(); i++) { ItemStack s = p.getInventory().getItem(i); diff --git a/src/main/java/com/yourorg/servershop/gui/WeeklyMenu.java b/src/main/java/com/yourorg/servershop/gui/WeeklyMenu.java index 9841b57..907f511 100644 --- a/src/main/java/com/yourorg/servershop/gui/WeeklyMenu.java +++ b/src/main/java/com/yourorg/servershop/gui/WeeklyMenu.java @@ -29,6 +29,7 @@ public final class WeeklyMenu implements MenuView { var it = e.getCurrentItem(); if (it == null) return; var m = org.bukkit.Material.matchMaterial(org.bukkit.ChatColor.stripColor(it.getItemMeta().getDisplayName())); if (m == null) return; + if (plugin.economy() == null) { p.sendMessage(plugin.prefixed(plugin.getConfig().getString("messages.no-economy"))); return; } int qty = e.isShiftClick() ? 16 : 1; plugin.shop().buy(p, m, qty).ifPresent(err -> p.sendMessage(plugin.prefixed(err))); }