From d95977eb48d18477f4661a82485e76a8483d12f4 Mon Sep 17 00:00:00 2001 From: Jeremy Wood Date: Tue, 6 Jul 2021 14:36:06 -0400 Subject: [PATCH 01/10] Add @FunctionalInterface annotation to displaytools interfaces. --- .../com/onarandombox/MultiverseCore/displaytools/ColorTool.java | 1 + .../onarandombox/MultiverseCore/displaytools/DisplayHandler.java | 1 + .../onarandombox/MultiverseCore/displaytools/DisplaySetting.java | 1 + 3 files changed, 3 insertions(+) diff --git a/src/main/java/com/onarandombox/MultiverseCore/displaytools/ColorTool.java b/src/main/java/com/onarandombox/MultiverseCore/displaytools/ColorTool.java index 69db94cc..42ab445a 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/displaytools/ColorTool.java +++ b/src/main/java/com/onarandombox/MultiverseCore/displaytools/ColorTool.java @@ -5,6 +5,7 @@ import org.bukkit.ChatColor; /** * Tools to allow customisation. */ +@FunctionalInterface public interface ColorTool { /** diff --git a/src/main/java/com/onarandombox/MultiverseCore/displaytools/DisplayHandler.java b/src/main/java/com/onarandombox/MultiverseCore/displaytools/DisplayHandler.java index 271e351c..49fb47e0 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/displaytools/DisplayHandler.java +++ b/src/main/java/com/onarandombox/MultiverseCore/displaytools/DisplayHandler.java @@ -11,6 +11,7 @@ import java.util.Collection; * * @param Type of content to display. */ +@FunctionalInterface public interface DisplayHandler { /** diff --git a/src/main/java/com/onarandombox/MultiverseCore/displaytools/DisplaySetting.java b/src/main/java/com/onarandombox/MultiverseCore/displaytools/DisplaySetting.java index ff9a5e15..11f31b40 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/displaytools/DisplaySetting.java +++ b/src/main/java/com/onarandombox/MultiverseCore/displaytools/DisplaySetting.java @@ -5,6 +5,7 @@ package com.onarandombox.MultiverseCore.displaytools; * * @param */ +@FunctionalInterface public interface DisplaySetting { /** From c01a45f13091e57532688c3e01685c454e6dcf91 Mon Sep 17 00:00:00 2001 From: Jeremy Wood Date: Tue, 6 Jul 2021 15:01:41 -0400 Subject: [PATCH 02/10] Use static factory method to create Builder with contents. --- .../commands/GamerulesCommand.java | 3 +- .../MultiverseCore/commands/ListCommand.java | 5 ++- .../displaytools/ContentDisplay.java | 34 ++++++++++--------- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/onarandombox/MultiverseCore/commands/GamerulesCommand.java b/src/main/java/com/onarandombox/MultiverseCore/commands/GamerulesCommand.java index 0f0c0801..390bfecc 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/commands/GamerulesCommand.java +++ b/src/main/java/com/onarandombox/MultiverseCore/commands/GamerulesCommand.java @@ -76,10 +76,9 @@ public class GamerulesCommand extends MultiverseCommand { } } - new ContentDisplay.Builder>() + ContentDisplay.forContent(getGameRuleMap(world)) .sender(sender) .header("=== Gamerules for %s%s%s ===", ChatColor.AQUA, world.getName(), ChatColor.WHITE) - .contents(getGameRuleMap(world)) .displayHandler(DisplayHandlers.INLINE_MAP) .colorTool(ColorAlternator.with(ChatColor.GREEN, ChatColor.GOLD)) .setting(DisplaySettings.OPERATOR, ": ") diff --git a/src/main/java/com/onarandombox/MultiverseCore/commands/ListCommand.java b/src/main/java/com/onarandombox/MultiverseCore/commands/ListCommand.java index deb7b549..619b8488 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/commands/ListCommand.java +++ b/src/main/java/com/onarandombox/MultiverseCore/commands/ListCommand.java @@ -68,10 +68,9 @@ public class ListCommand extends MultiverseCommand { } } - new ContentDisplay.Builder>() + ContentDisplay.forContent(getListContents(sender)) .sender(sender) .header("%s====[ Multiverse World List ]====", ChatColor.GOLD) - .contents(getListContents(sender)) .displayHandler(DisplayHandlers.PAGE_LIST) .colorTool(ColorAlternator.with(ChatColor.AQUA, ChatColor.GOLD)) .filter(filter) @@ -79,7 +78,7 @@ public class ListCommand extends MultiverseCommand { .display(); } - private List getListContents(@NotNull CommandSender sender) { + private Collection getListContents(@NotNull CommandSender sender) { Player player = (sender instanceof Player) ? (Player) sender : null; List worldList = this.plugin.getMVWorldManager().getMVWorlds().stream() diff --git a/src/main/java/com/onarandombox/MultiverseCore/displaytools/ContentDisplay.java b/src/main/java/com/onarandombox/MultiverseCore/displaytools/ContentDisplay.java index 027340f0..fc22aeea 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/displaytools/ContentDisplay.java +++ b/src/main/java/com/onarandombox/MultiverseCore/displaytools/ContentDisplay.java @@ -19,16 +19,30 @@ public class ContentDisplay { public static final String LINE_BREAK = "%br%"; + /** + * Creates a ContentDisplay.Builder for the given content. + * + * @param content The content to be displayed. + * @param The type of the content which can be inferred. + * @return A new Builder. + */ + public static Builder forContent(U content) { + return new Builder<>(content); + } + + private final T contents; + private CommandSender sender; private String header; - private T contents; private String emptyMessage = "No matching content to display."; private DisplayHandler displayHandler; private ColorTool colorTool = ColorTool.DEFAULT; private ContentFilter filter = ContentFilter.DEFAULT; private final Map, Object> settingsMap = new WeakHashMap<>(); - private ContentDisplay() { } + private ContentDisplay(T contents) { + this.contents = contents; + } /** * Do the actual displaying of contents to the sender. @@ -138,8 +152,8 @@ public class ContentDisplay { private final ContentDisplay display; - public Builder() { - this.display = new ContentDisplay<>(); + private Builder(T content) { + this.display = new ContentDisplay<>(content); } /** @@ -167,18 +181,6 @@ public class ContentDisplay { return this; } - /** - * Sets content to be displayed. - * - * @param contents The contents. - * @return The builder. - */ - @NotNull - public Builder contents(@Nullable T contents) { - this.display.contents = contents; - return this; - } - /** * Sets the message to show when no content is available for display. * From c21bc458223eac2bfc221ac6b8e1d84265262cfa Mon Sep 17 00:00:00 2001 From: Jeremy Wood Date: Tue, 6 Jul 2021 15:35:38 -0400 Subject: [PATCH 03/10] Use T for generic type since it's static method. --- .../MultiverseCore/displaytools/ContentDisplay.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/onarandombox/MultiverseCore/displaytools/ContentDisplay.java b/src/main/java/com/onarandombox/MultiverseCore/displaytools/ContentDisplay.java index fc22aeea..4fdd81ad 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/displaytools/ContentDisplay.java +++ b/src/main/java/com/onarandombox/MultiverseCore/displaytools/ContentDisplay.java @@ -23,10 +23,10 @@ public class ContentDisplay { * Creates a ContentDisplay.Builder for the given content. * * @param content The content to be displayed. - * @param The type of the content which can be inferred. + * @param The type of the content which can be inferred. * @return A new Builder. */ - public static Builder forContent(U content) { + public static Builder forContent(T content) { return new Builder<>(content); } From b88623df684361edf15a3f18b812c7e15a633c94 Mon Sep 17 00:00:00 2001 From: Jeremy Wood Date: Tue, 6 Jul 2021 15:36:21 -0400 Subject: [PATCH 04/10] Rename Builder#display to show and require CommandSender. --- .../MultiverseCore/commands/GamerulesCommand.java | 3 +-- .../onarandombox/MultiverseCore/commands/ListCommand.java | 3 +-- .../MultiverseCore/displaytools/ContentDisplay.java | 6 ++++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/onarandombox/MultiverseCore/commands/GamerulesCommand.java b/src/main/java/com/onarandombox/MultiverseCore/commands/GamerulesCommand.java index 390bfecc..d4f3ec5d 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/commands/GamerulesCommand.java +++ b/src/main/java/com/onarandombox/MultiverseCore/commands/GamerulesCommand.java @@ -77,12 +77,11 @@ public class GamerulesCommand extends MultiverseCommand { } ContentDisplay.forContent(getGameRuleMap(world)) - .sender(sender) .header("=== Gamerules for %s%s%s ===", ChatColor.AQUA, world.getName(), ChatColor.WHITE) .displayHandler(DisplayHandlers.INLINE_MAP) .colorTool(ColorAlternator.with(ChatColor.GREEN, ChatColor.GOLD)) .setting(DisplaySettings.OPERATOR, ": ") - .display(); + .show(sender); } private Map getGameRuleMap(World world) { diff --git a/src/main/java/com/onarandombox/MultiverseCore/commands/ListCommand.java b/src/main/java/com/onarandombox/MultiverseCore/commands/ListCommand.java index 619b8488..b4a9c7bb 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/commands/ListCommand.java +++ b/src/main/java/com/onarandombox/MultiverseCore/commands/ListCommand.java @@ -69,13 +69,12 @@ public class ListCommand extends MultiverseCommand { } ContentDisplay.forContent(getListContents(sender)) - .sender(sender) .header("%s====[ Multiverse World List ]====", ChatColor.GOLD) .displayHandler(DisplayHandlers.PAGE_LIST) .colorTool(ColorAlternator.with(ChatColor.AQUA, ChatColor.GOLD)) .filter(filter) .setting(DisplaySettings.SHOW_PAGE, page) - .display(); + .show(sender); } private Collection getListContents(@NotNull CommandSender sender) { diff --git a/src/main/java/com/onarandombox/MultiverseCore/displaytools/ContentDisplay.java b/src/main/java/com/onarandombox/MultiverseCore/displaytools/ContentDisplay.java index 4fdd81ad..8af15ad9 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/displaytools/ContentDisplay.java +++ b/src/main/java/com/onarandombox/MultiverseCore/displaytools/ContentDisplay.java @@ -9,6 +9,7 @@ import java.util.Collection; import java.util.Map; import java.util.Objects; import java.util.WeakHashMap; +import java.util.function.Consumer; /** * Helps to display contents such as list and maps in a nicely formatted fashion. @@ -257,9 +258,10 @@ public class ContentDisplay { } /** - * Build and send the contents to the sender. + * Build and show the content to the sender. */ - public void display() { + public void show(CommandSender sender) { + this.sender(sender); this.build().send(); } } From fd896210c53af2fc4c740d7a2188482d547345df Mon Sep 17 00:00:00 2001 From: Jeremy Wood Date: Tue, 6 Jul 2021 15:37:35 -0400 Subject: [PATCH 05/10] Rename package from displaytools to display. --- .../MultiverseCore/commands/GamerulesCommand.java | 10 ++++------ .../MultiverseCore/commands/ListCommand.java | 13 +++++-------- .../{displaytools => display}/ColorAlternator.java | 2 +- .../{displaytools => display}/ColorTool.java | 2 +- .../{displaytools => display}/ContentDisplay.java | 4 +--- .../{displaytools => display}/ContentFilter.java | 2 +- .../DisplayFormatException.java | 2 +- .../{displaytools => display}/DisplayHandler.java | 2 +- .../{displaytools => display}/DisplayHandlers.java | 2 +- .../{displaytools => display}/DisplaySetting.java | 2 +- .../{displaytools => display}/DisplaySettings.java | 2 +- 11 files changed, 18 insertions(+), 25 deletions(-) rename src/main/java/com/onarandombox/MultiverseCore/{displaytools => display}/ColorAlternator.java (96%) rename src/main/java/com/onarandombox/MultiverseCore/{displaytools => display}/ColorTool.java (87%) rename src/main/java/com/onarandombox/MultiverseCore/{displaytools => display}/ContentDisplay.java (98%) rename src/main/java/com/onarandombox/MultiverseCore/{displaytools => display}/ContentFilter.java (98%) rename src/main/java/com/onarandombox/MultiverseCore/{displaytools => display}/DisplayFormatException.java (92%) rename src/main/java/com/onarandombox/MultiverseCore/{displaytools => display}/DisplayHandler.java (97%) rename src/main/java/com/onarandombox/MultiverseCore/{displaytools => display}/DisplayHandlers.java (99%) rename src/main/java/com/onarandombox/MultiverseCore/{displaytools => display}/DisplaySetting.java (84%) rename src/main/java/com/onarandombox/MultiverseCore/{displaytools => display}/DisplaySettings.java (95%) diff --git a/src/main/java/com/onarandombox/MultiverseCore/commands/GamerulesCommand.java b/src/main/java/com/onarandombox/MultiverseCore/commands/GamerulesCommand.java index d4f3ec5d..9f19aa96 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/commands/GamerulesCommand.java +++ b/src/main/java/com/onarandombox/MultiverseCore/commands/GamerulesCommand.java @@ -8,11 +8,10 @@ package com.onarandombox.MultiverseCore.commands; import com.onarandombox.MultiverseCore.MultiverseCore; -import com.onarandombox.MultiverseCore.api.MultiverseWorld; -import com.onarandombox.MultiverseCore.displaytools.ColorAlternator; -import com.onarandombox.MultiverseCore.displaytools.ContentDisplay; -import com.onarandombox.MultiverseCore.displaytools.DisplayHandlers; -import com.onarandombox.MultiverseCore.displaytools.DisplaySettings; +import com.onarandombox.MultiverseCore.display.ColorAlternator; +import com.onarandombox.MultiverseCore.display.ContentDisplay; +import com.onarandombox.MultiverseCore.display.DisplayHandlers; +import com.onarandombox.MultiverseCore.display.DisplaySettings; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.GameRule; @@ -21,7 +20,6 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.permissions.PermissionDefault; -import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/src/main/java/com/onarandombox/MultiverseCore/commands/ListCommand.java b/src/main/java/com/onarandombox/MultiverseCore/commands/ListCommand.java index b4a9c7bb..3c321e43 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/commands/ListCommand.java +++ b/src/main/java/com/onarandombox/MultiverseCore/commands/ListCommand.java @@ -7,14 +7,13 @@ package com.onarandombox.MultiverseCore.commands; -import com.dumptruckman.minecraft.util.Logging; import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.api.MultiverseWorld; -import com.onarandombox.MultiverseCore.displaytools.ColorAlternator; -import com.onarandombox.MultiverseCore.displaytools.ContentDisplay; -import com.onarandombox.MultiverseCore.displaytools.ContentFilter; -import com.onarandombox.MultiverseCore.displaytools.DisplayHandlers; -import com.onarandombox.MultiverseCore.displaytools.DisplaySettings; +import com.onarandombox.MultiverseCore.display.ColorAlternator; +import com.onarandombox.MultiverseCore.display.ContentDisplay; +import com.onarandombox.MultiverseCore.display.ContentFilter; +import com.onarandombox.MultiverseCore.display.DisplayHandlers; +import com.onarandombox.MultiverseCore.display.DisplaySettings; import org.bukkit.ChatColor; import org.bukkit.World; import org.bukkit.command.CommandSender; @@ -22,9 +21,7 @@ import org.bukkit.entity.Player; import org.bukkit.permissions.PermissionDefault; import org.jetbrains.annotations.NotNull; -import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.stream.Collectors; diff --git a/src/main/java/com/onarandombox/MultiverseCore/displaytools/ColorAlternator.java b/src/main/java/com/onarandombox/MultiverseCore/display/ColorAlternator.java similarity index 96% rename from src/main/java/com/onarandombox/MultiverseCore/displaytools/ColorAlternator.java rename to src/main/java/com/onarandombox/MultiverseCore/display/ColorAlternator.java index a306ad1c..561394a9 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/displaytools/ColorAlternator.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/ColorAlternator.java @@ -1,4 +1,4 @@ -package com.onarandombox.MultiverseCore.displaytools; +package com.onarandombox.MultiverseCore.display; import org.bukkit.ChatColor; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/com/onarandombox/MultiverseCore/displaytools/ColorTool.java b/src/main/java/com/onarandombox/MultiverseCore/display/ColorTool.java similarity index 87% rename from src/main/java/com/onarandombox/MultiverseCore/displaytools/ColorTool.java rename to src/main/java/com/onarandombox/MultiverseCore/display/ColorTool.java index 42ab445a..1c4fae67 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/displaytools/ColorTool.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/ColorTool.java @@ -1,4 +1,4 @@ -package com.onarandombox.MultiverseCore.displaytools; +package com.onarandombox.MultiverseCore.display; import org.bukkit.ChatColor; diff --git a/src/main/java/com/onarandombox/MultiverseCore/displaytools/ContentDisplay.java b/src/main/java/com/onarandombox/MultiverseCore/display/ContentDisplay.java similarity index 98% rename from src/main/java/com/onarandombox/MultiverseCore/displaytools/ContentDisplay.java rename to src/main/java/com/onarandombox/MultiverseCore/display/ContentDisplay.java index 8af15ad9..a43463a1 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/displaytools/ContentDisplay.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/ContentDisplay.java @@ -1,15 +1,13 @@ -package com.onarandombox.MultiverseCore.displaytools; +package com.onarandombox.MultiverseCore.display; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.util.Collection; import java.util.Map; import java.util.Objects; import java.util.WeakHashMap; -import java.util.function.Consumer; /** * Helps to display contents such as list and maps in a nicely formatted fashion. diff --git a/src/main/java/com/onarandombox/MultiverseCore/displaytools/ContentFilter.java b/src/main/java/com/onarandombox/MultiverseCore/display/ContentFilter.java similarity index 98% rename from src/main/java/com/onarandombox/MultiverseCore/displaytools/ContentFilter.java rename to src/main/java/com/onarandombox/MultiverseCore/display/ContentFilter.java index d2f37dc5..cd0bed8c 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/displaytools/ContentFilter.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/ContentFilter.java @@ -1,4 +1,4 @@ -package com.onarandombox.MultiverseCore.displaytools; +package com.onarandombox.MultiverseCore.display; import com.dumptruckman.minecraft.util.Logging; import org.bukkit.ChatColor; diff --git a/src/main/java/com/onarandombox/MultiverseCore/displaytools/DisplayFormatException.java b/src/main/java/com/onarandombox/MultiverseCore/display/DisplayFormatException.java similarity index 92% rename from src/main/java/com/onarandombox/MultiverseCore/displaytools/DisplayFormatException.java rename to src/main/java/com/onarandombox/MultiverseCore/display/DisplayFormatException.java index 0f71e247..604d6acd 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/displaytools/DisplayFormatException.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/DisplayFormatException.java @@ -1,4 +1,4 @@ -package com.onarandombox.MultiverseCore.displaytools; +package com.onarandombox.MultiverseCore.display; /** * Thrown when an issue occur while formatting content. diff --git a/src/main/java/com/onarandombox/MultiverseCore/displaytools/DisplayHandler.java b/src/main/java/com/onarandombox/MultiverseCore/display/DisplayHandler.java similarity index 97% rename from src/main/java/com/onarandombox/MultiverseCore/displaytools/DisplayHandler.java rename to src/main/java/com/onarandombox/MultiverseCore/display/DisplayHandler.java index 49fb47e0..4704f25e 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/displaytools/DisplayHandler.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/DisplayHandler.java @@ -1,4 +1,4 @@ -package com.onarandombox.MultiverseCore.displaytools; +package com.onarandombox.MultiverseCore.display; import com.google.common.base.Strings; import org.bukkit.ChatColor; diff --git a/src/main/java/com/onarandombox/MultiverseCore/displaytools/DisplayHandlers.java b/src/main/java/com/onarandombox/MultiverseCore/display/DisplayHandlers.java similarity index 99% rename from src/main/java/com/onarandombox/MultiverseCore/displaytools/DisplayHandlers.java rename to src/main/java/com/onarandombox/MultiverseCore/display/DisplayHandlers.java index d7e18978..3bad091d 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/displaytools/DisplayHandlers.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/DisplayHandlers.java @@ -1,4 +1,4 @@ -package com.onarandombox.MultiverseCore.displaytools; +package com.onarandombox.MultiverseCore.display; import org.bukkit.ChatColor; import org.bukkit.command.ConsoleCommandSender; diff --git a/src/main/java/com/onarandombox/MultiverseCore/displaytools/DisplaySetting.java b/src/main/java/com/onarandombox/MultiverseCore/display/DisplaySetting.java similarity index 84% rename from src/main/java/com/onarandombox/MultiverseCore/displaytools/DisplaySetting.java rename to src/main/java/com/onarandombox/MultiverseCore/display/DisplaySetting.java index 11f31b40..6f79744e 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/displaytools/DisplaySetting.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/DisplaySetting.java @@ -1,4 +1,4 @@ -package com.onarandombox.MultiverseCore.displaytools; +package com.onarandombox.MultiverseCore.display; /** * Represents a setting option that can be used by {@link DisplayHandler}. diff --git a/src/main/java/com/onarandombox/MultiverseCore/displaytools/DisplaySettings.java b/src/main/java/com/onarandombox/MultiverseCore/display/DisplaySettings.java similarity index 95% rename from src/main/java/com/onarandombox/MultiverseCore/displaytools/DisplaySettings.java rename to src/main/java/com/onarandombox/MultiverseCore/display/DisplaySettings.java index 238de325..092b80a9 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/displaytools/DisplaySettings.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/DisplaySettings.java @@ -1,4 +1,4 @@ -package com.onarandombox.MultiverseCore.displaytools; +package com.onarandombox.MultiverseCore.display; import org.bukkit.ChatColor; From 44248b417851791eb9e9c3ba2c674f0e38319e7a Mon Sep 17 00:00:00 2001 From: Jeremy Wood Date: Tue, 6 Jul 2021 15:48:39 -0400 Subject: [PATCH 06/10] Move DisplayHandler impls into their own package. --- .../display/DisplayHandlers.java | 150 +----------------- .../handlers/InlineListDisplayHandler.java | 35 ++++ .../handlers/InlineMapDisplayHandler.java | 41 +++++ .../display/handlers/ListDisplayHandler.java | 20 +++ .../handlers/PagedListDisplayHandler.java | 103 ++++++++++++ 5 files changed, 207 insertions(+), 142 deletions(-) create mode 100644 src/main/java/com/onarandombox/MultiverseCore/display/handlers/InlineListDisplayHandler.java create mode 100644 src/main/java/com/onarandombox/MultiverseCore/display/handlers/InlineMapDisplayHandler.java create mode 100644 src/main/java/com/onarandombox/MultiverseCore/display/handlers/ListDisplayHandler.java create mode 100644 src/main/java/com/onarandombox/MultiverseCore/display/handlers/PagedListDisplayHandler.java diff --git a/src/main/java/com/onarandombox/MultiverseCore/display/DisplayHandlers.java b/src/main/java/com/onarandombox/MultiverseCore/display/DisplayHandlers.java index 3bad091d..4d613aff 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/display/DisplayHandlers.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/DisplayHandlers.java @@ -1,18 +1,13 @@ package com.onarandombox.MultiverseCore.display; -import org.bukkit.ChatColor; -import org.bukkit.command.ConsoleCommandSender; -import org.jetbrains.annotations.NotNull; +import com.onarandombox.MultiverseCore.display.handlers.InlineListDisplayHandler; +import com.onarandombox.MultiverseCore.display.handlers.InlineMapDisplayHandler; +import com.onarandombox.MultiverseCore.display.handlers.ListDisplayHandler; +import com.onarandombox.MultiverseCore.display.handlers.PagedListDisplayHandler; -import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.stream.Collectors; -import java.util.stream.IntStream; /** * Various implementations of {@link DisplayHandler}. @@ -24,10 +19,7 @@ public class DisplayHandlers { * * Supported settings: none. */ - public static final DisplayHandler> LIST = display -> display.getContents().stream() - .filter(display.getFilter()::checkMatch) - .map(s -> (ContentDisplay.LINE_BREAK.equals(s)) ? "" : display.getColorTool().get() + s) - .collect(Collectors.toList()); + public static final DisplayHandler> LIST = new ListDisplayHandler(); /** * List display with paging. @@ -35,145 +27,19 @@ public class DisplayHandlers { * Supported settings: {@link DisplaySettings#SHOW_PAGE}, {@link DisplaySettings#LINES_PER_PAGE}, * {@link DisplaySettings#PAGE_IN_CONSOLE}, {@link DisplaySettings#DO_END_PADDING}. */ - public static final DisplayHandler> PAGE_LIST = new DisplayHandler>() { - @Override - public Collection format(@NotNull ContentDisplay> display) throws DisplayFormatException { - if (dontNeedPaging(display)) { - return LIST.format(display); - } - - int pages = 1; - int currentLength = 0; - int targetPage = display.getSetting(DisplaySettings.SHOW_PAGE); - int linesPerPage = display.getSetting(DisplaySettings.LINES_PER_PAGE); - List content = new ArrayList<>(linesPerPage); - - // Calculate the paging. - for (String line : display.getContents()) { - if (!display.getFilter().checkMatch(line)) { - continue; - } - // When it's the next page. - boolean isLineBreak = ContentDisplay.LINE_BREAK.equals(line); - if (isLineBreak || ++currentLength > linesPerPage) { - pages++; - currentLength = 0; - if (isLineBreak) { - continue; - } - } - if (pages == targetPage) { - // Let first line be the header when no header is defined. - if (display.getHeader() == null) { - display.setHeader(line); - currentLength--; - continue; - } - content.add(display.getColorTool().get() + line); - } - } - - // Page out of range. - if (targetPage < 1 || targetPage > pages) { - if (pages == 1) { - throw new DisplayFormatException("There is only 1 page!"); - } - throw new DisplayFormatException("Please enter a page from 1 to " + pages + "."); - } - - // No content - if (content.size() == 0) { - content.add(display.getEmptyMessage()); - } - - // Add empty lines to make output length consistent. - if (display.getSetting(DisplaySettings.DO_END_PADDING)) { - IntStream.range(0, linesPerPage - content.size()).forEach(i -> content.add("")); - } - display.setSetting(DisplaySettings.TOTAL_PAGE, pages); - - return content; - } - - @Override - public void sendSubHeader(@NotNull ContentDisplay> display) { - if (dontNeedPaging(display)) { - LIST.sendSubHeader(display); - return; - } - - if (display.getFilter().hasFilter()) { - display.getSender().sendMessage(String.format("%s[ Page %s of %s, %s ]", - ChatColor.GRAY, - display.getSetting(DisplaySettings.SHOW_PAGE), - display.getSetting(DisplaySettings.TOTAL_PAGE), - display.getFilter().getFormattedString()) - ); - return; - } - display.getSender().sendMessage(String.format("%s[ Page %s of %s ]", - ChatColor.GRAY, - display.getSetting(DisplaySettings.SHOW_PAGE), - display.getSetting(DisplaySettings.TOTAL_PAGE)) - ); - } - - private boolean dontNeedPaging(ContentDisplay> display) { - return display.getSender() instanceof ConsoleCommandSender - && !display.getSetting(DisplaySettings.PAGE_IN_CONSOLE); - } - }; + public static final DisplayHandler> PAGE_LIST = new PagedListDisplayHandler(); /** * Display a list inline. * * Supported settings: {@link DisplaySettings#SEPARATOR}. */ - public static final DisplayHandler> INLINE_LIST = display -> { - StringBuilder builder = new StringBuilder(); - String separator = display.getSetting(DisplaySettings.SEPARATOR); - - for (Iterator iterator = display.getContents().iterator(); iterator.hasNext(); ) { - String content = iterator.next(); - if (!display.getFilter().checkMatch(content)) { - continue; - } - builder.append(display.getColorTool().get()).append(content); - if (iterator.hasNext()) { - builder.append(separator); - } - } - return (builder.length() == 0) - ? Collections.singletonList(display.getEmptyMessage()) - : Collections.singleton(builder.toString()); - }; + public static final DisplayHandler> INLINE_LIST = new InlineListDisplayHandler(); /** * Display key value pair inline. * * Supported settings: {@link DisplaySettings#SEPARATOR}, {@link DisplaySettings#OPERATOR}. */ - public static final DisplayHandler> INLINE_MAP = display -> { - StringBuilder builder = new StringBuilder(); - String separator = display.getSetting(DisplaySettings.SEPARATOR); - String operator = display.getSetting(DisplaySettings.OPERATOR); - - for (Iterator> iterator = display.getContents().entrySet().iterator(); iterator.hasNext(); ) { - Entry entry = iterator.next(); - if (!display.getFilter().checkMatch(entry.getKey()) && !display.getFilter().checkMatch(entry.getValue())) { - continue; - } - builder.append(display.getColorTool().get()) - .append(entry.getKey()) - .append(operator) - .append(display.getColorTool().get()) - .append(entry.getValue()); - if (iterator.hasNext()) { - builder.append(separator); - } - } - return (builder.length() == 0) - ? Collections.singletonList(display.getEmptyMessage()) - : Collections.singleton(builder.toString()); - }; + public static final DisplayHandler> INLINE_MAP = new InlineMapDisplayHandler(); } diff --git a/src/main/java/com/onarandombox/MultiverseCore/display/handlers/InlineListDisplayHandler.java b/src/main/java/com/onarandombox/MultiverseCore/display/handlers/InlineListDisplayHandler.java new file mode 100644 index 00000000..bcde176f --- /dev/null +++ b/src/main/java/com/onarandombox/MultiverseCore/display/handlers/InlineListDisplayHandler.java @@ -0,0 +1,35 @@ +package com.onarandombox.MultiverseCore.display.handlers; + +import com.onarandombox.MultiverseCore.display.ContentDisplay; +import com.onarandombox.MultiverseCore.display.DisplayFormatException; +import com.onarandombox.MultiverseCore.display.DisplayHandler; +import com.onarandombox.MultiverseCore.display.DisplaySettings; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; +import java.util.Collections; +import java.util.Iterator; + +public class InlineListDisplayHandler implements DisplayHandler> { + + @Override + public Collection format(@NotNull ContentDisplay> display) + throws DisplayFormatException { + StringBuilder builder = new StringBuilder(); + String separator = display.getSetting(DisplaySettings.SEPARATOR); + + for (Iterator iterator = display.getContents().iterator(); iterator.hasNext(); ) { + String content = iterator.next(); + if (!display.getFilter().checkMatch(content)) { + continue; + } + builder.append(display.getColorTool().get()).append(content); + if (iterator.hasNext()) { + builder.append(separator); + } + } + return (builder.length() == 0) + ? Collections.singletonList(display.getEmptyMessage()) + : Collections.singleton(builder.toString()); + } +} diff --git a/src/main/java/com/onarandombox/MultiverseCore/display/handlers/InlineMapDisplayHandler.java b/src/main/java/com/onarandombox/MultiverseCore/display/handlers/InlineMapDisplayHandler.java new file mode 100644 index 00000000..b292e465 --- /dev/null +++ b/src/main/java/com/onarandombox/MultiverseCore/display/handlers/InlineMapDisplayHandler.java @@ -0,0 +1,41 @@ +package com.onarandombox.MultiverseCore.display.handlers; + +import com.onarandombox.MultiverseCore.display.ContentDisplay; +import com.onarandombox.MultiverseCore.display.DisplayFormatException; +import com.onarandombox.MultiverseCore.display.DisplayHandler; +import com.onarandombox.MultiverseCore.display.DisplaySettings; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; +import java.util.Collections; +import java.util.Iterator; +import java.util.Map; + +public class InlineMapDisplayHandler implements DisplayHandler> { + + @Override + public Collection format(@NotNull ContentDisplay> display) + throws DisplayFormatException { + StringBuilder builder = new StringBuilder(); + String separator = display.getSetting(DisplaySettings.SEPARATOR); + String operator = display.getSetting(DisplaySettings.OPERATOR); + + for (Iterator> iterator = display.getContents().entrySet().iterator(); iterator.hasNext(); ) { + Map.Entry entry = iterator.next(); + if (!display.getFilter().checkMatch(entry.getKey()) && !display.getFilter().checkMatch(entry.getValue())) { + continue; + } + builder.append(display.getColorTool().get()) + .append(entry.getKey()) + .append(operator) + .append(display.getColorTool().get()) + .append(entry.getValue()); + if (iterator.hasNext()) { + builder.append(separator); + } + } + return (builder.length() == 0) + ? Collections.singletonList(display.getEmptyMessage()) + : Collections.singleton(builder.toString()); + } +} diff --git a/src/main/java/com/onarandombox/MultiverseCore/display/handlers/ListDisplayHandler.java b/src/main/java/com/onarandombox/MultiverseCore/display/handlers/ListDisplayHandler.java new file mode 100644 index 00000000..d1c00f00 --- /dev/null +++ b/src/main/java/com/onarandombox/MultiverseCore/display/handlers/ListDisplayHandler.java @@ -0,0 +1,20 @@ +package com.onarandombox.MultiverseCore.display.handlers; + +import com.onarandombox.MultiverseCore.display.ContentDisplay; +import com.onarandombox.MultiverseCore.display.DisplayFormatException; +import com.onarandombox.MultiverseCore.display.DisplayHandler; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; +import java.util.stream.Collectors; + +public class ListDisplayHandler implements DisplayHandler> { + + @Override + public Collection format(@NotNull ContentDisplay> display) throws DisplayFormatException { + return display.getContents().stream() + .filter(display.getFilter()::checkMatch) + .map(s -> (ContentDisplay.LINE_BREAK.equals(s)) ? "" : display.getColorTool().get() + s) + .collect(Collectors.toList()); + } +} diff --git a/src/main/java/com/onarandombox/MultiverseCore/display/handlers/PagedListDisplayHandler.java b/src/main/java/com/onarandombox/MultiverseCore/display/handlers/PagedListDisplayHandler.java new file mode 100644 index 00000000..8c89a2e0 --- /dev/null +++ b/src/main/java/com/onarandombox/MultiverseCore/display/handlers/PagedListDisplayHandler.java @@ -0,0 +1,103 @@ +package com.onarandombox.MultiverseCore.display.handlers; + +import com.onarandombox.MultiverseCore.display.ContentDisplay; +import com.onarandombox.MultiverseCore.display.DisplayFormatException; +import com.onarandombox.MultiverseCore.display.DisplaySettings; +import org.bukkit.ChatColor; +import org.bukkit.command.ConsoleCommandSender; +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.stream.IntStream; + +public class PagedListDisplayHandler extends ListDisplayHandler { + + @Override + public Collection format(@NotNull ContentDisplay> display) throws DisplayFormatException { + if (dontNeedPaging(display)) { + return super.format(display); + } + + int pages = 1; + int currentLength = 0; + int targetPage = display.getSetting(DisplaySettings.SHOW_PAGE); + int linesPerPage = display.getSetting(DisplaySettings.LINES_PER_PAGE); + List content = new ArrayList<>(linesPerPage); + + // Calculate the paging. + for (String line : display.getContents()) { + if (!display.getFilter().checkMatch(line)) { + continue; + } + // When it's the next page. + boolean isLineBreak = ContentDisplay.LINE_BREAK.equals(line); + if (isLineBreak || ++currentLength > linesPerPage) { + pages++; + currentLength = 0; + if (isLineBreak) { + continue; + } + } + if (pages == targetPage) { + // Let first line be the header when no header is defined. + if (display.getHeader() == null) { + display.setHeader(line); + currentLength--; + continue; + } + content.add(display.getColorTool().get() + line); + } + } + + // Page out of range. + if (targetPage < 1 || targetPage > pages) { + if (pages == 1) { + throw new DisplayFormatException("There is only 1 page!"); + } + throw new DisplayFormatException("Please enter a page from 1 to " + pages + "."); + } + + // No content + if (content.size() == 0) { + content.add(display.getEmptyMessage()); + } + + // Add empty lines to make output length consistent. + if (display.getSetting(DisplaySettings.DO_END_PADDING)) { + IntStream.range(0, linesPerPage - content.size()).forEach(i -> content.add("")); + } + display.setSetting(DisplaySettings.TOTAL_PAGE, pages); + + return content; + } + + @Override + public void sendSubHeader(@NotNull ContentDisplay> display) { + if (dontNeedPaging(display)) { + super.sendSubHeader(display); + return; + } + + if (display.getFilter().hasFilter()) { + display.getSender().sendMessage(String.format("%s[ Page %s of %s, %s ]", + ChatColor.GRAY, + display.getSetting(DisplaySettings.SHOW_PAGE), + display.getSetting(DisplaySettings.TOTAL_PAGE), + display.getFilter().getFormattedString()) + ); + return; + } + display.getSender().sendMessage(String.format("%s[ Page %s of %s ]", + ChatColor.GRAY, + display.getSetting(DisplaySettings.SHOW_PAGE), + display.getSetting(DisplaySettings.TOTAL_PAGE)) + ); + } + + private boolean dontNeedPaging(ContentDisplay> display) { + return display.getSender() instanceof ConsoleCommandSender + && !display.getSetting(DisplaySettings.PAGE_IN_CONSOLE); + } +} From d1ce8e57a0f5a423566fc51a40d18fad207a69a0 Mon Sep 17 00:00:00 2001 From: Jeremy Wood Date: Tue, 6 Jul 2021 15:54:49 -0400 Subject: [PATCH 07/10] Overload ContentDisplay#forContent with defaults for list and map. --- .../commands/GamerulesCommand.java | 1 - .../display/ContentDisplay.java | 21 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/onarandombox/MultiverseCore/commands/GamerulesCommand.java b/src/main/java/com/onarandombox/MultiverseCore/commands/GamerulesCommand.java index 9f19aa96..8c518fcc 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/commands/GamerulesCommand.java +++ b/src/main/java/com/onarandombox/MultiverseCore/commands/GamerulesCommand.java @@ -76,7 +76,6 @@ public class GamerulesCommand extends MultiverseCommand { ContentDisplay.forContent(getGameRuleMap(world)) .header("=== Gamerules for %s%s%s ===", ChatColor.AQUA, world.getName(), ChatColor.WHITE) - .displayHandler(DisplayHandlers.INLINE_MAP) .colorTool(ColorAlternator.with(ChatColor.GREEN, ChatColor.GOLD)) .setting(DisplaySettings.OPERATOR, ": ") .show(sender); diff --git a/src/main/java/com/onarandombox/MultiverseCore/display/ContentDisplay.java b/src/main/java/com/onarandombox/MultiverseCore/display/ContentDisplay.java index a43463a1..75c9dab0 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/display/ContentDisplay.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/ContentDisplay.java @@ -5,6 +5,7 @@ import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; import java.util.Collection; +import java.util.List; import java.util.Map; import java.util.Objects; import java.util.WeakHashMap; @@ -29,6 +30,26 @@ public class ContentDisplay { return new Builder<>(content); } + /** + * Creates a ContentDisplay.Builder for the given collection of content. + * + * @param content The content to be displayed. + * @return A new Builder. + */ + public static Builder> forContent(Collection content) { + return new Builder<>(content).displayHandler(DisplayHandlers.LIST); + } + + /** + * Creates a ContentDisplay.Builder for the given map of content. + * + * @param content The content to be displayed. + * @return A new Builder. + */ + public static Builder> forContent(Map content) { + return new Builder<>(content).displayHandler(DisplayHandlers.INLINE_MAP); + } + private final T contents; private CommandSender sender; From 3010cc958ea155bdfcec7a705d4393d4e343f6cb Mon Sep 17 00:00:00 2001 From: Jeremy Wood Date: Tue, 6 Jul 2021 20:51:23 -0400 Subject: [PATCH 08/10] Pass CommandSender to send command. This system is much more versatile when a single ContentDisplay instance can be used for multiple players. --- .../display/ContentDisplay.java | 41 +++++-------------- .../display/DisplayHandler.java | 36 +++++++++------- .../handlers/InlineListDisplayHandler.java | 3 +- .../handlers/InlineMapDisplayHandler.java | 4 +- .../display/handlers/ListDisplayHandler.java | 4 +- .../handlers/PagedListDisplayHandler.java | 22 +++++----- 6 files changed, 52 insertions(+), 58 deletions(-) diff --git a/src/main/java/com/onarandombox/MultiverseCore/display/ContentDisplay.java b/src/main/java/com/onarandombox/MultiverseCore/display/ContentDisplay.java index 75c9dab0..894f1d90 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/display/ContentDisplay.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/ContentDisplay.java @@ -52,7 +52,6 @@ public class ContentDisplay { private final T contents; - private CommandSender sender; private String header; private String emptyMessage = "No matching content to display."; private DisplayHandler displayHandler; @@ -66,26 +65,20 @@ public class ContentDisplay { /** * Do the actual displaying of contents to the sender. + * + * @param sender The CommandSender to show the display to. */ - public void send() { + public void send(@NotNull CommandSender sender) { Collection formattedContent; try { - formattedContent = (this.contents == null) ? null : this.displayHandler.format(this); + formattedContent = (this.contents == null) ? null : this.displayHandler.format(sender, this); } catch (DisplayFormatException e) { - this.sender.sendMessage(String.format("%sError: %s", ChatColor.RED, e.getMessage())); + sender.sendMessage(String.format("%sError: %s", ChatColor.RED, e.getMessage())); return; } - this.displayHandler.sendHeader(this); - this.displayHandler.sendSubHeader(this); - this.displayHandler.sendBody(this, formattedContent); - } - - /** - * @return Gets the target sender. - */ - @NotNull - public CommandSender getSender() { - return sender; + this.displayHandler.sendHeader(sender, this); + this.displayHandler.sendSubHeader(sender, this); + this.displayHandler.sendBody(sender, this, formattedContent); } /** @@ -176,18 +169,6 @@ public class ContentDisplay { this.display = new ContentDisplay<>(content); } - /** - * Sets target sender to display message to. Required. - * - * @param sender The target sender. - * @return The builder. - */ - @NotNull - public Builder sender(@NotNull CommandSender sender) { - this.display.sender = sender; - return this; - } - /** * Sets header to be displayed. * @@ -271,17 +252,17 @@ public class ContentDisplay { */ @NotNull public ContentDisplay build() { - Objects.requireNonNull(this.display.sender); Objects.requireNonNull(this.display.displayHandler); return this.display; } /** * Build and show the content to the sender. + * + * @param sender The CommandSender to show the display to. */ public void show(CommandSender sender) { - this.sender(sender); - this.build().send(); + this.build().send(sender); } } } diff --git a/src/main/java/com/onarandombox/MultiverseCore/display/DisplayHandler.java b/src/main/java/com/onarandombox/MultiverseCore/display/DisplayHandler.java index 4704f25e..7971a11f 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/display/DisplayHandler.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/DisplayHandler.java @@ -2,6 +2,7 @@ package com.onarandombox.MultiverseCore.display; import com.google.common.base.Strings; import org.bukkit.ChatColor; +import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; import java.util.Collection; @@ -15,48 +16,53 @@ import java.util.Collection; public interface DisplayHandler { /** - * Formats the raw content into a {@link Collection} for displaying to sender. + * Formats the raw content into a {@link Collection} for displaying to the given sender. * - * @param display The responsible {@link ContentDisplay}. + * @param sender The {@link CommandSender} who will the content will be displayed to. + * @param display The responsible {@link ContentDisplay}. * @return The formatted content. * @throws DisplayFormatException Issue occurred while formatting content. E.g. invalid page. */ - Collection format(@NotNull ContentDisplay display) throws DisplayFormatException; + Collection format(@NotNull CommandSender sender, @NotNull ContentDisplay display) + throws DisplayFormatException; /** * Sends the header. * - * @param display The responsible {@link ContentDisplay}. + * @param sender The {@link CommandSender} who will the header will be displayed to. + * @param display The responsible {@link ContentDisplay}. */ - default void sendHeader(@NotNull ContentDisplay display) { + default void sendHeader(@NotNull CommandSender sender, @NotNull ContentDisplay display) { if (!Strings.isNullOrEmpty(display.getHeader())) { - display.getSender().sendMessage(display.getHeader()); + sender.sendMessage(display.getHeader()); } } /** * Sends info such as filter and page. * - * @param display The responsible {@link ContentDisplay}. + * @param sender The {@link CommandSender} who will the sub header will be displayed to. + * @param display The responsible {@link ContentDisplay}. */ - default void sendSubHeader(@NotNull ContentDisplay display) { + default void sendSubHeader(@NotNull CommandSender sender, @NotNull ContentDisplay display) { if (display.getFilter().hasFilter()) { - display.getSender().sendMessage(String.format("%s[ %s ]", - ChatColor.GRAY, display.getFilter().getFormattedString())); + sender.sendMessage(String.format("%s[ %s ]", ChatColor.GRAY, display.getFilter().getFormattedString())); } } /** * Sends the content. * - * @param display The responsible {@link ContentDisplay}. - * @param formattedContent The content after being formatted by {@link #format(ContentDisplay)} + * @param sender The {@link CommandSender} who will the body will be displayed to. + * @param display The responsible {@link ContentDisplay}. + * @param formattedContent The content after being formatted by {@link #format(CommandSender, ContentDisplay)} */ - default void sendBody(@NotNull ContentDisplay display, Collection formattedContent) { + default void sendBody(@NotNull CommandSender sender, @NotNull ContentDisplay display, + Collection formattedContent) { if (formattedContent == null || formattedContent.size() == 0) { - display.getSender().sendMessage(display.getEmptyMessage()); + sender.sendMessage(display.getEmptyMessage()); return; } - display.getSender().sendMessage(formattedContent.toArray(new String[0])); + sender.sendMessage(formattedContent.toArray(new String[0])); } } diff --git a/src/main/java/com/onarandombox/MultiverseCore/display/handlers/InlineListDisplayHandler.java b/src/main/java/com/onarandombox/MultiverseCore/display/handlers/InlineListDisplayHandler.java index bcde176f..d25f1ef2 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/display/handlers/InlineListDisplayHandler.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/handlers/InlineListDisplayHandler.java @@ -4,6 +4,7 @@ import com.onarandombox.MultiverseCore.display.ContentDisplay; import com.onarandombox.MultiverseCore.display.DisplayFormatException; import com.onarandombox.MultiverseCore.display.DisplayHandler; import com.onarandombox.MultiverseCore.display.DisplaySettings; +import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; import java.util.Collection; @@ -13,7 +14,7 @@ import java.util.Iterator; public class InlineListDisplayHandler implements DisplayHandler> { @Override - public Collection format(@NotNull ContentDisplay> display) + public Collection format(@NotNull CommandSender sender, @NotNull ContentDisplay> display) throws DisplayFormatException { StringBuilder builder = new StringBuilder(); String separator = display.getSetting(DisplaySettings.SEPARATOR); diff --git a/src/main/java/com/onarandombox/MultiverseCore/display/handlers/InlineMapDisplayHandler.java b/src/main/java/com/onarandombox/MultiverseCore/display/handlers/InlineMapDisplayHandler.java index b292e465..8bab0600 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/display/handlers/InlineMapDisplayHandler.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/handlers/InlineMapDisplayHandler.java @@ -4,6 +4,7 @@ import com.onarandombox.MultiverseCore.display.ContentDisplay; import com.onarandombox.MultiverseCore.display.DisplayFormatException; import com.onarandombox.MultiverseCore.display.DisplayHandler; import com.onarandombox.MultiverseCore.display.DisplaySettings; +import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; import java.util.Collection; @@ -14,7 +15,8 @@ import java.util.Map; public class InlineMapDisplayHandler implements DisplayHandler> { @Override - public Collection format(@NotNull ContentDisplay> display) + public Collection format(@NotNull CommandSender sender, + @NotNull ContentDisplay> display) throws DisplayFormatException { StringBuilder builder = new StringBuilder(); String separator = display.getSetting(DisplaySettings.SEPARATOR); diff --git a/src/main/java/com/onarandombox/MultiverseCore/display/handlers/ListDisplayHandler.java b/src/main/java/com/onarandombox/MultiverseCore/display/handlers/ListDisplayHandler.java index d1c00f00..c2b0979f 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/display/handlers/ListDisplayHandler.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/handlers/ListDisplayHandler.java @@ -3,6 +3,7 @@ package com.onarandombox.MultiverseCore.display.handlers; import com.onarandombox.MultiverseCore.display.ContentDisplay; import com.onarandombox.MultiverseCore.display.DisplayFormatException; import com.onarandombox.MultiverseCore.display.DisplayHandler; +import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; import java.util.Collection; @@ -11,7 +12,8 @@ import java.util.stream.Collectors; public class ListDisplayHandler implements DisplayHandler> { @Override - public Collection format(@NotNull ContentDisplay> display) throws DisplayFormatException { + public Collection format(@NotNull CommandSender sender, @NotNull ContentDisplay> display) + throws DisplayFormatException { return display.getContents().stream() .filter(display.getFilter()::checkMatch) .map(s -> (ContentDisplay.LINE_BREAK.equals(s)) ? "" : display.getColorTool().get() + s) diff --git a/src/main/java/com/onarandombox/MultiverseCore/display/handlers/PagedListDisplayHandler.java b/src/main/java/com/onarandombox/MultiverseCore/display/handlers/PagedListDisplayHandler.java index 8c89a2e0..328d3610 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/display/handlers/PagedListDisplayHandler.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/handlers/PagedListDisplayHandler.java @@ -4,6 +4,7 @@ import com.onarandombox.MultiverseCore.display.ContentDisplay; import com.onarandombox.MultiverseCore.display.DisplayFormatException; import com.onarandombox.MultiverseCore.display.DisplaySettings; import org.bukkit.ChatColor; +import org.bukkit.command.CommandSender; import org.bukkit.command.ConsoleCommandSender; import org.jetbrains.annotations.NotNull; @@ -15,9 +16,10 @@ import java.util.stream.IntStream; public class PagedListDisplayHandler extends ListDisplayHandler { @Override - public Collection format(@NotNull ContentDisplay> display) throws DisplayFormatException { - if (dontNeedPaging(display)) { - return super.format(display); + public Collection format(@NotNull CommandSender sender, @NotNull ContentDisplay> display) + throws DisplayFormatException { + if (dontNeedPaging(sender, display)) { + return super.format(sender, display); } int pages = 1; @@ -74,14 +76,14 @@ public class PagedListDisplayHandler extends ListDisplayHandler { } @Override - public void sendSubHeader(@NotNull ContentDisplay> display) { - if (dontNeedPaging(display)) { - super.sendSubHeader(display); + public void sendSubHeader(@NotNull CommandSender sender, @NotNull ContentDisplay> display) { + if (dontNeedPaging(sender, display)) { + super.sendSubHeader(sender, display); return; } if (display.getFilter().hasFilter()) { - display.getSender().sendMessage(String.format("%s[ Page %s of %s, %s ]", + sender.sendMessage(String.format("%s[ Page %s of %s, %s ]", ChatColor.GRAY, display.getSetting(DisplaySettings.SHOW_PAGE), display.getSetting(DisplaySettings.TOTAL_PAGE), @@ -89,15 +91,15 @@ public class PagedListDisplayHandler extends ListDisplayHandler { ); return; } - display.getSender().sendMessage(String.format("%s[ Page %s of %s ]", + sender.sendMessage(String.format("%s[ Page %s of %s ]", ChatColor.GRAY, display.getSetting(DisplaySettings.SHOW_PAGE), display.getSetting(DisplaySettings.TOTAL_PAGE)) ); } - private boolean dontNeedPaging(ContentDisplay> display) { - return display.getSender() instanceof ConsoleCommandSender + private boolean dontNeedPaging(CommandSender sender, ContentDisplay> display) { + return sender instanceof ConsoleCommandSender && !display.getSetting(DisplaySettings.PAGE_IN_CONSOLE); } } From ee95aa8462eb7b3fa66ce9103643203b40bba14b Mon Sep 17 00:00:00 2001 From: Jeremy Wood Date: Tue, 6 Jul 2021 21:13:42 -0400 Subject: [PATCH 09/10] Rename ContentDisplay#send to #show. --- .../onarandombox/MultiverseCore/display/ContentDisplay.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/onarandombox/MultiverseCore/display/ContentDisplay.java b/src/main/java/com/onarandombox/MultiverseCore/display/ContentDisplay.java index 894f1d90..95a78263 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/display/ContentDisplay.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/ContentDisplay.java @@ -5,7 +5,6 @@ import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; import java.util.Collection; -import java.util.List; import java.util.Map; import java.util.Objects; import java.util.WeakHashMap; @@ -68,7 +67,7 @@ public class ContentDisplay { * * @param sender The CommandSender to show the display to. */ - public void send(@NotNull CommandSender sender) { + public void show(@NotNull CommandSender sender) { Collection formattedContent; try { formattedContent = (this.contents == null) ? null : this.displayHandler.format(sender, this); @@ -262,7 +261,7 @@ public class ContentDisplay { * @param sender The CommandSender to show the display to. */ public void show(CommandSender sender) { - this.build().send(sender); + this.build().show(sender); } } } From 62705f4d364166c2553a85e4d29e90310a27779c Mon Sep 17 00:00:00 2001 From: Jeremy Wood Date: Tue, 6 Jul 2021 22:19:19 -0400 Subject: [PATCH 10/10] Split DisplaySettings into separate classes. --- .../commands/GamerulesCommand.java | 5 ++--- .../MultiverseCore/commands/ListCommand.java | 4 ++-- .../display/ContentDisplay.java | 1 + .../display/DisplayHandlers.java | 12 ++++++----- .../handlers/InlineListDisplayHandler.java | 4 ++-- .../handlers/InlineMapDisplayHandler.java | 7 ++++--- .../handlers/PagedListDisplayHandler.java | 20 +++++++++---------- .../{ => settings}/DisplaySetting.java | 4 +++- .../settings/InlineDisplaySettings.java | 15 ++++++++++++++ .../display/settings/MapDisplaySettings.java | 15 ++++++++++++++ .../PagedDisplaySettings.java} | 18 ++--------------- 11 files changed, 63 insertions(+), 42 deletions(-) rename src/main/java/com/onarandombox/MultiverseCore/display/{ => settings}/DisplaySetting.java (71%) create mode 100644 src/main/java/com/onarandombox/MultiverseCore/display/settings/InlineDisplaySettings.java create mode 100644 src/main/java/com/onarandombox/MultiverseCore/display/settings/MapDisplaySettings.java rename src/main/java/com/onarandombox/MultiverseCore/display/{DisplaySettings.java => settings/PagedDisplaySettings.java} (58%) diff --git a/src/main/java/com/onarandombox/MultiverseCore/commands/GamerulesCommand.java b/src/main/java/com/onarandombox/MultiverseCore/commands/GamerulesCommand.java index 8c518fcc..448b5c13 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/commands/GamerulesCommand.java +++ b/src/main/java/com/onarandombox/MultiverseCore/commands/GamerulesCommand.java @@ -10,8 +10,7 @@ package com.onarandombox.MultiverseCore.commands; import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.display.ColorAlternator; import com.onarandombox.MultiverseCore.display.ContentDisplay; -import com.onarandombox.MultiverseCore.display.DisplayHandlers; -import com.onarandombox.MultiverseCore.display.DisplaySettings; +import com.onarandombox.MultiverseCore.display.settings.MapDisplaySettings; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.GameRule; @@ -77,7 +76,7 @@ public class GamerulesCommand extends MultiverseCommand { ContentDisplay.forContent(getGameRuleMap(world)) .header("=== Gamerules for %s%s%s ===", ChatColor.AQUA, world.getName(), ChatColor.WHITE) .colorTool(ColorAlternator.with(ChatColor.GREEN, ChatColor.GOLD)) - .setting(DisplaySettings.OPERATOR, ": ") + .setting(MapDisplaySettings.OPERATOR, ": ") .show(sender); } diff --git a/src/main/java/com/onarandombox/MultiverseCore/commands/ListCommand.java b/src/main/java/com/onarandombox/MultiverseCore/commands/ListCommand.java index 3c321e43..db8ee1a4 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/commands/ListCommand.java +++ b/src/main/java/com/onarandombox/MultiverseCore/commands/ListCommand.java @@ -13,7 +13,7 @@ import com.onarandombox.MultiverseCore.display.ColorAlternator; import com.onarandombox.MultiverseCore.display.ContentDisplay; import com.onarandombox.MultiverseCore.display.ContentFilter; import com.onarandombox.MultiverseCore.display.DisplayHandlers; -import com.onarandombox.MultiverseCore.display.DisplaySettings; +import com.onarandombox.MultiverseCore.display.settings.PagedDisplaySettings; import org.bukkit.ChatColor; import org.bukkit.World; import org.bukkit.command.CommandSender; @@ -70,7 +70,7 @@ public class ListCommand extends MultiverseCommand { .displayHandler(DisplayHandlers.PAGE_LIST) .colorTool(ColorAlternator.with(ChatColor.AQUA, ChatColor.GOLD)) .filter(filter) - .setting(DisplaySettings.SHOW_PAGE, page) + .setting(PagedDisplaySettings.SHOW_PAGE, page) .show(sender); } diff --git a/src/main/java/com/onarandombox/MultiverseCore/display/ContentDisplay.java b/src/main/java/com/onarandombox/MultiverseCore/display/ContentDisplay.java index 95a78263..c5d9e39c 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/display/ContentDisplay.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/ContentDisplay.java @@ -1,5 +1,6 @@ package com.onarandombox.MultiverseCore.display; +import com.onarandombox.MultiverseCore.display.settings.DisplaySetting; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/com/onarandombox/MultiverseCore/display/DisplayHandlers.java b/src/main/java/com/onarandombox/MultiverseCore/display/DisplayHandlers.java index 4d613aff..7343c6ad 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/display/DisplayHandlers.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/DisplayHandlers.java @@ -4,10 +4,12 @@ import com.onarandombox.MultiverseCore.display.handlers.InlineListDisplayHandler import com.onarandombox.MultiverseCore.display.handlers.InlineMapDisplayHandler; import com.onarandombox.MultiverseCore.display.handlers.ListDisplayHandler; import com.onarandombox.MultiverseCore.display.handlers.PagedListDisplayHandler; +import com.onarandombox.MultiverseCore.display.settings.InlineDisplaySettings; +import com.onarandombox.MultiverseCore.display.settings.PagedDisplaySettings; +import com.onarandombox.MultiverseCore.display.settings.MapDisplaySettings; import java.util.Collection; import java.util.Map; -import java.util.stream.Collectors; /** * Various implementations of {@link DisplayHandler}. @@ -24,22 +26,22 @@ public class DisplayHandlers { /** * List display with paging. * - * Supported settings: {@link DisplaySettings#SHOW_PAGE}, {@link DisplaySettings#LINES_PER_PAGE}, - * {@link DisplaySettings#PAGE_IN_CONSOLE}, {@link DisplaySettings#DO_END_PADDING}. + * Supported settings: {@link PagedDisplaySettings#SHOW_PAGE}, {@link PagedDisplaySettings#LINES_PER_PAGE}, + * {@link PagedDisplaySettings#PAGE_IN_CONSOLE}, {@link PagedDisplaySettings#DO_END_PADDING}. */ public static final DisplayHandler> PAGE_LIST = new PagedListDisplayHandler(); /** * Display a list inline. * - * Supported settings: {@link DisplaySettings#SEPARATOR}. + * Supported settings: {@link InlineDisplaySettings#SEPARATOR}. */ public static final DisplayHandler> INLINE_LIST = new InlineListDisplayHandler(); /** * Display key value pair inline. * - * Supported settings: {@link DisplaySettings#SEPARATOR}, {@link DisplaySettings#OPERATOR}. + * Supported settings: {@link InlineDisplaySettings#SEPARATOR}, {@link MapDisplaySettings#OPERATOR}. */ public static final DisplayHandler> INLINE_MAP = new InlineMapDisplayHandler(); } diff --git a/src/main/java/com/onarandombox/MultiverseCore/display/handlers/InlineListDisplayHandler.java b/src/main/java/com/onarandombox/MultiverseCore/display/handlers/InlineListDisplayHandler.java index d25f1ef2..53aa196b 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/display/handlers/InlineListDisplayHandler.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/handlers/InlineListDisplayHandler.java @@ -3,7 +3,7 @@ package com.onarandombox.MultiverseCore.display.handlers; import com.onarandombox.MultiverseCore.display.ContentDisplay; import com.onarandombox.MultiverseCore.display.DisplayFormatException; import com.onarandombox.MultiverseCore.display.DisplayHandler; -import com.onarandombox.MultiverseCore.display.DisplaySettings; +import com.onarandombox.MultiverseCore.display.settings.InlineDisplaySettings; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; @@ -17,7 +17,7 @@ public class InlineListDisplayHandler implements DisplayHandler format(@NotNull CommandSender sender, @NotNull ContentDisplay> display) throws DisplayFormatException { StringBuilder builder = new StringBuilder(); - String separator = display.getSetting(DisplaySettings.SEPARATOR); + String separator = display.getSetting(InlineDisplaySettings.SEPARATOR); for (Iterator iterator = display.getContents().iterator(); iterator.hasNext(); ) { String content = iterator.next(); diff --git a/src/main/java/com/onarandombox/MultiverseCore/display/handlers/InlineMapDisplayHandler.java b/src/main/java/com/onarandombox/MultiverseCore/display/handlers/InlineMapDisplayHandler.java index 8bab0600..312ccb86 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/display/handlers/InlineMapDisplayHandler.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/handlers/InlineMapDisplayHandler.java @@ -3,7 +3,8 @@ package com.onarandombox.MultiverseCore.display.handlers; import com.onarandombox.MultiverseCore.display.ContentDisplay; import com.onarandombox.MultiverseCore.display.DisplayFormatException; import com.onarandombox.MultiverseCore.display.DisplayHandler; -import com.onarandombox.MultiverseCore.display.DisplaySettings; +import com.onarandombox.MultiverseCore.display.settings.InlineDisplaySettings; +import com.onarandombox.MultiverseCore.display.settings.MapDisplaySettings; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; @@ -19,8 +20,8 @@ public class InlineMapDisplayHandler implements DisplayHandler> display) throws DisplayFormatException { StringBuilder builder = new StringBuilder(); - String separator = display.getSetting(DisplaySettings.SEPARATOR); - String operator = display.getSetting(DisplaySettings.OPERATOR); + String separator = display.getSetting(InlineDisplaySettings.SEPARATOR); + String operator = display.getSetting(MapDisplaySettings.OPERATOR); for (Iterator> iterator = display.getContents().entrySet().iterator(); iterator.hasNext(); ) { Map.Entry entry = iterator.next(); diff --git a/src/main/java/com/onarandombox/MultiverseCore/display/handlers/PagedListDisplayHandler.java b/src/main/java/com/onarandombox/MultiverseCore/display/handlers/PagedListDisplayHandler.java index 328d3610..17f0825e 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/display/handlers/PagedListDisplayHandler.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/handlers/PagedListDisplayHandler.java @@ -2,7 +2,7 @@ package com.onarandombox.MultiverseCore.display.handlers; import com.onarandombox.MultiverseCore.display.ContentDisplay; import com.onarandombox.MultiverseCore.display.DisplayFormatException; -import com.onarandombox.MultiverseCore.display.DisplaySettings; +import com.onarandombox.MultiverseCore.display.settings.PagedDisplaySettings; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.command.ConsoleCommandSender; @@ -24,8 +24,8 @@ public class PagedListDisplayHandler extends ListDisplayHandler { int pages = 1; int currentLength = 0; - int targetPage = display.getSetting(DisplaySettings.SHOW_PAGE); - int linesPerPage = display.getSetting(DisplaySettings.LINES_PER_PAGE); + int targetPage = display.getSetting(PagedDisplaySettings.SHOW_PAGE); + int linesPerPage = display.getSetting(PagedDisplaySettings.LINES_PER_PAGE); List content = new ArrayList<>(linesPerPage); // Calculate the paging. @@ -67,10 +67,10 @@ public class PagedListDisplayHandler extends ListDisplayHandler { } // Add empty lines to make output length consistent. - if (display.getSetting(DisplaySettings.DO_END_PADDING)) { + if (display.getSetting(PagedDisplaySettings.DO_END_PADDING)) { IntStream.range(0, linesPerPage - content.size()).forEach(i -> content.add("")); } - display.setSetting(DisplaySettings.TOTAL_PAGE, pages); + display.setSetting(PagedDisplaySettings.TOTAL_PAGE, pages); return content; } @@ -85,21 +85,21 @@ public class PagedListDisplayHandler extends ListDisplayHandler { if (display.getFilter().hasFilter()) { sender.sendMessage(String.format("%s[ Page %s of %s, %s ]", ChatColor.GRAY, - display.getSetting(DisplaySettings.SHOW_PAGE), - display.getSetting(DisplaySettings.TOTAL_PAGE), + display.getSetting(PagedDisplaySettings.SHOW_PAGE), + display.getSetting(PagedDisplaySettings.TOTAL_PAGE), display.getFilter().getFormattedString()) ); return; } sender.sendMessage(String.format("%s[ Page %s of %s ]", ChatColor.GRAY, - display.getSetting(DisplaySettings.SHOW_PAGE), - display.getSetting(DisplaySettings.TOTAL_PAGE)) + display.getSetting(PagedDisplaySettings.SHOW_PAGE), + display.getSetting(PagedDisplaySettings.TOTAL_PAGE)) ); } private boolean dontNeedPaging(CommandSender sender, ContentDisplay> display) { return sender instanceof ConsoleCommandSender - && !display.getSetting(DisplaySettings.PAGE_IN_CONSOLE); + && !display.getSetting(PagedDisplaySettings.PAGE_IN_CONSOLE); } } diff --git a/src/main/java/com/onarandombox/MultiverseCore/display/DisplaySetting.java b/src/main/java/com/onarandombox/MultiverseCore/display/settings/DisplaySetting.java similarity index 71% rename from src/main/java/com/onarandombox/MultiverseCore/display/DisplaySetting.java rename to src/main/java/com/onarandombox/MultiverseCore/display/settings/DisplaySetting.java index 6f79744e..232e432b 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/display/DisplaySetting.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/settings/DisplaySetting.java @@ -1,4 +1,6 @@ -package com.onarandombox.MultiverseCore.display; +package com.onarandombox.MultiverseCore.display.settings; + +import com.onarandombox.MultiverseCore.display.DisplayHandler; /** * Represents a setting option that can be used by {@link DisplayHandler}. diff --git a/src/main/java/com/onarandombox/MultiverseCore/display/settings/InlineDisplaySettings.java b/src/main/java/com/onarandombox/MultiverseCore/display/settings/InlineDisplaySettings.java new file mode 100644 index 00000000..25661d12 --- /dev/null +++ b/src/main/java/com/onarandombox/MultiverseCore/display/settings/InlineDisplaySettings.java @@ -0,0 +1,15 @@ +package com.onarandombox.MultiverseCore.display.settings; + +import com.onarandombox.MultiverseCore.display.DisplayHandler; +import org.bukkit.ChatColor; + +/** + * Collection of {@link DisplaySetting} that are used by various {@link DisplayHandler}. + */ +public class InlineDisplaySettings { + + /** + * Inline separator. E.g. '1, 2, 3' + */ + public static final DisplaySetting SEPARATOR = () -> ChatColor.WHITE + ", "; +} diff --git a/src/main/java/com/onarandombox/MultiverseCore/display/settings/MapDisplaySettings.java b/src/main/java/com/onarandombox/MultiverseCore/display/settings/MapDisplaySettings.java new file mode 100644 index 00000000..a7847395 --- /dev/null +++ b/src/main/java/com/onarandombox/MultiverseCore/display/settings/MapDisplaySettings.java @@ -0,0 +1,15 @@ +package com.onarandombox.MultiverseCore.display.settings; + +import com.onarandombox.MultiverseCore.display.DisplayHandler; +import org.bukkit.ChatColor; + +/** + * Collection of {@link DisplaySetting} that are used by various {@link DisplayHandler}. + */ +public class MapDisplaySettings { + + /** + * The thing between a key value pair. E.g. 'Me = Smart' + */ + public static final DisplaySetting OPERATOR = () -> ChatColor.WHITE + " = "; +} diff --git a/src/main/java/com/onarandombox/MultiverseCore/display/DisplaySettings.java b/src/main/java/com/onarandombox/MultiverseCore/display/settings/PagedDisplaySettings.java similarity index 58% rename from src/main/java/com/onarandombox/MultiverseCore/display/DisplaySettings.java rename to src/main/java/com/onarandombox/MultiverseCore/display/settings/PagedDisplaySettings.java index 092b80a9..bdc12f9f 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/display/DisplaySettings.java +++ b/src/main/java/com/onarandombox/MultiverseCore/display/settings/PagedDisplaySettings.java @@ -1,11 +1,6 @@ -package com.onarandombox.MultiverseCore.display; +package com.onarandombox.MultiverseCore.display.settings; -import org.bukkit.ChatColor; - -/** - * Collection of {@link DisplaySetting} that are used by various {@link DisplayHandler}. - */ -public class DisplaySettings { +public class PagedDisplaySettings { /** * Page to display. @@ -32,13 +27,4 @@ public class DisplaySettings { */ public static final DisplaySetting PAGE_IN_CONSOLE = () -> false; - /** - * Inline separator. E.g. '1, 2, 3' - */ - public static final DisplaySetting SEPARATOR = () -> ChatColor.WHITE + ", "; - - /** - * The thing between a key value pair. E.g. 'Me = Smart' - */ - public static final DisplaySetting OPERATOR = () -> ChatColor.WHITE + " = "; }