package com.lifeknight.relaymcbungeemain.commands.staff; import com.lifeknight.relaymcbungeemain.commands.CommandUtilities; import com.lifeknight.relaymcbungeemain.player.ChatType; import com.lifeknight.relaymcbungeemain.player.SmartPlayer; import com.lifeknight.relayutils.basic.Miscellaneous; import com.lifeknight.relayutils.basic.Text; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.plugin.Command; public class MessagesCommand extends Command { public MessagesCommand() { super("messages"); } @Override public void execute(CommandSender commandSender, String[] arguments) { if (!CommandUtilities.isAdministrator(commandSender)) { CommandUtilities.sendInsufficientPermissionsMessage(commandSender); return; } if (arguments.length > 0) { String name = arguments[0]; SmartPlayer smartPlayer = SmartPlayer.getSmartPlayer(name); if (smartPlayer == null) { CommandUtilities.noPlayerFound(commandSender, name); return; } int page = 1; ChatType chatType = null; if (arguments.length > 1) { String pageOrType = arguments[1]; chatType = Miscellaneous.match(ChatType.values(), chatType1 -> Text.toComparable(chatType1).equalsIgnoreCase(pageOrType)); if (chatType == null) { try { page = Integer.parseInt(pageOrType); } catch (Exception exception) { CommandUtilities.sendUsageMessage(commandSender, "/messages [player] (type/page) (page)"); return; } } if (arguments.length > 2) { try { page = Integer.parseInt(arguments[2]); } catch (Exception exception) { CommandUtilities.sendUsageMessage(commandSender, "/messages [player] (type/page) (page)"); return; } } } if (smartPlayer.getMaxMessagePage(chatType) < 1) { CommandUtilities.sendInfoMessage(commandSender, "No messages to display."); return; } if (page < 1) { CommandUtilities.sendErrorMessage(commandSender, "Page out of bounds!"); return; } if (page > smartPlayer.getMaxMessagePage(chatType)) { CommandUtilities.sendErrorMessage(commandSender, "Page out of bounds! (Max %d)", smartPlayer.getMaxMessagePage(chatType)); } commandSender.sendMessage(smartPlayer.getMessagesComponent(chatType, page)); } else { CommandUtilities.sendUsageMessage(commandSender, "/messages [player] (type) (page)"); } } }