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

116 lines
3.6 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(CommandSender sender, Command command,
String label, 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 boolean reloadConfiguration(CommandSender sender) {
if (sender instanceof Player
&& !sender.hasPermission("soulbound.commands.reload")) {
return false;
}
Soulbound.p.reloadConfig();
sender.sendMessage(Soulbound.p.getlang("RELOAD"));
return false;
}
private boolean helpPages(CommandSender sender, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage(Soulbound.p.getlang("CAN_NOT_USE_ON_CONSOLE"));
//sender.sendMessage("Can't use this from the console, sorry!");
return false;
}
if (args.length >= 2 && Integer.parseInt(args[1]) > 0) {
getHelpPage(Integer.parseInt(args[1]), sender);
return true;
}
return false;
}
private void getHelpPage(int page, CommandSender sender) {
int maxPages = 2;
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_5"));
sender.sendMessage(Soulbound.p.getlang("HOW_DOES_IT_WORK_6"));
}
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 printUsage(CommandSender sender) {
sender.sendMessage(Soulbound.p.getlang("CMD_USE"));
return false;
}
}