Skip to content

Commit 5b76f3a

Browse files
authored
Merge pull request #2619 from BentoBoxWorld/develop
Version 3.2.4
2 parents 10ed798 + c7f5dbd commit 5b76f3a

File tree

75 files changed

+1605
-1010
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+1605
-1010
lines changed

.github/workflows/build.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,22 @@ jobs:
1111
name: Build
1212
runs-on: ubuntu-latest
1313
steps:
14-
- uses: actions/checkout@v3
14+
- uses: actions/checkout@v4
1515
with:
1616
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
1717
- name: Set up JDK 21
18-
uses: actions/setup-java@v3
18+
uses: actions/setup-java@v4
1919
with:
2020
distribution: 'adopt'
2121
java-version: '21'
2222
- name: Cache SonarCloud packages
23-
uses: actions/cache@v3
23+
uses: actions/cache@v4
2424
with:
2525
path: ~/.sonar/cache
2626
key: ${{ runner.os }}-sonar
2727
restore-keys: ${{ runner.os }}-sonar
2828
- name: Cache Maven packages
29-
uses: actions/cache@v3
29+
uses: actions/cache@v4
3030
with:
3131
path: ~/.m2
3232
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
@@ -39,7 +39,7 @@ jobs:
3939
- run: mvn --batch-mode clean org.jacoco:jacoco-maven-plugin:prepare-agent install
4040
- run: mkdir staging && cp target/*.jar staging
4141
- name: Save artifacts
42-
uses: actions/upload-artifact@v3
42+
uses: actions/upload-artifact@v4
4343
with:
4444
name: Package
4545
path: staging

pom.xml

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -72,19 +72,18 @@
7272
<spigot.version>1.21.3-R0.1-SNAPSHOT</spigot.version>
7373
<!-- Might differ from the last Spigot release for short periods
7474
of time -->
75-
<paper.version>1.21.1-R0.1-SNAPSHOT</paper.version>
75+
<paper.version>1.21.3-R0.1-SNAPSHOT</paper.version>
7676
<bstats.version>3.0.0</bstats.version>
7777
<vault.version>1.7.1</vault.version>
7878
<placeholderapi.version>2.10.9</placeholderapi.version>
7979
<githubapi.version>d5f5e0bbd8</githubapi.version>
80-
<dynmap.version>3.0-SNAPSHOT</dynmap.version>
8180
<myworlds.version>1.19.3-v1</myworlds.version>
8281
<!-- Revision variable removes warning about dynamic version -->
8382
<revision>${build.version}-SNAPSHOT</revision>
8483
<!-- Do not change unless you want different name for local builds. -->
8584
<build.number>-LOCAL</build.number>
8685
<!-- This allows to change between versions. -->
87-
<build.version>3.2.3</build.version>
86+
<build.version>3.2.4</build.version>
8887
<sonar.organization>bentobox-world</sonar.organization>
8988
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
9089
<server.jars>${project.basedir}/lib</server.jars>
@@ -153,10 +152,6 @@
153152
<id>codemc-repo</id>
154153
<url>https://repo.codemc.org/repository/maven-public</url>
155154
</repository>
156-
<repository>
157-
<id>dynmap-repo</id>
158-
<url>https://repo.mikeprimm.com/</url>
159-
</repository>
160155
<repository>
161156
<id>papermc</id>
162157
<url>https://repo.papermc.io/repository/maven-public/</url>
@@ -198,6 +193,11 @@
198193
<name>Pyr's Repo</name>
199194
<url>https://repo.pyr.lol/snapshots</url>
200195
</repository>
196+
<!-- ItemsAdder API repo-->
197+
<repository>
198+
<id>matteodev</id>
199+
<url>https://maven.devs.beer/</url>
200+
</repository>
201201
</repositories>
202202

203203
<dependencies>
@@ -326,12 +326,6 @@
326326
<scope>provided</scope>
327327
</dependency>
328328
<!-- Hooks -->
329-
<dependency>
330-
<groupId>us.dynmap</groupId>
331-
<artifactId>dynmap-api</artifactId>
332-
<version>${dynmap.version}</version>
333-
<scope>provided</scope>
334-
</dependency>
335329
<dependency>
336330
<groupId>com.bergerkiller.bukkit</groupId>
337331
<artifactId>MyWorlds</artifactId>
@@ -387,9 +381,9 @@
387381
</dependency>
388382
<!-- ItemsAdder -->
389383
<dependency>
390-
<groupId>com.github.LoneDev6</groupId>
384+
<groupId>dev.lone</groupId>
391385
<artifactId>api-itemsadder</artifactId>
392-
<version>3.6.3-beta-14</version>
386+
<version>4.0.2-beta-release-11</version>
393387
<scope>provided</scope>
394388
</dependency>
395389
<!-- Multipaper -->

src/main/java/world/bentobox/bentobox/api/commands/admin/AdminDeleteCommand.java

Lines changed: 7 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package world.bentobox.bentobox.api.commands.admin;
22

33
import java.util.ArrayList;
4-
import java.util.HashMap;
54
import java.util.List;
65
import java.util.Map;
76
import java.util.Optional;
@@ -11,6 +10,8 @@
1110

1211
import world.bentobox.bentobox.api.commands.CompositeCommand;
1312
import world.bentobox.bentobox.api.commands.ConfirmableCommand;
13+
import world.bentobox.bentobox.api.commands.island.IslandGoCommand;
14+
import world.bentobox.bentobox.api.commands.island.IslandGoCommand.IslandInfo;
1415
import world.bentobox.bentobox.api.events.island.IslandEvent;
1516
import world.bentobox.bentobox.api.events.island.IslandEvent.Reason;
1617
import world.bentobox.bentobox.api.localization.TextVariables;
@@ -66,7 +67,7 @@ public boolean canExecute(User user, String label, List<String> args) {
6667
// Get the island
6768
User target = User.getInstance(targetUUID);
6869
// They named the island to go to
69-
Map<String, IslandInfo> names = getNameIslandMap(target);
70+
Map<String, IslandInfo> names = IslandGoCommand.getNameIslandMap(target, getWorld());
7071
final String name = String.join(" ", args.subList(1, args.size()));
7172
if (!names.containsKey(name)) {
7273
// Failed home name check
@@ -77,7 +78,7 @@ public boolean canExecute(User user, String label, List<String> args) {
7778
return false;
7879
} else {
7980
IslandInfo info = names.get(name);
80-
island = info.island;
81+
island = info.island();
8182
}
8283

8384
// Team members should be kicked before deleting otherwise the whole team will become weird
@@ -164,31 +165,6 @@ private void cleanUp(User target) {
164165
Util.runCommands(target, target.getName(), getIWM().getOnLeaveCommands(getWorld()), "leave");
165166
}
166167

167-
private record IslandInfo(Island island, boolean islandName) {
168-
}
169-
170-
private Map<String, IslandInfo> getNameIslandMap(User target) {
171-
Map<String, IslandInfo> islandMap = new HashMap<>();
172-
int index = 0;
173-
for (Island island : getIslands().getIslands(getWorld(), target.getUniqueId())) {
174-
index++;
175-
if (island.getName() != null && !island.getName().isBlank()) {
176-
// Name has been set
177-
islandMap.put(island.getName(), new IslandInfo(island, true));
178-
} else {
179-
// Name has not been set
180-
String text = target.getTranslation("protection.flags.ENTER_EXIT_MESSAGES.island", TextVariables.NAME,
181-
target.getName(), TextVariables.DISPLAY_NAME, target.getDisplayName()) + " " + index;
182-
islandMap.put(text, new IslandInfo(island, true));
183-
}
184-
// Add homes. Homes do not need an island specified
185-
island.getHomes().keySet().forEach(n -> islandMap.put(n, new IslandInfo(island, false)));
186-
}
187-
188-
return islandMap;
189-
190-
}
191-
192168
@Override
193169
public Optional<List<String>> tabComplete(User user, String alias, List<String> args) {
194170
String lastArg = !args.isEmpty() ? args.get(args.size()-1) : "";
@@ -202,7 +178,9 @@ public Optional<List<String>> tabComplete(User user, String alias, List<String>
202178
if (args.size() == 3) {
203179
UUID target = Util.getUUID(args.get(1));
204180
return target == null ? Optional.empty()
205-
: Optional.of(Util.tabLimit(new ArrayList<>(getNameIslandMap(User.getInstance(target)).keySet()),
181+
: Optional.of(Util.tabLimit(
182+
new ArrayList<>(
183+
IslandGoCommand.getNameIslandMap(User.getInstance(target), getWorld()).keySet()),
206184
lastArg));
207185
}
208186
return Optional.empty();

src/main/java/world/bentobox/bentobox/api/commands/admin/AdminMaxHomesCommand.java

Lines changed: 8 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@
1111

1212
import world.bentobox.bentobox.api.commands.CompositeCommand;
1313
import world.bentobox.bentobox.api.commands.ConfirmableCommand;
14+
import world.bentobox.bentobox.api.commands.island.IslandGoCommand;
15+
import world.bentobox.bentobox.api.commands.island.IslandGoCommand.IslandInfo;
1416
import world.bentobox.bentobox.api.localization.TextVariables;
1517
import world.bentobox.bentobox.api.user.User;
16-
import world.bentobox.bentobox.database.objects.Island;
1718
import world.bentobox.bentobox.util.Util;
1819

1920
/**
@@ -33,7 +34,7 @@
3334
public class AdminMaxHomesCommand extends ConfirmableCommand {
3435

3536
Integer maxHomes;
36-
Map<String, Island> islands = new HashMap<>();
37+
Map<String, IslandInfo> islands = new HashMap<>();
3738

3839
public AdminMaxHomesCommand(CompositeCommand parent) {
3940
super(parent, "setmaxhomes");
@@ -74,7 +75,7 @@ public boolean canExecute(User user, String label, List<String> args) {
7475
}
7576
// Get the island the user is standing on
7677
boolean onIsland = getIslands().getIslandAt(user.getLocation()).map(is -> {
77-
islands.put("", is);
78+
islands.put("", new IslandInfo(is, false));
7879
return true;
7980
}).orElse(false);
8081
if (!onIsland) {
@@ -96,8 +97,9 @@ public boolean canExecute(User user, String label, List<String> args) {
9697
user.sendMessage("general.errors.must-be-positive-number", TextVariables.NUMBER, args.get(1));
9798
return false;
9899
}
100+
99101
// Get islands
100-
islands = this.getNameIslandMap(User.getInstance(targetUUID));
102+
islands = IslandGoCommand.getNameIslandMap(User.getInstance(targetUUID), getWorld());
101103
if (islands.isEmpty()) {
102104
user.sendMessage("general.errors.player-has-no-island");
103105
return false;
@@ -125,7 +127,7 @@ public boolean execute(User user, String label, List<String> args) {
125127
return false;
126128
}
127129
islands.forEach((name, island) -> {
128-
island.setMaxHomes(maxHomes);
130+
island.island().setMaxHomes(maxHomes);
129131
user.sendMessage("commands.admin.maxhomes.max-homes-set", TextVariables.NAME, name, TextVariables.NUMBER,
130132
String.valueOf(maxHomes));
131133
});
@@ -144,31 +146,11 @@ public Optional<List<String>> tabComplete(User user, String alias, List<String>
144146
UUID targetUUID = getPlayers().getUUID(args.get(1));
145147
if (targetUUID != null) {
146148
User target = User.getInstance(targetUUID);
147-
return Optional.of(Util.tabLimit(new ArrayList<>(getNameIslandMap(target).keySet()), lastArg));
149+
return Optional.of(Util.tabLimit(new ArrayList<>(IslandGoCommand.getNameIslandMap(target, getWorld()).keySet()), lastArg));
148150
}
149151
}
150152
return Optional.of(List.of("1"));
151153

152154
}
153155

154-
Map<String, Island> getNameIslandMap(User user) {
155-
Map<String, Island> islandMap = new HashMap<>();
156-
int index = 0;
157-
for (Island island : getIslands().getIslands(getWorld(), user.getUniqueId())) {
158-
index++;
159-
if (island.getName() != null && !island.getName().isBlank()) {
160-
// Name has been set
161-
islandMap.put(island.getName(), island);
162-
} else {
163-
// Name has not been set
164-
String text = user.getTranslation("protection.flags.ENTER_EXIT_MESSAGES.island", TextVariables.NAME,
165-
user.getName(), TextVariables.DISPLAY_NAME, user.getDisplayName()) + " " + index;
166-
islandMap.put(text, island);
167-
}
168-
}
169-
170-
return islandMap;
171-
172-
}
173-
174156
}

src/main/java/world/bentobox/bentobox/api/commands/admin/AdminResetHomeCommand.java

Lines changed: 7 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import java.util.UUID;
99

1010
import world.bentobox.bentobox.api.commands.CompositeCommand;
11+
import world.bentobox.bentobox.api.commands.island.IslandGoCommand;
12+
import world.bentobox.bentobox.api.commands.island.IslandGoCommand.IslandInfo;
1113
import world.bentobox.bentobox.api.localization.TextVariables;
1214
import world.bentobox.bentobox.api.user.User;
1315
import world.bentobox.bentobox.database.objects.Island;
@@ -20,7 +22,7 @@
2022
*/
2123
public class AdminResetHomeCommand extends CompositeCommand
2224
{
23-
Map<String, Island> islands = new HashMap<>();
25+
Map<String, IslandInfo> islands = new HashMap<>();
2426

2527
/**
2628
* Default constructor.
@@ -66,7 +68,7 @@ public boolean canExecute(User user, String label, List<String> args)
6668
return false;
6769
}
6870
// Get islands
69-
islands = this.getNameIslandMap(User.getInstance(targetUUID));
71+
islands = IslandGoCommand.getNameIslandMap(User.getInstance(targetUUID), getWorld());
7072
if (islands.isEmpty()) {
7173
user.sendMessage("general.errors.player-has-no-island");
7274
return false;
@@ -107,7 +109,7 @@ public boolean execute(User user, String label, List<String> args)
107109
return false;
108110
}
109111
islands.forEach((name, island) -> {
110-
island.getHomes().keySet().removeIf(String::isEmpty); // Remove the default home
112+
island.island().getHomes().keySet().removeIf(String::isEmpty); // Remove the default home
111113
user.sendMessage("commands.admin.resethome.cleared", TextVariables.NAME, name);
112114
});
113115

@@ -128,31 +130,12 @@ public Optional<List<String>> tabComplete(User user, String alias, List<String>
128130
UUID targetUUID = getPlayers().getUUID(args.get(0));
129131
if (targetUUID != null) {
130132
User target = User.getInstance(targetUUID);
131-
return Optional.of(Util.tabLimit(new ArrayList<>(getNameIslandMap(target).keySet()), lastArg));
133+
return Optional.of(Util.tabLimit(
134+
new ArrayList<>(IslandGoCommand.getNameIslandMap(target, getWorld()).keySet()), lastArg));
132135
}
133136
}
134137
return Optional.empty();
135138

136139
}
137140

138-
Map<String, Island> getNameIslandMap(User user) {
139-
Map<String, Island> islandMap = new HashMap<>();
140-
int index = 0;
141-
for (Island island : getIslands().getIslands(getWorld(), user.getUniqueId())) {
142-
index++;
143-
if (island.getName() != null && !island.getName().isBlank()) {
144-
// Name has been set
145-
islandMap.put(island.getName(), island);
146-
} else {
147-
// Name has not been set
148-
String text = user.getTranslation("protection.flags.ENTER_EXIT_MESSAGES.island", TextVariables.NAME,
149-
user.getName(), TextVariables.DISPLAY_NAME, user.getDisplayName()) + " " + index;
150-
islandMap.put(text, island);
151-
}
152-
}
153-
154-
return islandMap;
155-
156-
}
157-
158141
}

0 commit comments

Comments
 (0)