From 6d8b65ed1454edb12665d8f8a8aebf7b3b3d056f Mon Sep 17 00:00:00 2001 From: benwoo1110 <30431861+benwoo1110@users.noreply.github.com> Date: Thu, 31 Dec 2020 10:03:52 +0800 Subject: [PATCH 1/2] Add hasCustomWorldString method to MVWorld. --- .../onarandombox/MultiverseCore/MVWorld.java | 33 ++++++++++++++++--- .../MultiverseCore/api/MultiverseWorld.java | 7 ++++ 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/onarandombox/MultiverseCore/MVWorld.java b/src/main/java/com/onarandombox/MultiverseCore/MVWorld.java index d8f64e972..700ed4c94 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/MVWorld.java +++ b/src/main/java/com/onarandombox/MultiverseCore/MVWorld.java @@ -28,7 +28,6 @@ import org.bukkit.World; import org.bukkit.World.Environment; import org.bukkit.WorldType; -import org.bukkit.command.CommandSender; import org.bukkit.configuration.serialization.SerializableAs; import org.bukkit.entity.Player; import org.bukkit.permissions.Permission; @@ -516,22 +515,46 @@ public World getCBWorld() { */ @Override public String getColoredWorldString() { - if (props.getAlias().length() == 0) { + if (!hasCustomAlias()) { props.setAlias(this.getName()); } - if ((props.getColor() == null) || (props.getColor().getColor() == null)) { + if (!hasCustomColor()) { this.props.setColor(EnglishChatColor.WHITE); } StringBuilder nameBuilder = new StringBuilder().append(props.getColor().getColor()); - if (props.getStyle().getColor() != null) + if (hasCustomStyle()) { nameBuilder.append(props.getStyle().getColor()); - nameBuilder.append(props.getAlias()).append(ChatColor.WHITE).toString(); + } + nameBuilder.append(props.getAlias()).append(ChatColor.WHITE); return nameBuilder.toString(); } + /** + * {@inheritDoc} + */ + @Override + public boolean hasCustomWorldString() { + return hasCustomAlias() || hasCustomColor() || hasCustomStyle(); + } + + private boolean hasCustomAlias() { + return !(props.getAlias() == null + || props.getAlias().isEmpty() + || name.equals(props.getAlias())); + } + + private boolean hasCustomColor() { + return props.getColor() != null + && props.getColor().getColor() != ChatColor.WHITE; + } + + private boolean hasCustomStyle() { + return props.getStyle().getColor() != null; + } + /** * {@inheritDoc} * diff --git a/src/main/java/com/onarandombox/MultiverseCore/api/MultiverseWorld.java b/src/main/java/com/onarandombox/MultiverseCore/api/MultiverseWorld.java index 07ba347f3..c73f47d90 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/api/MultiverseWorld.java +++ b/src/main/java/com/onarandombox/MultiverseCore/api/MultiverseWorld.java @@ -236,6 +236,13 @@ public interface MultiverseWorld { */ String getAlias(); + /** + * Check whether this world has an custom world string set. + * + * @return true if there is either custom color, style or alias set, false otherwise. + */ + boolean hasCustomWorldString(); + /** * Sets the alias of the world. * From 45bfa8fc10d2ef503755feb3a753299dfe512242 Mon Sep 17 00:00:00 2001 From: benwoo1110 <30431861+benwoo1110@users.noreply.github.com> Date: Thu, 31 Dec 2020 10:04:31 +0800 Subject: [PATCH 2/2] Set mvlist to show actual worldname beside alias. --- .../MultiverseCore/commands/ListCommand.java | 33 ++++++++++++++----- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/onarandombox/MultiverseCore/commands/ListCommand.java b/src/main/java/com/onarandombox/MultiverseCore/commands/ListCommand.java index d702bf93e..b83c5dd20 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/commands/ListCommand.java +++ b/src/main/java/com/onarandombox/MultiverseCore/commands/ListCommand.java @@ -52,23 +52,38 @@ private List getFancyWorldList(Player p) { } else if (env == Environment.THE_END) { color = ChatColor.AQUA; } + StringBuilder builder = new StringBuilder(); - builder.append(world.getColoredWorldString()).append(ChatColor.WHITE); - builder.append(" - ").append(color).append(world.getEnvironment()); - if (world.isHidden()) { - if (p == null || this.plugin.getMVPerms().hasPermission(p, "multiverse.core.modify", true)) { - // Prefix hidden worlds with an "[H]" - worldList.add(ChatColor.GRAY + "[H]" + builder.toString()); - } - } else { - worldList.add(builder.toString()); + + if (world.isHidden() && (p == null || this.plugin.getMVPerms().hasPermission(p, "multiverse.core.modify", true))) { + // Prefix hidden worlds with an "[H]" + builder.append(ChatColor.GRAY) + .append("[H] ") + .append(ChatColor.WHITE); + } + + builder.append(world.getName()); + + if (world.hasCustomWorldString()) { + builder.append(" (") + .append(world.getColoredWorldString()) + .append(')'); } + + builder.append(ChatColor.GRAY) + .append(" - ") + .append(color) + .append(world.getEnvironment()); + + worldList.add(builder.toString()); } + for (String name : this.plugin.getMVWorldManager().getUnloadedWorlds()) { if (p == null || this.plugin.getMVPerms().hasPermission(p, "multiverse.access." + name, true)) { worldList.add(ChatColor.GRAY + name + " - UNLOADED"); } } + return worldList; }