Skip to content

Commit c5bba4a

Browse files
committed
Implement particle data testing for 1.20.5 (albeit a bit hacky)
1 parent 802b457 commit c5bba4a

File tree

3 files changed

+18
-18
lines changed
  • commandapi-platforms/commandapi-bukkit
    • commandapi-bukkit-nms/commandapi-bukkit-1.20.5/src/main/java/dev/jorel/commandapi/nms
    • commandapi-bukkit-test

3 files changed

+18
-18
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: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -662,7 +662,21 @@ public final org.bukkit.loot.LootTable getLootTable(CommandContext<CommandSource
662662
@Override
663663
public final ParticleData<?> getParticle(CommandContext<CommandSourceStack> cmdCtx, String key) {
664664
final ParticleOptions particleOptions = ParticleArgument.getParticle(cmdCtx, key);
665-
final Particle particle = CraftParticle.minecraftToBukkit(particleOptions.getType());
665+
666+
// In our test suite, we can't parse particles via CraftParticle.minecraftToBukkit
667+
// on 1.20.3+ because initializing CraftParticle's static constructor requires
668+
// implementing a registry. We don't care about a registry for the sake of testing,
669+
// all we're actually interested in is testing that the particle data is being parsed
670+
// and converted to Bukkit properly, because that's what actually matters. If the
671+
// Bukkit#getServer is a CraftServer, that means we're running on a normal (Bukkit/Spigot/Paper)
672+
// server. If it isn't, that means we're running in our test environment (i.e. a mocked
673+
// server instance), or some weird flavour of Bukkit that we're not supposed to use.
674+
final Particle particle;
675+
if (Bukkit.getServer() instanceof CraftServer server) {
676+
particle = CraftParticle.minecraftToBukkit(particleOptions.getType());
677+
} else {
678+
particle = null;
679+
}
666680

667681
if (particleOptions instanceof SimpleParticleType) {
668682
return new ParticleData<Void>(particle, null);

commandapi-platforms/commandapi-bukkit/commandapi-bukkit-test/commandapi-bukkit-test-impl-1.20.5/src/main/java/dev/jorel/commandapi/test/ArgumentNMS.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -782,11 +782,12 @@ public ParticleData<?> getParticle(CommandContext cmdCtx, String key) {
782782
Registry<ParticleType<?>> registry = BuiltInRegistries.PARTICLE_TYPE; //CraftRegistry.getMinecraftRegistry(Registries.PARTICLE_TYPE);
783783

784784
final ParticleOptions particleOptions = ParticleArgument.getParticle(cmdCtx, key);
785-
786785
String nmsKey = registry.getResourceKey(particleOptions.getType()).get().location().getPath();
787-
result = new ParticleData(map.get(nmsKey), null); //baseNMS.getParticle(cmdCtx, key);
786+
result = new ParticleData(map.get(nmsKey), baseNMS.getParticle(cmdCtx, key).data());
788787
}
789788

789+
790+
790791
return result;
791792
}
792793

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

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -137,9 +137,6 @@ void executionTestWithParticleArgumentDust() {
137137

138138
// Check the particle type is correct
139139
assertEquals(Particle.REDSTONE, result.particle());
140-
141-
// TODO: Can't handle particle data yet in 1.20.5
142-
assumeTrue(version.lessThan(MCVersion.V1_20_5));
143140

144141
// Check the particle properties
145142
assertEquals(4, result.data().getSize());
@@ -180,9 +177,6 @@ void executionTestWithParticleArgumentDustRandom() {
180177

181178
// Check the particle type is correct
182179
assertEquals(Particle.REDSTONE, result.particle());
183-
184-
// TODO: Can't handle particle data yet in 1.20.5
185-
assumeTrue(version.lessThan(MCVersion.V1_20_5));
186180

187181
// Check the particle properties
188182
assertEquals(size, result.data().getSize());
@@ -217,9 +211,6 @@ void executionTestWithParticleArgumentBlock() {
217211

218212
// Check the particle type is correct
219213
assertEquals(Particle.BLOCK_CRACK, result.particle());
220-
221-
// TODO: Can't handle particle data yet in 1.20.5
222-
assumeTrue(version.lessThan(MCVersion.V1_20_5));
223214

224215
// Check the particle properties
225216
assertEquals(Material.GRASS_BLOCK, result.data().getMaterial());
@@ -253,9 +244,6 @@ void executionTestWithParticleArgumentItem() {
253244

254245
// Check the particle type is correct
255246
assertEquals(Particle.ITEM_CRACK, result.particle());
256-
257-
// TODO: Can't handle particle data yet in 1.20.5
258-
assumeTrue(version.lessThan(MCVersion.V1_20_5));
259247

260248
// Check the particle properties
261249
assertEquals(new ItemStack(Material.APPLE), (ItemStack) result.data());
@@ -290,9 +278,6 @@ void executionTestWithParticleArgumentEntityEffect() {
290278

291279
// Check the particle type is correct
292280
assertEquals(Particle.valueOf("ENTITY_EFFECT"), result.particle());
293-
294-
// TODO: Can't handle particle data yet in 1.20.5
295-
assumeTrue(version.lessThan(MCVersion.V1_20_5));
296281

297282
// Check the particle properties
298283
assertEquals(255, result.data().getRed());

0 commit comments

Comments
 (0)