Skip to content

Commit 04a593b

Browse files
authored
fix: Integer range argument using a double range argument type (#8)
1 parent 07c1515 commit 04a593b

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

strokk-commands-processor/src/main/java/net/strokkur/commands/internal/arguments/BrigadierArgumentConverter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ public class BrigadierArgumentConverter {
283283
), "com.google.common.collect.Range<java.lang.Double>");
284284

285285
putFor((p, name) -> BrigadierArgumentType.of(
286-
"ArgumentTypes.doubleRange()",
286+
"ArgumentTypes.integerRange()",
287287
"ctx.getArgument(\"%s\", IntegerRangeProvider.class)".formatted(name),
288288
Set.of(
289289
"io.papermc.paper.command.brigadier.argument.ArgumentTypes",
@@ -292,7 +292,7 @@ public class BrigadierArgumentConverter {
292292
), "io.papermc.paper.command.brigadier.argument.range.IntegerRangeProvider", "io.papermc.paper.command.brigadier.argument.range.RangeProvider<java.lang.Integer>");
293293

294294
putFor((p, name) -> BrigadierArgumentType.of(
295-
"ArgumentTypes.doubleRange()",
295+
"ArgumentTypes.integerRange()",
296296
"ctx.getArgument(\"%s\", IntegerRangeProvider.class).range()".formatted(name),
297297
Set.of(
298298
"io.papermc.paper.command.brigadier.argument.ArgumentTypes",

strokk-commands-test-plugin/src/main/java/net/strokkur/testplugin/commands/PredicateArgumentsCommand.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import com.google.common.collect.Range;
2121
import io.papermc.paper.command.brigadier.argument.predicate.ItemStackPredicate;
22+
import net.kyori.adventure.audience.Audience;
2223
import net.kyori.adventure.text.Component;
2324
import net.kyori.adventure.text.format.NamedTextColor;
2425
import net.strokkur.commands.annotations.Command;
@@ -42,10 +43,19 @@ void executor(CommandSender sender, ItemStack item, @Literal("match") String $ma
4243

4344
@Executes("number")
4445
void executor(CommandSender sender, double value, @Literal("fit") String $fit, @Literal("into") String $into, Range<Double> range) {
46+
checkNumberInRange(sender, value, range);
47+
}
48+
49+
@Executes("int-range")
50+
void executor(CommandSender sender, int value, @Literal("fit") String $fit, @Literal("into") String $into, Range<Integer> range) {
51+
checkNumberInRange(sender, value, range);
52+
}
53+
54+
<T extends Comparable> void checkNumberInRange(Audience audience, T value, Range<T> range) {
4555
if (range.contains(value)) {
46-
sender.sendMessage(Component.text("Yes it does, open your eyes.", NamedTextColor.GREEN));
56+
audience.sendMessage(Component.text("Yes it does, open your eyes.", NamedTextColor.GREEN));
4757
} else {
48-
sender.sendMessage(Component.text("W... why the hell would it???", NamedTextColor.RED));
58+
audience.sendMessage(Component.text("W... why the hell would it???", NamedTextColor.RED));
4959
}
5060
}
5161
}

0 commit comments

Comments
 (0)