From e4c0cccdd6d2ee815bf2791c7b86a46548cd3c2f Mon Sep 17 00:00:00 2001 From: SamB440 Date: Mon, 11 Dec 2023 15:41:51 +0000 Subject: [PATCH] Add setting to icon commands to run via console --- .../islandearth/rpgregions/command/IconCommand.java | 2 +- .../net/islandearth/rpgregions/gui/DiscoveryGUI.java | 10 +++++++--- .../rpgregions/managers/RPGRegionsManagers.java | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/api/src/main/java/net/islandearth/rpgregions/command/IconCommand.java b/api/src/main/java/net/islandearth/rpgregions/command/IconCommand.java index 8f0c374..9c9fc85 100644 --- a/api/src/main/java/net/islandearth/rpgregions/command/IconCommand.java +++ b/api/src/main/java/net/islandearth/rpgregions/command/IconCommand.java @@ -1,6 +1,6 @@ package net.islandearth.rpgregions.command; -public record IconCommand(String command, CommandClickType clickType, int cooldown) { +public record IconCommand(String command, CommandClickType clickType, boolean console, int cooldown) { public enum CommandClickType { DISCOVERED, diff --git a/rpgregions/src/main/java/net/islandearth/rpgregions/gui/DiscoveryGUI.java b/rpgregions/src/main/java/net/islandearth/rpgregions/gui/DiscoveryGUI.java index 6f92604..ed037c8 100644 --- a/rpgregions/src/main/java/net/islandearth/rpgregions/gui/DiscoveryGUI.java +++ b/rpgregions/src/main/java/net/islandearth/rpgregions/gui/DiscoveryGUI.java @@ -302,9 +302,13 @@ public class DiscoveryGUI extends RPGRegionsGUI { return; } - player.performCommand(iconCommand.command() - .replace("%region%", configuredRegion.getId()) - .replace("%player%", player.getName())); + final String command = iconCommand.command().replace("%region%", configuredRegion.getId()) + .replace("%player%", player.getName()); + if (iconCommand.console()) { + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command); + } else { + player.performCommand(command); + } if (iconCommand.cooldown() != 0) { account.getCooldowns().add(RPGRegionsAccount.AccountCooldown.ICON_COMMAND); diff --git a/rpgregions/src/main/java/net/islandearth/rpgregions/managers/RPGRegionsManagers.java b/rpgregions/src/main/java/net/islandearth/rpgregions/managers/RPGRegionsManagers.java index f0fea45..2da23e2 100644 --- a/rpgregions/src/main/java/net/islandearth/rpgregions/managers/RPGRegionsManagers.java +++ b/rpgregions/src/main/java/net/islandearth/rpgregions/managers/RPGRegionsManagers.java @@ -123,7 +123,7 @@ public class RPGRegionsManagers implements IRPGRegionsManagers { Collections.singletonList(new ItemStackBuilder(Material.IRON_CHESTPLATE).build()))); final ConfiguredRegion configuredRegion = createExampleRegion(rewards, effects); - configuredRegion.getIconCommand().add(new IconCommand("say", IconCommand.CommandClickType.DISCOVERED, 0)); + configuredRegion.getIconCommand().add(new IconCommand("say", IconCommand.CommandClickType.DISCOVERED, false, 0)); configuredRegion.save(plugin); Stream files = Files.walk(Paths.get(folder.getPath()));