Add argument for FinePosition to brig API (#11094)
This commit is contained in:
parent
dcbd99de4a
commit
f82bea6940
3 changed files with 82 additions and 11 deletions
|
@ -964,10 +964,10 @@ index 0000000000000000000000000000000000000000..2db12952461c92a64505d6646f6f49f8
|
|||
+}
|
||||
diff --git a/src/main/java/io/papermc/paper/command/brigadier/argument/ArgumentTypes.java b/src/main/java/io/papermc/paper/command/brigadier/argument/ArgumentTypes.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..1d5c599d1b9c8bf07720e651bdbe9dadb1335b45
|
||||
index 0000000000000000000000000000000000000000..f102176791e57d23a148ba79bfc949f4ef470c70
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/io/papermc/paper/command/brigadier/argument/ArgumentTypes.java
|
||||
@@ -0,0 +1,349 @@
|
||||
@@ -0,0 +1,370 @@
|
||||
+package io.papermc.paper.command.brigadier.argument;
|
||||
+
|
||||
+import com.mojang.brigadier.arguments.ArgumentType;
|
||||
|
@ -975,6 +975,7 @@ index 0000000000000000000000000000000000000000..1d5c599d1b9c8bf07720e651bdbe9dad
|
|||
+import io.papermc.paper.command.brigadier.argument.range.DoubleRangeProvider;
|
||||
+import io.papermc.paper.command.brigadier.argument.range.IntegerRangeProvider;
|
||||
+import io.papermc.paper.command.brigadier.argument.resolvers.BlockPositionResolver;
|
||||
+import io.papermc.paper.command.brigadier.argument.resolvers.FinePositionResolver;
|
||||
+import io.papermc.paper.command.brigadier.argument.resolvers.PlayerProfileListResolver;
|
||||
+import io.papermc.paper.command.brigadier.argument.resolvers.selector.EntitySelectorArgumentResolver;
|
||||
+import io.papermc.paper.command.brigadier.argument.resolvers.selector.PlayerSelectorArgumentResolver;
|
||||
|
@ -1056,7 +1057,7 @@ index 0000000000000000000000000000000000000000..1d5c599d1b9c8bf07720e651bdbe9dad
|
|||
+ * A selector argument that provides a list
|
||||
+ * of player profiles.
|
||||
+ *
|
||||
+ * @return player profile arguments
|
||||
+ * @return player profile argument
|
||||
+ */
|
||||
+ public static @NotNull ArgumentType<PlayerProfileListResolver> playerProfiles() {
|
||||
+ return provider().playerProfiles();
|
||||
|
@ -1065,13 +1066,33 @@ index 0000000000000000000000000000000000000000..1d5c599d1b9c8bf07720e651bdbe9dad
|
|||
+ /**
|
||||
+ * A block position argument.
|
||||
+ *
|
||||
+ * @return argument
|
||||
+ * @return block position argument
|
||||
+ */
|
||||
+ public static @NotNull ArgumentType<BlockPositionResolver> blockPosition() {
|
||||
+ return provider().blockPosition();
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * A fine position argument.
|
||||
+ *
|
||||
+ * @return fine position argument
|
||||
+ * @see #finePosition(boolean) to center whole numbers
|
||||
+ */
|
||||
+ public static @NotNull ArgumentType<FinePositionResolver> finePosition() {
|
||||
+ return finePosition(false);
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * A fine position argument.
|
||||
+ *
|
||||
+ * @param centerIntegers if whole numbers should be centered (+0.5)
|
||||
+ * @return fine position argument
|
||||
+ */
|
||||
+ public static @NotNull ArgumentType<FinePositionResolver> finePosition(final boolean centerIntegers) {
|
||||
+ return provider().finePosition(centerIntegers);
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * A blockstate argument which will provide rich parsing for specifying
|
||||
+ * the specific block variant and then the block entity NBT if applicable.
|
||||
+ *
|
||||
|
@ -1519,10 +1540,10 @@ index 0000000000000000000000000000000000000000..159b691e7a1a7066f3e706e80d75ca8f
|
|||
+}
|
||||
diff --git a/src/main/java/io/papermc/paper/command/brigadier/argument/VanillaArgumentProvider.java b/src/main/java/io/papermc/paper/command/brigadier/argument/VanillaArgumentProvider.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..fbbbf324c002dddd868ba2fb56ddda92149ced3c
|
||||
index 0000000000000000000000000000000000000000..e8c1c0f781bfc852af4a0f01452566ae994dc285
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/io/papermc/paper/command/brigadier/argument/VanillaArgumentProvider.java
|
||||
@@ -0,0 +1,104 @@
|
||||
@@ -0,0 +1,107 @@
|
||||
+package io.papermc.paper.command.brigadier.argument;
|
||||
+
|
||||
+import com.mojang.brigadier.arguments.ArgumentType;
|
||||
|
@ -1530,6 +1551,7 @@ index 0000000000000000000000000000000000000000..fbbbf324c002dddd868ba2fb56ddda92
|
|||
+import io.papermc.paper.command.brigadier.argument.range.DoubleRangeProvider;
|
||||
+import io.papermc.paper.command.brigadier.argument.range.IntegerRangeProvider;
|
||||
+import io.papermc.paper.command.brigadier.argument.resolvers.BlockPositionResolver;
|
||||
+import io.papermc.paper.command.brigadier.argument.resolvers.FinePositionResolver;
|
||||
+import io.papermc.paper.command.brigadier.argument.resolvers.PlayerProfileListResolver;
|
||||
+import io.papermc.paper.command.brigadier.argument.resolvers.selector.EntitySelectorArgumentResolver;
|
||||
+import io.papermc.paper.command.brigadier.argument.resolvers.selector.PlayerSelectorArgumentResolver;
|
||||
|
@ -1580,6 +1602,8 @@ index 0000000000000000000000000000000000000000..fbbbf324c002dddd868ba2fb56ddda92
|
|||
+
|
||||
+ ArgumentType<BlockPositionResolver> blockPosition();
|
||||
+
|
||||
+ ArgumentType<FinePositionResolver> finePosition(boolean centerIntegers);
|
||||
+
|
||||
+ ArgumentType<BlockState> blockState();
|
||||
+
|
||||
+ ArgumentType<ItemStack> itemStack();
|
||||
|
@ -1770,6 +1794,29 @@ index 0000000000000000000000000000000000000000..908f40dbf3e52bdfc8577a8916884e9f
|
|||
+@ApiStatus.NonExtendable
|
||||
+public interface BlockPositionResolver extends ArgumentResolver<BlockPosition> {
|
||||
+}
|
||||
diff --git a/src/main/java/io/papermc/paper/command/brigadier/argument/resolvers/FinePositionResolver.java b/src/main/java/io/papermc/paper/command/brigadier/argument/resolvers/FinePositionResolver.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..e2fc26016b8d68fd0d69c8ca962f61fe65471b24
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/io/papermc/paper/command/brigadier/argument/resolvers/FinePositionResolver.java
|
||||
@@ -0,0 +1,17 @@
|
||||
+package io.papermc.paper.command.brigadier.argument.resolvers;
|
||||
+
|
||||
+import io.papermc.paper.command.brigadier.CommandSourceStack;
|
||||
+import io.papermc.paper.math.FinePosition;
|
||||
+import org.jetbrains.annotations.ApiStatus;
|
||||
+
|
||||
+/**
|
||||
+ * An {@link ArgumentResolver} that's capable of resolving
|
||||
+ * a fine position argument value using a {@link CommandSourceStack}.
|
||||
+ *
|
||||
+ * @see io.papermc.paper.command.brigadier.argument.ArgumentTypes#finePosition()
|
||||
+ * @see io.papermc.paper.command.brigadier.argument.ArgumentTypes#finePosition(boolean)
|
||||
+ */
|
||||
+@ApiStatus.Experimental
|
||||
+@ApiStatus.NonExtendable
|
||||
+public interface FinePositionResolver extends ArgumentResolver<FinePosition> {
|
||||
+}
|
||||
diff --git a/src/main/java/io/papermc/paper/command/brigadier/argument/resolvers/PlayerProfileListResolver.java b/src/main/java/io/papermc/paper/command/brigadier/argument/resolvers/PlayerProfileListResolver.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..89024e67fd81a9cd8a9d1ef5bb78d1c8bcb4fcc5
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue