8000 Refactored dust transition particle tests from 1.16.5 particle tests · CommandAPI/CommandAPI@5b9ef83 · GitHub
[go: up one dir, main page]

Skip to content

Commit 5b9ef83

Browse files
committed
Refactored dust transition particle tests from 1.16.5 particle tests
1 parent d603627 commit 5b9ef83

File tree

3 files changed

+188
-132
lines changed

3 files changed

+188
-132
lines changed

commandapi-platforms/commandapi-bukkit/commandapi-bukkit-test/commandapi-bukkit-test-tests/pom.xml

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,9 +191,6 @@
191191
</profile>
192192
<profile>
193193
<id>Minecraft_1_19_4_Mojang</id>
194-
<activation>
195-
<activeByDefault>true</activeByDefault>
196-
</activation>
197194
<dependencies>
198195
<dependency>
199196
<!-- Needed for 1.19.4 Brigadier logging. This is also present in
@@ -320,6 +317,9 @@
320317
</profile>
321318
<profile>
322319
<id>Minecraft_1_16_5</id>
320+
<activation>
321+
<activeByDefault>true</activeByDefault>
322+
</activation>
323323
<dependencies>
324324
<dependency>
325325
<groupId>dev.jorel</groupId>
@@ -344,6 +344,19 @@
344344
<scope>provided</scope>
345345
</dependency>
346346
</dependencies>
347+
<build>
348+
<plugins>
349+
<plugin>
350+
<groupId>org.apache.maven.plugins</groupId>
351+
<artifactId>maven-compiler-plugin</artifactId>
352+
<configuration>
353+
<testExcludes>
354+
<testExclude>**/arguments/ArgumentParticle_1_17_Tests.java</testExclude>
355+
</testExcludes>
356+
</configuration>
357+
</plugin>
358+
</plugins>
359+
</build>
347360
</profile>
348361
</profiles>
349362
</project>

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

Lines changed: 1 addition & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,14 @@
22

33
import static org.junit.jupiter.api.Assertions.assertEquals;
44
import static org.junit.jupiter.api.Assertions.assertTrue;
5-
import static org.junit.jupiter.api.Assumptions.assumeTrue;
65

76
import java.util.Set;
87
import java.util.concurrent.ThreadLocalRandom;
98

109
import org.bukkit.Color;
11-
import org.bukkit.Location;
1210
import org.bukkit.Material;
1311
import org.bukkit.Particle;
1412
import org.bukkit.Particle.DustOptions;
15-
import org.bukkit.Particle.DustTransition;
16-
import org.bukkit.Vibration;
17-
import org.bukkit.Vibration.Destination.BlockDestination;
1813
import org.bukkit.block.data.BlockData;
1914
import org.bukkit.block.data.Snowable;
2015
import org.bukkit.inventory.ItemStack;
@@ -25,7 +20,6 @@
2520

2621
import be.seeseemelk.mockbukkit.entity.PlayerMock;
2722
import dev.jorel.commandapi.CommandAPICommand;
28-
import dev.jorel.commandapi.MCVersion;
2923
import dev.jorel.commandapi.arguments.ParticleArgument;
3024
import dev.jorel.commandapi.test.MockPlatform;
3125
import dev.jorel.commandapi.test.Mut;
@@ -51,14 +45,7 @@ public void tearDown() {
5145
super.tearDown();
5246
}
5347

54-
// Just checks block coords, doesn't check yaw/pitch or world
55-
private void assertBlockLocationCoordsEquals(Location loc1, Location loc2) {
56-
assertEquals(loc1.getBlockX(), loc2.getBlockX(), 0.0001);
57-
assertEquals(loc1.getBlockY(), loc2.getBlockY(), 0.0001);
58-
assertEquals(loc1.getBlockZ(), loc2.getBlockZ(), 0.0001);
59-
}
60-
61-
Set<Particle> dodgyParticles = Set.of(
48+
private Set<Particle> dodgyParticles = Set.of(
6249
Particle.SNOW_SHOVEL, // "item_snowball" -> SNOWBALL
6350
Particle.SUSPENDED_DEPTH // "underwater" -> SUSPENDED
6451
);
@@ -186,92 +173,6 @@ void executionTestWithParticleArgumentBlock() {
186173
assertNoMoreResults(results);
187174
}
188175

189-
@Test
190-
void executionTestWithParticleArgumentShriek() {
191-
assumeTrue(version.greaterThanOrEqualTo(MCVersion.V1_19));
192-
Mut<ParticleData<?>> results = Mut.of();
193-
194-
new CommandAPICommand("test")
195-
.withArguments(new ParticleArgument("particle"))
196-
.executesPlayer((player, args) -> {
197-
results.set((ParticleData<?>) args.get("particle"));
198-
})
199-
.register();
200-
201-
PlayerMock player = server.addPlayer();
202-
203-
// shriek delay
204-
server.dispatchCommand(player, "test shriek 10");
205-
@SuppressWarnings("unchecked")
206-
ParticleData<Integer> result = (ParticleData<Integer>) results.get();
207-
208-
// Check the particle type is correct
209-
assertEquals(Particle.valueOf("SHRIEK"), result.particle());
210-
211-
// Check the particle properties
212-
assertEquals(10, result.data());
213-
214-
assertNoMoreResults(results);
215-
}
216-
217-
@Test
218-
void executionTestWithParticleArgumentSculkCharge() {
219-
assumeTrue(version.greaterThanOrEqualTo(MCVersion.V1_19));
220-
Mut<ParticleData<?>> results = Mut.of();
221-
222-
new CommandAPICommand("test")
223-
.withArguments(new ParticleArgument("particle"))
224-
.executesPlayer((player, args) -> {
225-
results.set((ParticleData<?>) args.get("particle"));
226-
})
227-
.register();
228-
229-
PlayerMock player = server.addPlayer();
230-
231-
// sculk_charge angle
232-
server.dispatchCommand(player, "test sculk_charge 2");
233-
@SuppressWarnings("unchecked")
234-
ParticleData<Float> result = (ParticleData<Float>) results.get();
235-
236-
// Check the particle type is correct
237-
assertEquals(Particle.valueOf("SCULK_CHARGE"), result.particle());
238-
239-
// Check the particle properties
240-
assertEquals(2, result.data());
241-
242-
assertNoMoreResults(results);
243-
}
244-
245-
@Test
246-
void executionTestWithParticleArgumentVibration() {
247-
assumeTrue(version.greaterThanOrEqualTo(MCVersion.V1_19));
248-
Mut<ParticleData<?>> results = Mut.of();
249-
250-
new CommandAPICommand("test")
251-
.withArguments(new ParticleArgument("particle"))
252-
.executesPlayer((player, args) -> {
253-
results.set((ParticleData<?>) args.get("particle"));
254-
})
255-
.register();
256-
257-
PlayerMock player = server.addPlayer();
258-
259-
// vibration x y z ticks
260-
server.dispatchCommand(player, "test vibration 5.0 64.0 0.0 200");
261-
@SuppressWarnings("unchecked")
262-
ParticleData<Vibration> result = (ParticleData<Vibration>) results.get();
263-
264-
// Check the particle type is correct
265-
assertEquals(Particle.VIBRATION, result.particle());
266-
267-
// Check the particle properties. We only support BlockDestination for commands.
268-
assertBlockLocationCoordsEquals(player.getLocation(), result.data().getOrigin());
269-
assertBlockLocationCoordsEquals(new Location(player.getWorld(), 5.0, 64.0, 0.0), ((BlockDestination) result.data().getDestination()).getLocation());
270-
assertEquals(200, result.data().getArrivalTime());
271-
272-
assertNoMoreResults(results);
273-
}
274-
275176
@Test
276177
void executionTestWithParticleArgumentItem() {
277178
Mut<ParticleData<?>> results = Mut.of();
@@ -299,33 +200,4 @@ void executionTestWithParticleArgumentItem() {
299200
assertNoMoreResults(results);
300201
}
301202

302-
@Test
303-
void executionTestWithParticleArgumentDustTransition() {
304-
Mut<ParticleData<?>> results = Mut.of();
305-
306-
new CommandAPICommand("test")
307-
.withArguments(new ParticleArgument("particle"))
308-
.executesPlayer((player, args) -> {
309-
results.set((ParticleData<?>) args.get("particle"));
310-
})
311-
.register();
312-
313-
PlayerMock player = server.addPlayer();
314-
315-
// dust_color_transition red1 green1 blue1 size red2 green2 blue2
316-
server.dispatchCommand(player, "test dust_color_transition 1.0 0.0 0.0 3.0 0.0 0.0 1.0");
317-
@SuppressWarnings("unchecked")
318-
ParticleData<DustTransition> result = (ParticleData<DustTransition>) results.get();
319-
320-
// Check the particle type is correct
321-
assertEquals(Particle.DUST_COLOR_TRANSITION, result.particle());
322-
323-
// Check the particle properties
324-
assertEquals(Color.RED, ((DustTransition) result.data()).getColor());
325-
assertEquals(Color.BLUE, ((DustTransition) result.data()).getToColor());
326-
assertEquals(3.0f, ((DustTransition) result.data()).getSize());
327-
328-
assertNoMoreResults(results);
329-
}
330-
331203
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
package dev.jorel.commandapi.test.arguments;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.junit.jupiter.api.Assumptions.assumeTrue;
5+
6+
import org.bukkit.Color;
7+
import org.bukkit.Location;
8+
import org.bukkit.Particle;
9+
import org.bukkit.Vibration;
10+
import org.bukkit.Particle.DustTransition;
11+
import org.bukkit.Vibration.Destination.BlockDestination;
12+
import org.junit.jupiter.api.AfterEach;
13+
import org.junit.jupiter.api.BeforeEach;
14+
import org.junit.jupiter.api.Test;
15+
16+
import be.seeseemelk.mockbukkit.entity.PlayerMock;
17+
import dev.jorel.commandapi.CommandAPICommand;
18+
import dev.jorel.commandapi.MCVersion;
19+
import dev.jorel.commandapi.arguments.ParticleArgument;
20+
import dev.jorel.commandapi.test.Mut;
21+
import dev.jorel.commandapi.test.TestBase;
22+
import dev.jorel.commandapi.wrappers.ParticleData;
23+
24+
/**
25+
* Tests for the {@link ParticleArgument}, specifically for sculk-related
26+
* particles (vibrations, sculk charge and shriek) and the dust transition
27+
* particle (doesn't exist in 1.16.5)
28+
*/
29+
class ArgumentParticle_1_17_Tests extends TestBase {
30+
31+
/*********
32+
* Setup *
33+
*********/
34+
35+
@BeforeEach
36+
public void setUp() {
37+
super.setUp();
38+
}
39+
40+
@AfterEach
41+
public void tearDown() {
42+
super.tearDown();
43+
}
44+
45+
// Just checks block coords, doesn't check yaw/pitch or world
46+
private void assertBlockLocationCoordsEquals(Location loc1, Location loc2) {
47+
assertEquals(loc1.getBlockX(), loc2.getBlockX(), 0.0001);
48+
assertEquals(loc1.getBlockY(), loc2.getBlockY(), 0.0001);
49+
assertEquals(loc1.getBlockZ(), loc2.getBlockZ(), 0.0001);
50+
}
51+
52+
/*********
53+
* Tests *
54+
*********/
55+
56+
@Test
57+
void executionTestWithParticleArgumentShriek() {
58+
assumeTrue(version.greaterThanOrEqualTo(MCVersion.V1_19));
59+
Mut<ParticleData<?>> results = Mut.of();
60+
61+
new CommandAPICommand("test")
62+
.withArguments(new ParticleArgument("particle"))
63+
.executesPlayer((player, args) -> {
64+
results.set((ParticleData<?>) args.get("particle"));
65+
})
66+
.register();
67+
68+
PlayerMock player = server.addPlayer();
69+
70+
// shriek delay
71+
server.dispatchCommand(player, "test shriek 10");
72+
@SuppressWarnings("unchecked")
73+
ParticleData<Integer> result = (ParticleData<Integer>) results.get();
74+
75+
// Check the particle type is correct
76+
assertEquals(Particle.valueOf("SHRIEK"), result.particle());
77+
78+
// Check the particle properties
79+
assertEquals(10, result.data());
80+
81+
assertNoMoreResults(results);
82+
}
83+
84+
@Test
85+
void executionTestWithParticleArgumentSculkCharge() {
86+
assumeTrue(version.greaterThanOrEqualTo(MCVersion.V1_19));
87+
Mut<ParticleData<?>> results = Mut.of();
88+
89+
new CommandAPICommand("test")
90+
.withArguments(new ParticleArgument("particle"))
91+
.executesPlayer((player, args) -> {
92+
results.set((ParticleData<?>) args.get("particle"));
93+
})
94+
.register();
95+
96+
PlayerMock player = server.addPlayer();
97+
98+
// sculk_charge angle
99+
server.dispatchCommand(player, "test sculk_charge 2");
100+
@SuppressWarnings("unchecked")
101+
ParticleData<Float> result = (ParticleData<Float>) results.get();
102+
103+
// Check the particle type is correct
104+
assertEquals(Particle.valueOf("SCULK_CHARGE"), result.particle());
105+
106+
// Check the particle properties
107+
assertEquals(2, result.data());
108+
109+
assertNoMoreResults(results);
110+
}
111+
112+
@Test
113+
void executionTestWithParticleArgumentVibration() {
114+
assumeTrue(version.greaterThanOrEqualTo(MCVersion.V1_19));
115+
Mut<ParticleData<?>> results = Mut.of();
116+
117+
new CommandAPICommand("test")
118+
.withArguments(new ParticleArgument("particle"))
119+
.executesPlayer((player, args) -> {
120+
results.set((ParticleData<?>) args.get("particle"));
121+
})
122+
.register();
123+
124+
PlayerMock player = server.addPlayer();
125+
126+
// vibration x y z ticks
127+
server.dispatchCommand(player, "test vibration 5.0 64.0 0.0 200");
128+
@SuppressWarnings("unchecked")
129+
ParticleData<Vibration> result = (ParticleData<Vibration>) results.get();
130+
131+
// Check the particle type is correct
132+
assertEquals(Particle.VIBRATION, result.particle());
133+
134+
// Check the particle properties. We only support BlockDestination for commands.
135+
assertBlockLocationCoordsEquals(player.getLocation(), result.data().getOrigin());
136+
assertBlockLocationCoordsEquals(new Location(player.getWorld(), 5.0, 64.0, 0.0), ((BlockDestination) result.data().getDestination()).getLocation());
137+
assertEquals(200, result.data().getArrivalTime());
138+
139+
assertNoMoreResults(results);
140+
}
141+
142+
@Test
143+
void executionTestWithParticleArgumentDustTransition() {
144+
Mut<ParticleData<?>> results = Mut.of();
145+
146+
new CommandAPICommand("test")
147+
.withArguments(new ParticleArgument("particle"))
148+
.executesPlayer((player, args) -> {
149+
results.set((ParticleData<?>) args.get("particle"));
150+
})
151+
.register();
152+
153+
PlayerMock player = server.addPlayer();
154+
155+
// dust_color_transition red1 green1 blue1 size red2 green2 blue2
156+
server.dispatchCommand(player, "test dust_color_transition 1.0 0.0 0.0 3.0 0.0 0.0 1.0");
157+
@SuppressWarnings("unchecked")
158+
ParticleData<DustTransition> result = (ParticleData<DustTransition>) results.get();
159+
160+
// Check the particle type is correct
161+
assertEquals(Particle.DUST_COLOR_TRANSITION, result.particle());
162+
163+
// Check the particle properties
164+
assertEquals(Color.RED, ((DustTransition) result.data()).getColor());
165+
assertEquals(Color.BLUE, ((DustTransition) result.data()).getToColor());
166+
assertEquals(3.0f, ((DustTransition) result.data()).getSize());
167+
168+
assertNoMoreResults(results);
169+
}
170+
171+
}

0 commit comments

Comments
 (0)
0