Add explict this checkstyle rule and fix violations
This commit is contained in:
parent
a6eb44376c
commit
d5259dfbe4
62 changed files with 195 additions and 192 deletions
|
|
@ -207,6 +207,10 @@
|
|||
<module name="TodoComment"/>
|
||||
<module name="UpperEll"/>
|
||||
|
||||
<module name="RequireThis">
|
||||
<property name="validateOnlyOverlapping" value="false"/>
|
||||
</module>
|
||||
|
||||
<!-- https://checkstyle.org/config_filters.html#SuppressionXpathFilter -->
|
||||
<module name="SuppressionXpathFilter">
|
||||
<property name="file" value="${org.checkstyle.sun.suppressionxpathfilter.config}"
|
||||
|
|
|
|||
|
|
@ -123,7 +123,7 @@ public abstract class CommandManager<C> {
|
|||
final @NonNull CommandRegistrationHandler commandRegistrationHandler
|
||||
) {
|
||||
this.commandTree = CommandTree.newTree(this);
|
||||
this.commandExecutionCoordinator = commandExecutionCoordinator.apply(commandTree);
|
||||
this.commandExecutionCoordinator = commandExecutionCoordinator.apply(this.commandTree);
|
||||
this.commandRegistrationHandler = commandRegistrationHandler;
|
||||
this.commandSuggestionEngine = new DelegatingCommandSuggestionEngineFactory<>(this).create();
|
||||
/* Register service types */
|
||||
|
|
@ -374,7 +374,7 @@ public abstract class CommandManager<C> {
|
|||
final @NonNull Description description,
|
||||
final @NonNull CommandMeta meta
|
||||
) {
|
||||
return commandBuilder(name, aliases, (ArgumentDescription) description, meta);
|
||||
return this.commandBuilder(name, aliases, (ArgumentDescription) description, meta);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -240,8 +240,8 @@ public final class CommandTree<C> {
|
|||
if (root.equals(this.internalTree)) {
|
||||
return Pair.of(null, new NoSuchCommandException(
|
||||
commandContext.getSender(),
|
||||
getChain(root).stream().map(Node::getValue).collect(Collectors.toList()),
|
||||
stringOrEmpty(commandQueue.peek())
|
||||
this.getChain(root).stream().map(Node::getValue).collect(Collectors.toList()),
|
||||
this.stringOrEmpty(commandQueue.peek())
|
||||
));
|
||||
}
|
||||
/* If we couldn't match a child, check if there's a command attached and execute it */
|
||||
|
|
@ -476,7 +476,7 @@ public final class CommandTree<C> {
|
|||
final @NonNull CommandContext<C> context,
|
||||
final @NonNull Queue<@NonNull String> commandQueue
|
||||
) {
|
||||
return getSuggestions(context, commandQueue, this.internalTree);
|
||||
return this.getSuggestions(context, commandQueue, this.internalTree);
|
||||
}
|
||||
|
||||
@SuppressWarnings("MixedMutabilityReturnType")
|
||||
|
|
@ -533,7 +533,7 @@ public final class CommandTree<C> {
|
|||
/* Calculate suggestions for the literal arguments */
|
||||
final List<String> suggestions = new LinkedList<>();
|
||||
if (commandQueue.size() <= 1) {
|
||||
final String literalValue = stringOrEmpty(commandQueue.peek());
|
||||
final String literalValue = this.stringOrEmpty(commandQueue.peek());
|
||||
for (final Node<CommandArgument<C, ?>> argument : staticArguments) {
|
||||
if (this.isPermitted(commandContext.getSender(), argument) != null) {
|
||||
continue;
|
||||
|
|
@ -658,7 +658,7 @@ public final class CommandTree<C> {
|
|||
|
||||
// Fallback: use suggestion provider of argument
|
||||
commandContext.setCurrentArgument(child.getValue());
|
||||
return child.getValue().getSuggestionsProvider().apply(commandContext, stringOrEmpty(commandQueue.peek()));
|
||||
return child.getValue().getSuggestionsProvider().apply(commandContext, this.stringOrEmpty(commandQueue.peek()));
|
||||
}
|
||||
|
||||
private @NonNull String stringOrEmpty(final @Nullable String string) {
|
||||
|
|
@ -873,7 +873,7 @@ public final class CommandTree<C> {
|
|||
leaves.add(node);
|
||||
}
|
||||
} else {
|
||||
node.children.forEach(child -> leaves.addAll(getLeavesRaw(child)));
|
||||
node.children.forEach(child -> leaves.addAll(this.getLeavesRaw(child)));
|
||||
}
|
||||
return leaves;
|
||||
}
|
||||
|
|
@ -887,7 +887,7 @@ public final class CommandTree<C> {
|
|||
leaves.add(node.getValue());
|
||||
}
|
||||
} else {
|
||||
node.children.forEach(child -> leaves.addAll(getLeaves(child)));
|
||||
node.children.forEach(child -> leaves.addAll(this.getLeaves(child)));
|
||||
}
|
||||
return leaves;
|
||||
}
|
||||
|
|
@ -1024,12 +1024,12 @@ public final class CommandTree<C> {
|
|||
return false;
|
||||
}
|
||||
final Node<?> node = (Node<?>) o;
|
||||
return Objects.equals(getValue(), node.getValue());
|
||||
return Objects.equals(this.getValue(), node.getValue());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(getValue());
|
||||
return Objects.hash(this.getValue());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -1052,7 +1052,7 @@ public final class CommandTree<C> {
|
|||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Node{value=" + value + '}';
|
||||
return "Node{value=" + this.value + '}';
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ final class AnnotatedElementAccessor implements AnnotationAccessor {
|
|||
final @NonNull Class<A> clazz
|
||||
) {
|
||||
try {
|
||||
return element.getAnnotation(clazz);
|
||||
return this.element.getAnnotation(clazz);
|
||||
} catch (final NullPointerException exception) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ final class MultiDelegateAnnotationAccessor implements AnnotationAccessor {
|
|||
@Override
|
||||
public <A extends Annotation> @Nullable A annotation(@NonNull final Class<A> clazz) {
|
||||
A instance = null;
|
||||
for (final AnnotationAccessor annotationAccessor : accessors) {
|
||||
for (final AnnotationAccessor annotationAccessor : this.accessors) {
|
||||
instance = annotationAccessor.annotation(clazz);
|
||||
if (instance != null) {
|
||||
break;
|
||||
|
|
@ -55,7 +55,7 @@ final class MultiDelegateAnnotationAccessor implements AnnotationAccessor {
|
|||
@Override
|
||||
public @NonNull Collection<@NonNull Annotation> annotations() {
|
||||
final List<Annotation> annotationList = new LinkedList<>();
|
||||
for (final AnnotationAccessor annotationAccessor : accessors) {
|
||||
for (final AnnotationAccessor annotationAccessor : this.accessors) {
|
||||
annotationList.addAll(annotationAccessor.annotations());
|
||||
}
|
||||
return Collections.unmodifiableCollection(annotationList);
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ public final class ParameterInjectorRegistry<C> implements InjectionService<C> {
|
|||
* Create a new parameter injector registry
|
||||
*/
|
||||
public ParameterInjectorRegistry() {
|
||||
servicePipeline.registerServiceType(new TypeToken<InjectionService<C>>() {
|
||||
this.servicePipeline.registerServiceType(new TypeToken<InjectionService<C>>() {
|
||||
}, this);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -462,12 +462,12 @@ public class CommandArgument<C, T> implements Comparable<CommandArgument<?, ?>>,
|
|||
return false;
|
||||
}
|
||||
final CommandArgument<?, ?> that = (CommandArgument<?, ?>) o;
|
||||
return isRequired() == that.isRequired() && Objects.equals(getName(), that.getName());
|
||||
return this.isRequired() == that.isRequired() && Objects.equals(this.getName(), that.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final int hashCode() {
|
||||
return Objects.hash(isRequired(), getName());
|
||||
return Objects.hash(this.isRequired(), this.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -693,7 +693,7 @@ public class CommandArgument<C, T> implements Comparable<CommandArgument<?, ?>>,
|
|||
*/
|
||||
public @NonNull CommandArgument<@NonNull C, @NonNull T> build() {
|
||||
if (this.parser == null && this.manager != null) {
|
||||
this.parser = this.manager.getParserRegistry().createParser(valueType, ParserParameters.empty())
|
||||
this.parser = this.manager.getParserRegistry().createParser(this.valueType, ParserParameters.empty())
|
||||
.orElse(null);
|
||||
}
|
||||
if (this.parser == null) {
|
||||
|
|
|
|||
|
|
@ -285,7 +285,7 @@ public final class FlagArgument<C> extends CommandArgument<C, Object> {
|
|||
}
|
||||
}
|
||||
commandContext.store(FLAG_META_KEY, "");
|
||||
return suggestions(commandContext, input);
|
||||
return this.suggestions(commandContext, input);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -486,7 +486,7 @@ public final class FlagArgument<C> extends CommandArgument<C, Object> {
|
|||
* @return String value
|
||||
*/
|
||||
public String getInput() {
|
||||
return input;
|
||||
return this.input;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -79,13 +79,13 @@ public class ParserParameter<T> {
|
|||
return false;
|
||||
}
|
||||
final ParserParameter<?> that = (ParserParameter<?>) o;
|
||||
return Objects.equals(key, that.key)
|
||||
&& Objects.equals(expectedType, that.expectedType);
|
||||
return Objects.equals(this.key, that.key)
|
||||
&& Objects.equals(this.expectedType, that.expectedType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final int hashCode() {
|
||||
return Objects.hash(key, expectedType);
|
||||
return Objects.hash(this.key, this.expectedType);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ public final class RegexPreprocessor<C> implements BiFunction<@NonNull CommandCo
|
|||
context
|
||||
));
|
||||
}
|
||||
if (predicate.test(head)) {
|
||||
if (this.predicate.test(head)) {
|
||||
return ArgumentParseResult.success(true);
|
||||
}
|
||||
return ArgumentParseResult.failure(
|
||||
|
|
|
|||
|
|
@ -184,7 +184,7 @@ public final class BooleanArgument<C> extends CommandArgument<C, Boolean> {
|
|||
}
|
||||
inputQueue.remove();
|
||||
|
||||
if (!liberal) {
|
||||
if (!this.liberal) {
|
||||
if (input.equalsIgnoreCase("true")) {
|
||||
return ArgumentParseResult.success(true);
|
||||
}
|
||||
|
|
@ -214,7 +214,7 @@ public final class BooleanArgument<C> extends CommandArgument<C, Boolean> {
|
|||
final @NonNull CommandContext<C> commandContext,
|
||||
final @NonNull String input
|
||||
) {
|
||||
if (!liberal) {
|
||||
if (!this.liberal) {
|
||||
return Arrays.asList("TRUE", "FALSE");
|
||||
}
|
||||
|
||||
|
|
@ -267,7 +267,7 @@ public final class BooleanArgument<C> extends CommandArgument<C, Boolean> {
|
|||
* @return String value
|
||||
*/
|
||||
public String getInput() {
|
||||
return input;
|
||||
return this.input;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -276,7 +276,7 @@ public final class BooleanArgument<C> extends CommandArgument<C, Boolean> {
|
|||
* @return Liberal value
|
||||
*/
|
||||
public boolean isLiberal() {
|
||||
return liberal;
|
||||
return this.liberal;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -183,7 +183,7 @@ public final class CharArgument<C> extends CommandArgument<C, Character> {
|
|||
* @return Input value
|
||||
*/
|
||||
public @NonNull String getInput() {
|
||||
return input;
|
||||
return this.input;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -190,7 +190,7 @@ public final class UUIDArgument<C> extends CommandArgument<C, UUID> {
|
|||
* @return String value
|
||||
*/
|
||||
public String getInput() {
|
||||
return input;
|
||||
return this.input;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ public final class Caption {
|
|||
return false;
|
||||
}
|
||||
final Caption caption = (Caption) o;
|
||||
return Objects.equals(key, caption.key);
|
||||
return Objects.equals(this.key, caption.key);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -71,7 +71,7 @@ public final class Caption {
|
|||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(key);
|
||||
return Objects.hash(this.key);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -92,9 +92,9 @@ public final class AmbiguousNodeException extends IllegalStateException {
|
|||
@Override
|
||||
public String getMessage() {
|
||||
final StringBuilder stringBuilder = new StringBuilder("Ambiguous Node: ")
|
||||
.append(ambiguousNode.getName())
|
||||
.append(this.ambiguousNode.getName())
|
||||
.append(" cannot be added as a child to ")
|
||||
.append(parentNode == null ? "<root>" : parentNode.getName())
|
||||
.append(this.parentNode == null ? "<root>" : this.parentNode.getName())
|
||||
.append(" (All children: ");
|
||||
final Iterator<CommandArgument<?, ?>> childIterator = this.children.iterator();
|
||||
while (childIterator.hasNext()) {
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ public final class InvalidCommandSenderException extends CommandParseException {
|
|||
return String.format(
|
||||
"%s is not allowed to execute that command. Must be of type %s",
|
||||
getCommandSender().getClass().getSimpleName(),
|
||||
requiredSender.getSimpleName()
|
||||
this.requiredSender.getSimpleName()
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ public final class CommandPostprocessingContext<C> {
|
|||
return false;
|
||||
}
|
||||
final CommandPostprocessingContext<?> that = (CommandPostprocessingContext<?>) o;
|
||||
return Objects.equals(getCommandContext(), that.getCommandContext())
|
||||
return Objects.equals(this.getCommandContext(), that.getCommandContext())
|
||||
&& Objects.equals(this.getCommand(), that.getCommand());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -81,13 +81,13 @@ public final class CommandPreprocessingContext<C> {
|
|||
return false;
|
||||
}
|
||||
final CommandPreprocessingContext<?> that = (CommandPreprocessingContext<?>) o;
|
||||
return Objects.equals(getCommandContext(), that.getCommandContext())
|
||||
&& Objects.equals(getInputQueue(), that.getInputQueue());
|
||||
return Objects.equals(this.getCommandContext(), that.getCommandContext())
|
||||
&& Objects.equals(this.getInputQueue(), that.getInputQueue());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(getCommandContext(), getInputQueue());
|
||||
return Objects.hash(this.getCommandContext(), this.getInputQueue());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -182,9 +182,9 @@ public class CommandConfirmationManager<C> {
|
|||
return;
|
||||
}
|
||||
/* Add it to the "queue" */
|
||||
addPending(context);
|
||||
CommandConfirmationManager.this.addPending(context);
|
||||
/* Notify the consumer that a confirmation is required */
|
||||
notifyConsumer(context);
|
||||
CommandConfirmationManager.this.notifyConsumer(context);
|
||||
/* Interrupt */
|
||||
ConsumerService.interrupt();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -56,12 +56,12 @@ public final class CommandInputTokenizer {
|
|||
* @return Linked list containing the tokenized input
|
||||
*/
|
||||
public @NonNull LinkedList<@NonNull String> tokenize() {
|
||||
final StringTokenizer stringTokenizer = stringTokenizerFactory.createStringTokenizer();
|
||||
final StringTokenizer stringTokenizer = this.stringTokenizerFactory.createStringTokenizer();
|
||||
final LinkedList<String> tokens = new LinkedList<>();
|
||||
while (stringTokenizer.hasMoreElements()) {
|
||||
tokens.add(stringTokenizer.nextToken());
|
||||
}
|
||||
if (input.endsWith(DELIMITER)) {
|
||||
if (this.input.endsWith(DELIMITER)) {
|
||||
tokens.add(EMPTY);
|
||||
}
|
||||
return tokens;
|
||||
|
|
@ -74,7 +74,7 @@ public final class CommandInputTokenizer {
|
|||
private final class StringTokenizerFactory {
|
||||
|
||||
private @NonNull StringTokenizer createStringTokenizer() {
|
||||
return new StringTokenizer(input, DELIMITER);
|
||||
return new StringTokenizer(CommandInputTokenizer.this.input, DELIMITER);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ public final class SimpleCloudKey<@NonNull T> implements CloudKey<T> {
|
|||
|
||||
@Override
|
||||
public @NonNull String getName() {
|
||||
return name;
|
||||
return this.name;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -93,12 +93,12 @@ public final class SimpleCloudKey<@NonNull T> implements CloudKey<T> {
|
|||
return false;
|
||||
}
|
||||
final SimpleCloudKey<?> key = (SimpleCloudKey<?>) o;
|
||||
return name.equals(key.name);
|
||||
return this.name.equals(key.name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(name);
|
||||
return Objects.hash(this.name);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -97,12 +97,12 @@ public final class Permission implements CommandPermission {
|
|||
return false;
|
||||
}
|
||||
final Permission that = (Permission) o;
|
||||
return Objects.equals(getPermission(), that.getPermission());
|
||||
return Objects.equals(this.getPermission(), that.getPermission());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(getPermission());
|
||||
return Objects.hash(this.getPermission());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -89,13 +89,13 @@ public class Pair<U, V> implements Tuple {
|
|||
return false;
|
||||
}
|
||||
final Pair<?, ?> pair = (Pair<?, ?>) o;
|
||||
return Objects.equals(getFirst(), pair.getFirst())
|
||||
&& Objects.equals(getSecond(), pair.getSecond());
|
||||
return Objects.equals(this.getFirst(), pair.getFirst())
|
||||
&& Objects.equals(this.getSecond(), pair.getSecond());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final int hashCode() {
|
||||
return Objects.hash(getFirst(), getSecond());
|
||||
return Objects.hash(this.getFirst(), this.getSecond());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -121,15 +121,15 @@ public class Quartet<U, V, W, X> implements Tuple {
|
|||
return false;
|
||||
}
|
||||
final Quartet<?, ?, ?, ?> quartet = (Quartet<?, ?, ?, ?>) o;
|
||||
return Objects.equals(getFirst(), quartet.getFirst())
|
||||
&& Objects.equals(getSecond(), quartet.getSecond())
|
||||
&& Objects.equals(getThird(), quartet.getThird())
|
||||
&& Objects.equals(getFourth(), quartet.getFourth());
|
||||
return Objects.equals(this.getFirst(), quartet.getFirst())
|
||||
&& Objects.equals(this.getSecond(), quartet.getSecond())
|
||||
&& Objects.equals(this.getThird(), quartet.getThird())
|
||||
&& Objects.equals(this.getFourth(), quartet.getFourth());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final int hashCode() {
|
||||
return Objects.hash(getFirst(), getSecond(), getThird(), getFourth());
|
||||
return Objects.hash(this.getFirst(), this.getSecond(), this.getThird(), this.getFourth());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -137,16 +137,16 @@ public class Quintet<U, V, W, X, Y> implements Tuple {
|
|||
return false;
|
||||
}
|
||||
final Quintet<?, ?, ?, ?, ?> quintet = (Quintet<?, ?, ?, ?, ?>) o;
|
||||
return Objects.equals(getFirst(), quintet.getFirst())
|
||||
&& Objects.equals(getSecond(), quintet.getSecond())
|
||||
&& Objects.equals(getThird(), quintet.getThird())
|
||||
&& Objects.equals(getFourth(), quintet.getFourth())
|
||||
&& Objects.equals(getFifth(), quintet.getFifth());
|
||||
return Objects.equals(this.getFirst(), quintet.getFirst())
|
||||
&& Objects.equals(this.getSecond(), quintet.getSecond())
|
||||
&& Objects.equals(this.getThird(), quintet.getThird())
|
||||
&& Objects.equals(this.getFourth(), quintet.getFourth())
|
||||
&& Objects.equals(this.getFifth(), quintet.getFifth());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final int hashCode() {
|
||||
return Objects.hash(getFirst(), getSecond(), getThird(), getFourth(), getFifth());
|
||||
return Objects.hash(this.getFirst(), this.getSecond(), this.getThird(), this.getFourth(), this.getFifth());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -153,17 +153,17 @@ public class Sextet<U, V, W, X, Y, Z> implements Tuple {
|
|||
return false;
|
||||
}
|
||||
final Sextet<?, ?, ?, ?, ?, ?> sextet = (Sextet<?, ?, ?, ?, ?, ?>) o;
|
||||
return Objects.equals(getFirst(), sextet.getFirst())
|
||||
&& Objects.equals(getSecond(), sextet.getSecond())
|
||||
&& Objects.equals(getThird(), sextet.getThird())
|
||||
&& Objects.equals(getFourth(), sextet.getFourth())
|
||||
&& Objects.equals(getFifth(), sextet.getFifth())
|
||||
&& Objects.equals(getSixth(), sextet.getSixth());
|
||||
return Objects.equals(this.getFirst(), sextet.getFirst())
|
||||
&& Objects.equals(this.getSecond(), sextet.getSecond())
|
||||
&& Objects.equals(this.getThird(), sextet.getThird())
|
||||
&& Objects.equals(this.getFourth(), sextet.getFourth())
|
||||
&& Objects.equals(this.getFifth(), sextet.getFifth())
|
||||
&& Objects.equals(this.getSixth(), sextet.getSixth());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final int hashCode() {
|
||||
return Objects.hash(getFirst(), getSecond(), getThird(), getFourth(), getFifth(), getSixth());
|
||||
return Objects.hash(this.getFirst(), this.getSecond(), this.getThird(), this.getFourth(), this.getFifth(), this.getSixth());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -105,14 +105,14 @@ public class Triplet<U, V, W> implements Tuple {
|
|||
return false;
|
||||
}
|
||||
final Triplet<?, ?, ?> triplet = (Triplet<?, ?, ?>) o;
|
||||
return Objects.equals(getFirst(), triplet.getFirst())
|
||||
&& Objects.equals(getSecond(), triplet.getSecond())
|
||||
&& Objects.equals(getThird(), triplet.getThird());
|
||||
return Objects.equals(this.getFirst(), triplet.getFirst())
|
||||
&& Objects.equals(this.getSecond(), triplet.getSecond())
|
||||
&& Objects.equals(this.getThird(), triplet.getThird());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final int hashCode() {
|
||||
return Objects.hash(getFirst(), getSecond(), getThird());
|
||||
return Objects.hash(this.getFirst(), this.getSecond(), this.getThird());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -75,24 +75,24 @@ public class JavacordCommand<C> implements MessageCreateListener {
|
|||
commandSender = new JavacordCommandSender(event);
|
||||
}
|
||||
|
||||
C sender = manager.getCommandSenderMapper().apply(commandSender);
|
||||
C sender = this.manager.getCommandSenderMapper().apply(commandSender);
|
||||
|
||||
String messageContent = event.getMessageContent();
|
||||
String commandPrefix = manager.getCommandPrefix(sender);
|
||||
String commandPrefix = this.manager.getCommandPrefix(sender);
|
||||
if (!messageContent.startsWith(commandPrefix)) {
|
||||
return;
|
||||
}
|
||||
messageContent = messageContent.replaceFirst(commandPrefix, "");
|
||||
|
||||
final String finalContent = messageContent;
|
||||
if (((StaticArgument<C>) command).getAliases()
|
||||
if (((StaticArgument<C>) this.command).getAliases()
|
||||
.stream()
|
||||
.map(String::toLowerCase)
|
||||
.noneMatch(commandAlias -> finalContent.toLowerCase().startsWith(commandAlias))) {
|
||||
return;
|
||||
}
|
||||
|
||||
manager.executeCommand(sender, finalContent)
|
||||
this.manager.executeCommand(sender, finalContent)
|
||||
.whenComplete((commandResult, throwable) -> {
|
||||
if (throwable == null) {
|
||||
return;
|
||||
|
|
@ -109,7 +109,7 @@ public class JavacordCommand<C> implements MessageCreateListener {
|
|||
}
|
||||
|
||||
if (throwable instanceof InvalidSyntaxException) {
|
||||
manager.handleException(
|
||||
this.manager.handleException(
|
||||
sender,
|
||||
InvalidSyntaxException.class,
|
||||
(InvalidSyntaxException) throwable,
|
||||
|
|
@ -123,7 +123,7 @@ public class JavacordCommand<C> implements MessageCreateListener {
|
|||
}
|
||||
|
||||
if (throwable instanceof InvalidCommandSenderException) {
|
||||
manager.handleException(
|
||||
this.manager.handleException(
|
||||
sender,
|
||||
InvalidCommandSenderException.class,
|
||||
(InvalidCommandSenderException) throwable,
|
||||
|
|
@ -134,7 +134,7 @@ public class JavacordCommand<C> implements MessageCreateListener {
|
|||
}
|
||||
|
||||
if (throwable instanceof NoPermissionException) {
|
||||
manager.handleException(
|
||||
this.manager.handleException(
|
||||
sender,
|
||||
NoPermissionException.class,
|
||||
(NoPermissionException) throwable,
|
||||
|
|
@ -145,7 +145,7 @@ public class JavacordCommand<C> implements MessageCreateListener {
|
|||
}
|
||||
|
||||
if (throwable instanceof ArgumentParseException) {
|
||||
manager.handleException(
|
||||
this.manager.handleException(
|
||||
sender,
|
||||
ArgumentParseException.class,
|
||||
(ArgumentParseException) throwable,
|
||||
|
|
@ -157,7 +157,7 @@ public class JavacordCommand<C> implements MessageCreateListener {
|
|||
}
|
||||
|
||||
if (throwable instanceof CommandExecutionException) {
|
||||
manager.handleException(
|
||||
this.manager.handleException(
|
||||
sender,
|
||||
CommandExecutionException.class,
|
||||
(CommandExecutionException) throwable,
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ public class JavacordCommandSender {
|
|||
*/
|
||||
@NonNull
|
||||
public CompletableFuture<Message> sendErrorMessage(final @Nullable String message) {
|
||||
return sendMessage(":x: " + message);
|
||||
return this.sendMessage(":x: " + message);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -115,7 +115,7 @@ public class JavacordCommandSender {
|
|||
*/
|
||||
@NonNull
|
||||
public CompletableFuture<Message> sendSuccessMessage(final @Nullable String message) {
|
||||
return sendMessage(":white_check_mark: " + message);
|
||||
return this.sendMessage(":white_check_mark: " + message);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ public class JDACommandListener<C> extends ListenerAdapter {
|
|||
|
||||
content = content.substring(prefix.length());
|
||||
|
||||
commandManager.executeCommand(sender, content)
|
||||
this.commandManager.executeCommand(sender, content)
|
||||
.whenComplete((commandResult, throwable) -> {
|
||||
if (throwable == null) {
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -126,7 +126,7 @@ public class JDACommandManager<C> extends CommandManager<C> {
|
|||
* @return JDA instance
|
||||
*/
|
||||
public final @NonNull JDA getJDA() {
|
||||
return jda;
|
||||
return this.jda;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ public final class ChannelArgument<C> extends CommandArgument<C, MessageChannel>
|
|||
* @return List of Modes
|
||||
*/
|
||||
public @NotNull Set<ParserMode> getModes() {
|
||||
return modes;
|
||||
return this.modes;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -133,7 +133,7 @@ public final class ChannelArgument<C> extends CommandArgument<C, MessageChannel>
|
|||
*/
|
||||
@Override
|
||||
public @NonNull ChannelArgument<C> build() {
|
||||
return new ChannelArgument<>(this.isRequired(), this.getName(), modes);
|
||||
return new ChannelArgument<>(this.isRequired(), this.getName(), this.modes);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -183,7 +183,7 @@ public final class ChannelArgument<C> extends CommandArgument<C, MessageChannel>
|
|||
return ArgumentParseResult.failure(new IllegalArgumentException("Channel arguments can only be parsed in guilds"));
|
||||
}
|
||||
|
||||
if (modes.contains(ParserMode.MENTION)) {
|
||||
if (this.modes.contains(ParserMode.MENTION)) {
|
||||
if (input.startsWith("<#") && input.endsWith(">")) {
|
||||
final String id = input.substring(2, input.length() - 1);
|
||||
|
||||
|
|
@ -201,7 +201,7 @@ public final class ChannelArgument<C> extends CommandArgument<C, MessageChannel>
|
|||
}
|
||||
}
|
||||
|
||||
if (modes.contains(ParserMode.ID)) {
|
||||
if (this.modes.contains(ParserMode.ID)) {
|
||||
try {
|
||||
final ArgumentParseResult<MessageChannel> result = this.channelFromId(event, input, input);
|
||||
inputQueue.remove();
|
||||
|
|
@ -211,7 +211,7 @@ public final class ChannelArgument<C> extends CommandArgument<C, MessageChannel>
|
|||
}
|
||||
}
|
||||
|
||||
if (modes.contains(ParserMode.NAME)) {
|
||||
if (this.modes.contains(ParserMode.NAME)) {
|
||||
final List<TextChannel> channels = event.getGuild().getTextChannelsByName(input, true);
|
||||
|
||||
if (channels.size() == 0) {
|
||||
|
|
@ -271,7 +271,7 @@ public final class ChannelArgument<C> extends CommandArgument<C, MessageChannel>
|
|||
* @return users input
|
||||
*/
|
||||
public final @NonNull String getInput() {
|
||||
return input;
|
||||
return this.input;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ public final class RoleArgument<C> extends CommandArgument<C, Role> {
|
|||
* @return List of Modes
|
||||
*/
|
||||
public @NotNull Set<ParserMode> getModes() {
|
||||
return modes;
|
||||
return this.modes;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -133,7 +133,7 @@ public final class RoleArgument<C> extends CommandArgument<C, Role> {
|
|||
*/
|
||||
@Override
|
||||
public @NonNull RoleArgument<C> build() {
|
||||
return new RoleArgument<>(this.isRequired(), this.getName(), modes);
|
||||
return new RoleArgument<>(this.isRequired(), this.getName(), this.modes);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -183,7 +183,7 @@ public final class RoleArgument<C> extends CommandArgument<C, Role> {
|
|||
return ArgumentParseResult.failure(new IllegalArgumentException("Role arguments can only be parsed in guilds"));
|
||||
}
|
||||
|
||||
if (modes.contains(ParserMode.MENTION)) {
|
||||
if (this.modes.contains(ParserMode.MENTION)) {
|
||||
if (input.startsWith("<@&") && input.endsWith(">")) {
|
||||
final String id = input.substring(3, input.length() - 1);
|
||||
|
||||
|
|
@ -201,7 +201,7 @@ public final class RoleArgument<C> extends CommandArgument<C, Role> {
|
|||
}
|
||||
}
|
||||
|
||||
if (modes.contains(ParserMode.ID)) {
|
||||
if (this.modes.contains(ParserMode.ID)) {
|
||||
try {
|
||||
final ArgumentParseResult<Role> result = this.roleFromId(event, input, input);
|
||||
inputQueue.remove();
|
||||
|
|
@ -211,7 +211,7 @@ public final class RoleArgument<C> extends CommandArgument<C, Role> {
|
|||
}
|
||||
}
|
||||
|
||||
if (modes.contains(ParserMode.NAME)) {
|
||||
if (this.modes.contains(ParserMode.NAME)) {
|
||||
final List<Role> roles = event.getGuild().getRolesByName(input, true);
|
||||
|
||||
if (roles.size() == 0) {
|
||||
|
|
@ -271,7 +271,7 @@ public final class RoleArgument<C> extends CommandArgument<C, Role> {
|
|||
* @return users input
|
||||
*/
|
||||
public final @NonNull String getInput() {
|
||||
return input;
|
||||
return this.input;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ public final class UserArgument<C> extends CommandArgument<C, User> {
|
|||
* @return List of Modes
|
||||
*/
|
||||
public @NotNull Set<ParserMode> getModes() {
|
||||
return modes;
|
||||
return this.modes;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -167,7 +167,7 @@ public final class UserArgument<C> extends CommandArgument<C, User> {
|
|||
*/
|
||||
@Override
|
||||
public @NonNull UserArgument<C> build() {
|
||||
return new UserArgument<>(this.isRequired(), this.getName(), modes, isolationLevel);
|
||||
return new UserArgument<>(this.isRequired(), this.getName(), this.modes, this.isolationLevel);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -228,7 +228,7 @@ public final class UserArgument<C> extends CommandArgument<C, User> {
|
|||
final MessageReceivedEvent event = commandContext.get("MessageReceivedEvent");
|
||||
Exception exception = null;
|
||||
|
||||
if (modes.contains(ParserMode.MENTION)) {
|
||||
if (this.modes.contains(ParserMode.MENTION)) {
|
||||
if (input.startsWith("<@") && input.endsWith(">")) {
|
||||
final String id;
|
||||
if (input.startsWith("<@!")) {
|
||||
|
|
@ -251,7 +251,7 @@ public final class UserArgument<C> extends CommandArgument<C, User> {
|
|||
}
|
||||
}
|
||||
|
||||
if (modes.contains(ParserMode.ID)) {
|
||||
if (this.modes.contains(ParserMode.ID)) {
|
||||
try {
|
||||
final ArgumentParseResult<User> result = this.userFromId(event, input, input);
|
||||
inputQueue.remove();
|
||||
|
|
@ -261,10 +261,10 @@ public final class UserArgument<C> extends CommandArgument<C, User> {
|
|||
}
|
||||
}
|
||||
|
||||
if (modes.contains(ParserMode.NAME)) {
|
||||
if (this.modes.contains(ParserMode.NAME)) {
|
||||
final List<User> users;
|
||||
|
||||
if (isolationLevel == Isolation.GLOBAL) {
|
||||
if (this.isolationLevel == Isolation.GLOBAL) {
|
||||
users = event.getJDA().getUsersByName(input, true);
|
||||
} else if (event.isFromGuild()) {
|
||||
users = event.getGuild().getMembersByEffectiveName(input, true)
|
||||
|
|
@ -302,7 +302,7 @@ public final class UserArgument<C> extends CommandArgument<C, User> {
|
|||
)
|
||||
throws UserNotFoundParseException, NumberFormatException {
|
||||
final User user;
|
||||
if (isolationLevel == Isolation.GLOBAL) {
|
||||
if (this.isolationLevel == Isolation.GLOBAL) {
|
||||
user = event.getJDA().getUserById(id);
|
||||
} else if (event.isFromGuild()) {
|
||||
Member member = event.getGuild().getMemberById(id);
|
||||
|
|
@ -344,7 +344,7 @@ public final class UserArgument<C> extends CommandArgument<C, User> {
|
|||
* @return Users input
|
||||
*/
|
||||
public final @NonNull String getInput() {
|
||||
return input;
|
||||
return this.input;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ final class CloudListenerAdapter<C> extends ListenerAdapter {
|
|||
return;
|
||||
}
|
||||
final C sender = this.manager.getUserMapper().apply(event.getUser());
|
||||
manager.executeCommand(sender, message.substring(this.manager.getCommandPrefix().length()))
|
||||
this.manager.executeCommand(sender, message.substring(this.manager.getCommandPrefix().length()))
|
||||
.whenComplete((commandResult, throwable) -> {
|
||||
if (throwable == null) {
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -488,7 +488,7 @@ public final class CloudBrigadierManager<C, S> {
|
|||
|
||||
for (final CommandTree.Node<CommandArgument<C, ?>> node : root.getChildren()) {
|
||||
argumentBuilders[parsers.length - 1]
|
||||
.then(constructCommandNode(forceExecutor, node, permissionChecker, executor, suggestionProvider));
|
||||
.then(this.constructCommandNode(forceExecutor, node, permissionChecker, executor, suggestionProvider));
|
||||
}
|
||||
|
||||
return argumentBuilders[0];
|
||||
|
|
@ -536,7 +536,7 @@ public final class CloudBrigadierManager<C, S> {
|
|||
argumentBuilder.executes(executor);
|
||||
}
|
||||
for (final CommandTree.Node<CommandArgument<C, ?>> node : root.getChildren()) {
|
||||
argumentBuilder.then(constructCommandNode(forceExecutor, node, permissionChecker, executor, suggestionProvider));
|
||||
argumentBuilder.then(this.constructCommandNode(forceExecutor, node, permissionChecker, executor, suggestionProvider));
|
||||
}
|
||||
return argumentBuilder;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ public final class BukkitBrigadierMapper<C> {
|
|||
/* Detect Minecraft Version Metadata */
|
||||
final String version = Bukkit.getServer().getClass().getPackage().getName();
|
||||
this.nmsVersion = version.substring(version.lastIndexOf(".") + 1);
|
||||
final int majorMinecraftVersion = Integer.parseInt(nmsVersion.split("_")[1]);
|
||||
final int majorMinecraftVersion = Integer.parseInt(this.nmsVersion.split("_")[1]);
|
||||
|
||||
try {
|
||||
/* UUID nms argument is a 1.16+ feature */
|
||||
|
|
|
|||
|
|
@ -52,9 +52,9 @@ final class BukkitCommandPreprocessor<C> implements CommandPreprocessor<C> {
|
|||
*/
|
||||
@Override
|
||||
public void accept(final @NonNull CommandPreprocessingContext<C> context) {
|
||||
context.getCommandContext().store("BukkitCommandSender", mgr.getBackwardsCommandSenderMapper().apply(
|
||||
context.getCommandContext().store("BukkitCommandSender", this.mgr.getBackwardsCommandSenderMapper().apply(
|
||||
context.getCommandContext().getSender()));
|
||||
context.getCommandContext().store("CloudBukkitCapabilities", mgr.queryCapabilities());
|
||||
context.getCommandContext().store("CloudBukkitCapabilities", this.mgr.queryCapabilities());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -84,12 +84,12 @@ public abstract class BukkitCommandSender {
|
|||
return false;
|
||||
}
|
||||
final BukkitCommandSender that = (BukkitCommandSender) o;
|
||||
return Objects.equal(internalSender, that.internalSender);
|
||||
return Objects.equal(this.internalSender, that.internalSender);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final int hashCode() {
|
||||
return Objects.hashCode(internalSender);
|
||||
return Objects.hashCode(this.internalSender);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ public class BukkitPluginRegistrationHandler<C> implements CommandRegistrationHa
|
|||
final Field knownCommands = SimpleCommandMap.class.getDeclaredField("knownCommands");
|
||||
knownCommands.setAccessible(true);
|
||||
@SuppressWarnings("unchecked") final Map<String, org.bukkit.command.Command> bukkitCommands =
|
||||
(Map<String, org.bukkit.command.Command>) knownCommands.get(commandMap);
|
||||
(Map<String, org.bukkit.command.Command>) knownCommands.get(this.commandMap);
|
||||
this.bukkitCommands = bukkitCommands;
|
||||
this.bukkitCommandManager = bukkitCommandManager;
|
||||
Bukkit.getHelpMap().registerHelpTopicFactory(BukkitCommand.class, GenericCommandHelpTopic::new);
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ class CloudCommodoreManager<C> extends BukkitPluginRegistrationHandler<C> {
|
|||
));
|
||||
this.brigadierManager.brigadierSenderMapper(
|
||||
sender -> this.commandManager.getCommandSenderMapper().apply(
|
||||
commodore.getBukkitSender(sender)
|
||||
this.commodore.getBukkitSender(sender)
|
||||
)
|
||||
);
|
||||
new BukkitBrigadierMapper<>(this.commandManager, this.brigadierManager);
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ public class MultiplePlayerSelector extends MultipleEntitySelector {
|
|||
if (e.getType() != EntityType.PLAYER) {
|
||||
throw new IllegalArgumentException("Non-players selected in player selector.");
|
||||
} else {
|
||||
players.add((Player) e);
|
||||
this.players.add((Player) e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -219,7 +219,7 @@ public final class OfflinePlayerArgument<C> extends CommandArgument<C, OfflinePl
|
|||
* @return String value
|
||||
*/
|
||||
public @NonNull String getInput() {
|
||||
return input;
|
||||
return this.input;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -211,7 +211,7 @@ public final class PlayerArgument<C> extends CommandArgument<C, Player> {
|
|||
* @return String value
|
||||
*/
|
||||
public @NonNull String getInput() {
|
||||
return input;
|
||||
return this.input;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -86,13 +86,13 @@ public final class LocationCoordinate {
|
|||
return false;
|
||||
}
|
||||
final LocationCoordinate that = (LocationCoordinate) o;
|
||||
return Double.compare(that.coordinate, coordinate) == 0
|
||||
&& type == that.type;
|
||||
return Double.compare(that.coordinate, this.coordinate) == 0
|
||||
&& this.type == that.type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(type, coordinate);
|
||||
return Objects.hash(this.type, this.coordinate);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ public final class SelectorParseException extends ParserException {
|
|||
* @return String value
|
||||
*/
|
||||
public @NonNull String getInput() {
|
||||
return input;
|
||||
return this.input;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ final class BungeeCommandPreprocessor<C> implements CommandPreprocessor<C> {
|
|||
|
||||
@Override
|
||||
public void accept(final @NonNull CommandPreprocessingContext<C> context) {
|
||||
context.getCommandContext().store(BungeeContextKeys.PROXY_SERVER_KEY, mgr.getOwningPlugin().getProxy());
|
||||
context.getCommandContext().store(BungeeContextKeys.PROXY_SERVER_KEY, this.mgr.getOwningPlugin().getProxy());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ final class CloudburstCommand<C> extends PluginCommand<Plugin> {
|
|||
CommandExecutionException.class,
|
||||
(CommandExecutionException) throwable, (c, e) -> {
|
||||
commandSender.sendMessage(MESSAGE_INTERNAL_ERROR);
|
||||
manager.getOwningPlugin().getLogger().error(
|
||||
this.manager.getOwningPlugin().getLogger().error(
|
||||
"Exception executing command handler",
|
||||
finalThrowable.getCause()
|
||||
);
|
||||
|
|
@ -140,7 +140,7 @@ final class CloudburstCommand<C> extends PluginCommand<Plugin> {
|
|||
);
|
||||
} else {
|
||||
commandSender.sendMessage(MESSAGE_INTERNAL_ERROR);
|
||||
manager.getOwningPlugin().getLogger().error(
|
||||
this.manager.getOwningPlugin().getLogger().error(
|
||||
"An unhandled exception was thrown during command execution",
|
||||
throwable
|
||||
);
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ final class Pagination<T> {
|
|||
) {
|
||||
final int pages = (int) Math.ceil(content.size() / (itemsPerPage * 1.00));
|
||||
if (page < 1 || page > pages) {
|
||||
return Collections.singletonList(outOfRangeRenderer.apply(page, pages));
|
||||
return Collections.singletonList(this.outOfRangeRenderer.apply(page, pages));
|
||||
}
|
||||
|
||||
final List<Component> renderedContent = new ArrayList<>(this.headerRenderer.apply(page, pages));
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ final class VelocityCommandPreprocessor<C> implements CommandPreprocessor<C> {
|
|||
public void accept(final @NonNull CommandPreprocessingContext<C> context) {
|
||||
context.getCommandContext().store(
|
||||
VelocityContextKeys.PROXY_SERVER_KEY,
|
||||
mgr.getProxyServer()
|
||||
this.mgr.getProxyServer()
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ final class VelocityPluginRegistrationHandler<C> implements CommandRegistrationH
|
|||
p
|
||||
),
|
||||
true,
|
||||
new VelocityExecutor<>(manager)
|
||||
new VelocityExecutor<>(this.manager)
|
||||
)
|
||||
);
|
||||
final CommandMeta commandMeta = this.manager.getProxyServer().getCommandManager()
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ class AnnotatedMethodService<Context, Result> implements Service<Context, Result
|
|||
} catch (final Throwable throwable) {
|
||||
new IllegalStateException(String
|
||||
.format("Failed to call method service implementation '%s' in class '%s'",
|
||||
method.getName(), instance.getClass().getCanonicalName()
|
||||
this.method.getName(), this.instance.getClass().getCanonicalName()
|
||||
), throwable)
|
||||
.printStackTrace();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ public final class ServicePipeline {
|
|||
final @NonNull Service<@NonNull Context, @NonNull Result> defaultImplementation
|
||||
) {
|
||||
synchronized (this.lock) {
|
||||
if (repositories.containsKey(type.getType())) {
|
||||
if (this.repositories.containsKey(type.getType())) {
|
||||
throw new IllegalArgumentException(String
|
||||
.format(
|
||||
"Service of type '%s' has already been registered",
|
||||
|
|
@ -151,7 +151,7 @@ public final class ServicePipeline {
|
|||
final @NonNull Collection<Predicate<Context>> filters
|
||||
) {
|
||||
synchronized (this.lock) {
|
||||
final ServiceRepository<Context, Result> repository = getRepository(type);
|
||||
final ServiceRepository<Context, Result> repository = this.getRepository(type);
|
||||
repository.registerImplementation(implementation, filters);
|
||||
}
|
||||
return this;
|
||||
|
|
@ -175,7 +175,7 @@ public final class ServicePipeline {
|
|||
final @NonNull Service<Context, Result> implementation,
|
||||
final @NonNull Collection<Predicate<Context>> filters
|
||||
) {
|
||||
return registerServiceImplementation(TypeToken.get(type), implementation, filters);
|
||||
return this.registerServiceImplementation(TypeToken.get(type), implementation, filters);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -229,7 +229,7 @@ public final class ServicePipeline {
|
|||
public <Context, Result, S extends Service<Context, Result>> Collection<TypeToken<? extends S>> getImplementations(
|
||||
final @NonNull TypeToken<S> type
|
||||
) {
|
||||
ServiceRepository<Context, Result> repository = getRepository(type);
|
||||
ServiceRepository<Context, Result> repository = this.getRepository(type);
|
||||
List<TypeToken<? extends S>> collection = new LinkedList<>();
|
||||
final LinkedList<? extends ServiceRepository<Context, Result>.ServiceWrapper<? extends Service<Context, Result>>>
|
||||
queue = repository.getQueue();
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@ public final class ServiceRepository<Context, Response> {
|
|||
final @NonNull T implementation,
|
||||
final @NonNull Collection<Predicate<Context>> filters
|
||||
) {
|
||||
this.defaultImplementation = implementations.isEmpty();
|
||||
this.defaultImplementation = ServiceRepository.this.implementations.isEmpty();
|
||||
this.implementation = implementation;
|
||||
this.filters = filters;
|
||||
ExecutionOrder executionOrder = implementation.order();
|
||||
|
|
@ -139,8 +139,8 @@ public final class ServiceRepository<Context, Response> {
|
|||
@Override
|
||||
public String toString() {
|
||||
return String
|
||||
.format("ServiceWrapper{type=%s,implementation=%s}", serviceType.toString(),
|
||||
TypeToken.get(implementation.getClass()).toString()
|
||||
.format("ServiceWrapper{type=%s,implementation=%s}", ServiceRepository.this.serviceType.toString(),
|
||||
TypeToken.get(this.implementation.getClass()).toString()
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@ public final class ServiceSpigot<Context, Result> {
|
|||
*/
|
||||
public void getResult(final @NonNull BiConsumer<Result, Throwable> consumer) {
|
||||
try {
|
||||
consumer.accept(getResult(), null);
|
||||
consumer.accept(this.getResult(), null);
|
||||
} catch (final PipelineException pipelineException) {
|
||||
consumer.accept(null, pipelineException.getCause());
|
||||
} catch (final Exception e) {
|
||||
|
|
@ -167,7 +167,7 @@ public final class ServiceSpigot<Context, Result> {
|
|||
* @return New pump, for the result of this request
|
||||
*/
|
||||
public @NonNull CompletableFuture<ServicePump<Result>> forwardAsynchronously() {
|
||||
return this.getResultAsynchronously().thenApply(pipeline::pump);
|
||||
return this.getResultAsynchronously().thenApply(this.pipeline::pump);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ public final class TaskRecipe {
|
|||
* @return New task recipe component
|
||||
*/
|
||||
public <T> TaskRecipeComponentOutputting<O, T> synchronous(final @NonNull TaskFunction<O, T> function) {
|
||||
addSynchronous(function);
|
||||
TaskRecipe.this.addSynchronous(function);
|
||||
return new TaskRecipeComponentOutputting<>(this.initialInput);
|
||||
}
|
||||
|
||||
|
|
@ -139,7 +139,7 @@ public final class TaskRecipe {
|
|||
* @return New task recipe component
|
||||
*/
|
||||
public <T> TaskRecipeComponentOutputting<O, T> asynchronous(final @NonNull TaskFunction<O, T> function) {
|
||||
addAsynchronous(function);
|
||||
TaskRecipe.this.addAsynchronous(function);
|
||||
return new TaskRecipeComponentOutputting<>(this.initialInput);
|
||||
}
|
||||
|
||||
|
|
@ -150,8 +150,8 @@ public final class TaskRecipe {
|
|||
* @return New task recipe component
|
||||
*/
|
||||
public TaskRecipeComponentVoid<O> synchronous(final @NonNull TaskConsumer<O> consumer) {
|
||||
addSynchronous(consumer);
|
||||
return new TaskRecipeComponentVoid<>(initialInput);
|
||||
TaskRecipe.this.addSynchronous(consumer);
|
||||
return new TaskRecipeComponentVoid<>(this.initialInput);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -161,8 +161,8 @@ public final class TaskRecipe {
|
|||
* @return New task recipe component
|
||||
*/
|
||||
public TaskRecipeComponentVoid<O> asynchronous(final @NonNull TaskConsumer<O> consumer) {
|
||||
addAsynchronous(consumer);
|
||||
return new TaskRecipeComponentVoid<>(initialInput);
|
||||
TaskRecipe.this.addAsynchronous(consumer);
|
||||
return new TaskRecipeComponentVoid<>(this.initialInput);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -171,7 +171,7 @@ public final class TaskRecipe {
|
|||
* @param callback Callback function
|
||||
*/
|
||||
public void execute(final @NonNull Runnable callback) {
|
||||
TaskRecipe.this.execute(initialInput, callback);
|
||||
TaskRecipe.this.execute(this.initialInput, callback);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -204,8 +204,8 @@ public final class TaskRecipe {
|
|||
* @return New task recipe component
|
||||
*/
|
||||
public TaskRecipeComponentVoid<I> synchronous(final @NonNull TaskConsumer<I> consumer) {
|
||||
addSynchronous(consumer);
|
||||
return new TaskRecipeComponentVoid<>(initialInput);
|
||||
TaskRecipe.this.addSynchronous(consumer);
|
||||
return new TaskRecipeComponentVoid<>(this.initialInput);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -215,8 +215,8 @@ public final class TaskRecipe {
|
|||
* @return New task recipe component
|
||||
*/
|
||||
public TaskRecipeComponentVoid<I> asynchronous(final @NonNull TaskConsumer<I> consumer) {
|
||||
addSynchronous(consumer);
|
||||
return new TaskRecipeComponentVoid<>(initialInput);
|
||||
TaskRecipe.this.addSynchronous(consumer);
|
||||
return new TaskRecipeComponentVoid<>(this.initialInput);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -225,7 +225,7 @@ public final class TaskRecipe {
|
|||
* @param callback Callback function
|
||||
*/
|
||||
public void execute(final @NonNull Runnable callback) {
|
||||
TaskRecipe.this.execute(initialInput, callback);
|
||||
TaskRecipe.this.execute(this.initialInput, callback);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ package cloud.commandframework.examples.bukkit;
|
|||
import cloud.commandframework.ArgumentDescription;
|
||||
import cloud.commandframework.Command;
|
||||
import cloud.commandframework.CommandTree;
|
||||
import cloud.commandframework.Description;
|
||||
import cloud.commandframework.keys.SimpleCloudKey;
|
||||
import cloud.commandframework.minecraft.extras.MinecraftExceptionHandler;
|
||||
import cloud.commandframework.minecraft.extras.MinecraftHelp;
|
||||
|
|
@ -138,7 +137,7 @@ public final class ExamplePlugin extends JavaPlugin {
|
|||
/* C -> Command Sender */ mapperFunction
|
||||
);
|
||||
} catch (final Exception e) {
|
||||
this.getLogger().severe("Failed to initialize the command manager");
|
||||
this.getLogger().severe("Failed to initialize the command this.manager");
|
||||
/* Disable the plugin */
|
||||
this.getServer().getPluginManager().disablePlugin(this);
|
||||
return;
|
||||
|
|
@ -159,17 +158,17 @@ public final class ExamplePlugin extends JavaPlugin {
|
|||
//
|
||||
// Register Brigadier mappings
|
||||
//
|
||||
if (manager.queryCapability(CloudBukkitCapabilities.BRIGADIER)) {
|
||||
manager.registerBrigadier();
|
||||
if (this.manager.queryCapability(CloudBukkitCapabilities.BRIGADIER)) {
|
||||
this.manager.registerBrigadier();
|
||||
}
|
||||
//
|
||||
// Register asynchronous completions
|
||||
//
|
||||
if (manager.queryCapability(CloudBukkitCapabilities.ASYNCHRONOUS_COMPLETION)) {
|
||||
if (this.manager.queryCapability(CloudBukkitCapabilities.ASYNCHRONOUS_COMPLETION)) {
|
||||
((PaperCommandManager<CommandSender>) this.manager).registerAsynchronousCompletions();
|
||||
}
|
||||
//
|
||||
// Create the confirmation manager. This allows us to require certain commands to be
|
||||
// Create the confirmation this.manager. This allows us to require certain commands to be
|
||||
// confirmed before they can be executed
|
||||
//
|
||||
this.confirmationManager = new CommandConfirmationManager<>(
|
||||
|
|
@ -183,7 +182,7 @@ public final class ExamplePlugin extends JavaPlugin {
|
|||
//
|
||||
// Register the confirmation processor. This will enable confirmations for commands that require it
|
||||
//
|
||||
this.confirmationManager.registerConfirmationProcessor(manager);
|
||||
this.confirmationManager.registerConfirmationProcessor(this.manager);
|
||||
//
|
||||
// Create the annotation parser. This allows you to define commands using methods annotated with
|
||||
// @CommandMethod
|
||||
|
|
@ -213,7 +212,7 @@ public final class ExamplePlugin extends JavaPlugin {
|
|||
.append(text("Example", NamedTextColor.GOLD))
|
||||
.append(text("] ", NamedTextColor.DARK_GRAY))
|
||||
.append(component).build()
|
||||
).apply(manager, bukkitAudiences::sender);
|
||||
).apply(this.manager, this.bukkitAudiences::sender);
|
||||
//
|
||||
// Create the commands
|
||||
//
|
||||
|
|
@ -266,7 +265,7 @@ public final class ExamplePlugin extends JavaPlugin {
|
|||
),
|
||||
ArgumentDescription.of("Coordinates")
|
||||
)
|
||||
.handler(context -> manager.taskRecipe().begin(context)
|
||||
.handler(context -> this.manager.taskRecipe().begin(context)
|
||||
.synchronous(commandContext -> {
|
||||
final Player player = (Player) commandContext.getSender();
|
||||
final World world = commandContext.get(worldArgument);
|
||||
|
|
@ -283,7 +282,7 @@ public final class ExamplePlugin extends JavaPlugin {
|
|||
)
|
||||
.literal("here")
|
||||
.handler(
|
||||
context -> manager.taskRecipe().begin(context)
|
||||
context -> this.manager.taskRecipe().begin(context)
|
||||
.synchronous(commandContext -> {
|
||||
final Player player = (Player) commandContext.getSender();
|
||||
final SingleEntitySelector singleEntitySelector = commandContext
|
||||
|
|
@ -299,13 +298,13 @@ public final class ExamplePlugin extends JavaPlugin {
|
|||
.command(builder.literal("teleport")
|
||||
.meta(CommandMeta.DESCRIPTION, "Teleport to a world")
|
||||
.argument(WorldArgument.of("world"), ArgumentDescription.of("World to teleport to"))
|
||||
.handler(context -> manager.taskRecipe().begin(context).synchronous(ctx -> {
|
||||
.handler(context -> this.manager.taskRecipe().begin(context).synchronous(ctx -> {
|
||||
final Player player = (Player) ctx.getSender();
|
||||
player.teleport(ctx.<World>get("world").getSpawnLocation());
|
||||
player.sendMessage(ChatColor.GREEN + "You have been teleported!");
|
||||
}).execute()));
|
||||
manager.command(builder.literal("tasktest")
|
||||
.handler(context -> manager.taskRecipe()
|
||||
this.manager.command(builder.literal("tasktest")
|
||||
.handler(context -> this.manager.taskRecipe()
|
||||
.begin(context)
|
||||
.asynchronous(c -> {
|
||||
c.getSender().sendMessage("ASYNC: " + !Bukkit.isPrimaryThread());
|
||||
|
|
@ -316,7 +315,7 @@ public final class ExamplePlugin extends JavaPlugin {
|
|||
})
|
||||
.execute(() -> context.getSender().sendMessage("DONE!"))
|
||||
));
|
||||
manager.command(manager.commandBuilder("give")
|
||||
this.manager.command(this.manager.commandBuilder("give")
|
||||
.senderType(Player.class)
|
||||
.argument(MaterialArgument.of("material"))
|
||||
.argument(IntegerArgument.of("amount"))
|
||||
|
|
@ -327,18 +326,18 @@ public final class ExamplePlugin extends JavaPlugin {
|
|||
((Player) c.getSender()).getInventory().addItem(itemStack);
|
||||
c.getSender().sendMessage("You've been given stuff, bro.");
|
||||
}));
|
||||
manager.command(builder.literal("summon")
|
||||
this.manager.command(builder.literal("summon")
|
||||
.senderType(Player.class)
|
||||
.argument(EnumArgument.of(EntityType.class, "type"))
|
||||
.handler(c -> manager.taskRecipe().begin(c).synchronous(ctx -> {
|
||||
.handler(c -> this.manager.taskRecipe().begin(c).synchronous(ctx -> {
|
||||
final Location loc = ((Player) ctx.getSender()).getLocation();
|
||||
loc.getWorld().spawnEntity(loc, ctx.get("type"));
|
||||
}).execute()));
|
||||
manager.command(builder.literal("enchant")
|
||||
this.manager.command(builder.literal("enchant")
|
||||
.senderType(Player.class)
|
||||
.argument(EnchantmentArgument.of("enchant"))
|
||||
.argument(IntegerArgument.of("level"))
|
||||
.handler(c -> manager.taskRecipe().begin(c).synchronous(ctx -> {
|
||||
.handler(c -> this.manager.taskRecipe().begin(c).synchronous(ctx -> {
|
||||
final Player player = ((Player) ctx.getSender());
|
||||
player.getInventory().getItemInHand().addEnchantment(ctx.get("enchant"), ctx.get("level"));
|
||||
}).execute()));
|
||||
|
|
@ -346,7 +345,7 @@ public final class ExamplePlugin extends JavaPlugin {
|
|||
//
|
||||
// A command to change the color scheme for the help command
|
||||
//
|
||||
manager.command(builder
|
||||
this.manager.command(builder
|
||||
.meta(CommandMeta.DESCRIPTION, "Sets the color scheme for '/example help'")
|
||||
.literal("helpcolors")
|
||||
.argument(
|
||||
|
|
@ -369,7 +368,7 @@ public final class ExamplePlugin extends JavaPlugin {
|
|||
TextColorArgument.of("accent"),
|
||||
RichDescription.of(text("The color used for accents and symbols"))
|
||||
)
|
||||
.handler(c -> minecraftHelp.setHelpColors(MinecraftHelp.HelpColors.of(
|
||||
.handler(c -> this.minecraftHelp.setHelpColors(MinecraftHelp.HelpColors.of(
|
||||
c.get("primary"),
|
||||
c.get("highlight"),
|
||||
c.get("alternate_highlight"),
|
||||
|
|
@ -381,8 +380,8 @@ public final class ExamplePlugin extends JavaPlugin {
|
|||
//
|
||||
// Create a Bukkit-like command
|
||||
//
|
||||
manager.command(
|
||||
manager.commandBuilder(
|
||||
this.manager.command(
|
||||
this.manager.commandBuilder(
|
||||
"arraycommand",
|
||||
ArgumentDescription.of("Bukkit-esque cmmand")
|
||||
).argument(
|
||||
|
|
@ -405,8 +404,8 @@ public final class ExamplePlugin extends JavaPlugin {
|
|||
|
||||
/* Register a custom regex caption */
|
||||
final Caption moneyCaption = Caption.of("regex.money");
|
||||
if (manager.getCaptionRegistry() instanceof SimpleCaptionRegistry) {
|
||||
((SimpleCaptionRegistry<CommandSender>) manager.getCaptionRegistry()).registerMessageFactory(
|
||||
if (this.manager.getCaptionRegistry() instanceof SimpleCaptionRegistry) {
|
||||
((SimpleCaptionRegistry<CommandSender>) this.manager.getCaptionRegistry()).registerMessageFactory(
|
||||
moneyCaption,
|
||||
(sender, key) -> "'{input}' is not very cash money of you"
|
||||
);
|
||||
|
|
@ -471,7 +470,7 @@ public final class ExamplePlugin extends JavaPlugin {
|
|||
final @Argument("money") @Regex(value = "(?=.*?\\d)^\\$?(([1-9]\\d{0,2}(,\\d{3})*)|\\d+)?(\\.\\d{1,2})?$",
|
||||
failureCaption = "regex.money") String money
|
||||
) {
|
||||
bukkitAudiences.sender(sender).sendMessage(
|
||||
this.bukkitAudiences.sender(sender).sendMessage(
|
||||
Identity.nil(),
|
||||
text().append(text("You have been given ", NamedTextColor.AQUA))
|
||||
.append(text(money, NamedTextColor.GOLD))
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ public final class ExamplePlugin extends Plugin {
|
|||
mapperFunction
|
||||
);
|
||||
} catch (final Exception e) {
|
||||
this.getLogger().severe("Failed to initialize the command manager");
|
||||
this.getLogger().severe("Failed to initialize the command this.manager");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -79,14 +79,14 @@ public final class ExamplePlugin extends Plugin {
|
|||
this.confirmationManager = new CommandConfirmationManager<>(
|
||||
30L,
|
||||
TimeUnit.SECONDS,
|
||||
context -> bungeeAudiences.sender(context.getCommandContext().getSender()).sendMessage(
|
||||
context -> this.bungeeAudiences.sender(context.getCommandContext().getSender()).sendMessage(
|
||||
text(
|
||||
"Confirmation required. Confirm using /example confirm.", NamedTextColor.RED)),
|
||||
sender -> bungeeAudiences.sender(sender).sendMessage(
|
||||
sender -> this.bungeeAudiences.sender(sender).sendMessage(
|
||||
text("You do not have any pending commands.", NamedTextColor.RED))
|
||||
);
|
||||
|
||||
this.confirmationManager.registerConfirmationProcessor(manager);
|
||||
this.confirmationManager.registerConfirmationProcessor(this.manager);
|
||||
|
||||
new MinecraftExceptionHandler<CommandSender>()
|
||||
.withInvalidSyntaxHandler()
|
||||
|
|
@ -98,7 +98,7 @@ public final class ExamplePlugin extends Plugin {
|
|||
.append(text("Example", NamedTextColor.GOLD))
|
||||
.append(text("] ", NamedTextColor.DARK_GRAY))
|
||||
.append(component).build()
|
||||
).apply(manager, bungeeAudiences::sender);
|
||||
).apply(this.manager, this.bungeeAudiences::sender);
|
||||
this.constructCommands();
|
||||
}
|
||||
|
||||
|
|
@ -121,12 +121,12 @@ public final class ExamplePlugin extends Plugin {
|
|||
// Create a player command
|
||||
//
|
||||
this.manager.command(
|
||||
manager.commandBuilder("player")
|
||||
this.manager.commandBuilder("player")
|
||||
.senderType(ProxiedPlayer.class)
|
||||
.argument(playerArgument, RichDescription.of(text("Player ").append(text("name", NamedTextColor.GOLD))))
|
||||
.handler(context -> {
|
||||
final ProxiedPlayer player = context.get("player");
|
||||
bungeeAudiences.sender(context.getSender()).sendMessage(
|
||||
this.bungeeAudiences.sender(context.getSender()).sendMessage(
|
||||
text("Selected ", NamedTextColor.GOLD)
|
||||
.append(text(player.getDisplayName(), NamedTextColor.AQUA))
|
||||
);
|
||||
|
|
@ -142,7 +142,7 @@ public final class ExamplePlugin extends Plugin {
|
|||
.argument(serverArgument, ArgumentDescription.of("Server name"))
|
||||
.handler(context -> {
|
||||
final ServerInfo server = context.get("server");
|
||||
bungeeAudiences.sender(context.getSender()).sendMessage(
|
||||
this.bungeeAudiences.sender(context.getSender()).sendMessage(
|
||||
text("Selected ", NamedTextColor.GOLD)
|
||||
.append(text(server.getName(), NamedTextColor.AQUA))
|
||||
);
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ public abstract class CustomUser {
|
|||
* @return Sending user
|
||||
*/
|
||||
public final @NonNull User getUser() {
|
||||
return user;
|
||||
return this.user;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -78,7 +78,7 @@ public abstract class CustomUser {
|
|||
* @return Message channel
|
||||
*/
|
||||
public final @NonNull MessageChannel getChannel() {
|
||||
return channel;
|
||||
return this.channel;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ public final class GuildUser extends CustomUser {
|
|||
* @return Sending member
|
||||
*/
|
||||
public @NonNull Member getMember() {
|
||||
return member;
|
||||
return this.member;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -62,7 +62,7 @@ public final class GuildUser extends CustomUser {
|
|||
* @return Message channel
|
||||
*/
|
||||
public @NonNull TextChannel getTextChannel() {
|
||||
return channel;
|
||||
return this.channel;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ public final class PrivateUser extends CustomUser {
|
|||
* @return Private channel
|
||||
*/
|
||||
public @NonNull PrivateChannel getPrivateChannel() {
|
||||
return privateChannel;
|
||||
return this.privateChannel;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ public final class ExampleVelocityPlugin {
|
|||
*/
|
||||
@Subscribe
|
||||
public void onProxyInitialization(final @NonNull ProxyInitializeEvent event) {
|
||||
final Injector childInjector = injector.createChildInjector(
|
||||
final Injector childInjector = this.injector.createChildInjector(
|
||||
new CloudInjectionModule<>(
|
||||
CommandSource.class,
|
||||
CommandExecutionCoordinator.simpleCoordinator(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue