From 3c979a9ef24dc62e6611832cc97ef25f77afec2d Mon Sep 17 00:00:00 2001 From: Osip Fatkullin Date: Fri, 20 Jul 2018 02:43:17 +0300 Subject: [PATCH] Drop trivial Guava usages (#142) #120, #127 --- .gitignore | 1 + .../BukkitCommandExecutionContext.java | 1 - .../co/aikar/commands/BukkitRootCommand.java | 2 -- .../BungeeCommandExecutionContext.java | 1 - .../main/java/co/aikar/commands/ACFUtil.java | 12 ++++++++ .../java/co/aikar/commands/Annotations.java | 16 +++++----- .../java/co/aikar/commands/BaseCommand.java | 15 ++++------ .../commands/CommandCompletionContext.java | 10 +++---- .../co/aikar/commands/CommandCompletions.java | 22 +++++++------- .../co/aikar/commands/CommandConditions.java | 4 +-- .../co/aikar/commands/CommandContexts.java | 4 +-- .../commands/CommandExecutionContext.java | 2 -- .../co/aikar/commands/CommandManager.java | 18 +++++------ .../co/aikar/commands/CommandParameter.java | 4 +-- .../co/aikar/commands/ConditionContext.java | 5 ++-- .../main/java/co/aikar/commands/Locales.java | 4 +-- .../co/aikar/commands/RegisteredCommand.java | 18 +++++------ .../java/co/aikar/commands/RootCommand.java | 2 -- .../co/aikar/commands/ShowCommandHelp.java | 5 ++-- .../ApacheCommonsExceptionUtil.java | 30 +++++++++---------- .../java/co/aikar/acfexample/ACFExample.java | 9 +++--- .../aikar/commands/JDACommandCompletions.java | 6 ++-- .../co/aikar/commands/JDACommandManager.java | 6 ++-- .../PaperAsyncTabCompleteHandler.java | 15 ++++------ .../SpongeCommandExecutionContext.java | 1 - .../aikar/commands/SpongeCommandIssuer.java | 1 - 26 files changed, 103 insertions(+), 111 deletions(-) diff --git a/.gitignore b/.gitignore index 5ea9aecf..2f44361f 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ .idea/kotlinc.xml .idea/modules.xml .idea/usage.statistics.xml +.idea/checkstyle-idea.xml **/*.iml diff --git a/bukkit/src/main/java/co/aikar/commands/BukkitCommandExecutionContext.java b/bukkit/src/main/java/co/aikar/commands/BukkitCommandExecutionContext.java index 66799e8c..284bf34d 100644 --- a/bukkit/src/main/java/co/aikar/commands/BukkitCommandExecutionContext.java +++ b/bukkit/src/main/java/co/aikar/commands/BukkitCommandExecutionContext.java @@ -26,7 +26,6 @@ package co.aikar.commands; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import java.lang.reflect.Parameter; import java.util.List; import java.util.Map; diff --git a/bukkit/src/main/java/co/aikar/commands/BukkitRootCommand.java b/bukkit/src/main/java/co/aikar/commands/BukkitRootCommand.java index bef40a29..b81c321b 100644 --- a/bukkit/src/main/java/co/aikar/commands/BukkitRootCommand.java +++ b/bukkit/src/main/java/co/aikar/commands/BukkitRootCommand.java @@ -23,8 +23,6 @@ package co.aikar.commands; -import co.aikar.commands.annotation.Description; -import co.aikar.commands.annotation.Syntax; import com.google.common.collect.HashMultimap; import com.google.common.collect.SetMultimap; import org.bukkit.command.Command; diff --git a/bungee/src/main/java/co/aikar/commands/BungeeCommandExecutionContext.java b/bungee/src/main/java/co/aikar/commands/BungeeCommandExecutionContext.java index 746e1f8c..698935da 100644 --- a/bungee/src/main/java/co/aikar/commands/BungeeCommandExecutionContext.java +++ b/bungee/src/main/java/co/aikar/commands/BungeeCommandExecutionContext.java @@ -26,7 +26,6 @@ package co.aikar.commands; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.connection.ProxiedPlayer; -import java.lang.reflect.Parameter; import java.util.List; import java.util.Map; diff --git a/core/src/main/java/co/aikar/commands/ACFUtil.java b/core/src/main/java/co/aikar/commands/ACFUtil.java index 3e6cc071..ebd1af8d 100644 --- a/core/src/main/java/co/aikar/commands/ACFUtil.java +++ b/core/src/main/java/co/aikar/commands/ACFUtil.java @@ -35,6 +35,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Random; +import java.util.function.Consumer; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -576,6 +577,17 @@ public final class ACFUtil { throw (T) t; } + public static List preformOnImmutable(List list, Consumer> action) { + try { + action.accept(list); + } catch (UnsupportedOperationException ex) { + list = new ArrayList<>(list); + action.accept(list); + } + + return list; + } + private static class ApplyModifierToNumber { private String num; private boolean suffixes; diff --git a/core/src/main/java/co/aikar/commands/Annotations.java b/core/src/main/java/co/aikar/commands/Annotations.java index 7821f28e..6e377f88 100644 --- a/core/src/main/java/co/aikar/commands/Annotations.java +++ b/core/src/main/java/co/aikar/commands/Annotations.java @@ -33,17 +33,17 @@ import java.util.Map; @SuppressWarnings("TypeParameterExplicitlyExtendsObject") class Annotations extends AnnotationLookups { - public static int NOTHING = 0; - public static int REPLACEMENTS = 1; - public static int LOWERCASE = 1 << 1; - public static int UPPERCASE = 1 << 2; - public static int NO_EMPTY = 1 << 3; - public static int DEFAULT_EMPTY = 1 << 4; + public static final int NOTHING = 0; + public static final int REPLACEMENTS = 1; + public static final int LOWERCASE = 1 << 1; + public static final int UPPERCASE = 1 << 2; + public static final int NO_EMPTY = 1 << 3; + public static final int DEFAULT_EMPTY = 1 << 4; private final M manager; - private Map, Method> valueMethods = new IdentityHashMap<>(); - private Map, Void> noValueAnnotations = new IdentityHashMap<>(); + private final Map, Method> valueMethods = new IdentityHashMap<>(); + private final Map, Void> noValueAnnotations = new IdentityHashMap<>(); Annotations(M manager) { this.manager = manager; diff --git a/core/src/main/java/co/aikar/commands/BaseCommand.java b/core/src/main/java/co/aikar/commands/BaseCommand.java index e757da4f..dd46fab0 100644 --- a/core/src/main/java/co/aikar/commands/BaseCommand.java +++ b/core/src/main/java/co/aikar/commands/BaseCommand.java @@ -35,13 +35,8 @@ import co.aikar.commands.annotation.Subcommand; import co.aikar.commands.annotation.UnknownHandler; import co.aikar.commands.apachecommonslang.ApacheCommonsLangUtil; import com.google.common.collect.HashMultimap; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import com.google.common.collect.SetMultimap; -import com.google.common.collect.Sets; import org.jetbrains.annotations.Nullable; import java.lang.reflect.Constructor; @@ -95,7 +90,7 @@ public abstract class BaseCommand { /** * A map of flags to pass to Context Resolution for every parameter of the type. This is like an automatic @Flags on each. */ - final Map, String> contextFlags = Maps.newHashMap(); + final Map, String> contextFlags = new HashMap<>(); /** * What method was annoated with {@link PreCommand} to execute before commands. @@ -653,7 +648,7 @@ public abstract class BaseCommand { if (checkPrecommand(commandOperationContext, cmd, issuer, args)) { return; } - List sargs = Lists.newArrayList(args); + List sargs = Arrays.asList(args); cmd.invoke(issuer, sargs, commandOperationContext); } else { issuer.sendMessage(MessageType.ERROR, MessageKeys.PERMISSION_DENIED); @@ -780,7 +775,7 @@ public abstract class BaseCommand { */ private List completeCommand(CommandIssuer issuer, RegisteredCommand cmd, String[] args, String commandLabel, boolean isAsync) { if (!cmd.hasPermission(issuer) || args.length > cmd.consumeInputResolvers || args.length == 0 || cmd.complete == null) { - return ImmutableList.of(); + return Collections.emptyList(); } List cmds = manager.getCommandCompletions().of(cmd, issuer, args, isAsync); @@ -949,9 +944,9 @@ public abstract class BaseCommand { public Set getRequiredPermissions() { if (this.permission == null || this.permission.isEmpty()) { - return ImmutableSet.of(); + return Collections.emptySet(); } - return Sets.newHashSet(ACFPatterns.COMMA.split(this.permission)); + return new HashSet<>(Arrays.asList(ACFPatterns.COMMA.split(this.permission))); } public boolean requiresPermission(String permission) { diff --git a/core/src/main/java/co/aikar/commands/CommandCompletionContext.java b/core/src/main/java/co/aikar/commands/CommandCompletionContext.java index 72cf4cad..bb982c23 100644 --- a/core/src/main/java/co/aikar/commands/CommandCompletionContext.java +++ b/core/src/main/java/co/aikar/commands/CommandCompletionContext.java @@ -23,10 +23,8 @@ package co.aikar.commands; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; - -import java.lang.reflect.Parameter; +import java.util.Arrays; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -35,7 +33,7 @@ public class CommandCompletionContext { protected final I issuer; private final String input; private final String config; - private final Map configs = Maps.newHashMap(); + private final Map configs = new HashMap<>(); private final List args; CommandCompletionContext(RegisteredCommand command, I issuer, String input, String config, String[] args) { @@ -53,7 +51,7 @@ public class CommandCompletionContext { this.config = null; } - this.args = Lists.newArrayList(args); + this.args = Arrays.asList(args); } public Map getConfigs() { diff --git a/core/src/main/java/co/aikar/commands/CommandCompletions.java b/core/src/main/java/co/aikar/commands/CommandCompletions.java index 637aa75b..f901fa71 100644 --- a/core/src/main/java/co/aikar/commands/CommandCompletions.java +++ b/core/src/main/java/co/aikar/commands/CommandCompletions.java @@ -23,11 +23,12 @@ package co.aikar.commands; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; import org.jetbrains.annotations.NotNull; +import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -44,11 +45,11 @@ public class CommandCompletions { public CommandCompletions(CommandManager manager) { this.manager = manager; - registerAsyncCompletion("nothing", c -> ImmutableList.of()); + registerAsyncCompletion("nothing", c -> Collections.emptyList()); registerAsyncCompletion("range", (c) -> { String config = c.getConfig(); if (config == null) { - return ImmutableList.of(); + return Collections.emptyList(); } final String[] ranges = ACFPatterns.DASH.split(config); int start; @@ -62,7 +63,8 @@ public class CommandCompletions { } return IntStream.rangeClosed(start, end).mapToObj(Integer::toString).collect(Collectors.toList()); }); - registerAsyncCompletion("timeunits", (c) -> ImmutableList.of("minutes", "hours", "days", "weeks", "months", "years")); + List timeunits = Arrays.asList("minutes", "hours", "days", "weeks", "months", "years"); + registerAsyncCompletion("timeunits", (c) -> timeunits); } /** @@ -117,7 +119,7 @@ public class CommandCompletions { * @return */ public CommandCompletionHandler registerStaticCompletion(String id, String[] completions) { - return registerStaticCompletion(id, Lists.newArrayList(completions)); + return registerStaticCompletion(id, Arrays.asList(completions)); } /** @@ -178,7 +180,7 @@ public class CommandCompletions { completion = completions[completions.length - 1]; } if (completion == null) { - return ImmutableList.of(input); + return Collections.singletonList(input); } return getCompletionValues(cmd, sender, completion, args, isAsync); @@ -187,7 +189,7 @@ public class CommandCompletions { List getCompletionValues(RegisteredCommand command, CommandIssuer sender, String completion, String[] args, boolean isAsync) { completion = manager.getCommandReplacements().replace(completion); - List allCompletions = Lists.newArrayList(); + List allCompletions = new ArrayList<>(); String input = args.length > 0 ? args[args.length - 1] : ""; for (String value : ACFPatterns.PIPE.split(completion)) { @@ -215,10 +217,10 @@ public class CommandCompletions { } catch (CommandCompletionTextLookupException ignored) { // This should only happen if some other feedback error occured. } catch (Exception e) { - command.handleException(sender, Lists.newArrayList(args), e); + command.handleException(sender, Arrays.asList(args), e); } // Something went wrong in lookup, fall back to input - return ImmutableList.of(input); + return Collections.singletonList(input); } else { // Plaintext value allCompletions.add(value); diff --git a/core/src/main/java/co/aikar/commands/CommandConditions.java b/core/src/main/java/co/aikar/commands/CommandConditions.java index 0d831cb5..7916fa88 100644 --- a/core/src/main/java/co/aikar/commands/CommandConditions.java +++ b/core/src/main/java/co/aikar/commands/CommandConditions.java @@ -24,9 +24,9 @@ package co.aikar.commands; import co.aikar.util.Table; -import com.google.common.collect.Maps; import org.jetbrains.annotations.NotNull; +import java.util.HashMap; import java.util.Map; @SuppressWarnings("BooleanMethodIsAlwaysInverted") // No IDEA, you are wrong @@ -36,7 +36,7 @@ public class CommandConditions < CC extends ConditionContext > { private CommandManager manager; - private Map> conditions = Maps.newHashMap(); + private Map> conditions = new HashMap<>(); private Table, String, ParameterCondition> paramConditions = new Table<>(); CommandConditions(CommandManager manager) { diff --git a/core/src/main/java/co/aikar/commands/CommandContexts.java b/core/src/main/java/co/aikar/commands/CommandContexts.java index 8649fbce..2f655910 100644 --- a/core/src/main/java/co/aikar/commands/CommandContexts.java +++ b/core/src/main/java/co/aikar/commands/CommandContexts.java @@ -30,17 +30,17 @@ import co.aikar.commands.contexts.ContextResolver; import co.aikar.commands.contexts.IssuerAwareContextResolver; import co.aikar.commands.contexts.IssuerOnlyContextResolver; import co.aikar.commands.contexts.OptionalContextResolver; -import com.google.common.collect.Maps; import org.jetbrains.annotations.NotNull; import java.math.BigDecimal; import java.math.BigInteger; +import java.util.HashMap; import java.util.List; import java.util.Map; @SuppressWarnings("WeakerAccess") public class CommandContexts> { - protected final Map, ContextResolver> contextMap = Maps.newHashMap(); + protected final Map, ContextResolver> contextMap = new HashMap<>(); protected final CommandManager manager; CommandContexts(CommandManager manager) { diff --git a/core/src/main/java/co/aikar/commands/CommandExecutionContext.java b/core/src/main/java/co/aikar/commands/CommandExecutionContext.java index 04f95a39..958b6039 100644 --- a/core/src/main/java/co/aikar/commands/CommandExecutionContext.java +++ b/core/src/main/java/co/aikar/commands/CommandExecutionContext.java @@ -23,8 +23,6 @@ package co.aikar.commands; -import co.aikar.commands.contexts.ContextResolver; - import java.lang.annotation.Annotation; import java.lang.reflect.Parameter; import java.util.List; diff --git a/core/src/main/java/co/aikar/commands/CommandManager.java b/core/src/main/java/co/aikar/commands/CommandManager.java index d15efdbc..26201840 100644 --- a/core/src/main/java/co/aikar/commands/CommandManager.java +++ b/core/src/main/java/co/aikar/commands/CommandManager.java @@ -26,17 +26,16 @@ package co.aikar.commands; import co.aikar.commands.annotation.Dependency; import co.aikar.locales.MessageKeyProvider; import co.aikar.util.Table; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; import org.jetbrains.annotations.NotNull; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.IdentityHashMap; import java.util.List; import java.util.Locale; @@ -45,6 +44,7 @@ import java.util.Objects; import java.util.Set; import java.util.Stack; import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; @SuppressWarnings("WeakerAccess") @@ -75,15 +75,15 @@ public abstract class CommandManager < protected CommandHelpFormatter helpFormatter = new CommandHelpFormatter(this); protected boolean usePerIssuerLocale = false; - protected List> localeChangedCallbacks = Lists.newArrayList(); - protected Set supportedLanguages = Sets.newHashSet(Locales.ENGLISH, Locales.GERMAN, Locales.SPANISH, Locales.CZECH, Locales.PORTUGUESE, Locales.SWEDISH, Locales.NORWEGIAN_BOKMAAL, Locales.NORWEGIAN_NYNORSK, Locales.RUSSIAN); + protected List> localeChangedCallbacks = new ArrayList<>(); + protected Set supportedLanguages = new HashSet<>(Arrays.asList(Locales.ENGLISH, Locales.GERMAN, Locales.SPANISH, Locales.CZECH, Locales.PORTUGUESE, Locales.SWEDISH, Locales.NORWEGIAN_BOKMAAL, Locales.NORWEGIAN_NYNORSK, Locales.RUSSIAN)); protected Map formatters = new IdentityHashMap<>(); protected MF defaultFormatter; protected int defaultHelpPerPage = 10; - protected Map issuersLocale = Maps.newConcurrentMap(); + protected Map issuersLocale = new ConcurrentHashMap<>(); - private Set unstableAPIs = Sets.newHashSet(); + private Set unstableAPIs = new HashSet<>(); private Annotations annotations = new Annotations<>(this); @@ -287,7 +287,7 @@ public abstract class CommandManager < } public abstract Collection getRegisteredRootCommands(); - + public RegisteredCommand createRegisteredCommand(BaseCommand command, String cmdName, Method method, String prefSubCommand) { return new RegisteredCommand(command, cmdName, method, prefSubCommand); } diff --git a/core/src/main/java/co/aikar/commands/CommandParameter.java b/core/src/main/java/co/aikar/commands/CommandParameter.java index 5493063a..029ff776 100644 --- a/core/src/main/java/co/aikar/commands/CommandParameter.java +++ b/core/src/main/java/co/aikar/commands/CommandParameter.java @@ -34,9 +34,9 @@ import co.aikar.commands.contexts.ContextResolver; import co.aikar.commands.contexts.IssuerAwareContextResolver; import co.aikar.commands.contexts.IssuerOnlyContextResolver; import co.aikar.commands.contexts.OptionalContextResolver; -import com.google.common.collect.Maps; import java.lang.reflect.Parameter; +import java.util.HashMap; import java.util.Map; public class CommandParameter > { @@ -101,7 +101,7 @@ public class CommandParameter (); String flags = annotations.getAnnotationValue(param, Flags.class, Annotations.REPLACEMENTS | Annotations.NO_EMPTY); if (flags != null) { parseFlags(flags); diff --git a/core/src/main/java/co/aikar/commands/ConditionContext.java b/core/src/main/java/co/aikar/commands/ConditionContext.java index 0c2bda31..309d2525 100644 --- a/core/src/main/java/co/aikar/commands/ConditionContext.java +++ b/core/src/main/java/co/aikar/commands/ConditionContext.java @@ -23,8 +23,7 @@ package co.aikar.commands; -import com.google.common.collect.Maps; - +import java.util.HashMap; import java.util.Map; public class ConditionContext { @@ -36,7 +35,7 @@ public class ConditionContext { ConditionContext(I issuer, String config) { this.issuer = issuer; this.config = config; - this.configs = Maps.newHashMap(); + this.configs = new HashMap<>(); if (config != null) { for (String s : ACFPatterns.COMMA.split(config)) { String[] v = ACFPatterns.EQUALS.split(s, 2); diff --git a/core/src/main/java/co/aikar/commands/Locales.java b/core/src/main/java/co/aikar/commands/Locales.java index cb3cc2a6..287e0a99 100644 --- a/core/src/main/java/co/aikar/commands/Locales.java +++ b/core/src/main/java/co/aikar/commands/Locales.java @@ -28,11 +28,11 @@ import co.aikar.locales.MessageKey; import co.aikar.locales.MessageKeyProvider; import com.google.common.collect.HashMultimap; import com.google.common.collect.SetMultimap; -import com.google.common.collect.Sets; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; @@ -108,7 +108,7 @@ public class Locales { Set supportedLanguages = manager.getSupportedLanguages(); for (Locale locale : supportedLanguages) { for(SetMultimap localeData: this.loadedBundles.values()) { - for (String bundleName : Sets.newHashSet(localeData.keys())) { + for (String bundleName : new HashSet<>(localeData.keys())) { addMessageBundle(bundleName, locale); } } diff --git a/core/src/main/java/co/aikar/commands/RegisteredCommand.java b/core/src/main/java/co/aikar/commands/RegisteredCommand.java index 8fceea97..a284398f 100644 --- a/core/src/main/java/co/aikar/commands/RegisteredCommand.java +++ b/core/src/main/java/co/aikar/commands/RegisteredCommand.java @@ -32,17 +32,17 @@ import co.aikar.commands.annotation.HelpSearchTags; import co.aikar.commands.annotation.Private; import co.aikar.commands.annotation.Syntax; import co.aikar.commands.contexts.ContextResolver; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; import org.jetbrains.annotations.Nullable; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Parameter; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -196,9 +196,9 @@ public class RegisteredCommand resolveContexts(CommandIssuer sender, List args, int argLimit) throws InvalidCommandArgument { - args = Lists.newArrayList(args); + args = new ArrayList<>(args); String[] origArgs = args.toArray(new String[args.size()]); - Map passedArgs = Maps.newLinkedHashMap(); + Map passedArgs = new LinkedHashMap<>(); int remainingRequired = requiredResolvers; CommandOperationContext opContext = CommandManager.getCurrentCommandOperationContext(); for (int i = 0; i < parameters.length && i < argLimit; i++) { @@ -239,7 +239,7 @@ public class RegisteredCommand possible = Sets.newHashSet(); + Set possible = new HashSet<>(); CommandCompletions commandCompletions = this.manager.getCommandCompletions(); for (String s : parameter.getValues()) { //noinspection unchecked @@ -283,9 +283,9 @@ public class RegisteredCommand getRequiredPermissions() { if (this.permission == null || this.permission.isEmpty()) { - return ImmutableSet.of(); + return Collections.emptySet(); } - return Sets.newHashSet(ACFPatterns.COMMA.split(this.permission)); + return new HashSet<>(Arrays.asList(ACFPatterns.COMMA.split(this.permission))); } public boolean requiresPermission(String permission) { diff --git a/core/src/main/java/co/aikar/commands/RootCommand.java b/core/src/main/java/co/aikar/commands/RootCommand.java index ab018a7f..d86ce297 100644 --- a/core/src/main/java/co/aikar/commands/RootCommand.java +++ b/core/src/main/java/co/aikar/commands/RootCommand.java @@ -23,8 +23,6 @@ package co.aikar.commands; -import co.aikar.commands.annotation.Description; -import co.aikar.commands.annotation.Syntax; import co.aikar.commands.apachecommonslang.ApacheCommonsLangUtil; import com.google.common.collect.SetMultimap; diff --git a/core/src/main/java/co/aikar/commands/ShowCommandHelp.java b/core/src/main/java/co/aikar/commands/ShowCommandHelp.java index 8f9d1172..e3c5cbd5 100644 --- a/core/src/main/java/co/aikar/commands/ShowCommandHelp.java +++ b/core/src/main/java/co/aikar/commands/ShowCommandHelp.java @@ -23,8 +23,7 @@ package co.aikar.commands; -import com.google.common.collect.Lists; - +import java.util.ArrayList; import java.util.List; public class ShowCommandHelp extends InvalidCommandArgument { @@ -38,6 +37,6 @@ public class ShowCommandHelp extends InvalidCommandArgument { } ShowCommandHelp(List args) { this(true); - this.searchArgs = Lists.newArrayList(args); + this.searchArgs = new ArrayList<>(args); } } diff --git a/core/src/main/java/co/aikar/commands/apachecommonslang/ApacheCommonsExceptionUtil.java b/core/src/main/java/co/aikar/commands/apachecommonslang/ApacheCommonsExceptionUtil.java index 2c18f61f..565d03d0 100644 --- a/core/src/main/java/co/aikar/commands/apachecommonslang/ApacheCommonsExceptionUtil.java +++ b/core/src/main/java/co/aikar/commands/apachecommonslang/ApacheCommonsExceptionUtil.java @@ -88,7 +88,7 @@ public class ApacheCommonsExceptionUtil { } THROWABLE_CAUSE_METHOD = causeMethod; try { - causeMethod = Throwable.class.getMethod("initCause", new Class[]{Throwable.class}); + causeMethod = Throwable.class.getMethod("initCause", Throwable.class); } catch (Exception e) { causeMethod = null; } @@ -185,7 +185,7 @@ public class ApacheCommonsExceptionUtil { } } try { - Method setCauseMethod = target.getClass().getMethod("setCause", new Class[]{Throwable.class}); + Method setCauseMethod = target.getClass().getMethod("setCause", Throwable.class); setCauseMethod.invoke(target, causeArgs); modifiedTarget = true; } catch (NoSuchMethodException ignored) { @@ -342,7 +342,7 @@ public class ApacheCommonsExceptionUtil { */ private static Throwable getCauseUsingWellKnownTypes(Throwable throwable) { if (throwable instanceof Nestable) { - return ((Nestable) throwable).getCause(); + return throwable.getCause(); } else if (throwable instanceof SQLException) { return ((SQLException) throwable).getNextException(); } else if (throwable instanceof InvocationTargetException) { @@ -877,7 +877,7 @@ public class ApacheCommonsExceptionUtil { * * @return throwable that caused the original exception */ - public Throwable getCause(); + Throwable getCause(); /** * Returns the error message of this and any nested @@ -885,7 +885,7 @@ public class ApacheCommonsExceptionUtil { * * @return the error message */ - public String getMessage(); + String getMessage(); /** * Returns the error message of the Throwable in the chain @@ -899,7 +899,7 @@ public class ApacheCommonsExceptionUtil { * negative or not less than the count of Throwables in the * chain */ - public String getMessage(int index); + String getMessage(int index); /** * Returns the error message of this and any nested Throwables @@ -911,7 +911,7 @@ public class ApacheCommonsExceptionUtil { * * @return the error messages */ - public String[] getMessages(); + String[] getMessages(); /** * Returns the Throwable in the chain of @@ -924,7 +924,7 @@ public class ApacheCommonsExceptionUtil { * negative or not less than the count of Throwables in the * chain */ - public Throwable getThrowable(int index); + Throwable getThrowable(int index); /** * Returns the number of nested Throwables represented by @@ -932,7 +932,7 @@ public class ApacheCommonsExceptionUtil { * * @return the throwable count */ - public int getThrowableCount(); + int getThrowableCount(); /** * Returns this Nestable and any nested Throwables @@ -941,7 +941,7 @@ public class ApacheCommonsExceptionUtil { * * @return the Throwables */ - public Throwable[] getThrowables(); + Throwable[] getThrowables(); /** * Returns the index, numbered from 0, of the first occurrence of the @@ -957,7 +957,7 @@ public class ApacheCommonsExceptionUtil { * @return index of the first occurrence of the type in the chain, or -1 if * the type is not found */ - public int indexOfThrowable(Class type); + int indexOfThrowable(Class type); /** * Returns the index, numbered from 0, of the first Throwable @@ -979,7 +979,7 @@ public class ApacheCommonsExceptionUtil { * is negative or not less than the count of Throwables in the * chain */ - public int indexOfThrowable(Class type, int fromIndex); + int indexOfThrowable(Class type, int fromIndex); /** * Prints the stack trace of this exception to the specified print @@ -988,7 +988,7 @@ public class ApacheCommonsExceptionUtil { * * @param out PrintWriter to use for output. */ - public void printStackTrace(PrintWriter out); + void printStackTrace(PrintWriter out); /** * Prints the stack trace of this exception to the specified print @@ -997,7 +997,7 @@ public class ApacheCommonsExceptionUtil { * * @param out PrintStream to use for output. */ - public void printStackTrace(PrintStream out); + void printStackTrace(PrintStream out); /** * Prints the stack trace for this exception only--root cause not @@ -1008,7 +1008,7 @@ public class ApacheCommonsExceptionUtil { * * @param out The writer to use. */ - public void printPartialStackTrace(PrintWriter out); + void printPartialStackTrace(PrintWriter out); } } diff --git a/example/src/main/java/co/aikar/acfexample/ACFExample.java b/example/src/main/java/co/aikar/acfexample/ACFExample.java index 48c9f709..ad647b56 100644 --- a/example/src/main/java/co/aikar/acfexample/ACFExample.java +++ b/example/src/main/java/co/aikar/acfexample/ACFExample.java @@ -27,9 +27,10 @@ import co.aikar.commands.BukkitCommandManager; import co.aikar.commands.ConditionFailedException; import co.aikar.commands.MessageKeys; import co.aikar.commands.MessageType; -import com.google.common.collect.Lists; import org.bukkit.plugin.java.JavaPlugin; +import java.util.Arrays; + public final class ACFExample extends JavaPlugin { private static ACFExample plugin; @@ -64,9 +65,9 @@ public final class ACFExample extends JavaPlugin { SomeObject.getContextResolver()); // 4: Register Command Completions - this will be accessible with @CommandCompletion("@test") - commandManager.getCommandCompletions().registerAsyncCompletion("test", c -> ( - Lists.newArrayList("foo", "bar", "baz") - )); + commandManager.getCommandCompletions().registerAsyncCompletion("test", c -> { + Arrays.asList("foo", "bar", "baz") + }); // 5: Register Command Conditions commandManager.getCommandConditions().addCondition(SomeObject.class, "limits", (c, exec, value) -> { diff --git a/jda/src/main/java/co/aikar/commands/JDACommandCompletions.java b/jda/src/main/java/co/aikar/commands/JDACommandCompletions.java index 481eb56a..02e0b95d 100644 --- a/jda/src/main/java/co/aikar/commands/JDACommandCompletions.java +++ b/jda/src/main/java/co/aikar/commands/JDACommandCompletions.java @@ -1,8 +1,8 @@ package co.aikar.commands; -import com.google.common.collect.ImmutableList; import org.jetbrains.annotations.NotNull; +import java.util.Collections; import java.util.List; public class JDACommandCompletions extends CommandCompletions> { @@ -32,11 +32,11 @@ public class JDACommandCompletions extends CommandCompletions of(RegisteredCommand command, CommandIssuer sender, String[] args, boolean isAsync) { - return ImmutableList.of(); + return Collections.emptyList(); } @Override List getCompletionValues(RegisteredCommand command, CommandIssuer sender, String completion, String[] args, boolean isAsync) { - return ImmutableList.of(); + return Collections.emptyList(); } } diff --git a/jda/src/main/java/co/aikar/commands/JDACommandManager.java b/jda/src/main/java/co/aikar/commands/JDACommandManager.java index 0d5558b2..6b962dd1 100644 --- a/jda/src/main/java/co/aikar/commands/JDACommandManager.java +++ b/jda/src/main/java/co/aikar/commands/JDACommandManager.java @@ -1,7 +1,6 @@ package co.aikar.commands; import co.aikar.commands.apachecommonslang.ApacheCommonsExceptionUtil; -import com.google.common.collect.Maps; import net.dv8tion.jda.core.AccountType; import net.dv8tion.jda.core.JDA; import net.dv8tion.jda.core.entities.ChannelType; @@ -10,6 +9,7 @@ import net.dv8tion.jda.core.events.message.MessageReceivedEvent; import org.jetbrains.annotations.NotNull; import java.util.Arrays; +import java.util.HashMap; import java.util.Collection; import java.util.Collections; import java.util.List; @@ -30,7 +30,7 @@ public class JDACommandManager extends CommandManager< protected JDACommandCompletions completions; protected JDACommandContexts contexts; protected JDALocales locales; - protected Map commands = Maps.newHashMap(); + protected Map commands = new HashMap<>(); private Logger logger; private CommandConfig defaultConfig; private CommandConfigProvider configProvider; @@ -183,7 +183,7 @@ public class JDACommandManager extends CommandManager< public RootCommand createRootCommand(String cmd) { return new JDARootCommand(this, cmd); } - + @Override public Collection getRegisteredRootCommands() { return Collections.unmodifiableCollection(commands.values()); diff --git a/paper/src/main/java/co/aikar/commands/PaperAsyncTabCompleteHandler.java b/paper/src/main/java/co/aikar/commands/PaperAsyncTabCompleteHandler.java index 1554dca6..d1f881d3 100644 --- a/paper/src/main/java/co/aikar/commands/PaperAsyncTabCompleteHandler.java +++ b/paper/src/main/java/co/aikar/commands/PaperAsyncTabCompleteHandler.java @@ -24,12 +24,10 @@ package co.aikar.commands; import com.destroystokyo.paper.event.server.AsyncTabCompleteEvent; -import com.google.common.collect.ImmutableList; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.server.TabCompleteEvent; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -65,10 +63,8 @@ class PaperAsyncTabCompleteHandler implements Listener { BukkitCommandIssuer issuer = this.manager.getCommandIssuer(event.getSender()); List results = cmd.tabComplete(issuer, commandLabel, args, true); - if (event.getCompletions() instanceof ImmutableList) { - event.setCompletions(new ArrayList<>(event.getCompletions())); - } - event.getCompletions().addAll(results); + event.setCompletions(ACFUtil.preformOnImmutable( + event.getCompletions(), (list) -> list.addAll(results))); event.setHandled(true); } catch (Exception ignored) {} } @@ -90,10 +86,9 @@ class PaperAsyncTabCompleteHandler implements Listener { if (rootCommand != null) { args = args.length > 1 ? Arrays.copyOfRange(args, 1, args.length) : new String[]{""}; BukkitCommandIssuer issuer = this.manager.getCommandIssuer(event.getSender()); - if (event.getCompletions() instanceof ImmutableList) { - event.setCompletions(new ArrayList<>(event.getCompletions())); - } - event.getCompletions().addAll(rootCommand.getTabCompletions(issuer, commandLabel, args, true)); + List tabCompletions = rootCommand.getTabCompletions(issuer, commandLabel, args, true); + event.setCompletions(ACFUtil.preformOnImmutable( + event.getCompletions(), (list) -> list.addAll(tabCompletions))); } } } diff --git a/sponge/src/main/java/co/aikar/commands/SpongeCommandExecutionContext.java b/sponge/src/main/java/co/aikar/commands/SpongeCommandExecutionContext.java index d06f70fe..eb5f2009 100644 --- a/sponge/src/main/java/co/aikar/commands/SpongeCommandExecutionContext.java +++ b/sponge/src/main/java/co/aikar/commands/SpongeCommandExecutionContext.java @@ -26,7 +26,6 @@ package co.aikar.commands; import org.spongepowered.api.command.CommandSource; import org.spongepowered.api.entity.living.player.Player; -import java.lang.reflect.Parameter; import java.util.List; import java.util.Map; diff --git a/sponge/src/main/java/co/aikar/commands/SpongeCommandIssuer.java b/sponge/src/main/java/co/aikar/commands/SpongeCommandIssuer.java index f6165037..18d4c622 100644 --- a/sponge/src/main/java/co/aikar/commands/SpongeCommandIssuer.java +++ b/sponge/src/main/java/co/aikar/commands/SpongeCommandIssuer.java @@ -25,7 +25,6 @@ package co.aikar.commands; import org.jetbrains.annotations.NotNull; import org.spongepowered.api.command.CommandSource; -import org.spongepowered.api.command.source.ConsoleSource; import org.spongepowered.api.entity.living.player.Player; import org.spongepowered.api.text.serializer.TextSerializers; import org.spongepowered.api.util.Identifiable;