From eda821c3d8a26174a4a21212e425b345ff7f4395 Mon Sep 17 00:00:00 2001 From: themode Date: Thu, 11 Feb 2021 00:25:38 +0100 Subject: [PATCH] Cleanup + don't verify player name in ArgumentEntity --- .../command/builder/CommandDispatcher.java | 2 +- .../builder/arguments/ArgumentLiteral.java | 1 - .../arguments/minecraft/ArgumentEntity.java | 17 +++++++---------- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/main/java/net/minestom/server/command/builder/CommandDispatcher.java b/src/main/java/net/minestom/server/command/builder/CommandDispatcher.java index 36394b77a..2f19e2c48 100644 --- a/src/main/java/net/minestom/server/command/builder/CommandDispatcher.java +++ b/src/main/java/net/minestom/server/command/builder/CommandDispatcher.java @@ -113,7 +113,7 @@ public class CommandDispatcher { } /** - * GetS the command class associated with the name; + * Gets the command class associated with the name. * * @param commandName the command name * @return the {@link Command} associated with the name, null if not any diff --git a/src/main/java/net/minestom/server/command/builder/arguments/ArgumentLiteral.java b/src/main/java/net/minestom/server/command/builder/arguments/ArgumentLiteral.java index 9331b2afe..4bee70d85 100644 --- a/src/main/java/net/minestom/server/command/builder/arguments/ArgumentLiteral.java +++ b/src/main/java/net/minestom/server/command/builder/arguments/ArgumentLiteral.java @@ -21,7 +21,6 @@ public class ArgumentLiteral extends Argument { if (input.contains(StringUtils.SPACE)) throw new ArgumentSyntaxException("Literals cannot contain space character", input, SPACE_ERROR); - // Check restrictions (acting as literal) if (!input.equals(getId())) throw new ArgumentSyntaxException("Invalid literal value", input, INVALID_VALUE_ERROR); diff --git a/src/main/java/net/minestom/server/command/builder/arguments/minecraft/ArgumentEntity.java b/src/main/java/net/minestom/server/command/builder/arguments/minecraft/ArgumentEntity.java index 5ab451d2d..1da991d63 100644 --- a/src/main/java/net/minestom/server/command/builder/arguments/minecraft/ArgumentEntity.java +++ b/src/main/java/net/minestom/server/command/builder/arguments/minecraft/ArgumentEntity.java @@ -1,11 +1,9 @@ package net.minestom.server.command.builder.arguments.minecraft; -import net.minestom.server.MinecraftServer; import net.minestom.server.command.builder.arguments.Argument; import net.minestom.server.command.builder.exception.ArgumentSyntaxException; import net.minestom.server.entity.EntityType; import net.minestom.server.entity.GameMode; -import net.minestom.server.network.ConnectionManager; import net.minestom.server.network.packet.server.play.DeclareCommandsPacket; import net.minestom.server.registry.Registries; import net.minestom.server.utils.entity.EntityFinder; @@ -28,7 +26,8 @@ public class ArgumentEntity extends Argument { public static final int ONLY_PLAYERS_ERROR = -4; public static final int INVALID_ARGUMENT_NAME = -5; public static final int INVALID_ARGUMENT_VALUE = -6; - private static final ConnectionManager CONNECTION_MANAGER = MinecraftServer.getConnectionManager(); + + private static final String SELECTOR_PREFIX = "@"; private static final List selectorVariables = Arrays.asList("@p", "@r", "@a", "@e", "@s"); private static final List playersOnlySelector = Arrays.asList("@p", "@r", "@a", "@s"); private static final List singleOnlySelector = Arrays.asList("@p", "@r", "@s"); @@ -91,12 +90,10 @@ public class ArgumentEntity extends Argument { public static EntityFinder staticParse(@NotNull String input, boolean onlySingleEntity, boolean onlyPlayers) throws ArgumentSyntaxException { // Check for raw player name - if (input.length() <= 16) { - if (CONNECTION_MANAGER.getPlayer(input) != null) { - return new EntityFinder() - .setTargetSelector(EntityFinder.TargetSelector.ALL_PLAYERS) - .setName(input, EntityFinder.ToggleableType.INCLUDE); - } + if (input.length() <= 16 && !input.contains(SELECTOR_PREFIX)) { + return new EntityFinder() + .setTargetSelector(EntityFinder.TargetSelector.ALL_PLAYERS) + .setName(input, EntityFinder.ToggleableType.INCLUDE); } // The minimum size is always 0 (for the selector variable, ex: @p) @@ -104,7 +101,7 @@ public class ArgumentEntity extends Argument { throw new ArgumentSyntaxException("Length needs to be > 1", input, INVALID_SYNTAX); // The target selector variable always start by '@' - if (!input.startsWith("@")) + if (!input.startsWith(SELECTOR_PREFIX)) throw new ArgumentSyntaxException("Target selector needs to start with @", input, INVALID_SYNTAX); final String selectorVariable = input.substring(0, 2);