From a87760d3ce6f17d36ad8d069369d84bd50ed2b2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Oliva=20Del=20R=C3=ADo?= <105056947+AdrianOliva2@users.noreply.github.com> Date: Sun, 24 Nov 2024 02:47:36 +0100 Subject: [PATCH 1/2] Add wildcard support for /delhome (#5919) --- .../essentials/commands/Commanddelhome.java | 45 +++++++++++++------ 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/Essentials/src/main/java/com/earth2me/essentials/commands/Commanddelhome.java b/Essentials/src/main/java/com/earth2me/essentials/commands/Commanddelhome.java index 7446bf978..95ce61152 100644 --- a/Essentials/src/main/java/com/earth2me/essentials/commands/Commanddelhome.java +++ b/Essentials/src/main/java/com/earth2me/essentials/commands/Commanddelhome.java @@ -18,6 +18,24 @@ public class Commanddelhome extends EssentialsCommand { super("delhome"); } + private void deleteHome(CommandSource sender, User user, String home) { + final HomeModifyEvent event = new HomeModifyEvent(sender.getUser(), user, home, user.getHome(home), false); + Bukkit.getServer().getPluginManager().callEvent(event); + if (event.isCancelled()) { + if (ess.getSettings().isDebug()) { + ess.getLogger().info("HomeModifyEvent canceled for /delhome execution by " + sender.getDisplayName()); + } + return; + } + + try { + user.delHome(home); + } catch (Exception e) { + sender.sendTl("invalidHome", home); + } + sender.sendTl("deleteHome", home); + } + @Override public void run(final Server server, final CommandSource sender, final String commandLabel, final String[] args) throws Exception { if (args.length < 1) { @@ -45,21 +63,19 @@ public class Commanddelhome extends EssentialsCommand { name = expandedArg[0].toLowerCase(Locale.ENGLISH); } - if (name.equals("bed")) { - throw new TranslatableException("invalidHomeName"); + switch (name) { + case "bed": + throw new TranslatableException("invalidHomeName"); + case "*": + final List homes = user.getHomes(); + for (String home : homes) { + deleteHome(sender, user, home); + } + break; + default: + deleteHome(sender, user, name); + break; } - - final HomeModifyEvent event = new HomeModifyEvent(sender.getUser(), user, name, user.getHome(name), false); - Bukkit.getServer().getPluginManager().callEvent(event); - if (event.isCancelled()) { - if (ess.getSettings().isDebug()) { - ess.getLogger().info("HomeModifyEvent canceled for /delhome execution by " + sender.getDisplayName()); - } - return; - } - - user.delHome(name); - sender.sendTl("deleteHome", name); } @Override @@ -81,6 +97,7 @@ public class Commanddelhome extends EssentialsCommand { return homes; } otherUser.getHomes().forEach(home -> homes.add(namePart + ":" + home)); + homes.add(namePart + ":" + "*"); } } return homes; From 1778bf5ada1afc55d7326ffbfc6ecb9841b311e8 Mon Sep 17 00:00:00 2001 From: Ahmed Waleed <61851106+iiAhmedYT@users.noreply.github.com> Date: Mon, 25 Nov 2024 00:24:03 +0200 Subject: [PATCH 2/2] Respect per player locale for command descriptions (#5972) Co-authored-by: Josh Roy <10731363+JRoy@users.noreply.github.com> --- .../com/earth2me/essentials/Essentials.java | 7 ++++++- .../essentials/commands/Commandhelp.java | 18 +++++++++++++----- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/Essentials/src/main/java/com/earth2me/essentials/Essentials.java b/Essentials/src/main/java/com/earth2me/essentials/Essentials.java index 936f697bb..ad4e47199 100644 --- a/Essentials/src/main/java/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/main/java/com/earth2me/essentials/Essentials.java @@ -154,6 +154,7 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.MissingResourceException; import java.util.Set; import java.util.UUID; import java.util.function.Predicate; @@ -903,7 +904,11 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials { } catch (final NotEnoughArgumentsException ex) { if (getSettings().isVerboseCommandUsages() && !cmd.getUsageStrings().isEmpty()) { sender.sendTl("commandHelpLine1", commandLabel); - sender.sendTl("commandHelpLine2", command.getDescription()); + String description = command.getDescription(); + try { + description = sender.tl(command.getName() + "CommandDescription"); + } catch (MissingResourceException ignored) {} + sender.sendTl("commandHelpLine2", description); sender.sendTl("commandHelpLine3"); for (Map.Entry usage : cmd.getUsageStrings().entrySet()) { sender.sendTl("commandHelpLineUsage", AdventureUtil.parsed(usage.getKey().replace("", commandLabel)), AdventureUtil.parsed(usage.getValue())); diff --git a/Essentials/src/main/java/com/earth2me/essentials/commands/Commandhelp.java b/Essentials/src/main/java/com/earth2me/essentials/commands/Commandhelp.java index 453a35bbc..2df0eb13f 100644 --- a/Essentials/src/main/java/com/earth2me/essentials/commands/Commandhelp.java +++ b/Essentials/src/main/java/com/earth2me/essentials/commands/Commandhelp.java @@ -18,6 +18,7 @@ import java.util.Collections; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.MissingResourceException; public class Commandhelp extends EssentialsCommand { public Commandhelp() { @@ -37,18 +38,25 @@ public class Commandhelp extends EssentialsCommand { final String cmd = pageStr.substring(1); for (final Map.Entry knownCmd : ess.getKnownCommandsProvider().getKnownCommands().entrySet()) { if (knownCmd.getKey().equalsIgnoreCase(cmd)) { + final Command bukkit = knownCmd.getValue(); + final boolean isEssCommand = bukkit instanceof PluginIdentifiableCommand && ((PluginIdentifiableCommand) bukkit).getPlugin().equals(ess); + final IEssentialsCommand essCommand = isEssCommand ? ess.getCommandMap().get(bukkit.getName()) : null; user.sendTl("commandHelpLine1", cmd); - user.sendTl("commandHelpLine2", knownCmd.getValue().getDescription()); - user.sendTl("commandHelpLine4", knownCmd.getValue().getAliases().toString()); + String description = bukkit.getDescription(); + if (essCommand != null) { + try { + description = user.playerTl(bukkit.getName() + "CommandDescription"); + } catch (MissingResourceException ignored) {} + } + user.sendTl("commandHelpLine2", description); + user.sendTl("commandHelpLine4", bukkit.getAliases().toString()); user.sendTl("commandHelpLine3"); - final boolean isEssCommand = knownCmd.getValue() instanceof PluginIdentifiableCommand && ((PluginIdentifiableCommand) knownCmd.getValue()).getPlugin().equals(ess); - final IEssentialsCommand essCommand = isEssCommand ? ess.getCommandMap().get(knownCmd.getValue().getName()) : null; if (essCommand != null && !essCommand.getUsageStrings().isEmpty()) { for (Map.Entry usage : essCommand.getUsageStrings().entrySet()) { user.sendTl("commandHelpLineUsage", AdventureUtil.parsed(usage.getKey().replace("", cmd)), AdventureUtil.parsed(usage.getValue())); } } else { - user.sendMessage(knownCmd.getValue().getUsage()); + user.sendMessage(bukkit.getUsage()); } return; }