diff --git a/resource/config.yml b/resource/config.yml index 47e8c8e..a1827a0 100644 --- a/resource/config.yml +++ b/resource/config.yml @@ -29,9 +29,11 @@ config: error: '&cError found in config.' offline: 'Offline' offlineHeadValue: 'eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNmU1Mjg2YzQ3MGY2NmZmYTFhMTgzMzFjYmZmYjlhM2MyYTQ0MjRhOGM3MjU5YzQ0MzZmZDJlMzU1ODJhNTIyIn19fQ==' + input: '&cYour Input is too long!' input: input-cancel: cancel input-cancelled: '&cCancelled!' + max-input-length: -1 input-message: - '%cp-tag%&aEnter Input for Command' - '&cType &4%cp-args% &cto Cancel the command' diff --git a/src/me/rockyhawk/commandpanels/classresources/ExecuteOpenVoids.java b/src/me/rockyhawk/commandpanels/classresources/ExecuteOpenVoids.java index cdf125d..63a9cdf 100644 --- a/src/me/rockyhawk/commandpanels/classresources/ExecuteOpenVoids.java +++ b/src/me/rockyhawk/commandpanels/classresources/ExecuteOpenVoids.java @@ -36,15 +36,25 @@ public class ExecuteOpenVoids { panel.setConfig(YamlConfiguration.loadConfiguration(panel.getFile())); } if (!sender.hasPermission("commandpanel.panel." + panel.getConfig().getString("perm"))) { - sender.sendMessage(plugin.tex.colour(plugin.tag + plugin.config.getString("config.format.perms"))); - return; + if(panel.getConfig().getString("custom-messages.perms") != null) { + sender.sendMessage(plugin.tex.colour(plugin.tag + panel.getConfig().getString("custom-messages.perms"))); + return; + }else { + sender.sendMessage(plugin.tex.colour(plugin.tag + plugin.config.getString("config.format.perms"))); + return; + } } //if the sender has OTHER perms, or if sendOpenedMessage is false, implying it is not for another person if(sender.hasPermission("commandpanel.other") || !openForOtherUser) { //check for disabled worlds if(!plugin.panelPerms.isPanelWorldEnabled(p,panel.getConfig())){ - sender.sendMessage(plugin.tex.colour(plugin.tag + plugin.config.getString("config.format.perms"))); - return; + if(panel.getConfig().getString("custom-messages.perms") != null) { + sender.sendMessage(plugin.tex.colour(plugin.tag + panel.getConfig().getString("custom-messages.perms"))); + return; + }else { + sender.sendMessage(plugin.tex.colour(plugin.tag + plugin.config.getString("config.format.perms"))); + return; + } } if(position != PanelPosition.Top && !plugin.openPanels.hasPanelOpen(p.getName(),PanelPosition.Top)){ @@ -101,7 +111,13 @@ public class ExecuteOpenVoids { p.closeInventory(); } }else{ - sender.sendMessage(plugin.tex.colour(plugin.tag + plugin.config.getString("config.format.perms"))); + if(panel.getConfig().getString("custom-messages.perms") != null) { + sender.sendMessage(plugin.tex.colour(plugin.tag + panel.getConfig().getString("custom-messages.perms"))); + return; + }else { + sender.sendMessage(plugin.tex.colour(plugin.tag + plugin.config.getString("config.format.perms"))); + return; + } } } diff --git a/src/me/rockyhawk/commandpanels/commandtags/tags/other/SpecialTags.java b/src/me/rockyhawk/commandpanels/commandtags/tags/other/SpecialTags.java index 499a6c1..4473b4b 100644 --- a/src/me/rockyhawk/commandpanels/commandtags/tags/other/SpecialTags.java +++ b/src/me/rockyhawk/commandpanels/commandtags/tags/other/SpecialTags.java @@ -105,7 +105,7 @@ public class SpecialTags implements Listener { e.commandTagUsed(); //if player uses op= it will perform command as op final int delayTicks = Integer.parseInt(e.args[0]); - String finalCommand = String.join(" ",e.args).replace(e.args[0],"").trim(); + String finalCommand = String.join(" ",e.args).replaceFirst(e.args[0],"").trim(); new BukkitRunnable() { @Override public void run() { diff --git a/src/me/rockyhawk/commandpanels/interactives/input/UserInputUtils.java b/src/me/rockyhawk/commandpanels/interactives/input/UserInputUtils.java index 2c5f057..29eff7c 100644 --- a/src/me/rockyhawk/commandpanels/interactives/input/UserInputUtils.java +++ b/src/me/rockyhawk/commandpanels/interactives/input/UserInputUtils.java @@ -33,6 +33,14 @@ public class UserInputUtils implements Listener { } playerInput.get(e.getPlayer()).panel.placeholders.addPlaceholder("player-input",e.getMessage()); + + if((playerInput.get(e.getPlayer()).panel.getConfig().getString("max-input-length") != null) && (Integer.parseInt(playerInput.get(e.getPlayer()).panel.getConfig().getString("max-input-length")) != -1) && (e.getMessage().length() > Integer.parseInt(playerInput.get(e.getPlayer()).panel.getConfig().getString("max-input-length")))) { + e.getPlayer().sendMessage(plugin.tex.colour(plugin.tag + playerInput.get(e.getPlayer()).panel.getConfig().getString("custom-messages.input"))); + return; + }else if(e.getMessage().length() > Integer.parseInt(plugin.config.getString("input.max-input-length")) && (Integer.parseInt(plugin.config.getString("input.max-input-length")) != -1)) { + e.getPlayer().sendMessage(plugin.tex.colour(plugin.tag + plugin.config.getString("config.format.input"))); + return; + } //get certain words from the input int c = 0; for(String message : e.getMessage().split("\\s")){