diff options
Diffstat (limited to 'dicore3/command/src/main/java/io/dico/dicore/command/chat/ChatControllers.java')
-rw-r--r-- | dicore3/command/src/main/java/io/dico/dicore/command/chat/ChatControllers.java | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/dicore3/command/src/main/java/io/dico/dicore/command/chat/ChatControllers.java b/dicore3/command/src/main/java/io/dico/dicore/command/chat/ChatControllers.java new file mode 100644 index 0000000..709f791 --- /dev/null +++ b/dicore3/command/src/main/java/io/dico/dicore/command/chat/ChatControllers.java @@ -0,0 +1,52 @@ +package io.dico.dicore.command.chat; + +import io.dico.dicore.command.ExecutionContext; +import io.dico.dicore.command.ICommandAddress; +import io.dico.dicore.command.chat.help.IHelpComponent; +import io.dico.dicore.command.chat.help.IHelpTopic; +import io.dico.dicore.command.chat.help.IPageBuilder; +import io.dico.dicore.command.chat.help.IPageLayout; +import io.dico.dicore.command.chat.help.defaults.*; +import org.bukkit.command.CommandSender; + +import java.util.Arrays; +import java.util.List; + +/** + * Static factory methods for {@link IChatController} + */ +public class ChatControllers { + private static final IChatController defaultChat; + + private ChatControllers() { + + } + + public static IChatController defaultChat() { + return defaultChat; + } + + static { + defaultChat = new AbstractChatController() { + IPageBuilder pageBuilder = new DefaultPageBuilder(); + IPageLayout pageLayout = new DefaultPageLayout(); + List<IHelpTopic> topics = Arrays.asList(new DescriptionHelpTopic(), new SyntaxHelpTopic(), new SubcommandsHelpTopic()); + + @Override + public void sendHelpMessage(CommandSender sender, ExecutionContext context, ICommandAddress address, int page) { + sender.sendMessage(pageBuilder.getPage(topics, pageLayout, address, sender, context, page, 12)); + } + + @Override + public void sendSyntaxMessage(CommandSender sender, ExecutionContext context, ICommandAddress address) { + List<IHelpComponent> components = topics.get(1).getComponents(address, sender, context); + if (components.isEmpty()) { + sendHelpMessage(sender, context, address, 1); + } else { + sender.sendMessage(DefaultPageBuilder.combine(components)); + } + } + + }; + } +} |