From 7878f5f69a116f557a9bda2ee6203b4b382f4345 Mon Sep 17 00:00:00 2001 From: Shyanne Date: Fri, 10 May 2024 13:55:23 -0400 Subject: [PATCH 1/3] Fixed schematic centering (#843) yeah sorry i lied :) we ended up with a decimal value that was rounding up, so now we just dont do that --- .../iridiumskyblock/schematics/FastAsyncWorldEdit.java | 8 +++++++- .../iridiumskyblock/schematics/SchematicAsync.java | 6 +++++- .../iridium/iridiumskyblock/schematics/WorldEdit.java | 9 ++++++++- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/iridium/iridiumskyblock/schematics/FastAsyncWorldEdit.java b/src/main/java/com/iridium/iridiumskyblock/schematics/FastAsyncWorldEdit.java index 1cabfffe8..4d8538bf8 100644 --- a/src/main/java/com/iridium/iridiumskyblock/schematics/FastAsyncWorldEdit.java +++ b/src/main/java/com/iridium/iridiumskyblock/schematics/FastAsyncWorldEdit.java @@ -52,7 +52,13 @@ public void paste(File file, Location location, Boolean ignoreAirBlock, Completa int width = clipboard.getDimensions().getBlockX(); int height = clipboard.getDimensions().getBlockY(); int length = clipboard.getDimensions().getBlockZ(); - location.subtract(width / 2.00, height / 2.00, length / 2.00); // Centers the schematic + + int newLength = (int) (length / 2.00); + int newWidth = (int) (width / 2.00); + int newHeight = (int) (height / 2.00); + + location.subtract(newWidth, newHeight, newLength); //Center the schematic (for real this time) + clipboard.setOrigin(clipboard.getRegion().getMinimumPoint()); // Change the //copy point to the minimum // corner { diff --git a/src/main/java/com/iridium/iridiumskyblock/schematics/SchematicAsync.java b/src/main/java/com/iridium/iridiumskyblock/schematics/SchematicAsync.java index 3708e2b52..e58e59225 100644 --- a/src/main/java/com/iridium/iridiumskyblock/schematics/SchematicAsync.java +++ b/src/main/java/com/iridium/iridiumskyblock/schematics/SchematicAsync.java @@ -31,7 +31,11 @@ public void paste(File file, Location location, Boolean ignoreAirBlock, Completa short width = schematicData.width; short height = schematicData.height; - location.subtract(width / 2.00, height / 2.00, length / 2.00); // Centers the schematic + int newLength = (int) (length / 2.00); + int newWidth = (int) (width / 2.00); + int newHeight = (int) (height / 2.00); + + location.subtract(newWidth, newHeight, newLength); //Center the schematic (for real this time) BukkitRunnable runnable = new BukkitRunnable() { diff --git a/src/main/java/com/iridium/iridiumskyblock/schematics/WorldEdit.java b/src/main/java/com/iridium/iridiumskyblock/schematics/WorldEdit.java index 012691247..c4f4dcca2 100644 --- a/src/main/java/com/iridium/iridiumskyblock/schematics/WorldEdit.java +++ b/src/main/java/com/iridium/iridiumskyblock/schematics/WorldEdit.java @@ -46,10 +46,17 @@ public void paste(File file, Location location, Boolean ignoreAirBlock, Completa ClipboardFormat format = cachedClipboardFormat.getOrDefault(file, ClipboardFormats.findByFile(file)); ClipboardReader reader = format.getReader(new FileInputStream(file)); Clipboard clipboard = reader.read(); + int width = clipboard.getDimensions().getBlockX(); int height = clipboard.getDimensions().getBlockY(); int length = clipboard.getDimensions().getBlockZ(); - location.subtract(width / 2.00, height / 2.00, length / 2.00); // Centers the schematic + + int newLength = (int) (length / 2.00); + int newWidth = (int) (width / 2.00); + int newHeight = (int) (height / 2.00); + + location.subtract(newWidth, newHeight, newLength); //Center the schematic (for real this time) + clipboard.setOrigin(clipboard.getRegion().getMinimumPoint()); // Change the //copy point to the minimum corner try (EditSession editSession = com.sk89q.worldedit.WorldEdit.getInstance().newEditSession(new BukkitWorld(location.getWorld()))) { Operation operation = new ClipboardHolder(clipboard) From 31061ad84cb1dd815cf30804284fbd4ae1c42266 Mon Sep 17 00:00:00 2001 From: Shyanne Date: Fri, 10 May 2024 14:38:45 -0400 Subject: [PATCH 2/3] replaced "N/A" instances with nullPlaceholder config (#819) Co-authored-by: Peaches_MLG --- .../iridiumskyblock/database/Island.java | 2 +- .../IslandPlaceholderBuilder.java | 36 +++++++++---------- .../placeholders/UserPlaceholderBuilder.java | 8 ++--- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/iridium/iridiumskyblock/database/Island.java b/src/main/java/com/iridium/iridiumskyblock/database/Island.java index a41330930..e8ac4374c 100644 --- a/src/main/java/com/iridium/iridiumskyblock/database/Island.java +++ b/src/main/java/com/iridium/iridiumskyblock/database/Island.java @@ -136,7 +136,7 @@ public void setColor(Color color) { if (super.getName() != null) return super.getName(); String ownerName = getOwner() .map(User::getName) - .orElse("N/A"); + .orElse(IridiumSkyblock.getInstance().getMessages().nullPlaceholder); return IridiumSkyblock.getInstance().getConfiguration().defaultIslandName.replace("%owner%", ownerName); } diff --git a/src/main/java/com/iridium/iridiumskyblock/placeholders/IslandPlaceholderBuilder.java b/src/main/java/com/iridium/iridiumskyblock/placeholders/IslandPlaceholderBuilder.java index 84b8f423a..074d7072c 100644 --- a/src/main/java/com/iridium/iridiumskyblock/placeholders/IslandPlaceholderBuilder.java +++ b/src/main/java/com/iridium/iridiumskyblock/placeholders/IslandPlaceholderBuilder.java @@ -43,7 +43,7 @@ public List getPlaceholders(Island island) { .filter(user -> user.getUserRank() == Rank.OWNER.getId()) .findFirst() .map(User::getName) - .orElse("N/A")), + .orElse(IridiumSkyblock.getInstance().getMessages().nullPlaceholder)), new Placeholder("island_create", island.getCreateTime().format(DateTimeFormatter.ofPattern(IridiumSkyblock.getInstance().getConfiguration().dateTimeFormat))), new Placeholder("island_description", island.getDescription()), new Placeholder("island_value", String.valueOf(IridiumSkyblock.getInstance().getTeamManager().getTeamValue(island))), @@ -72,29 +72,29 @@ public List getPlaceholders(Island island) { private List initializeDefaultPlaceholders() { List placeholderList = new ArrayList<>(Arrays.asList( - new Placeholder("island_name", "N/A"), - new Placeholder("island_owner", "N/A"), - new Placeholder("island_description", "N/A"), - new Placeholder("island_create", "N/A"), - new Placeholder("island_value", "N/A"), - new Placeholder("island_level", "N/A"), - new Placeholder("island_experience", "N/A"), - new Placeholder("island_value_rank", "N/A"), - new Placeholder("island_experience_rank", "N/A"), - new Placeholder("island_members_online", "N/A"), - new Placeholder("island_members_online_count", "N/A"), - new Placeholder("island_members_offline", "N/A"), - new Placeholder("island_members_offline_count", "N/A"), - new Placeholder("island_members_count", "N/A") + new Placeholder("island_name", IridiumSkyblock.getInstance().getMessages().nullPlaceholder), + new Placeholder("island_owner", IridiumSkyblock.getInstance().getMessages().nullPlaceholder), + new Placeholder("island_description", IridiumSkyblock.getInstance().getMessages().nullPlaceholder), + new Placeholder("island_create", IridiumSkyblock.getInstance().getMessages().nullPlaceholder), + new Placeholder("island_value", IridiumSkyblock.getInstance().getMessages().nullPlaceholder), + new Placeholder("island_level", IridiumSkyblock.getInstance().getMessages().nullPlaceholder), + new Placeholder("island_experience", IridiumSkyblock.getInstance().getMessages().nullPlaceholder), + new Placeholder("island_value_rank", IridiumSkyblock.getInstance().getMessages().nullPlaceholder), + new Placeholder("island_experience_rank", IridiumSkyblock.getInstance().getMessages().nullPlaceholder), + new Placeholder("island_members_online", IridiumSkyblock.getInstance().getMessages().nullPlaceholder), + new Placeholder("island_members_online_count", IridiumSkyblock.getInstance().getMessages().nullPlaceholder), + new Placeholder("island_members_offline", IridiumSkyblock.getInstance().getMessages().nullPlaceholder), + new Placeholder("island_members_offline_count", IridiumSkyblock.getInstance().getMessages().nullPlaceholder), + new Placeholder("island_members_count", IridiumSkyblock.getInstance().getMessages().nullPlaceholder) )); for (BankItem bankItem : IridiumSkyblock.getInstance().getBankItemList()) { - placeholderList.add(new Placeholder("island_bank_" + bankItem.getName().toLowerCase(), "N/A")); + placeholderList.add(new Placeholder("island_bank_" + bankItem.getName().toLowerCase(), IridiumSkyblock.getInstance().getMessages().nullPlaceholder)); } for (XMaterial xMaterial : XMaterial.values()) { - placeholderList.add(new Placeholder("island_" + xMaterial.name().toLowerCase() + "_amount", "N/A")); + placeholderList.add(new Placeholder("island_" + xMaterial.name().toLowerCase() + "_amount", IridiumSkyblock.getInstance().getMessages().nullPlaceholder)); } for (EntityType entityType : EntityType.values()) { - placeholderList.add(new Placeholder("island_" + entityType.name().toLowerCase() + "_amount", "N/A")); + placeholderList.add(new Placeholder("island_" + entityType.name().toLowerCase() + "_amount", IridiumSkyblock.getInstance().getMessages().nullPlaceholder)); } return placeholderList; } diff --git a/src/main/java/com/iridium/iridiumskyblock/placeholders/UserPlaceholderBuilder.java b/src/main/java/com/iridium/iridiumskyblock/placeholders/UserPlaceholderBuilder.java index 5c484651f..483111d75 100644 --- a/src/main/java/com/iridium/iridiumskyblock/placeholders/UserPlaceholderBuilder.java +++ b/src/main/java/com/iridium/iridiumskyblock/placeholders/UserPlaceholderBuilder.java @@ -16,15 +16,15 @@ public class UserPlaceholderBuilder implements PlaceholderBuilder { private final TemporaryCache> cache = new TemporaryCache<>(); private final List defaultPlaceholders = Arrays.asList( - new Placeholder("player_rank", "N/A"), - new Placeholder("player_name", "N/A"), - new Placeholder("player_join", "N/A") + new Placeholder("player_rank", IridiumSkyblock.getInstance().getMessages().nullPlaceholder), + new Placeholder("player_name", IridiumSkyblock.getInstance().getMessages().nullPlaceholder), + new Placeholder("player_join", IridiumSkyblock.getInstance().getMessages().nullPlaceholder) ); @Override public List getPlaceholders(User user) { return cache.get(user, Duration.ofSeconds(1), () -> Arrays.asList( - new Placeholder("player_rank", IridiumSkyblock.getInstance().getUserRanks().getOrDefault(user.getUserRank(), new UserRank("N/A", null)).name), + new Placeholder("player_rank", IridiumSkyblock.getInstance().getUserRanks().getOrDefault(user.getUserRank(), new UserRank(IridiumSkyblock.getInstance().getMessages().nullPlaceholder, null)).name), new Placeholder("player_name", user.getName()), new Placeholder("player_join", user.getJoinTime().format(DateTimeFormatter.ofPattern(IridiumSkyblock.getInstance().getConfiguration().dateTimeFormat))) )); From c5a275d5b734085ee8207369c5d1e4cd94374e36 Mon Sep 17 00:00:00 2001 From: Shyanne Date: Fri, 10 May 2024 14:53:06 -0400 Subject: [PATCH 3/3] added more placeholders (#821) * added more placeholders - modified the fetch for online and offline members to run a single stream to create both lists - added ``island_visitors`` and ``island_visitors_amount`` placeholders to get the list of player names visiting an island and the amount of current visitors to said island - added ``island_booster`` and ``island_upgrade`` placeholders, to get whether they're active, the level of the enhancement, and the time remaining * applied supplier - also removed members from the list of visitors * Merged enhancement placeholders - fixed an error in loop logic * Formatting and nullPlaceholder --------- Co-authored-by: Peaches_MLG --- .../IslandPlaceholderBuilder.java | 113 +++++++++++++----- 1 file changed, 83 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/iridium/iridiumskyblock/placeholders/IslandPlaceholderBuilder.java b/src/main/java/com/iridium/iridiumskyblock/placeholders/IslandPlaceholderBuilder.java index 074d7072c..3e5e8f997 100644 --- a/src/main/java/com/iridium/iridiumskyblock/placeholders/IslandPlaceholderBuilder.java +++ b/src/main/java/com/iridium/iridiumskyblock/placeholders/IslandPlaceholderBuilder.java @@ -9,14 +9,16 @@ import com.iridium.iridiumteams.Rank; import com.iridium.iridiumteams.TemporaryCache; import com.iridium.iridiumteams.bank.BankItem; +import com.iridium.iridiumteams.database.TeamEnhancement; +import com.iridium.iridiumteams.enhancements.Enhancement; +import com.iridium.iridiumteams.enhancements.EnhancementType; +import org.bukkit.Bukkit; import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; import java.time.Duration; import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; public class IslandPlaceholderBuilder implements PlaceholderBuilder { @@ -28,49 +30,79 @@ public class IslandPlaceholderBuilder implements PlaceholderBuilder { public List getPlaceholders(Island island) { return cache.get(island, Duration.ofSeconds(1), () -> { List users = IridiumSkyblock.getInstance().getTeamManager().getTeamMembers(island); - List onlineUsers = users.stream() - .filter(u -> u.getPlayer() != null) - .map(User::getName) - .collect(Collectors.toList()); - List offlineUsers = users.stream() - .filter(u -> u.getPlayer() == null) - .map(User::getName) - .collect(Collectors.toList()); + + List onlineUsers = new ArrayList<>(Collections.emptyList()); + List offlineUsers = new ArrayList<>(Collections.emptyList()); + + for (User user : users) { + if (user.getPlayer() != null) { + onlineUsers.add(user.getName()); + } else { + offlineUsers.add(user.getName()); + } + } List placeholderList = new ArrayList<>(Arrays.asList( - new Placeholder("island_name", island.getName()), - new Placeholder("island_owner", IridiumSkyblock.getInstance().getTeamManager().getTeamMembers(island).stream() + new Placeholder("island_name", island::getName), + new Placeholder("island_owner", () -> IridiumSkyblock.getInstance().getTeamManager().getTeamMembers(island).stream() .filter(user -> user.getUserRank() == Rank.OWNER.getId()) .findFirst() .map(User::getName) .orElse(IridiumSkyblock.getInstance().getMessages().nullPlaceholder)), - new Placeholder("island_create", island.getCreateTime().format(DateTimeFormatter.ofPattern(IridiumSkyblock.getInstance().getConfiguration().dateTimeFormat))), - new Placeholder("island_description", island.getDescription()), - new Placeholder("island_value", String.valueOf(IridiumSkyblock.getInstance().getTeamManager().getTeamValue(island))), - new Placeholder("island_level", String.valueOf(island.getLevel())), - new Placeholder("island_experience", String.valueOf(island.getExperience())), - new Placeholder("island_value_rank", String.valueOf(IridiumSkyblock.getInstance().getTop().valueTeamSort.getRank(island, IridiumSkyblock.getInstance()))), - new Placeholder("island_experience_rank", String.valueOf(IridiumSkyblock.getInstance().getTop().experienceTeamSort.getRank(island, IridiumSkyblock.getInstance()))), - new Placeholder("island_members_online", String.join(", ", onlineUsers)), - new Placeholder("island_members_online_count", String.valueOf(onlineUsers.size())), - new Placeholder("island_members_offline", String.join(", ", offlineUsers)), - new Placeholder("island_members_offline_count", String.valueOf(offlineUsers.size())), - new Placeholder("island_members_count", String.valueOf(users.size())) + new Placeholder("island_create", () -> island.getCreateTime().format(DateTimeFormatter.ofPattern(IridiumSkyblock.getInstance().getConfiguration().dateTimeFormat))), + new Placeholder("island_description", island::getDescription), + new Placeholder("island_value", () -> String.valueOf(IridiumSkyblock.getInstance().getTeamManager().getTeamValue(island))), + new Placeholder("island_level", () -> String.valueOf(island.getLevel())), + new Placeholder("island_experience", () -> String.valueOf(island.getExperience())), + new Placeholder("island_value_rank", () -> String.valueOf(IridiumSkyblock.getInstance().getTop().valueTeamSort.getRank(island, IridiumSkyblock.getInstance()))), + new Placeholder("island_experience_rank", () -> String.valueOf(IridiumSkyblock.getInstance().getTop().experienceTeamSort.getRank(island, IridiumSkyblock.getInstance()))), + new Placeholder("island_members_online", () -> String.join(", ", onlineUsers)), + new Placeholder("island_members_online_count", () -> String.valueOf(onlineUsers.size())), + new Placeholder("island_members_offline", () -> String.join(", ", offlineUsers)), + new Placeholder("island_members_offline_count", () -> String.valueOf(offlineUsers.size())), + new Placeholder("island_members_count", () -> String.valueOf(users.size())) )); + + List visitingPlayers = Bukkit.getOnlinePlayers().stream() + .map(Player::getPlayer) + .filter(Objects::nonNull) + .filter(player -> island.isInIsland(player.getLocation())) + .collect(Collectors.toList()); + + visitingPlayers.removeIf(player -> onlineUsers.contains(player.getName())); + + placeholderList.add(new Placeholder("island_visitors", () -> visitingPlayers.stream().map(Player::getName).collect(Collectors.joining(", ")))); + placeholderList.add(new Placeholder("island_visitors_amount", () -> String.valueOf(visitingPlayers.size()))); + + placeholderList.add(new Placeholder("island_visitors", () -> visitingPlayers.stream().map(Player::getName).collect(Collectors.joining(", ")))); + placeholderList.add(new Placeholder("island_visitors_amount", () -> String.valueOf(visitingPlayers.size()))); + + for (Map.Entry> enhancement : IridiumSkyblock.getInstance().getEnhancementList().entrySet()) { + if (!enhancement.getValue().enabled) continue; + TeamEnhancement teamEnhancement = IridiumSkyblock.getInstance().getIslandManager().getTeamEnhancement(island, enhancement.getKey()); + + placeholderList.add(new Placeholder("island_enhancement_" + enhancement.getKey() + "_active", () -> String.valueOf(teamEnhancement.isActive()))); + placeholderList.add(new Placeholder("island_enhancement_" + enhancement.getKey() + "_level", () -> String.valueOf(teamEnhancement.getLevel()))); + placeholderList.add(new Placeholder("island_enhancement_" + enhancement.getKey() + "_time_hours", () -> String.valueOf(Math.max((int) (teamEnhancement.getRemainingTime() % 60), 0)))); + placeholderList.add(new Placeholder("island_enhancement_" + enhancement.getKey() + "_time_minutes", () -> String.valueOf(Math.max((int) ((teamEnhancement.getRemainingTime() % 3600) / 60), 0)))); + placeholderList.add(new Placeholder("island_enhancement_" + enhancement.getKey() + "_time_seconds", () -> String.valueOf(Math.max((int) (teamEnhancement.getRemainingTime() / 3600), 0)))); + } + for (BankItem bankItem : IridiumSkyblock.getInstance().getBankItemList()) { - placeholderList.add(new Placeholder("island_bank_" + bankItem.getName().toLowerCase(), String.valueOf(IridiumSkyblock.getInstance().getTeamManager().getTeamBank(island, bankItem.getName()).getNumber()))); + placeholderList.add(new Placeholder("island_bank_" + bankItem.getName().toLowerCase(), () -> String.valueOf(IridiumSkyblock.getInstance().getTeamManager().getTeamBank(island, bankItem.getName()).getNumber()))); } for (XMaterial xMaterial : XMaterial.values()) { - placeholderList.add(new Placeholder("island_" + xMaterial.name().toLowerCase() + "_amount", String.valueOf(IridiumSkyblock.getInstance().getTeamManager().getTeamBlock(island, xMaterial).getAmount()))); + placeholderList.add(new Placeholder("island_" + xMaterial.name().toLowerCase() + "_amount", () -> String.valueOf(IridiumSkyblock.getInstance().getTeamManager().getTeamBlock(island, xMaterial).getAmount()))); } for (EntityType entityType : EntityType.values()) { - placeholderList.add(new Placeholder("island_" + entityType.name().toLowerCase() + "_amount", String.valueOf(IridiumSkyblock.getInstance().getTeamManager().getTeamSpawners(island, entityType).getAmount()))); + placeholderList.add(new Placeholder("island_" + entityType.name().toLowerCase() + "_amount", () -> String.valueOf(IridiumSkyblock.getInstance().getTeamManager().getTeamSpawners(island, entityType).getAmount()))); } return placeholderList; }); } private List initializeDefaultPlaceholders() { + List placeholderList = new ArrayList<>(Arrays.asList( new Placeholder("island_name", IridiumSkyblock.getInstance().getMessages().nullPlaceholder), new Placeholder("island_owner", IridiumSkyblock.getInstance().getMessages().nullPlaceholder), @@ -85,8 +117,29 @@ private List initializeDefaultPlaceholders() { new Placeholder("island_members_online_count", IridiumSkyblock.getInstance().getMessages().nullPlaceholder), new Placeholder("island_members_offline", IridiumSkyblock.getInstance().getMessages().nullPlaceholder), new Placeholder("island_members_offline_count", IridiumSkyblock.getInstance().getMessages().nullPlaceholder), - new Placeholder("island_members_count", IridiumSkyblock.getInstance().getMessages().nullPlaceholder) + new Placeholder("island_members_count", IridiumSkyblock.getInstance().getMessages().nullPlaceholder), + new Placeholder("island_visitors", IridiumSkyblock.getInstance().getMessages().nullPlaceholder), + new Placeholder("island_visitors_amount", IridiumSkyblock.getInstance().getMessages().nullPlaceholder) )); + + for (Map.Entry> enhancement : IridiumSkyblock.getInstance().getEnhancementList().entrySet()) { + if (enhancement.getValue().type == EnhancementType.BOOSTER) { + placeholderList.add(new Placeholder("island_booster_" + enhancement.getKey() + "_active", IridiumSkyblock.getInstance().getMessages().nullPlaceholder)); + placeholderList.add(new Placeholder("island_booster_" + enhancement.getKey() + "_level", IridiumSkyblock.getInstance().getMessages().nullPlaceholder)); + placeholderList.add(new Placeholder("island_booster_" + enhancement.getKey() + "_time_hours", IridiumSkyblock.getInstance().getMessages().nullPlaceholder)); + placeholderList.add(new Placeholder("island_booster_" + enhancement.getKey() + "_time_minutes", IridiumSkyblock.getInstance().getMessages().nullPlaceholder)); + placeholderList.add(new Placeholder("island_booster_" + enhancement.getKey() + "_time_seconds", IridiumSkyblock.getInstance().getMessages().nullPlaceholder)); + } + + if (enhancement.getValue().type == EnhancementType.UPGRADE) { + placeholderList.add(new Placeholder("island_upgrade_" + enhancement.getKey() + "_active", IridiumSkyblock.getInstance().getMessages().nullPlaceholder)); + placeholderList.add(new Placeholder("island_upgrade_" + enhancement.getKey() + "_level", IridiumSkyblock.getInstance().getMessages().nullPlaceholder)); + placeholderList.add(new Placeholder("island_upgrade_" + enhancement.getKey() + "_time_hours", IridiumSkyblock.getInstance().getMessages().nullPlaceholder)); + placeholderList.add(new Placeholder("island_upgrade_" + enhancement.getKey() + "_time_minutes", IridiumSkyblock.getInstance().getMessages().nullPlaceholder)); + placeholderList.add(new Placeholder("island_upgrade_" + enhancement.getKey() + "_time_seconds", IridiumSkyblock.getInstance().getMessages().nullPlaceholder)); + } + } + for (BankItem bankItem : IridiumSkyblock.getInstance().getBankItemList()) { placeholderList.add(new Placeholder("island_bank_" + bankItem.getName().toLowerCase(), IridiumSkyblock.getInstance().getMessages().nullPlaceholder)); }