diff options
Diffstat (limited to 'dicore3/command/src/main/java/io/dico/dicore/command/chat/AbstractChatHandler.java')
-rw-r--r-- | dicore3/command/src/main/java/io/dico/dicore/command/chat/AbstractChatHandler.java | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/dicore3/command/src/main/java/io/dico/dicore/command/chat/AbstractChatHandler.java b/dicore3/command/src/main/java/io/dico/dicore/command/chat/AbstractChatHandler.java new file mode 100644 index 0000000..c0d23ee --- /dev/null +++ b/dicore3/command/src/main/java/io/dico/dicore/command/chat/AbstractChatHandler.java @@ -0,0 +1,94 @@ +package io.dico.dicore.command.chat; + +import io.dico.dicore.Formatting; +import io.dico.dicore.command.EMessageType; +import io.dico.dicore.command.ExecutionContext; +import io.dico.dicore.command.ICommandAddress; +import io.dico.dicore.command.chat.help.HelpPages; +import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; + +public class AbstractChatHandler implements IChatHandler { + private @NotNull HelpPages helpPages; + + public AbstractChatHandler(@NotNull HelpPages helpPages) { + this.helpPages = helpPages; + } + + public AbstractChatHandler() { + this(HelpPages.newDefaultHelpPages()); + } + + @NotNull + public HelpPages getHelpPages() { + return helpPages; + } + + public void setHelpPages(@NotNull HelpPages helpPages) { + this.helpPages = helpPages; + } + + @Override + public Formatting getChatFormatForType(EMessageType type) { + switch (type) { + case EXCEPTION: + case BAD_NEWS: + return Formatting.RED; + case INSTRUCTION: + case NEUTRAL: + return Formatting.GRAY; + case CUSTOM: + return Formatting.WHITE; + case INFORMATIVE: + return Formatting.AQUA; + case RESULT: + default: + case GOOD_NEWS: + return Formatting.GREEN; + case WARNING: + return Formatting.YELLOW; + + case DESCRIPTION: + return Formatting.GREEN; + case SYNTAX: + return Formatting.AQUA; + case HIGHLIGHT: + return Formatting.RED; + case SUBCOMMAND: + return Formatting.GRAY; + case NUMBER: + return Formatting.YELLOW; + } + } + + @Override + public String getMessagePrefixForType(EMessageType type) { + return ""; + } + + protected String createMessage(EMessageType type, String message) { + if (message == null || message.isEmpty()) return null; + return getMessagePrefixForType(type) + getChatFormatForType(type) + message; + } + + @Override + public String createMessage(ExecutionContext context, EMessageType type, String message) { + return createMessage(type, message); + } + + @Override + public String createMessage(CommandSender sender, EMessageType type, String message) { + return createMessage(type, message); + } + + @Override + public String createHelpMessage(CommandSender sender, ExecutionContext context, ICommandAddress address, int page) { + return helpPages.getHelpPage(sender, context, address, page); + } + + @Override + public String createSyntaxMessage(CommandSender sender, ExecutionContext context, ICommandAddress address) { + return helpPages.getSyntax(sender, context, address); + } + +} |