Soulbound/src/main/java/com/me/tft_02/soulbound/commands/SoulboundCommand.java

106 lines
3.8 KiB
Java

package com.me.tft_02.soulbound.commands;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.me.tft_02.soulbound.Soulbound;
public class SoulboundCommand implements CommandExecutor {
@Override
public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args) {
switch (args.length) {
case 0:
sender.sendMessage(Soulbound.p.getlang("VERSION") + Soulbound.p.getDescription().getVersion());
return printUsage(sender);
case 1:
if (args[0].equalsIgnoreCase("reload")) {
return reloadConfiguration(sender);
}
if (args[0].equalsIgnoreCase("help") || args[0].equalsIgnoreCase("?")) {
getHelpPage(1, sender);
return true;
}
default:
if (args[0].equalsIgnoreCase("help") || args[0].equalsIgnoreCase("?")) {
return helpPages(sender, args);
}
return false;
}
}
private void getHelpPage(final int page, final CommandSender sender) {
final int maxPages = 2;
final int nextPage = page + 1;
if (page > maxPages) {
sender.sendMessage(Soulbound.p.getlang("PAGE_NOT_EXIST".replace("%maxPages%", maxPages + "")));
return;
}
sender.sendMessage(Soulbound.p.getlang("HELP_TITLE").replace("%page%", page + "").replace("%maxPages%", maxPages + ""));
if (page == 1) {
sender.sendMessage(Soulbound.p.getlang("HOW_DOES_IT_WORK"));
sender.sendMessage(Soulbound.p.getlang("HOW_DOES_IT_WORK_1"));
sender.sendMessage(Soulbound.p.getlang("HOW_DOES_IT_WORK_2"));
sender.sendMessage(Soulbound.p.getlang("HOW_DOES_IT_WORK_3"));
sender.sendMessage(Soulbound.p.getlang("HOW_DOES_IT_WORK_4"));
sender.sendMessage(Soulbound.p.getlang("HOW_DOES_IT_WORK_4_1"));
sender.sendMessage(Soulbound.p.getlang("HOW_DOES_IT_WORK_5"));
sender.sendMessage(Soulbound.p.getlang("HOW_DOES_IT_WORK_5_1"));
sender.sendMessage(Soulbound.p.getlang("HOW_DOES_IT_WORK_6"));
sender.sendMessage(Soulbound.p.getlang("HOW_DOES_IT_WORK_6_1"));
}
if (page == 2) {
sender.sendMessage(Soulbound.p.getlang("CMD"));
if (sender.hasPermission("soulbound.commands.bind")) {
sender.sendMessage(Soulbound.p.getlang("CMDVERSION"));
}
if (sender.hasPermission("soulbound.commands.bind")) {
sender.sendMessage(Soulbound.p.getlang("CMD_BIND"));
sender.sendMessage(Soulbound.p.getlang("CMD_BIND_FULL_INVENTORY"));
}
if (sender.hasPermission("soulbound.commands.bindonpickup")) {
sender.sendMessage(Soulbound.p.getlang("CMD_BIND_ON_PICKUP"));
}
if (sender.hasPermission("soulbound.commands.bindonuse")) {
sender.sendMessage(Soulbound.p.getlang("CMD_BIND_ON_USE"));
}
if (sender.hasPermission("soulbound.commands.bindonequip")) {
sender.sendMessage(Soulbound.p.getlang("CMD_BIND_ON_EQUIP"));
}
if (sender.hasPermission("soulbound.commands.unbind")) {
sender.sendMessage(Soulbound.p.getlang("CMD_UNBIND"));
}
}
if (nextPage <= maxPages) {
sender.sendMessage(Soulbound.p.getlang("CMD_NEXT").replace("%nextPage%", nextPage + ""));
}
}
private boolean helpPages(final CommandSender sender, final String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage(Soulbound.p.getlang("CAN_NOT_USE_ON_CONSOLE"));
return false;
}
if (args.length >= 2 && Integer.parseInt(args[1]) > 0) {
getHelpPage(Integer.parseInt(args[1]), sender);
return true;
}
return false;
}
private boolean printUsage(final CommandSender sender) {
sender.sendMessage(Soulbound.p.getlang("CMD_USE"));
return false;
}
private boolean reloadConfiguration(final CommandSender sender) {
if (sender instanceof Player && !sender.hasPermission("soulbound.commands.reload")) {
return false;
}
Soulbound.p.reloadConfig();
sender.sendMessage(Soulbound.p.getlang("RELOAD"));
return false;
}
}