From c3250892d8d00231f68c869c569df66ae6cb36f0 Mon Sep 17 00:00:00 2001 From: Risto Lahtela <24460436+Rsl1122@users.noreply.github.com> Date: Tue, 1 Sep 2020 11:22:03 +0300 Subject: [PATCH] Lang implemented for CommandWithSubcommands --- .../djrapitops/plan/commands/PlanCommand.java | 4 ++-- .../commands/use/CommandWithSubcommands.java | 23 +++++++++++-------- .../settings/locale/lang/CommandLang.java | 2 ++ 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/Plan/common/src/main/java/com/djrapitops/plan/commands/PlanCommand.java b/Plan/common/src/main/java/com/djrapitops/plan/commands/PlanCommand.java index 0eb5f5cad..0b96a9da6 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/commands/PlanCommand.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/commands/PlanCommand.java @@ -96,7 +96,7 @@ public class PlanCommand { } public CommandWithSubcommands build() { - CommandWithSubcommands command = CommandWithSubcommands.builder() + CommandWithSubcommands command = CommandWithSubcommands.builder(locale) .alias(commandName) .colorScheme(colors) .subcommand(serverCommand()) @@ -298,7 +298,7 @@ public class PlanCommand { } private Subcommand databaseCommand() { - return CommandWithSubcommands.builder() + return CommandWithSubcommands.builder(locale) .aliases("db", "database") .optionalArgument(locale.getString(HelpLang.ARG_SUBCOMMAND), locale.getString(HelpLang.DESC_ARG_SUBCOMMAND)) .colorScheme(colors) diff --git a/Plan/common/src/main/java/com/djrapitops/plan/commands/use/CommandWithSubcommands.java b/Plan/common/src/main/java/com/djrapitops/plan/commands/use/CommandWithSubcommands.java index a36f96027..d9ac69a34 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/commands/use/CommandWithSubcommands.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/commands/use/CommandWithSubcommands.java @@ -16,6 +16,8 @@ */ package com.djrapitops.plan.commands.use; +import com.djrapitops.plan.settings.locale.Locale; +import com.djrapitops.plan.settings.locale.lang.CommandLang; import com.djrapitops.plan.utilities.java.TriConsumer; import com.djrapitops.plugin.command.ColorScheme; @@ -34,28 +36,31 @@ public class CommandWithSubcommands extends Subcommand { private TriConsumer exceptionHandler; private ColorScheme colors; - private CommandWithSubcommands() { + private final Locale locale; + + private CommandWithSubcommands(Locale locale) { + this.locale = locale; subcommands = new ArrayList<>(); } - public static Builder builder() { - return new Builder(); + public static Builder builder(Locale locale) { + return new Builder(locale); } public void onHelp(CMDSender sender, Arguments arguments) { List hasPermissionFor = subcommands.stream().filter(sender::hasAllPermissionsFor).collect(Collectors.toList()); sender.buildMessage() - .addPart("Header" /*TODO*/) + .addPart(locale.getString(CommandLang.HEADER_HELP, getPrimaryAlias())) .newLine().newLine() .apply(new HelpFormatter(sender, colors, getPrimaryAlias(), hasPermissionFor)::addSubcommands) .newLine().newLine() - .addPart("Footer" /*TODO*/) + .addPart(locale.getString(CommandLang.FOOTER_HELP)) .send(); } public void onCommand(CMDSender sender, Arguments arguments) { if (sender.isMissingPermissionsFor(this)) { - sender.send(/* TODO */"NO PERMISSION"); + sender.send(locale.getString(CommandLang.FAIL_NO_PERMISSION) + " " + getRequiredPermissions()); return; } try { @@ -75,7 +80,7 @@ public class CommandWithSubcommands extends Subcommand { for (Subcommand subcommand : subcommands) { if (subcommand.getAliases().contains(alias)) { if (sender.isMissingPermissionsFor(subcommand)) { - sender.send(/* TODO */"NO PERMISSION"); + sender.send(locale.getString(CommandLang.FAIL_NO_PERMISSION) + " " + subcommand.getRequiredPermissions()); continue; } subcommand.getExecutor().accept(sender, arguments.removeFirst()); @@ -114,8 +119,8 @@ public class CommandWithSubcommands extends Subcommand { public static class Builder extends Subcommand.Builder { private final CommandWithSubcommands command; - private Builder() { - this(new CommandWithSubcommands()); + private Builder(Locale locale) { + this(new CommandWithSubcommands(locale)); } private Builder(CommandWithSubcommands command) { diff --git a/Plan/common/src/main/java/com/djrapitops/plan/settings/locale/lang/CommandLang.java b/Plan/common/src/main/java/com/djrapitops/plan/settings/locale/lang/CommandLang.java index 1cce4273c..d9abd079a 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/settings/locale/lang/CommandLang.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/settings/locale/lang/CommandLang.java @@ -71,6 +71,8 @@ public enum CommandLang implements Lang { LINK_JSON("Cmd - Link Player JSON", "Player json: "), LINK_REGISTER("Cmd - Link Register", "Register page: "), + HEADER_HELP("Cmd Header - Help", "> §2/${0} Help"), + FOOTER_HELP("Cmd Footer - Help", "> §7Hover over command or arguments to learn more about them."), HEADER_SEARCH("Cmd Header - Search", "> §2${0} Results for §f${1}§2:"), HEADER_ANALYSIS("Cmd Header - Analysis", "> §2Analysis Results"), HEADER_INFO("Cmd Header - Info", "> §2Player Analytics"),