mirror of
https://github.com/Multiverse/Multiverse-Core.git
synced 2024-11-28 21:48:27 +01:00
Split DisplaySettings into separate classes.
This commit is contained in:
parent
ee95aa8462
commit
62705f4d36
@ -10,8 +10,7 @@ package com.onarandombox.MultiverseCore.commands;
|
|||||||
import com.onarandombox.MultiverseCore.MultiverseCore;
|
import com.onarandombox.MultiverseCore.MultiverseCore;
|
||||||
import com.onarandombox.MultiverseCore.display.ColorAlternator;
|
import com.onarandombox.MultiverseCore.display.ColorAlternator;
|
||||||
import com.onarandombox.MultiverseCore.display.ContentDisplay;
|
import com.onarandombox.MultiverseCore.display.ContentDisplay;
|
||||||
import com.onarandombox.MultiverseCore.display.DisplayHandlers;
|
import com.onarandombox.MultiverseCore.display.settings.MapDisplaySettings;
|
||||||
import com.onarandombox.MultiverseCore.display.DisplaySettings;
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.GameRule;
|
import org.bukkit.GameRule;
|
||||||
@ -77,7 +76,7 @@ public class GamerulesCommand extends MultiverseCommand {
|
|||||||
ContentDisplay.forContent(getGameRuleMap(world))
|
ContentDisplay.forContent(getGameRuleMap(world))
|
||||||
.header("=== Gamerules for %s%s%s ===", ChatColor.AQUA, world.getName(), ChatColor.WHITE)
|
.header("=== Gamerules for %s%s%s ===", ChatColor.AQUA, world.getName(), ChatColor.WHITE)
|
||||||
.colorTool(ColorAlternator.with(ChatColor.GREEN, ChatColor.GOLD))
|
.colorTool(ColorAlternator.with(ChatColor.GREEN, ChatColor.GOLD))
|
||||||
.setting(DisplaySettings.OPERATOR, ": ")
|
.setting(MapDisplaySettings.OPERATOR, ": ")
|
||||||
.show(sender);
|
.show(sender);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ import com.onarandombox.MultiverseCore.display.ColorAlternator;
|
|||||||
import com.onarandombox.MultiverseCore.display.ContentDisplay;
|
import com.onarandombox.MultiverseCore.display.ContentDisplay;
|
||||||
import com.onarandombox.MultiverseCore.display.ContentFilter;
|
import com.onarandombox.MultiverseCore.display.ContentFilter;
|
||||||
import com.onarandombox.MultiverseCore.display.DisplayHandlers;
|
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.ChatColor;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@ -70,7 +70,7 @@ public class ListCommand extends MultiverseCommand {
|
|||||||
.displayHandler(DisplayHandlers.PAGE_LIST)
|
.displayHandler(DisplayHandlers.PAGE_LIST)
|
||||||
.colorTool(ColorAlternator.with(ChatColor.AQUA, ChatColor.GOLD))
|
.colorTool(ColorAlternator.with(ChatColor.AQUA, ChatColor.GOLD))
|
||||||
.filter(filter)
|
.filter(filter)
|
||||||
.setting(DisplaySettings.SHOW_PAGE, page)
|
.setting(PagedDisplaySettings.SHOW_PAGE, page)
|
||||||
.show(sender);
|
.show(sender);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.onarandombox.MultiverseCore.display;
|
package com.onarandombox.MultiverseCore.display;
|
||||||
|
|
||||||
|
import com.onarandombox.MultiverseCore.display.settings.DisplaySetting;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
@ -4,10 +4,12 @@ import com.onarandombox.MultiverseCore.display.handlers.InlineListDisplayHandler
|
|||||||
import com.onarandombox.MultiverseCore.display.handlers.InlineMapDisplayHandler;
|
import com.onarandombox.MultiverseCore.display.handlers.InlineMapDisplayHandler;
|
||||||
import com.onarandombox.MultiverseCore.display.handlers.ListDisplayHandler;
|
import com.onarandombox.MultiverseCore.display.handlers.ListDisplayHandler;
|
||||||
import com.onarandombox.MultiverseCore.display.handlers.PagedListDisplayHandler;
|
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.Collection;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Various implementations of {@link DisplayHandler}.
|
* Various implementations of {@link DisplayHandler}.
|
||||||
@ -24,22 +26,22 @@ public class DisplayHandlers {
|
|||||||
/**
|
/**
|
||||||
* List display with paging.
|
* List display with paging.
|
||||||
*
|
*
|
||||||
* Supported settings: {@link DisplaySettings#SHOW_PAGE}, {@link DisplaySettings#LINES_PER_PAGE},
|
* Supported settings: {@link PagedDisplaySettings#SHOW_PAGE}, {@link PagedDisplaySettings#LINES_PER_PAGE},
|
||||||
* {@link DisplaySettings#PAGE_IN_CONSOLE}, {@link DisplaySettings#DO_END_PADDING}.
|
* {@link PagedDisplaySettings#PAGE_IN_CONSOLE}, {@link PagedDisplaySettings#DO_END_PADDING}.
|
||||||
*/
|
*/
|
||||||
public static final DisplayHandler<Collection<String>> PAGE_LIST = new PagedListDisplayHandler();
|
public static final DisplayHandler<Collection<String>> PAGE_LIST = new PagedListDisplayHandler();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Display a list inline.
|
* Display a list inline.
|
||||||
*
|
*
|
||||||
* Supported settings: {@link DisplaySettings#SEPARATOR}.
|
* Supported settings: {@link InlineDisplaySettings#SEPARATOR}.
|
||||||
*/
|
*/
|
||||||
public static final DisplayHandler<Collection<String>> INLINE_LIST = new InlineListDisplayHandler();
|
public static final DisplayHandler<Collection<String>> INLINE_LIST = new InlineListDisplayHandler();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Display key value pair inline.
|
* 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<Map<String, Object>> INLINE_MAP = new InlineMapDisplayHandler();
|
public static final DisplayHandler<Map<String, Object>> INLINE_MAP = new InlineMapDisplayHandler();
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@ package com.onarandombox.MultiverseCore.display.handlers;
|
|||||||
import com.onarandombox.MultiverseCore.display.ContentDisplay;
|
import com.onarandombox.MultiverseCore.display.ContentDisplay;
|
||||||
import com.onarandombox.MultiverseCore.display.DisplayFormatException;
|
import com.onarandombox.MultiverseCore.display.DisplayFormatException;
|
||||||
import com.onarandombox.MultiverseCore.display.DisplayHandler;
|
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.bukkit.command.CommandSender;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
@ -17,7 +17,7 @@ public class InlineListDisplayHandler implements DisplayHandler<Collection<Strin
|
|||||||
public Collection<String> format(@NotNull CommandSender sender, @NotNull ContentDisplay<Collection<String>> display)
|
public Collection<String> format(@NotNull CommandSender sender, @NotNull ContentDisplay<Collection<String>> display)
|
||||||
throws DisplayFormatException {
|
throws DisplayFormatException {
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
String separator = display.getSetting(DisplaySettings.SEPARATOR);
|
String separator = display.getSetting(InlineDisplaySettings.SEPARATOR);
|
||||||
|
|
||||||
for (Iterator<String> iterator = display.getContents().iterator(); iterator.hasNext(); ) {
|
for (Iterator<String> iterator = display.getContents().iterator(); iterator.hasNext(); ) {
|
||||||
String content = iterator.next();
|
String content = iterator.next();
|
||||||
|
@ -3,7 +3,8 @@ package com.onarandombox.MultiverseCore.display.handlers;
|
|||||||
import com.onarandombox.MultiverseCore.display.ContentDisplay;
|
import com.onarandombox.MultiverseCore.display.ContentDisplay;
|
||||||
import com.onarandombox.MultiverseCore.display.DisplayFormatException;
|
import com.onarandombox.MultiverseCore.display.DisplayFormatException;
|
||||||
import com.onarandombox.MultiverseCore.display.DisplayHandler;
|
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.bukkit.command.CommandSender;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
@ -19,8 +20,8 @@ public class InlineMapDisplayHandler implements DisplayHandler<Map<String, Objec
|
|||||||
@NotNull ContentDisplay<Map<String, Object>> display)
|
@NotNull ContentDisplay<Map<String, Object>> display)
|
||||||
throws DisplayFormatException {
|
throws DisplayFormatException {
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
String separator = display.getSetting(DisplaySettings.SEPARATOR);
|
String separator = display.getSetting(InlineDisplaySettings.SEPARATOR);
|
||||||
String operator = display.getSetting(DisplaySettings.OPERATOR);
|
String operator = display.getSetting(MapDisplaySettings.OPERATOR);
|
||||||
|
|
||||||
for (Iterator<Map.Entry<String, Object>> iterator = display.getContents().entrySet().iterator(); iterator.hasNext(); ) {
|
for (Iterator<Map.Entry<String, Object>> iterator = display.getContents().entrySet().iterator(); iterator.hasNext(); ) {
|
||||||
Map.Entry<String, Object> entry = iterator.next();
|
Map.Entry<String, Object> entry = iterator.next();
|
||||||
|
@ -2,7 +2,7 @@ package com.onarandombox.MultiverseCore.display.handlers;
|
|||||||
|
|
||||||
import com.onarandombox.MultiverseCore.display.ContentDisplay;
|
import com.onarandombox.MultiverseCore.display.ContentDisplay;
|
||||||
import com.onarandombox.MultiverseCore.display.DisplayFormatException;
|
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.ChatColor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
import org.bukkit.command.ConsoleCommandSender;
|
||||||
@ -24,8 +24,8 @@ public class PagedListDisplayHandler extends ListDisplayHandler {
|
|||||||
|
|
||||||
int pages = 1;
|
int pages = 1;
|
||||||
int currentLength = 0;
|
int currentLength = 0;
|
||||||
int targetPage = display.getSetting(DisplaySettings.SHOW_PAGE);
|
int targetPage = display.getSetting(PagedDisplaySettings.SHOW_PAGE);
|
||||||
int linesPerPage = display.getSetting(DisplaySettings.LINES_PER_PAGE);
|
int linesPerPage = display.getSetting(PagedDisplaySettings.LINES_PER_PAGE);
|
||||||
List<String> content = new ArrayList<>(linesPerPage);
|
List<String> content = new ArrayList<>(linesPerPage);
|
||||||
|
|
||||||
// Calculate the paging.
|
// Calculate the paging.
|
||||||
@ -67,10 +67,10 @@ public class PagedListDisplayHandler extends ListDisplayHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add empty lines to make output length consistent.
|
// 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(""));
|
IntStream.range(0, linesPerPage - content.size()).forEach(i -> content.add(""));
|
||||||
}
|
}
|
||||||
display.setSetting(DisplaySettings.TOTAL_PAGE, pages);
|
display.setSetting(PagedDisplaySettings.TOTAL_PAGE, pages);
|
||||||
|
|
||||||
return content;
|
return content;
|
||||||
}
|
}
|
||||||
@ -85,21 +85,21 @@ public class PagedListDisplayHandler extends ListDisplayHandler {
|
|||||||
if (display.getFilter().hasFilter()) {
|
if (display.getFilter().hasFilter()) {
|
||||||
sender.sendMessage(String.format("%s[ Page %s of %s, %s ]",
|
sender.sendMessage(String.format("%s[ Page %s of %s, %s ]",
|
||||||
ChatColor.GRAY,
|
ChatColor.GRAY,
|
||||||
display.getSetting(DisplaySettings.SHOW_PAGE),
|
display.getSetting(PagedDisplaySettings.SHOW_PAGE),
|
||||||
display.getSetting(DisplaySettings.TOTAL_PAGE),
|
display.getSetting(PagedDisplaySettings.TOTAL_PAGE),
|
||||||
display.getFilter().getFormattedString())
|
display.getFilter().getFormattedString())
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
sender.sendMessage(String.format("%s[ Page %s of %s ]",
|
sender.sendMessage(String.format("%s[ Page %s of %s ]",
|
||||||
ChatColor.GRAY,
|
ChatColor.GRAY,
|
||||||
display.getSetting(DisplaySettings.SHOW_PAGE),
|
display.getSetting(PagedDisplaySettings.SHOW_PAGE),
|
||||||
display.getSetting(DisplaySettings.TOTAL_PAGE))
|
display.getSetting(PagedDisplaySettings.TOTAL_PAGE))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean dontNeedPaging(CommandSender sender, ContentDisplay<Collection<String>> display) {
|
private boolean dontNeedPaging(CommandSender sender, ContentDisplay<Collection<String>> display) {
|
||||||
return sender instanceof ConsoleCommandSender
|
return sender instanceof ConsoleCommandSender
|
||||||
&& !display.getSetting(DisplaySettings.PAGE_IN_CONSOLE);
|
&& !display.getSetting(PagedDisplaySettings.PAGE_IN_CONSOLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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}.
|
* Represents a setting option that can be used by {@link DisplayHandler}.
|
@ -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<String> SEPARATOR = () -> ChatColor.WHITE + ", ";
|
||||||
|
}
|
@ -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<String> OPERATOR = () -> ChatColor.WHITE + " = ";
|
||||||
|
}
|
@ -1,11 +1,6 @@
|
|||||||
package com.onarandombox.MultiverseCore.display;
|
package com.onarandombox.MultiverseCore.display.settings;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
public class PagedDisplaySettings {
|
||||||
|
|
||||||
/**
|
|
||||||
* Collection of {@link DisplaySetting} that are used by various {@link DisplayHandler}.
|
|
||||||
*/
|
|
||||||
public class DisplaySettings {
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Page to display.
|
* Page to display.
|
||||||
@ -32,13 +27,4 @@ public class DisplaySettings {
|
|||||||
*/
|
*/
|
||||||
public static final DisplaySetting<Boolean> PAGE_IN_CONSOLE = () -> false;
|
public static final DisplaySetting<Boolean> PAGE_IN_CONSOLE = () -> false;
|
||||||
|
|
||||||
/**
|
|
||||||
* Inline separator. E.g. '1, 2, 3'
|
|
||||||
*/
|
|
||||||
public static final DisplaySetting<String> SEPARATOR = () -> ChatColor.WHITE + ", ";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The thing between a key value pair. E.g. 'Me = Smart'
|
|
||||||
*/
|
|
||||||
public static final DisplaySetting<String> OPERATOR = () -> ChatColor.WHITE + " = ";
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user