Skip to content

Commit 9e33503

Browse files
committed
Refactor list collection methods to use toList() for improved readability and enforce unmodifiable collections where applicable
1 parent 978e99f commit 9e33503

File tree

11 files changed

+32
-23
lines changed

11 files changed

+32
-23
lines changed

buildsystem-api/src/main/java/de/eintosti/buildsystem/api/world/builder/Builders.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.util.List;
2323
import java.util.UUID;
2424
import org.bukkit.entity.Player;
25+
import org.jetbrains.annotations.Unmodifiable;
2526
import org.jspecify.annotations.NullMarked;
2627
import org.jspecify.annotations.Nullable;
2728

@@ -80,10 +81,11 @@ public interface Builders {
8081
Builder getBuilder(UUID uuid);
8182

8283
/**
83-
* Get a list of all {@link Builder} names
84+
* Get an unmodifiable list of all {@link Builder} names
8485
*
8586
* @return A list of all builder names
8687
*/
88+
@Unmodifiable
8789
List<String> getBuilderNames();
8890

8991
/**

buildsystem-core/src/main/java/de/eintosti/buildsystem/Messages.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,14 @@
3333
import java.util.List;
3434
import java.util.Map;
3535
import java.util.function.Function;
36-
import java.util.stream.Collectors;
3736
import me.clip.placeholderapi.PlaceholderAPI;
3837
import org.bukkit.Bukkit;
3938
import org.bukkit.ChatColor;
4039
import org.bukkit.command.CommandSender;
4140
import org.bukkit.configuration.file.YamlConfiguration;
4241
import org.bukkit.entity.Player;
4342
import org.bukkit.plugin.java.JavaPlugin;
43+
import org.jetbrains.annotations.Unmodifiable;
4444
import org.jspecify.annotations.Nullable;
4545

4646
public class Messages {
@@ -1021,6 +1021,7 @@ public static List<String> getStringList(String key, @Nullable Player player, Ma
10211021
* @param placeholders The function which gets the placeholders to be injected into a given line
10221022
* @return A list of messages using the given key
10231023
*/
1024+
@Unmodifiable
10241025
public static List<String> getStringList(String key, @Nullable Player player, Function<String, Map.Entry<String, Object>[]> placeholders) {
10251026
String message = MESSAGES.get(key).replace("%prefix%", getPrefix());
10261027
return Arrays.stream(message.split("\n"))
@@ -1030,7 +1031,7 @@ public static List<String> getStringList(String key, @Nullable Player player, Fu
10301031
: line
10311032
)
10321033
.map(ColorAPI::process)
1033-
.collect(Collectors.toList());
1034+
.toList();
10341035
}
10351036

10361037
/**

buildsystem-core/src/main/java/de/eintosti/buildsystem/command/tabcomplete/WorldsTabCompleter.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@
3737
import java.util.List;
3838
import java.util.Locale;
3939
import java.util.Map;
40-
import java.util.stream.Collectors;
4140
import javax.annotation.Nullable;
4241
import org.bukkit.Bukkit;
4342
import org.bukkit.command.Command;
@@ -181,9 +180,9 @@ public List<String> onTabComplete(CommandSender sender, Command cmd, String labe
181180
switch (args[0].toLowerCase(Locale.ROOT)) {
182181
case "import": {
183182
Map<String, List<String>> arguments = Map.of(
184-
"-g", Arrays.stream(Generator.values()).filter(generator -> generator != Generator.CUSTOM).map(Enum::name).collect(Collectors.toList()),
185-
"-c", Lists.newArrayList(),
186-
"-t", Arrays.stream(BuildWorldType.values()).map(Enum::name).collect(Collectors.toList())
183+
"-g", Arrays.stream(Generator.values()).filter(generator -> generator != Generator.CUSTOM).map(Enum::name).toList(),
184+
"-c", List.of(),
185+
"-t", Arrays.stream(BuildWorldType.values()).map(Enum::name).toList()
187186
);
188187

189188
if (args.length % 2 == 1) {

buildsystem-core/src/main/java/de/eintosti/buildsystem/storage/yaml/YamlFolderStorage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ private Folder loadFolder(String folderName) {
156156
XMaterial material = XMaterial.matchXMaterial(config.getString(path + ".material", defaultMaterial.name())).orElse(defaultMaterial);
157157
String permission = config.getString(path + ".permission", "-");
158158
String project = config.getString(path + ".project", "-");
159-
List<UUID> worlds = config.getStringList(path + ".worlds").stream().map(UUID::fromString).collect(Collectors.toList());
159+
List<UUID> worlds = config.getStringList(path + ".worlds").stream().map(UUID::fromString).toList();
160160

161161
return new FolderImpl(
162162
folderName,

buildsystem-core/src/main/java/de/eintosti/buildsystem/util/color/ColorAPI.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
import java.util.Collection;
2828
import java.util.List;
2929
import java.util.Map;
30-
import java.util.stream.Collectors;
3130
import net.md_5.bungee.api.ChatColor;
31+
import org.jetbrains.annotations.Unmodifiable;
3232
import org.jspecify.annotations.NullMarked;
3333

3434
@NullMarked
@@ -84,8 +84,9 @@ public static String process(String string) {
8484
* @param strings The collection of the strings we are processing
8585
* @return The list of processed strings
8686
*/
87+
@Unmodifiable
8788
public static List<String> process(Collection<String> strings) {
88-
return strings.stream().map(ColorAPI::process).collect(Collectors.toList());
89+
return strings.stream().map(ColorAPI::process).toList();
8990
}
9091

9192
/**

buildsystem-core/src/main/java/de/eintosti/buildsystem/util/inventory/InventoryUtils.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
import java.util.List;
3232
import java.util.OptionalInt;
3333
import java.util.logging.Logger;
34-
import java.util.stream.Collectors;
3534
import java.util.stream.IntStream;
3635
import org.bukkit.NamespacedKey;
3736
import org.bukkit.entity.Player;
@@ -42,6 +41,7 @@
4241
import org.bukkit.inventory.meta.ItemMeta;
4342
import org.bukkit.persistence.PersistentDataContainer;
4443
import org.bukkit.persistence.PersistentDataType;
44+
import org.jetbrains.annotations.Unmodifiable;
4545
import org.jspecify.annotations.NullMarked;
4646
import org.jspecify.annotations.Nullable;
4747

@@ -243,12 +243,13 @@ public static boolean isNavigator(Player player, @Nullable ItemStack itemStack)
243243
* @param player The player to check
244244
* @return A list of slot numbers containing navigator items
245245
*/
246+
@Unmodifiable
246247
public static List<Integer> getNavigatorSlots(Player player) {
247248
PlayerInventory playerInventory = player.getInventory();
248249
return IntStream.range(0, playerInventory.getSize())
249250
.filter(i -> isNavigator(player, playerInventory.getItem(i)))
250251
.boxed()
251-
.collect(Collectors.toList());
252+
.toList();
252253
}
253254

254255
/**

buildsystem-core/src/main/java/de/eintosti/buildsystem/world/builder/BuildersImpl.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import java.util.function.Function;
1313
import java.util.stream.Collectors;
1414
import org.bukkit.entity.Player;
15+
import org.jetbrains.annotations.Unmodifiable;
1516
import org.jspecify.annotations.NullMarked;
1617
import org.jspecify.annotations.Nullable;
1718

@@ -60,10 +61,11 @@ public Builder getBuilder(UUID uuid) {
6061
}
6162

6263
@Override
64+
@Unmodifiable
6365
public List<String> getBuilderNames() {
6466
return getAllBuilders().stream()
6567
.map(Builder::getName)
66-
.collect(Collectors.toList());
68+
.toList();
6769
}
6870

6971
@Override

buildsystem-core/src/main/java/de/eintosti/buildsystem/world/display/FolderImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public FolderImpl(
7575
((FolderImpl) parent).subfolders.add(this);
7676
}
7777
this.creator = creator;
78-
this.worlds = worlds;
78+
this.worlds = new ArrayList<>(worlds);
7979
this.material = material;
8080
this.permission = permission;
8181
this.project = project;
@@ -186,7 +186,7 @@ public void removeWorld(BuildWorld buildWorld) {
186186
@Override
187187
@Unmodifiable
188188
public List<Folder> getSubFolders() {
189-
return this.subfolders;
189+
return Collections.unmodifiableList(this.subfolders);
190190
}
191191

192192
@Override

buildsystem-core/src/main/java/de/eintosti/buildsystem/world/modification/GameRulesInventory.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
import java.util.Arrays;
3232
import java.util.List;
3333
import java.util.Objects;
34-
import java.util.stream.Collectors;
3534
import org.bukkit.ChatColor;
3635
import org.bukkit.GameRule;
3736
import org.bukkit.Material;
@@ -132,7 +131,7 @@ private List<String> getLore(World world, GameRule<?> gameRule, Player player) {
132131
} else {
133132
lore = Messages.getStringList("worldeditor_gamerules_integer", player).stream()
134133
.map(line -> line.replace("%value%", world.getGameRuleValue(gameRule).toString()))
135-
.collect(Collectors.toList());
134+
.toList();
136135
}
137136
return lore;
138137
}

buildsystem-core/src/main/java/de/eintosti/buildsystem/world/navigator/inventory/DisplayablesInventory.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@
5757
import java.util.Map;
5858
import java.util.Set;
5959
import java.util.function.Function;
60-
import java.util.stream.Collectors;
6160
import org.bukkit.Bukkit;
6261
import org.bukkit.entity.Player;
6362
import org.bukkit.event.inventory.InventoryClickEvent;
@@ -66,6 +65,7 @@
6665
import org.bukkit.inventory.meta.ItemMeta;
6766
import org.bukkit.persistence.PersistentDataContainer;
6867
import org.bukkit.persistence.PersistentDataType;
68+
import org.jetbrains.annotations.Unmodifiable;
6969
import org.jspecify.annotations.NullMarked;
7070
import org.jspecify.annotations.Nullable;
7171

@@ -243,12 +243,13 @@ protected List<Displayable> collectDisplayables() {
243243
*
244244
* @return A collection of root folders in the specified category
245245
*/
246+
@Unmodifiable
246247
protected Collection<Folder> collectFolders() {
247248
return folderStorage.getFolders().stream()
248249
.filter(folder -> folder.getCategory() == this.category)
249250
.filter(folder -> !folder.hasParent())
250251
.filter(folder -> folder.canView(this.player))
251-
.collect(Collectors.toList());
252+
.toList();
252253
}
253254

254255
/**
@@ -265,11 +266,12 @@ protected Collection<BuildWorld> collectWorlds() {
265266
* @param worldDisplay The world display settings for the player
266267
* @return A collection of filtered and sorted {@link BuildWorld}s that are valid for display to the player
267268
*/
269+
@Unmodifiable
268270
protected Collection<BuildWorld> filterWorlds(Collection<BuildWorld> buildWorlds, WorldDisplay worldDisplay) {
269271
return buildWorlds.stream()
270272
.filter(this::isWorldValidForDisplay)
271273
.filter(worldDisplay.getWorldFilter().apply())
272-
.collect(Collectors.toList());
274+
.toList();
273275
}
274276

275277
/**

0 commit comments

Comments
 (0)