From 42ca91d05b48f3dad7add1cd262c2130fa0c1bb6 Mon Sep 17 00:00:00 2001 From: Zax71 Date: Thu, 21 Sep 2023 18:54:49 +0100 Subject: [PATCH 1/5] Add /mv info --- .../multiverse/core/commands/InfoCommand.java | 197 ++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 src/main/java/org/mvplugins/multiverse/core/commands/InfoCommand.java diff --git a/src/main/java/org/mvplugins/multiverse/core/commands/InfoCommand.java b/src/main/java/org/mvplugins/multiverse/core/commands/InfoCommand.java new file mode 100644 index 000000000..515bf68b6 --- /dev/null +++ b/src/main/java/org/mvplugins/multiverse/core/commands/InfoCommand.java @@ -0,0 +1,197 @@ +package org.mvplugins.multiverse.core.commands; + +import co.aikar.commands.BukkitCommandIssuer; +import co.aikar.commands.InvalidCommandArgument; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; +import co.aikar.commands.annotation.CommandPermission; +import co.aikar.commands.annotation.Conditions; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Flags; +import co.aikar.commands.annotation.Optional; +import co.aikar.commands.annotation.Subcommand; +import co.aikar.commands.annotation.Syntax; +import jakarta.inject.Inject; +import org.bukkit.ChatColor; +import org.bukkit.World; +import org.jetbrains.annotations.NotNull; +import org.jvnet.hk2.annotations.Service; +import org.mvplugins.multiverse.core.api.LocationManipulation; +import org.mvplugins.multiverse.core.commandtools.MVCommandIssuer; +import org.mvplugins.multiverse.core.commandtools.MVCommandManager; +import org.mvplugins.multiverse.core.commandtools.MultiverseCommand; +import org.mvplugins.multiverse.core.commandtools.flags.CommandValueFlag; +import org.mvplugins.multiverse.core.commandtools.flags.ParsedCommandFlags; +import org.mvplugins.multiverse.core.display.ContentDisplay; +import org.mvplugins.multiverse.core.display.filters.ContentFilter; +import org.mvplugins.multiverse.core.display.filters.DefaultContentFilter; +import org.mvplugins.multiverse.core.display.filters.RegexContentFilter; +import org.mvplugins.multiverse.core.display.handlers.PagedSendHandler; +import org.mvplugins.multiverse.core.display.parsers.MapContentProvider; +import org.mvplugins.multiverse.core.economy.MVEconomist; +import org.mvplugins.multiverse.core.world.LoadedMultiverseWorld; +import org.mvplugins.multiverse.core.world.MultiverseWorld; +import org.mvplugins.multiverse.core.world.WorldManager; + +import java.util.HashMap; + +@Service +@CommandAlias("mv") +public class InfoCommand extends MultiverseCommand { + + private final CommandValueFlag PAGE_FLAG = flag(CommandValueFlag + .builder("--page", Integer.class) + .addAlias("-p") + .context(value -> { + try { + return Integer.parseInt(value); + } catch (NumberFormatException e) { + throw new InvalidCommandArgument("Invalid page number: " + value); + } + }) + .build()); + + private final CommandValueFlag FILTER_FLAG = flag(CommandValueFlag + .builder("--filter", ContentFilter.class) + .addAlias("-f") + .context(value -> { + try { + return RegexContentFilter.fromString(value); + } catch (IllegalArgumentException e) { + throw new InvalidCommandArgument("Invalid filter: " + value); + } + }) + .build()); + + private final WorldManager worldManager; + private final LocationManipulation locationManipulation; + private final MVEconomist economist; + + @Inject + public InfoCommand( + @NotNull MVCommandManager commandManager, + @NotNull WorldManager worldManager, + @NotNull LocationManipulation locationManipulation, + @NotNull MVEconomist economist + ) { + super(commandManager); + this.worldManager = worldManager; + this.locationManipulation = locationManipulation; + this.economist = economist; + } + + @Subcommand("info") + @CommandPermission("multiverse.core.info") + @CommandCompletion("@mvworlds:scope=both") + @Syntax("") + @Description("{@@mv-core.info.description") + public void onImportCommand( + + @NotNull MVCommandIssuer issuer, + + @Flags("resolve=issuerAware") + @Syntax("") + @Description("{@@mv-core.info.description.world}") + LoadedMultiverseWorld world, + + @Optional + @Syntax("[--page ]") + @Description("{@@mv-core.info.description.page}") + String[] flags + ) { + ParsedCommandFlags parsedFlags = parseFlags(flags); + + ContentDisplay.create() + .addContent(MapContentProvider.forContent(getInfo(world)) + .withKeyColor(ChatColor.AQUA) + .withValueColor(ChatColor.WHITE) + ) + .withSendHandler(PagedSendHandler.create() + .withHeader(getTitle()) + .doPagination(true) + .withTargetPage(parsedFlags.flagValue(PAGE_FLAG, 1)) + .withFilter(parsedFlags.flagValue(FILTER_FLAG, DefaultContentFilter.get()))) + .send(issuer); + } + + private HashMap getInfo(LoadedMultiverseWorld world) { + HashMap outMap = new HashMap<>(); + + outMap.put("World Name", world.getName()); + outMap.put("World Alias", world.getAlias()); + outMap.put("Gamemode: ", world.getGameMode().toString()); + outMap.put("Difficulty: ", world.getDifficulty().toString()); + outMap.put("Spawn Location", locationManipulation.strCoords(world.getSpawnLocation())); + outMap.put("World Scale", String.valueOf(world.getScale())); + outMap.put("Seed", String.valueOf(world.getSeed())); + outMap.putAll(getPriceMap(world)); // Entry fee/reward + outMap.put("Respawn World", world.getRespawnWorldName()); + outMap.put("World Type", world.getWorldType().get().toString()); + outMap.put("Generator", world.getGenerator()); + outMap.put("Structures Generate", world.canGenerateStructures().get().toString()); + outMap.put("Weather Enabled", String.valueOf(world.getAllowWeather())); + outMap.put("Hunger Depletes", String.valueOf(world.getHunger())); + outMap.put("Keep Spawn In Memory", String.valueOf(world.getKeepSpawnInMemory())); + outMap.put("Multiverse PVP enabled", String.valueOf(world.getPvp())); + outMap.put("Bukkit PVP enabled", String.valueOf(world.getBukkitWorld().get().getPVP())); + outMap.putAll(getMonsterMap(world)); // Monsters that can spawn + outMap.putAll(getAnimalMap(world)); // Animals that can spawn + + return outMap; + } + + private String getTitle() { + return "tmp"; + } + + private HashMap getAnimalMap(LoadedMultiverseWorld world) { + HashMap outMap = new HashMap<>(); + + if (world.getSpawningAnimals()) { + outMap.put("Spawning Animals", "ALL"); + } else { + if (!world.getSpawningAnimalsExceptions().isEmpty()) { + outMap.put("Spawning Animals", world.getSpawningAnimalsExceptions().toString()); + } else { + outMap.put("Spawning Animals", "NONE"); + } + + } + + return outMap; + + } + + private HashMap getMonsterMap(LoadedMultiverseWorld world) { + HashMap outMap = new HashMap<>(); + + if (world.getSpawningMonsters()) { + outMap.put("Spawning Monsters", "ALL"); + } else { + if (!world.getSpawningMonstersExceptions().isEmpty()) { + outMap.put("Spawning Monsters", world.getSpawningMonstersExceptions().toString()); + } else { + outMap.put("Spawning Monsters", "NONE"); + } + + } + + return outMap; + + } + + private HashMap getPriceMap(LoadedMultiverseWorld world) { + HashMap outMap = new HashMap<>(); + double price = world.getPrice(); + + if (price == 0) { + outMap.put("Entry Fee", "FREE"); + } else if (price > 0){ + outMap.put("Entry Fee", economist.formatPrice(-price, world.getCurrency())); + } else if (price < 0){ + outMap.put("Entry Reward", economist.formatPrice(price, world.getCurrency())); + } + return outMap; + } + +} From 896524b57a5ae9d9345bbf2b0911deea884dcc99 Mon Sep 17 00:00:00 2001 From: Ben Woo <30431861+benwoo1110@users.noreply.github.com> Date: Fri, 22 Sep 2023 15:46:54 +0800 Subject: [PATCH 2/5] Check some checkstyles for info command --- .../multiverse/core/commands/InfoCommand.java | 48 ++++++++----------- 1 file changed, 19 insertions(+), 29 deletions(-) diff --git a/src/main/java/org/mvplugins/multiverse/core/commands/InfoCommand.java b/src/main/java/org/mvplugins/multiverse/core/commands/InfoCommand.java index 515bf68b6..511e28737 100644 --- a/src/main/java/org/mvplugins/multiverse/core/commands/InfoCommand.java +++ b/src/main/java/org/mvplugins/multiverse/core/commands/InfoCommand.java @@ -1,11 +1,12 @@ package org.mvplugins.multiverse.core.commands; -import co.aikar.commands.BukkitCommandIssuer; +import java.util.HashMap; +import java.util.Map; + import co.aikar.commands.InvalidCommandArgument; import co.aikar.commands.annotation.CommandAlias; import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.CommandPermission; -import co.aikar.commands.annotation.Conditions; import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Flags; import co.aikar.commands.annotation.Optional; @@ -13,9 +14,9 @@ import co.aikar.commands.annotation.Syntax; import jakarta.inject.Inject; import org.bukkit.ChatColor; -import org.bukkit.World; import org.jetbrains.annotations.NotNull; import org.jvnet.hk2.annotations.Service; + import org.mvplugins.multiverse.core.api.LocationManipulation; import org.mvplugins.multiverse.core.commandtools.MVCommandIssuer; import org.mvplugins.multiverse.core.commandtools.MVCommandManager; @@ -30,14 +31,11 @@ import org.mvplugins.multiverse.core.display.parsers.MapContentProvider; import org.mvplugins.multiverse.core.economy.MVEconomist; import org.mvplugins.multiverse.core.world.LoadedMultiverseWorld; -import org.mvplugins.multiverse.core.world.MultiverseWorld; import org.mvplugins.multiverse.core.world.WorldManager; -import java.util.HashMap; - @Service @CommandAlias("mv") -public class InfoCommand extends MultiverseCommand { +class InfoCommand extends MultiverseCommand { private final CommandValueFlag PAGE_FLAG = flag(CommandValueFlag .builder("--page", Integer.class) @@ -68,12 +66,11 @@ public class InfoCommand extends MultiverseCommand { private final MVEconomist economist; @Inject - public InfoCommand( + InfoCommand( @NotNull MVCommandManager commandManager, @NotNull WorldManager worldManager, @NotNull LocationManipulation locationManipulation, - @NotNull MVEconomist economist - ) { + @NotNull MVEconomist economist) { super(commandManager); this.worldManager = worldManager; this.locationManipulation = locationManipulation; @@ -97,15 +94,13 @@ public void onImportCommand( @Optional @Syntax("[--page ]") @Description("{@@mv-core.info.description.page}") - String[] flags - ) { + String[] flags) { ParsedCommandFlags parsedFlags = parseFlags(flags); ContentDisplay.create() .addContent(MapContentProvider.forContent(getInfo(world)) .withKeyColor(ChatColor.AQUA) - .withValueColor(ChatColor.WHITE) - ) + .withValueColor(ChatColor.WHITE)) .withSendHandler(PagedSendHandler.create() .withHeader(getTitle()) .doPagination(true) @@ -114,8 +109,8 @@ public void onImportCommand( .send(issuer); } - private HashMap getInfo(LoadedMultiverseWorld world) { - HashMap outMap = new HashMap<>(); + private Map getInfo(LoadedMultiverseWorld world) { + Map outMap = new HashMap<>(); outMap.put("World Name", world.getName()); outMap.put("World Alias", world.getAlias()); @@ -144,8 +139,8 @@ private String getTitle() { return "tmp"; } - private HashMap getAnimalMap(LoadedMultiverseWorld world) { - HashMap outMap = new HashMap<>(); + private Map getAnimalMap(LoadedMultiverseWorld world) { + Map outMap = new HashMap<>(); if (world.getSpawningAnimals()) { outMap.put("Spawning Animals", "ALL"); @@ -155,15 +150,13 @@ private HashMap getAnimalMap(LoadedMultiverseWorld world) { } else { outMap.put("Spawning Animals", "NONE"); } - } return outMap; - } - private HashMap getMonsterMap(LoadedMultiverseWorld world) { - HashMap outMap = new HashMap<>(); + private Map getMonsterMap(LoadedMultiverseWorld world) { + Map outMap = new HashMap<>(); if (world.getSpawningMonsters()) { outMap.put("Spawning Monsters", "ALL"); @@ -173,25 +166,22 @@ private HashMap getMonsterMap(LoadedMultiverseWorld world) { } else { outMap.put("Spawning Monsters", "NONE"); } - } return outMap; - } - private HashMap getPriceMap(LoadedMultiverseWorld world) { - HashMap outMap = new HashMap<>(); + private Map getPriceMap(LoadedMultiverseWorld world) { + Map outMap = new HashMap<>(); double price = world.getPrice(); if (price == 0) { outMap.put("Entry Fee", "FREE"); - } else if (price > 0){ + } else if (price > 0) { outMap.put("Entry Fee", economist.formatPrice(-price, world.getCurrency())); - } else if (price < 0){ + } else if (price < 0) { outMap.put("Entry Reward", economist.formatPrice(price, world.getCurrency())); } return outMap; } - } From 41f9989eefa798d5cf5f3d4ddc188f6cbddb3028 Mon Sep 17 00:00:00 2001 From: Ben Woo <30431861+benwoo1110@users.noreply.github.com> Date: Fri, 22 Sep 2023 16:09:04 +0800 Subject: [PATCH 3/5] Fix more checkstyles and use LinkedHashMap for info command --- .../multiverse/core/commands/InfoCommand.java | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/mvplugins/multiverse/core/commands/InfoCommand.java b/src/main/java/org/mvplugins/multiverse/core/commands/InfoCommand.java index 511e28737..b3136cef4 100644 --- a/src/main/java/org/mvplugins/multiverse/core/commands/InfoCommand.java +++ b/src/main/java/org/mvplugins/multiverse/core/commands/InfoCommand.java @@ -1,6 +1,6 @@ package org.mvplugins.multiverse.core.commands; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; import co.aikar.commands.InvalidCommandArgument; @@ -31,7 +31,6 @@ import org.mvplugins.multiverse.core.display.parsers.MapContentProvider; import org.mvplugins.multiverse.core.economy.MVEconomist; import org.mvplugins.multiverse.core.world.LoadedMultiverseWorld; -import org.mvplugins.multiverse.core.world.WorldManager; @Service @CommandAlias("mv") @@ -61,18 +60,15 @@ class InfoCommand extends MultiverseCommand { }) .build()); - private final WorldManager worldManager; private final LocationManipulation locationManipulation; private final MVEconomist economist; @Inject InfoCommand( @NotNull MVCommandManager commandManager, - @NotNull WorldManager worldManager, @NotNull LocationManipulation locationManipulation, @NotNull MVEconomist economist) { super(commandManager); - this.worldManager = worldManager; this.locationManipulation = locationManipulation; this.economist = economist; } @@ -82,7 +78,7 @@ class InfoCommand extends MultiverseCommand { @CommandCompletion("@mvworlds:scope=both") @Syntax("") @Description("{@@mv-core.info.description") - public void onImportCommand( + public void onInfoCommand( @NotNull MVCommandIssuer issuer, @@ -110,7 +106,7 @@ public void onImportCommand( } private Map getInfo(LoadedMultiverseWorld world) { - Map outMap = new HashMap<>(); + Map outMap = new LinkedHashMap<>(); outMap.put("World Name", world.getName()); outMap.put("World Alias", world.getAlias()); @@ -139,8 +135,8 @@ private String getTitle() { return "tmp"; } - private Map getAnimalMap(LoadedMultiverseWorld world) { - Map outMap = new HashMap<>(); + private Map getAnimalMap(LoadedMultiverseWorld world) { + Map outMap = new LinkedHashMap<>(); if (world.getSpawningAnimals()) { outMap.put("Spawning Animals", "ALL"); @@ -156,7 +152,7 @@ private Map getAnimalMap(LoadedMultiverseWorld world) { } private Map getMonsterMap(LoadedMultiverseWorld world) { - Map outMap = new HashMap<>(); + Map outMap = new LinkedHashMap<>(); if (world.getSpawningMonsters()) { outMap.put("Spawning Monsters", "ALL"); @@ -172,7 +168,7 @@ private Map getMonsterMap(LoadedMultiverseWorld world) { } private Map getPriceMap(LoadedMultiverseWorld world) { - Map outMap = new HashMap<>(); + Map outMap = new LinkedHashMap<>(); double price = world.getPrice(); if (price == 0) { From 61e3ffb7e5518ff7bf35dbff4708e2b4071f4b66 Mon Sep 17 00:00:00 2001 From: Ben Woo <30431861+benwoo1110@users.noreply.github.com> Date: Fri, 22 Sep 2023 17:20:13 +0800 Subject: [PATCH 4/5] Add null value formatting for MapContentProvider --- .../core/display/parsers/MapContentProvider.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/mvplugins/multiverse/core/display/parsers/MapContentProvider.java b/src/main/java/org/mvplugins/multiverse/core/display/parsers/MapContentProvider.java index c460405a9..28739cd05 100644 --- a/src/main/java/org/mvplugins/multiverse/core/display/parsers/MapContentProvider.java +++ b/src/main/java/org/mvplugins/multiverse/core/display/parsers/MapContentProvider.java @@ -2,9 +2,9 @@ import java.util.Collection; import java.util.Map; -import java.util.stream.Collectors; import co.aikar.commands.BukkitCommandIssuer; +import com.google.common.base.Strings; import org.bukkit.ChatColor; import org.jetbrains.annotations.NotNull; @@ -45,8 +45,15 @@ public static MapContentProvider forContent(Map map) { @Override public Collection parse(@NotNull BukkitCommandIssuer issuer) { return map.entrySet().stream() - .map(e -> String.format(format, keyColor, e.getKey(), separator, valueColor, e.getValue())) - .collect(Collectors.toList()); + .map(e -> String.format(format, keyColor, e.getKey(), separator, valueColor, formatValue(e.getValue()))) + .toList(); + } + + private String formatValue(V value) { + if (value instanceof String stringValue) { + return Strings.isNullOrEmpty(stringValue) ? "&7&onull" : stringValue; + } + return value == null ? "&7&onull" : String.valueOf(value); } /** From 3a6c52337faef7c7f62e2acfa1073601dc90558f Mon Sep 17 00:00:00 2001 From: Ben Woo <30431861+benwoo1110@users.noreply.github.com> Date: Fri, 22 Sep 2023 17:20:41 +0800 Subject: [PATCH 5/5] Add more properties to info command and refactor --- .../multiverse/core/commands/InfoCommand.java | 70 ++++++++----------- .../core/world/LoadedMultiverseWorld.java | 9 +++ 2 files changed, 39 insertions(+), 40 deletions(-) diff --git a/src/main/java/org/mvplugins/multiverse/core/commands/InfoCommand.java b/src/main/java/org/mvplugins/multiverse/core/commands/InfoCommand.java index b3136cef4..60436e8d1 100644 --- a/src/main/java/org/mvplugins/multiverse/core/commands/InfoCommand.java +++ b/src/main/java/org/mvplugins/multiverse/core/commands/InfoCommand.java @@ -31,6 +31,7 @@ import org.mvplugins.multiverse.core.display.parsers.MapContentProvider; import org.mvplugins.multiverse.core.economy.MVEconomist; import org.mvplugins.multiverse.core.world.LoadedMultiverseWorld; +import org.mvplugins.multiverse.core.world.MultiverseWorld; @Service @CommandAlias("mv") @@ -73,14 +74,14 @@ class InfoCommand extends MultiverseCommand { this.economist = economist; } + // TODO: support info for unloaded worlds @Subcommand("info") @CommandPermission("multiverse.core.info") - @CommandCompletion("@mvworlds:scope=both") - @Syntax("") + @CommandCompletion("@mvworlds:scope=both|@flags:groupName=mvinfocommand @flags:groupName=mvinfocommand") + @Syntax("[world] [--page ] [--filter ]") @Description("{@@mv-core.info.description") public void onInfoCommand( - - @NotNull MVCommandIssuer issuer, + MVCommandIssuer issuer, @Flags("resolve=issuerAware") @Syntax("") @@ -98,46 +99,55 @@ public void onInfoCommand( .withKeyColor(ChatColor.AQUA) .withValueColor(ChatColor.WHITE)) .withSendHandler(PagedSendHandler.create() - .withHeader(getTitle()) + .withHeader(getTitle(world)) .doPagination(true) .withTargetPage(parsedFlags.flagValue(PAGE_FLAG, 1)) .withFilter(parsedFlags.flagValue(FILTER_FLAG, DefaultContentFilter.get()))) .send(issuer); } + private String getTitle(MultiverseWorld world) { + return "&a&l---- World Info: &f&l%s&a&l ----".formatted(world.getName()); + } + private Map getInfo(LoadedMultiverseWorld world) { Map outMap = new LinkedHashMap<>(); outMap.put("World Name", world.getName()); outMap.put("World Alias", world.getAlias()); - outMap.put("Gamemode: ", world.getGameMode().toString()); - outMap.put("Difficulty: ", world.getDifficulty().toString()); + outMap.put("World UID", world.getUID().toString()); + outMap.put("Game Mode: ", world.getGameMode().toString()); + outMap.put("Difficulty", world.getDifficulty().toString()); outMap.put("Spawn Location", locationManipulation.strCoords(world.getSpawnLocation())); - outMap.put("World Scale", String.valueOf(world.getScale())); outMap.put("Seed", String.valueOf(world.getSeed())); - outMap.putAll(getPriceMap(world)); // Entry fee/reward + getEntryFeeInfo(outMap, world); // Entry fee/reward outMap.put("Respawn World", world.getRespawnWorldName()); outMap.put("World Type", world.getWorldType().get().toString()); outMap.put("Generator", world.getGenerator()); - outMap.put("Structures Generate", world.canGenerateStructures().get().toString()); + outMap.put("Generate Structures", world.canGenerateStructures().get().toString()); + outMap.put("World Scale", String.valueOf(world.getScale())); outMap.put("Weather Enabled", String.valueOf(world.getAllowWeather())); outMap.put("Hunger Depletes", String.valueOf(world.getHunger())); outMap.put("Keep Spawn In Memory", String.valueOf(world.getKeepSpawnInMemory())); - outMap.put("Multiverse PVP enabled", String.valueOf(world.getPvp())); - outMap.put("Bukkit PVP enabled", String.valueOf(world.getBukkitWorld().get().getPVP())); - outMap.putAll(getMonsterMap(world)); // Monsters that can spawn - outMap.putAll(getAnimalMap(world)); // Animals that can spawn + outMap.put("PVP Enabled", String.valueOf(world.getPvp())); + getAnimalSpawningInfo(outMap, world); // Animals that can spawn + getMonsterSpawningInfo(outMap, world); // Monsters that can spawn return outMap; } - private String getTitle() { - return "tmp"; + private void getEntryFeeInfo(Map outMap, LoadedMultiverseWorld world) { + double price = world.getPrice(); + if (price == 0) { + outMap.put("Entry Fee", "FREE!"); + } else if (price > 0) { + outMap.put("Entry Fee", economist.formatPrice(-price, world.getCurrency())); + } else if (price < 0) { + outMap.put("Entry Reward", economist.formatPrice(price, world.getCurrency())); + } } - private Map getAnimalMap(LoadedMultiverseWorld world) { - Map outMap = new LinkedHashMap<>(); - + private void getAnimalSpawningInfo(Map outMap, LoadedMultiverseWorld world) { if (world.getSpawningAnimals()) { outMap.put("Spawning Animals", "ALL"); } else { @@ -147,13 +157,9 @@ private Map getAnimalMap(LoadedMultiverseWorld world) { outMap.put("Spawning Animals", "NONE"); } } - - return outMap; } - private Map getMonsterMap(LoadedMultiverseWorld world) { - Map outMap = new LinkedHashMap<>(); - + private void getMonsterSpawningInfo(Map outMap, LoadedMultiverseWorld world) { if (world.getSpawningMonsters()) { outMap.put("Spawning Monsters", "ALL"); } else { @@ -163,21 +169,5 @@ private Map getMonsterMap(LoadedMultiverseWorld world) { outMap.put("Spawning Monsters", "NONE"); } } - - return outMap; - } - - private Map getPriceMap(LoadedMultiverseWorld world) { - Map outMap = new LinkedHashMap<>(); - double price = world.getPrice(); - - if (price == 0) { - outMap.put("Entry Fee", "FREE"); - } else if (price > 0) { - outMap.put("Entry Fee", economist.formatPrice(-price, world.getCurrency())); - } else if (price < 0) { - outMap.put("Entry Reward", economist.formatPrice(price, world.getCurrency())); - } - return outMap; } } diff --git a/src/main/java/org/mvplugins/multiverse/core/world/LoadedMultiverseWorld.java b/src/main/java/org/mvplugins/multiverse/core/world/LoadedMultiverseWorld.java index 1e86205ea..45073ced2 100644 --- a/src/main/java/org/mvplugins/multiverse/core/world/LoadedMultiverseWorld.java +++ b/src/main/java/org/mvplugins/multiverse/core/world/LoadedMultiverseWorld.java @@ -107,6 +107,15 @@ private Location readSpawnFromWorld(World world) { return location; } + /** + * Gets the Unique ID of this world. + * + * @return Unique ID of this world. + */ + public UUID getUID() { + return worldUid; + } + /** * Gets the Bukkit world object that this world describes. *