Skip to content

Commit c346f59

Browse files
committed
Update various failing tests due to 1.20.5 having better error messages. Disable NBT tests for 1.20.5. Fix various NMS_Common differences with 1.20.5 to do with chat
1 parent 9816cd7 commit c346f59

File tree

8 files changed

+57
-10
lines changed

8 files changed

+57
-10
lines changed

commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20.5/src/main/java/dev/jorel/commandapi/nms/NMS_1_20_R4.java

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@
8989
import com.mojang.brigadier.suggestion.Suggestions;
9090
import com.mojang.brigadier.tree.CommandNode;
9191
import com.mojang.logging.LogUtils;
92-
import com.mojang.serialization.codecs.RecordCodecBuilder;
9392

9493
import dev.jorel.commandapi.CommandAPI;
9594
import dev.jorel.commandapi.CommandAPIHandler;
@@ -114,6 +113,8 @@
114113
import net.kyori.adventure.text.Component;
115114
import net.kyori.adventure.text.format.NamedTextColor;
116115
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
116+
import net.md_5.bungee.api.chat.BaseComponent;
117+
import net.md_5.bungee.chat.ComponentSerializer;
117118
import net.minecraft.advancements.AdvancementHolder;
118119
import net.minecraft.advancements.critereon.MinMaxBounds;
119120
import net.minecraft.commands.CommandBuildContext;
@@ -125,6 +126,7 @@
125126
import net.minecraft.commands.arguments.ComponentArgument;
126127
import net.minecraft.commands.arguments.DimensionArgument;
127128
import net.minecraft.commands.arguments.EntityArgument;
129+
import net.minecraft.commands.arguments.MessageArgument;
128130
import net.minecraft.commands.arguments.ParticleArgument;
129131
import net.minecraft.commands.arguments.RangeArgument;
130132
import net.minecraft.commands.arguments.ResourceArgument;
@@ -133,7 +135,6 @@
133135
import net.minecraft.commands.arguments.ScoreboardSlotArgument;
134136
import net.minecraft.commands.arguments.blocks.BlockPredicateArgument;
135137
import net.minecraft.commands.arguments.blocks.BlockStateArgument;
136-
import net.minecraft.commands.arguments.blocks.BlockStateParser;
137138
import net.minecraft.commands.arguments.coordinates.BlockPosArgument;
138139
import net.minecraft.commands.arguments.coordinates.ColumnPosArgument;
139140
import net.minecraft.commands.arguments.coordinates.Vec2Argument;
@@ -149,7 +150,6 @@
149150
import net.minecraft.commands.synchronization.ArgumentUtils;
150151
import net.minecraft.core.BlockPos;
151152
import net.minecraft.core.HolderLookup.Provider;
152-
import net.minecraft.core.RegistryAccess.Frozen;
153153
import net.minecraft.core.component.DataComponentMap;
154154
import net.minecraft.core.component.TypedDataComponent;
155155
import net.minecraft.core.particles.BlockParticleOption;
@@ -243,6 +243,12 @@ public final ArgumentType<?> _ArgumentBlockPredicate() {
243243
public final ArgumentType<?> _ArgumentBlockState() {
244244
return BlockStateArgument.block(COMMAND_BUILD_CONTEXT);
245245
}
246+
247+
@Differs(from = "1.20.4", by = "Now needs a command build context")
248+
@Override
249+
public ArgumentType<?> _ArgumentChatComponent() {
250+
return ComponentArgument.textComponent(COMMAND_BUILD_CONTEXT);
251+
}
246252

247253
@Override
248254
public final ArgumentType<?> _ArgumentEnchantment() {
@@ -435,6 +441,12 @@ public Advancement getAdvancement(CommandContext<CommandSourceStack> cmdCtx, Str
435441
throws CommandSyntaxException {
436442
return ResourceLocationArgument.getAdvancement(cmdCtx, key).toBukkit();
437443
}
444+
445+
@Differs(from = "1.20.4", by = "Serializer.toJson now needs a Provider")
446+
@Override
447+
public Component getAdventureChat(CommandContext<CommandSourceStack> cmdCtx, String key) throws CommandSyntaxException {
448+
return GsonComponentSerializer.gson().deserialize(Serializer.toJson(MessageArgument.getMessage(cmdCtx, key), Provider.create(Stream.of())));
449+
}
438450

439451
@Override
440452
public NamedTextColor getAdventureChatColor(CommandContext<CommandSourceStack> cmdCtx, String key) {
@@ -493,6 +505,12 @@ public CommandSourceStack getBrigadierSourceFromCommandSender(
493505
return VanillaCommandWrapper.getListener(sender.getSource());
494506
}
495507

508+
@Differs(from = "1.20.4", by = "Serializer.toJson now needs a Provider")
509+
@Override
510+
public final BaseComponent[] getChat(CommandContext<CommandSourceStack> cmdCtx, String key) throws CommandSyntaxException {
511+
return ComponentSerializer.parse(Serializer.toJson(MessageArgument.getMessage(cmdCtx, key), Provider.create(Stream.of())));
512+
}
513+
496514
@Override
497515
public final World getDimension(CommandContext<CommandSourceStack> cmdCtx, String key)
498516
throws CommandSyntaxException {

commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,8 @@ public final ArgumentType<?> _ArgumentChat() {
120120
}
121121

122122
@Override
123-
public final ArgumentType<?> _ArgumentChatComponent() {
123+
@Overridden(in = "1.20.5", because = "This now takes in a CommandBuildContext")
124+
public ArgumentType<?> _ArgumentChatComponent() {
124125
return ComponentArgument.textComponent();
125126
}
126127

@@ -310,7 +311,8 @@ public abstract org.bukkit.advancement.Advancement getAdvancement(CommandContext
310311
throws CommandSyntaxException;
311312

312313
@Override
313-
public final Component getAdventureChat(CommandContext<CommandSourceStack> cmdCtx, String key) throws CommandSyntaxException {
314+
@Overridden(in = "1.20.5", because = "Serializer.toJson now needs a Provider")
315+
public Component getAdventureChat(CommandContext<CommandSourceStack> cmdCtx, String key) throws CommandSyntaxException {
314316
return GsonComponentSerializer.gson().deserialize(Serializer.toJson(MessageArgument.getMessage(cmdCtx, key)));
315317
}
316318

@@ -356,7 +358,8 @@ public final CommandDispatcher<CommandSourceStack> getBrigadierDispatcher() {
356358
public abstract CommandDispatcher<CommandSourceStack> getResourcesDispatcher();
357359

358360
@Override
359-
public final BaseComponent[] getChat(CommandContext<CommandSourceStack> cmdCtx, String key) throws CommandSyntaxException {
361+
@Overridden(in = "1.20.5", because = "Serializer.toJson now needs a Provider")
362+
public BaseComponent[] getChat(CommandContext<CommandSourceStack> cmdCtx, String key) throws CommandSyntaxException {
360363
return ComponentSerializer.parse(Serializer.toJson(MessageArgument.getMessage(cmdCtx, key)));
361364
}
362365

commandapi-platforms/commandapi-bukkit/commandapi-bukkit-test/commandapi-bukkit-test-tests/src/test/java/dev/jorel/commandapi/test/arguments/ArgumentChatColorTests.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
import be.seeseemelk.mockbukkit.entity.PlayerMock;
1313
import dev.jorel.commandapi.CommandAPICommand;
14+
import dev.jorel.commandapi.MCVersion;
1415
import dev.jorel.commandapi.arguments.ChatColorArgument;
1516
import dev.jorel.commandapi.test.Mut;
1617
import dev.jorel.commandapi.test.TestBase;
@@ -76,7 +77,11 @@ void executionTestWithChatColorArgument() {
7677
for(ChatColor color : ChatColor.values()) {
7778
if(color.isFormat() && !color.equals(ChatColor.RESET)) {
7879
String colorName = color.name().toLowerCase();
79-
assertCommandFailsWith(player, "test " + colorName, "Unknown color '" + colorName + "'");
80+
if (version.greaterThanOrEqualTo(MCVersion.V1_20_5)) {
81+
assertCommandFailsWith(player, "test " + colorName, "Unknown color '" + colorName + "'");
82+
} else {
83+
assertCommandFailsWith(player, "test " + colorName, "Unknown color '" + colorName + "' at position 10: test magic<--[HERE]");
84+
}
8085
}
8186
}
8287

commandapi-platforms/commandapi-bukkit/commandapi-bukkit-test/commandapi-bukkit-test-tests/src/test/java/dev/jorel/commandapi/test/arguments/ArgumentNBTCompoundNBTAPITests.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import de.tr7zw.changeme.nbtapi.utils.MinecraftVersion;
1616
import dev.jorel.commandapi.CommandAPICommand;
1717
import dev.jorel.commandapi.CommandAPIVersionHandler;
18+
import dev.jorel.commandapi.MCVersion;
1819
import dev.jorel.commandapi.arguments.NBTCompoundArgument;
1920
import dev.jorel.commandapi.test.MockPlatform;
2021
import dev.jorel.commandapi.test.Mut;
@@ -31,6 +32,9 @@ class ArgumentNBTCompoundNBTAPITests extends TestBase {
3132

3233
@BeforeEach
3334
public void setUp() {
35+
// Ignoring 1.20.5 for NBT tests until they update
36+
assumeTrue(version.lessThan(MCVersion.V1_20_5));
37+
3438
// NBT API can't run via Mojang Mappings
3539
assumeTrue(!CommandAPIVersionHandler.IS_MOJANG_MAPPED);
3640

commandapi-platforms/commandapi-bukkit/commandapi-bukkit-test/commandapi-bukkit-test-tests/src/test/java/dev/jorel/commandapi/test/arguments/ArgumentNBTCompoundRtagTests.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
44
import static org.junit.jupiter.api.Assertions.assertEquals;
55
import static org.junit.jupiter.api.Assertions.fail;
6+
import static org.junit.jupiter.api.Assumptions.assumeTrue;
67

78
import java.util.List;
89
import java.util.Map;
@@ -18,6 +19,7 @@
1819

1920
import be.seeseemelk.mockbukkit.entity.PlayerMock;
2021
import dev.jorel.commandapi.CommandAPICommand;
22+
import dev.jorel.commandapi.MCVersion;
2123
import dev.jorel.commandapi.arguments.NBTCompoundArgument;
2224
import dev.jorel.commandapi.test.MockPlatform;
2325
import dev.jorel.commandapi.test.Mut;
@@ -34,6 +36,9 @@ class ArgumentNBTCompoundRtagTests extends TestBase {
3436

3537
@BeforeEach
3638
public void setUp() {
39+
// Ignoring 1.20.5 for NBT tests until they update
40+
assumeTrue(version.lessThan(MCVersion.V1_20_5));
41+
3742
// There are lots of ways to use Rtag!
3843

3944
// The simplest case just uses plain ol' object to object mapping. This

commandapi-platforms/commandapi-bukkit/commandapi-bukkit-test/commandapi-bukkit-test-tests/src/test/java/dev/jorel/commandapi/test/arguments/ArgumentScoreHolderTests.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
import be.seeseemelk.mockbukkit.entity.PlayerMock;
1616
import dev.jorel.commandapi.CommandAPICommand;
17+
import dev.jorel.commandapi.MCVersion;
1718
import dev.jorel.commandapi.arguments.ScoreHolderArgument;
1819
import dev.jorel.commandapi.test.Mut;
1920
import dev.jorel.commandapi.test.TestBase;
@@ -69,7 +70,11 @@ void executionTestWithScoreHolderArgumentSingle() {
6970
assertCommandFailsWith(player, "test @e[type=player,scores={deaths=..9},limit=1]", "Selector not allowed");
7071

7172
// /test @e[type=player,scores={deaths=..9}]
72-
assertCommandFailsWith(player, "test @e[type=player,scores={deaths=..9}]", "Only one entity is allowed, but the provided selector allows more than one");
73+
if (version.greaterThanOrEqualTo(MCVersion.V1_20_5)) {
74+
assertCommandFailsWith(player, "test @e[type=player,scores={deaths=..9}]", "Only one entity is allowed, but the provided selector allows more than one at position 40: ...aths=..9}]<--[HERE]");
75+
} else {
76+
assertCommandFailsWith(player, "test @e[type=player,scores={deaths=..9}]", "Only one entity is allowed, but the provided selector allows more than one");
77+
}
7378

7479
player.setOp(true);
7580

commandapi-platforms/commandapi-bukkit/commandapi-bukkit-test/commandapi-bukkit-test-tests/src/test/java/dev/jorel/commandapi/test/arguments/ArgumentTimeTests.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,9 @@ void executionTestWithTimeArgument() {
7878

7979
// /test -2
8080
// Fails because -2 is negative (ticks can only be 0 or greater)
81-
if (version.greaterThanOrEqualTo(MCVersion.V1_19_4)) {
81+
if (version.greaterThanOrEqualTo(MCVersion.V1_20_5)) {
82+
assertCommandFailsWith(player, "test -2", "The tick count must not be less than 0, found -2 at position 7: test -2<--[HERE]");
83+
} else if (version.greaterThanOrEqualTo(MCVersion.V1_19_4)) {
8284
assertCommandFailsWith(player, "test -2", "Tick count must not be less than 0, found -2");
8385
} else {
8486
assertCommandFailsWith(player, "test -2", "Tick count must be non-negative");

commandapi-platforms/commandapi-bukkit/commandapi-bukkit-test/commandapi-bukkit-test-tests/src/test/java/dev/jorel/commandapi/test/arguments/ArgumentUUIDTests.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
import be.seeseemelk.mockbukkit.entity.PlayerMock;
1414
import dev.jorel.commandapi.CommandAPICommand;
15+
import dev.jorel.commandapi.MCVersion;
1516
import dev.jorel.commandapi.arguments.UUIDArgument;
1617
import dev.jorel.commandapi.test.Mut;
1718
import dev.jorel.commandapi.test.TestBase;
@@ -58,7 +59,11 @@ void executionTestWithUUIDArgument() {
5859

5960
// /test blah
6061
// Fails because 'blah' is not a valid UUID
61-
assertCommandFailsWith(player, "test blah", "Invalid UUID");
62+
if (version.greaterThanOrEqualTo(MCVersion.V1_20_5)) {
63+
assertCommandFailsWith(player, "test blah", "Invalid UUID at position 5: test <--[HERE]");
64+
} else {
65+
assertCommandFailsWith(player, "test blah", "Invalid UUID");
66+
}
6267

6368
assertNoMoreResults(results);
6469
}

0 commit comments

Comments
 (0)