diff --git a/src/main/java/me/melontini/commander/command/selector/Extractor.java b/src/main/java/me/melontini/commander/command/selector/Extractor.java index 940baeb..8f7c11b 100644 --- a/src/main/java/me/melontini/commander/command/selector/Extractor.java +++ b/src/main/java/me/melontini/commander/command/selector/Extractor.java @@ -12,6 +12,9 @@ public interface Extractor extends Function { static Consumer> forEntity() { return map -> { map.put("uuid", source -> Objects.requireNonNull(source.getEntity()).getUuidAsString()); + map.put("vel/x", source -> String.valueOf(Objects.requireNonNull(source.getEntity()).getVelocity().x)); + map.put("vel/y", source -> String.valueOf(Objects.requireNonNull(source.getEntity()).getVelocity().y)); + map.put("vel/z", source -> String.valueOf(Objects.requireNonNull(source.getEntity()).getVelocity().z)); }; } diff --git a/src/main/java/me/melontini/commander/data/types/SelectorTypes.java b/src/main/java/me/melontini/commander/data/types/SelectorTypes.java index 72dec1c..74d8260 100644 --- a/src/main/java/me/melontini/commander/data/types/SelectorTypes.java +++ b/src/main/java/me/melontini/commander/data/types/SelectorTypes.java @@ -8,6 +8,7 @@ import me.melontini.commander.command.selector.Selector; import me.melontini.commander.util.MagicCodecs; import me.melontini.dark_matter.api.base.util.Utilities; +import net.minecraft.server.command.ServerCommandSource; import net.minecraft.util.Identifier; import java.util.Collections; @@ -24,6 +25,10 @@ public final class SelectorTypes { map.put("x", source -> String.valueOf(source.getPosition().x)); map.put("y", source -> String.valueOf(source.getPosition().y)); map.put("z", source -> String.valueOf(source.getPosition().z)); + map.put("rot/x", source -> String.valueOf(source.getRotation().x)); + map.put("rot/y", source -> String.valueOf(source.getRotation().y)); + map.put("name", ServerCommandSource::getName); + map.put("world/key", source -> source.getWorld().getRegistryKey().getValue().toString()); })); public static final Codec CODEC = MagicCodecs.mapLookup(SELECTORS); diff --git a/src/main/java/me/melontini/commander/util/macro/BrigadierMacro.java b/src/main/java/me/melontini/commander/util/macro/BrigadierMacro.java index e103afd..31822a1 100644 --- a/src/main/java/me/melontini/commander/util/macro/BrigadierMacro.java +++ b/src/main/java/me/melontini/commander/util/macro/BrigadierMacro.java @@ -33,7 +33,6 @@ static DataResult buildCommand(String input) { Extractor extractor = SelectorTypes.getExtractor(identifier.result().orElseThrow(), field); if (extractor == null) return DataResult.error(() -> "Selector %s does not support extractor %s".formatted(identifier, field)); - var builder = new StringBuilder(); matcher.appendReplacement(builder,""); String cmd = builder.toString(); diff --git a/src/main/java/me/melontini/commander/util/macro/DynamicMacro.java b/src/main/java/me/melontini/commander/util/macro/DynamicMacro.java index 771f1c2..306b6d9 100644 --- a/src/main/java/me/melontini/commander/util/macro/DynamicMacro.java +++ b/src/main/java/me/melontini/commander/util/macro/DynamicMacro.java @@ -7,8 +7,6 @@ public record DynamicMacro(String original, Function start) implements BrigadierMacro { public String build(EventContext context) { - var s = start.apply(context); - System.out.println(s); - return s; + return start.apply(context); } }