Skip to content

Commit f3d994f

Browse files
authored
Merge pull request #122 from BentoBoxWorld/MS_1_21_3
MC 1.21.3 update and codemc update
2 parents e667c6b + e80526c commit f3d994f

File tree

3 files changed

+95
-16
lines changed

3 files changed

+95
-16
lines changed

pom.xml

+9-9
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,9 @@
3131
</issueManagement>
3232

3333
<distributionManagement>
34-
<snapshotRepository>
35-
<id>codemc-snapshots</id>
36-
<url>https://repo.codemc.org/repository/maven-snapshots</url>
37-
</snapshotRepository>
3834
<repository>
39-
<id>codemc-releases</id>
40-
<url>https://repo.codemc.org/repository/maven-releases</url>
35+
<id>bentoboxworld</id>
36+
<url>https://repo.codemc.org/repository/bentoboxworld/</url>
4137
</repository>
4238
</distributionManagement>
4339

@@ -47,14 +43,14 @@
4743
<java.version>17</java.version>
4844
<powermock.version>2.0.9</powermock.version>
4945
<!-- More visible way how to change dependency versions -->
50-
<spigot.version>1.21.1-R0.1-SNAPSHOT</spigot.version>
51-
<bentobox.version>2.5.0-SNAPSHOT</bentobox.version>
46+
<spigot.version>1.21.3-R0.1-SNAPSHOT</spigot.version>
47+
<bentobox.version>2.7.1-SNAPSHOT</bentobox.version>
5248
<!-- Level addon version -->
5349
<level.version>2.9.0</level.version>
5450
<!-- Revision variable removes warning about dynamic version -->
5551
<revision>${build.version}-SNAPSHOT</revision>
5652
<!-- This allows to change between versions and snapshots. -->
57-
<build.version>1.13.0</build.version>
53+
<build.version>1.14.0</build.version>
5854
<build.number>-LOCAL</build.number>
5955
<sonar.projectKey>BentoBoxWorld_Boxed</sonar.projectKey>
6056
<sonar.organization>bentobox-world</sonar.organization>
@@ -106,6 +102,10 @@
106102
<id>spigot-repo</id>
107103
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots</url>
108104
</repository>
105+
<repository>
106+
<id>bentoboxworld</id>
107+
<url>https://repo.codemc.org/repository/bentoboxworld/</url>
108+
</repository>
109109
<repository>
110110
<id>codemc-repo</id>
111111
<url>https://repo.codemc.org/repository/maven-public/</url>

src/test/java/world/bentobox/islandfly/listeners/FlyFlagListenerTest.java

+45-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package world.bentobox.islandfly.listeners;
22

3+
import static org.junit.Assert.assertEquals;
34
import static org.mockito.ArgumentMatchers.any;
45
import static org.mockito.ArgumentMatchers.anyString;
56
import static org.mockito.ArgumentMatchers.eq;
7+
import static org.mockito.Mockito.atLeast;
68
import static org.mockito.Mockito.mock;
79
import static org.mockito.Mockito.never;
810
import static org.mockito.Mockito.verify;
@@ -15,18 +17,21 @@
1517
import org.bukkit.Bukkit;
1618
import org.bukkit.Location;
1719
import org.bukkit.entity.Player;
20+
import org.bukkit.entity.Player.Spigot;
1821
import org.bukkit.scheduler.BukkitScheduler;
1922
import org.eclipse.jdt.annotation.NonNull;
2023
import org.junit.After;
2124
import org.junit.Before;
2225
import org.junit.Test;
2326
import org.junit.runner.RunWith;
27+
import org.mockito.ArgumentCaptor;
2428
import org.mockito.Mock;
2529
import org.mockito.stubbing.Answer;
2630
import org.powermock.api.mockito.PowerMockito;
2731
import org.powermock.core.classloader.annotations.PrepareForTest;
2832
import org.powermock.modules.junit4.PowerMockRunner;
2933

34+
import net.md_5.bungee.api.chat.TextComponent;
3035
import world.bentobox.bentobox.BentoBox;
3136
import world.bentobox.bentobox.api.events.flags.FlagProtectionChangeEvent;
3237
import world.bentobox.bentobox.api.flags.Flag;
@@ -66,6 +71,8 @@ public class FlyFlagListenerTest {
6671
private Player op;
6772
@Mock
6873
private Island island;
74+
@Mock
75+
private Spigot spigot;
6976

7077
/**
7178
* @throws java.lang.Exception
@@ -95,17 +102,21 @@ public void setUp() throws Exception {
95102
@NonNull
96103
List<Player> list = new ArrayList<>();
97104
when(p1.getUniqueId()).thenReturn(UUID.randomUUID());
105+
when(p1.spigot()).thenReturn(spigot);
98106
User.getInstance(p1);
99107
when(p1.isFlying()).thenReturn(true);
100108
when(p2.getUniqueId()).thenReturn(UUID.randomUUID());
109+
when(p2.spigot()).thenReturn(spigot);
101110
User.getInstance(p2);
102111
when(p2.isFlying()).thenReturn(true);
103112
when(p2.isOnline()).thenReturn(true);
104113
when(p2.getLocation()).thenReturn(mock(Location.class));
105114
when(p3.getUniqueId()).thenReturn(UUID.randomUUID());
115+
when(p3.spigot()).thenReturn(spigot);
106116
User.getInstance(p3);
107117
when(p3.isFlying()).thenReturn(false);
108118
when(op.getUniqueId()).thenReturn(UUID.randomUUID());
119+
when(op.spigot()).thenReturn(spigot);
109120
User.getInstance(op);
110121
when(op.isFlying()).thenReturn(true);
111122
when(op.isOp()).thenReturn(true);
@@ -148,7 +159,7 @@ public void testOnFlagChangeOtherFlag() {
148159
public void testOnFlagChange() {
149160
ffl.onFlagChange(e);
150161
verify(p1, never()).sendMessage(anyString());
151-
verify(p2).sendMessage(eq("islandfly.fly-turning-off-alert"));
162+
this.checkSpigotMessage("islandfly.fly-turning-off-alert");
152163
verify(p3, never()).sendMessage(anyString());
153164
verify(op, never()).sendMessage(anyString());
154165
verify(scheduler).runTaskLater(eq(plugin), any(Runnable.class), eq(100L));
@@ -162,13 +173,13 @@ public void testOnFlagChangeZeroTime() {
162173
when(settings.getFlyTimeout()).thenReturn(0);
163174
ffl.onFlagChange(e);
164175
verify(p1, never()).sendMessage(anyString());
165-
verify(p2).sendMessage(eq("islandfly.fly-turning-off-alert"));
176+
this.checkSpigotMessage("islandfly.fly-turning-off-alert");
166177
verify(p3, never()).sendMessage(anyString());
167178
verify(op, never()).sendMessage(anyString());
168179

169180
verify(p2).setFlying(false);
170181
verify(p2).setAllowFlight(false);
171-
verify(p2).sendMessage("islandfly.disable-fly");
182+
checkSpigotMessage("islandfly.disable-fly");
172183

173184
}
174185

@@ -179,7 +190,7 @@ public void testOnFlagChangeZeroTime() {
179190
public void testDisableAllowedAgain() {
180191
when(island.isAllowed(any(), any())).thenReturn(true);
181192
ffl.disable(p2, User.getInstance(p2), island);
182-
verify(p2).sendMessage(eq("islandfly.reallowed-fly"));
193+
checkSpigotMessage("islandfly.reallowed-fly");
183194
}
184195

185196
/**
@@ -189,6 +200,35 @@ public void testDisableAllowedAgain() {
189200
public void testDisable() {
190201
when(island.isAllowed(any(), any())).thenReturn(false);
191202
ffl.disable(p2, User.getInstance(p2), island);
192-
verify(p2).sendMessage(eq("islandfly.disable-fly"));
203+
this.checkSpigotMessage("islandfly.disable-fly");
204+
}
205+
206+
/**
207+
* Check that spigot sent the message
208+
* @param message - message to check
209+
*/
210+
public void checkSpigotMessage(String expectedMessage) {
211+
checkSpigotMessage(expectedMessage, 1);
212+
}
213+
214+
public void checkSpigotMessage(String expectedMessage, int expectedOccurrences) {
215+
// Capture the argument passed to spigot().sendMessage(...) if messages are sent
216+
ArgumentCaptor<TextComponent> captor = ArgumentCaptor.forClass(TextComponent.class);
217+
218+
// Verify that sendMessage() was called at least 0 times (capture any sent messages)
219+
verify(spigot, atLeast(0)).sendMessage(captor.capture());
220+
221+
// Get all captured TextComponents
222+
List<TextComponent> capturedMessages = captor.getAllValues();
223+
224+
// Count the number of occurrences of the expectedMessage in the captured messages
225+
long actualOccurrences = capturedMessages.stream().map(component -> component.toLegacyText()) // Convert each TextComponent to plain text
226+
.filter(messageText -> messageText.contains(expectedMessage)) // Check if the message contains the expected text
227+
.count(); // Count how many times the expected message appears
228+
229+
// Assert that the number of occurrences matches the expectedOccurrences
230+
assertEquals("Expected message occurrence mismatch: " + expectedMessage, expectedOccurrences,
231+
actualOccurrences);
193232
}
233+
194234
}

src/test/java/world/bentobox/islandfly/listeners/FlyListenerTest.java

+41-2
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
package world.bentobox.islandfly.listeners;
22

3+
import static org.junit.Assert.assertEquals;
34
import static org.junit.Assert.assertFalse;
45
import static org.junit.Assert.assertTrue;
56
import static org.mockito.ArgumentMatchers.any;
67
import static org.mockito.ArgumentMatchers.anyString;
78
import static org.mockito.ArgumentMatchers.eq;
9+
import static org.mockito.Mockito.atLeast;
810
import static org.mockito.Mockito.mock;
911
import static org.mockito.Mockito.never;
1012
import static org.mockito.Mockito.verify;
1113
import static org.mockito.Mockito.when;
1214

15+
import java.util.List;
1316
import java.util.Optional;
1417
import java.util.UUID;
1518

@@ -18,17 +21,20 @@
1821
import org.bukkit.Location;
1922
import org.bukkit.World;
2023
import org.bukkit.entity.Player;
24+
import org.bukkit.entity.Player.Spigot;
2125
import org.bukkit.scheduler.BukkitScheduler;
2226
import org.eclipse.jdt.annotation.Nullable;
2327
import org.junit.After;
2428
import org.junit.Before;
2529
import org.junit.Test;
2630
import org.junit.runner.RunWith;
31+
import org.mockito.ArgumentCaptor;
2732
import org.mockito.Mock;
2833
import org.powermock.api.mockito.PowerMockito;
2934
import org.powermock.core.classloader.annotations.PrepareForTest;
3035
import org.powermock.modules.junit4.PowerMockRunner;
3136

37+
import net.md_5.bungee.api.chat.TextComponent;
3238
import world.bentobox.bentobox.BentoBox;
3339
import world.bentobox.bentobox.api.addons.GameModeAddon;
3440
import world.bentobox.bentobox.api.events.island.IslandExitEvent;
@@ -79,6 +85,8 @@ public class FlyListenerTest {
7985
private BukkitScheduler sch;
8086
@Mock
8187
private Settings settings;
88+
@Mock
89+
private Spigot spigot;
8290

8391
/**
8492
*/
@@ -102,6 +110,7 @@ public void setUp() {
102110
when(p.isOp()).thenReturn(false);
103111
when(p.isFlying()).thenReturn(true);
104112
when(p.getGameMode()).thenReturn(GameMode.SURVIVAL);
113+
when(p.spigot()).thenReturn(spigot);
105114
User.setPlugin(plugin);
106115
User.getInstance(p);
107116
when(user.getUniqueId()).thenReturn(uuid);
@@ -117,6 +126,7 @@ public void setUp() {
117126
when(gameMode.getPermissionPrefix()).thenReturn("bskyblock.");
118127
when(iwm.getAddon(any())).thenReturn(opGm);
119128
when(iwm.getPermissionPrefix(any())).thenReturn("bskyblock.");
129+
when(iwm.getFriendlyName(any())).thenReturn("BSkyBlock");
120130
// Bukkit
121131
PowerMockito.mockStatic(Bukkit.class);
122132
when(Bukkit.getScheduler()).thenReturn(sch);
@@ -153,9 +163,38 @@ public void testOnExitIslandGraceTime() {
153163
when(event.getPlayerUUID()).thenReturn(uuid);
154164
fl.onExitIsland(event);
155165
verify(sch).runTaskLater(eq(plugin), any(Runnable.class), eq(100L));
156-
verify(p).sendMessage("islandfly.fly-outside-alert");
166+
checkSpigotMessage("islandfly.fly-outside-alert");
167+
}
168+
169+
/**
170+
* Check that spigot sent the message
171+
* @param message - message to check
172+
*/
173+
public void checkSpigotMessage(String expectedMessage) {
174+
checkSpigotMessage(expectedMessage, 1);
175+
}
176+
177+
public void checkSpigotMessage(String expectedMessage, int expectedOccurrences) {
178+
// Capture the argument passed to spigot().sendMessage(...) if messages are sent
179+
ArgumentCaptor<TextComponent> captor = ArgumentCaptor.forClass(TextComponent.class);
180+
181+
// Verify that sendMessage() was called at least 0 times (capture any sent messages)
182+
verify(spigot, atLeast(0)).sendMessage(captor.capture());
183+
184+
// Get all captured TextComponents
185+
List<TextComponent> capturedMessages = captor.getAllValues();
186+
187+
// Count the number of occurrences of the expectedMessage in the captured messages
188+
long actualOccurrences = capturedMessages.stream().map(component -> component.toLegacyText()) // Convert each TextComponent to plain text
189+
.filter(messageText -> messageText.contains(expectedMessage)) // Check if the message contains the expected text
190+
.count(); // Count how many times the expected message appears
191+
192+
// Assert that the number of occurrences matches the expectedOccurrences
193+
assertEquals("Expected message occurrence mismatch: " + expectedMessage, expectedOccurrences,
194+
actualOccurrences);
157195
}
158196

197+
159198
/**
160199
* Test method for {@link world.bentobox.islandfly.listeners.FlyListener#onExitIsland(world.bentobox.bentobox.api.events.island.IslandExitEvent)}.
161200
*/
@@ -210,7 +249,7 @@ public void testOnExitIslandNoGraceTime() {
210249
when(event.getPlayerUUID()).thenReturn(uuid);
211250
fl.onExitIsland(event);
212251
verify(sch, never()).runTaskLater(eq(plugin), any(Runnable.class), any(Long.class));
213-
verify(p).sendMessage("islandfly.disable-fly");
252+
checkSpigotMessage("islandfly.disable-fly");
214253
}
215254

216255
/**

0 commit comments

Comments
 (0)