更新
This commit is contained in:
@@ -1,100 +1,67 @@
|
||||
package me.skymc.taboolib.commands;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import me.skymc.taboolib.commands.sub.AttributesCommand;
|
||||
import me.skymc.taboolib.commands.sub.EnchantCommand;
|
||||
import me.skymc.taboolib.commands.sub.FlagCommand;
|
||||
import me.skymc.taboolib.commands.sub.HelpCommand;
|
||||
import me.skymc.taboolib.commands.sub.ImportCommand;
|
||||
import me.skymc.taboolib.commands.sub.InfoCommand;
|
||||
import me.skymc.taboolib.commands.sub.ItemCommand;
|
||||
import me.skymc.taboolib.commands.sub.PotionCommand;
|
||||
import me.skymc.taboolib.commands.sub.SaveCommand;
|
||||
import me.skymc.taboolib.commands.sub.SlotCommand;
|
||||
import me.skymc.taboolib.commands.sub.TagDeleteCommand;
|
||||
import me.skymc.taboolib.commands.sub.TagPrefixCommand;
|
||||
import me.skymc.taboolib.commands.sub.TagSuffixCommand;
|
||||
import me.skymc.taboolib.commands.sub.VariableGetCommand;
|
||||
import me.skymc.taboolib.commands.sub.VariableSetCommand;
|
||||
import com.ilummc.tlib.resources.TLocale;
|
||||
import me.skymc.taboolib.commands.sub.*;
|
||||
import me.skymc.taboolib.commands.sub.cycle.CycleCommand;
|
||||
import me.skymc.taboolib.commands.sub.itemlist.ItemListCommand;
|
||||
import me.skymc.taboolib.commands.sub.shell.ShellCommand;
|
||||
import me.skymc.taboolib.commands.sub.sounds.SoundsCommand;
|
||||
import me.skymc.taboolib.inventory.ItemUtils;
|
||||
import me.skymc.taboolib.message.MsgUtils;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class MainCommands implements CommandExecutor{
|
||||
import java.lang.reflect.Parameter;
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||
if (args.length == 0 || args[0].equalsIgnoreCase("help")) {
|
||||
new HelpCommand(sender, args);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("itemreload") || args[0].equalsIgnoreCase("ireload")) {
|
||||
ItemUtils.reloadItemCache();
|
||||
ItemUtils.reloadItemName();
|
||||
MsgUtils.send(sender, "重载成功");
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("save")) {
|
||||
new SaveCommand(sender, args);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("enchants")) {
|
||||
new EnchantCommand(sender, args);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("potions")) {
|
||||
new PotionCommand(sender, args);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("flags")) {
|
||||
new FlagCommand(sender, args);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("attributes")) {
|
||||
new AttributesCommand(sender, args);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("slots")) {
|
||||
new SlotCommand(sender, args);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("importdata")) {
|
||||
new ImportCommand(sender, args);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("iteminfo")) {
|
||||
new InfoCommand(sender, args);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("itemlist")) {
|
||||
new ItemListCommand(sender, args);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("item") || args[0].equalsIgnoreCase("i")) {
|
||||
new ItemCommand(sender, args);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("setvariable")) {
|
||||
new VariableSetCommand(sender, args);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("getvariable")) {
|
||||
new VariableGetCommand(sender, args);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("shell") || args[0].equalsIgnoreCase("s")) {
|
||||
new ShellCommand(sender, args);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("cycle") || args[0].equalsIgnoreCase("c")) {
|
||||
new CycleCommand(sender, args);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("sounds")) {
|
||||
new SoundsCommand(sender, args);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("tagprefix")) {
|
||||
new TagPrefixCommand(sender, args);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("tagsuffix")) {
|
||||
new TagSuffixCommand(sender, args);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("tagdelete")) {
|
||||
new TagDeleteCommand(sender, args);
|
||||
}
|
||||
else {
|
||||
MsgUtils.send(sender, "&4指令错误");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
public class MainCommands implements CommandExecutor {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||
if (args.length == 0 || args[0].equalsIgnoreCase("help")) {
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.HELP");
|
||||
} else if (args[0].equalsIgnoreCase("save")) {
|
||||
new SaveCommand(sender, args);
|
||||
} else if (args[0].equalsIgnoreCase("enchants")) {
|
||||
new EnchantCommand(sender, args);
|
||||
} else if (args[0].equalsIgnoreCase("potions")) {
|
||||
new PotionCommand(sender, args);
|
||||
} else if (args[0].equalsIgnoreCase("flags")) {
|
||||
new FlagCommand(sender, args);
|
||||
} else if (args[0].equalsIgnoreCase("attributes")) {
|
||||
new AttributesCommand(sender, args);
|
||||
} else if (args[0].equalsIgnoreCase("slots")) {
|
||||
new SlotCommand(sender, args);
|
||||
} else if (args[0].equalsIgnoreCase("importdata")) {
|
||||
new ImportCommand(sender, args);
|
||||
} else if (args[0].equalsIgnoreCase("iteminfo")) {
|
||||
new InfoCommand(sender, args);
|
||||
} else if (args[0].equalsIgnoreCase("itemlist")) {
|
||||
new ItemListCommand(sender, args);
|
||||
} else if (args[0].equalsIgnoreCase("item") || args[0].equalsIgnoreCase("i")) {
|
||||
new ItemCommand(sender, args);
|
||||
} else if (args[0].equalsIgnoreCase("setvariable")) {
|
||||
new VariableSetCommand(sender, args);
|
||||
} else if (args[0].equalsIgnoreCase("getvariable")) {
|
||||
new VariableGetCommand(sender, args);
|
||||
} else if (args[0].equalsIgnoreCase("shell") || args[0].equalsIgnoreCase("s")) {
|
||||
new ShellCommand(sender, args);
|
||||
} else if (args[0].equalsIgnoreCase("cycle") || args[0].equalsIgnoreCase("c")) {
|
||||
new CycleCommand(sender, args);
|
||||
} else if (args[0].equalsIgnoreCase("sounds")) {
|
||||
new SoundsCommand(sender, args);
|
||||
} else if (args[0].equalsIgnoreCase("tagprefix")) {
|
||||
new TagPrefixCommand(sender, args);
|
||||
} else if (args[0].equalsIgnoreCase("tagsuffix")) {
|
||||
new TagSuffixCommand(sender, args);
|
||||
} else if (args[0].equalsIgnoreCase("tagdelete")) {
|
||||
new TagDeleteCommand(sender, args);
|
||||
} else if (args[0].equalsIgnoreCase("itemreload") || args[0].equalsIgnoreCase("ireload")) {
|
||||
ItemUtils.reloadItemCache();
|
||||
ItemUtils.reloadItemName();
|
||||
TLocale.sendTo(sender, "COMMANDS.RELOAD.SUCCESS-NORMAL");
|
||||
} else {
|
||||
TLocale.sendTo(sender, "COMMANDS.PARAMETER.UNKNOWN");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,36 +3,34 @@ package me.skymc.taboolib.commands;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
public abstract class SubCommand {
|
||||
|
||||
public CommandSender sender;
|
||||
public String[] args;
|
||||
|
||||
public boolean returnValue = false;
|
||||
|
||||
public SubCommand(CommandSender sender, String[] args) {
|
||||
this.sender = sender;
|
||||
this.args = args;
|
||||
}
|
||||
|
||||
public boolean setReturn(boolean returnValue) {
|
||||
return this.returnValue = returnValue;
|
||||
}
|
||||
|
||||
public boolean isPlayer() {
|
||||
return sender instanceof Player;
|
||||
}
|
||||
|
||||
public boolean command() {
|
||||
return returnValue;
|
||||
}
|
||||
|
||||
public String getArgs(int size) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = size ; i < args.length ; i++) {
|
||||
sb.append(args[i]);
|
||||
sb.append(" ");
|
||||
}
|
||||
return sb.toString().substring(0, sb.length() - 1);
|
||||
}
|
||||
|
||||
public CommandSender sender;
|
||||
public String[] args;
|
||||
|
||||
public boolean returnValue = false;
|
||||
|
||||
public SubCommand(CommandSender sender, String[] args) {
|
||||
this.sender = sender;
|
||||
this.args = args;
|
||||
}
|
||||
|
||||
public boolean setReturn(boolean returnValue) {
|
||||
return this.returnValue = returnValue;
|
||||
}
|
||||
|
||||
public boolean isPlayer() {
|
||||
return sender instanceof Player;
|
||||
}
|
||||
|
||||
public boolean command() {
|
||||
return returnValue;
|
||||
}
|
||||
|
||||
public String getArgs(int size) {
|
||||
return IntStream.range(size, args.length).mapToObj(i -> args[i] + " ").collect(Collectors.joining()).trim();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ public class Language2Command implements CommandExecutor {
|
||||
else if (args[0].equalsIgnoreCase("reload")) {
|
||||
MsgUtils.send(sender, "§7重载中..");
|
||||
long time = System.currentTimeMillis();
|
||||
Main.getExampleLangauge2().reload();
|
||||
Main.getExampleLanguage2().reload();
|
||||
MsgUtils.send(sender, "§7重载完成! 耗时: &f" + (System.currentTimeMillis() - time) + "ms");
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("send")) {
|
||||
@@ -42,7 +42,7 @@ public class Language2Command implements CommandExecutor {
|
||||
long time = System.currentTimeMillis();
|
||||
|
||||
// 获取语言文件
|
||||
Language2Value value = Main.getExampleLangauge2().get(args[2]);
|
||||
Language2Value value = Main.getExampleLanguage2().get(args[2]);
|
||||
// 如果有变量参数
|
||||
if (args.length > 3) {
|
||||
int i = 0;
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
package me.skymc.taboolib.commands.locale;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.ilummc.tlib.resources.TLocale;
|
||||
import me.skymc.taboolib.message.MsgUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.ilummc.tlib.resources.TLocale;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
/**
|
||||
* @author sky
|
||||
@@ -17,59 +18,59 @@ import com.ilummc.tlib.resources.TLocale;
|
||||
*/
|
||||
public class TabooLibLocaleCommand implements CommandExecutor {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command arg1, String label, String[] args) {
|
||||
if (args.length == 0) {
|
||||
TLocale.sendTo(sender, "commands-taboolocale-helps", label);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("send")) {
|
||||
send(sender, args);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("reload")) {
|
||||
reload(sender);
|
||||
}
|
||||
else {
|
||||
TLocale.sendTo(sender, "commands-taboolocale-invalid");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void send(CommandSender sender, String[] args) {
|
||||
if (args.length < 3) {
|
||||
TLocale.sendTo(sender, "commands-taboolocale-send-empty");
|
||||
return;
|
||||
}
|
||||
|
||||
List<Player> target = new ArrayList<>();
|
||||
if (args[1].equalsIgnoreCase("all")) {
|
||||
target.addAll(Bukkit.getOnlinePlayers());
|
||||
} else {
|
||||
Player player = Bukkit.getPlayerExact(args[1]);
|
||||
if (player == null) {
|
||||
TLocale.sendTo(sender, "commands-taboolocale-send-offline", args[1]);
|
||||
return;
|
||||
}
|
||||
target.add(player);
|
||||
}
|
||||
|
||||
if (args.length > 3) {
|
||||
String[] vars = new String[args.length - 3];
|
||||
for (int i = 3 ; i < args.length ; i++) {
|
||||
vars[i - 3] = args[i];
|
||||
}
|
||||
target.forEach(x -> TLocale.sendTo(x, args[2], vars));
|
||||
} else {
|
||||
target.forEach(x -> TLocale.sendTo(x, args[2]));
|
||||
}
|
||||
|
||||
if (sender instanceof Player) {
|
||||
TLocale.sendTo(sender, "commands-taboolocale-send-success");
|
||||
}
|
||||
}
|
||||
|
||||
void reload(CommandSender sender) {
|
||||
TLocale.reload();
|
||||
TLocale.sendTo(sender, "commands-taboolocale-reload");
|
||||
}
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command arg1, String label, String[] args) {
|
||||
if (args.length == 0) {
|
||||
sender.sendMessage("§f");
|
||||
sender.sendMessage("§b§l----- §3§lTabooLibLoacle Commands §b§l-----");
|
||||
sender.sendMessage("§f");
|
||||
sender.sendMessage("§f /tloacle send §8[§7玩家/ALL§8] §8[§7语言§8] §8<§7变量§8> §6- §e发送语言提示");
|
||||
sender.sendMessage("§f /tloacle reload §6- §e重载语言库");
|
||||
sender.sendMessage("§f");
|
||||
} else if (args[0].equalsIgnoreCase("send")) {
|
||||
send(sender, args);
|
||||
} else if (args[0].equalsIgnoreCase("reload")) {
|
||||
reload(sender);
|
||||
} else {
|
||||
MsgUtils.send(sender, "§4参数错误");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void send(CommandSender sender, String[] args) {
|
||||
if (args.length < 3) {
|
||||
MsgUtils.send(sender, "§4参数错误");
|
||||
return;
|
||||
}
|
||||
|
||||
List<Player> target = new ArrayList<>();
|
||||
if (args[1].equalsIgnoreCase("all")) {
|
||||
target.addAll(Bukkit.getOnlinePlayers());
|
||||
} else {
|
||||
Player player = Bukkit.getPlayerExact(args[1]);
|
||||
if (player == null) {
|
||||
MsgUtils.send(sender, "§4玩家不在线");
|
||||
return;
|
||||
}
|
||||
target.add(player);
|
||||
}
|
||||
|
||||
if (args.length > 3) {
|
||||
String[] vars = new String[args.length - 3];
|
||||
IntStream.range(3, args.length).forEach(i -> vars[i - 3] = args[i]);
|
||||
target.forEach(x -> TLocale.sendTo(x, args[2], vars));
|
||||
} else {
|
||||
target.forEach(x -> TLocale.sendTo(x, args[2]));
|
||||
}
|
||||
|
||||
if (sender instanceof Player) {
|
||||
MsgUtils.send(sender, "§7信息已发送");
|
||||
}
|
||||
}
|
||||
|
||||
void reload(CommandSender sender) {
|
||||
TLocale.reload();
|
||||
MsgUtils.send(sender, "§7重载完成");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package me.skymc.taboolib.commands.sub;
|
||||
|
||||
import com.ilummc.tlib.resources.TLocale;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import me.skymc.taboolib.commands.SubCommand;
|
||||
@@ -8,28 +10,17 @@ import me.skymc.taboolib.jsonformatter.JSONFormatter;
|
||||
import me.skymc.taboolib.jsonformatter.click.SuggestCommandEvent;
|
||||
import me.skymc.taboolib.jsonformatter.hover.ShowTextEvent;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class AttributesCommand extends SubCommand {
|
||||
|
||||
public AttributesCommand(CommandSender sender, String[] args) {
|
||||
super(sender, args);
|
||||
|
||||
sender.sendMessage("§f");
|
||||
sender.sendMessage("§b§l----- §3§lItemStack Attributes §b§l-----");
|
||||
sender.sendMessage("§f");
|
||||
|
||||
String[] attributes = new String[] { "damage", "speed", "attackspeed", "health", "knockback", "armor", "luck" };
|
||||
|
||||
for (String name : attributes) {
|
||||
if (isPlayer()) {
|
||||
JSONFormatter json = new JSONFormatter();
|
||||
json.append(" §7- §f" + name);
|
||||
json.appendHoverClick(" §8(点击复制)", new ShowTextEvent("§f点击复制"), new SuggestCommandEvent(name));
|
||||
json.send((Player) sender);
|
||||
}
|
||||
else {
|
||||
sender.sendMessage(" §7- §f" + name);
|
||||
}
|
||||
}
|
||||
sender.sendMessage("§f");
|
||||
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.ATTRIBUTES.HEAD");
|
||||
|
||||
Arrays.stream(new String[] { "damage", "speed", "attackspeed", "health", "knockback", "armor", "luck" }).forEach(attribute -> TLocale.sendTo(sender, "COMMANDS.TABOOLIB.ATTRIBUTES.BODY", attribute));
|
||||
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.ATTRIBUTES.FOOT");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,35 +1,22 @@
|
||||
package me.skymc.taboolib.commands.sub;
|
||||
|
||||
import com.ilummc.tlib.resources.TLocale;
|
||||
import me.skymc.taboolib.commands.SubCommand;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import me.skymc.taboolib.commands.SubCommand;
|
||||
import me.skymc.taboolib.jsonformatter.JSONFormatter;
|
||||
import me.skymc.taboolib.jsonformatter.click.SuggestCommandEvent;
|
||||
import me.skymc.taboolib.jsonformatter.hover.ShowTextEvent;
|
||||
import java.util.Arrays;
|
||||
|
||||
public class EnchantCommand extends SubCommand {
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public EnchantCommand(CommandSender sender, String[] args) {
|
||||
super(sender, args);
|
||||
|
||||
sender.sendMessage("§f");
|
||||
sender.sendMessage("§b§l----- §3§lItemStack Enchantments §b§l-----");
|
||||
sender.sendMessage("§f");
|
||||
|
||||
for (Enchantment enchant : Enchantment.values()) {
|
||||
if (isPlayer()) {
|
||||
JSONFormatter json = new JSONFormatter();
|
||||
json.append(" §7- §f" + enchant.getId() + ". " + enchant.getName());
|
||||
json.appendHoverClick(" §8(点击复制)", new ShowTextEvent("§f点击复制"), new SuggestCommandEvent(enchant.getName()));
|
||||
json.send((Player) sender);
|
||||
}
|
||||
else {
|
||||
sender.sendMessage(" §7- §f" + enchant.getId() + ". " + enchant.getName());
|
||||
}
|
||||
}
|
||||
sender.sendMessage("§f");
|
||||
}
|
||||
@SuppressWarnings("deprecation")
|
||||
public EnchantCommand(CommandSender sender, String[] args) {
|
||||
super(sender, args);
|
||||
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.ENCHANTS.HEAD");
|
||||
|
||||
Arrays.stream(Enchantment.values()).forEach(enchant -> TLocale.sendTo(sender, "COMMANDS.TABOOLIB.ENCHANTS.BODY", String.valueOf(enchant.getId()), enchant.getName()));
|
||||
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.ENCHANTS.FOOT");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package me.skymc.taboolib.commands.sub;
|
||||
|
||||
import com.ilummc.tlib.resources.TLocale;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemFlag;
|
||||
|
||||
@@ -9,26 +11,17 @@ import me.skymc.taboolib.jsonformatter.JSONFormatter;
|
||||
import me.skymc.taboolib.jsonformatter.click.SuggestCommandEvent;
|
||||
import me.skymc.taboolib.jsonformatter.hover.ShowTextEvent;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class FlagCommand extends SubCommand {
|
||||
|
||||
public FlagCommand(CommandSender sender, String[] args) {
|
||||
super(sender, args);
|
||||
|
||||
sender.sendMessage("§f");
|
||||
sender.sendMessage("§b§l----- §3§lItemStack Flags §b§l-----");
|
||||
sender.sendMessage("§f");
|
||||
|
||||
for (ItemFlag flag : ItemFlag.values()) {
|
||||
if (isPlayer()) {
|
||||
JSONFormatter json = new JSONFormatter();
|
||||
json.append(" §7- §f" + flag.name());
|
||||
json.appendHoverClick(" §8(点击复制)", new ShowTextEvent("§f点击复制"), new SuggestCommandEvent(flag.name()));
|
||||
json.send((Player) sender);
|
||||
}
|
||||
else {
|
||||
sender.sendMessage(" §7- §f" + flag.name());
|
||||
}
|
||||
}
|
||||
sender.sendMessage("§f");
|
||||
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.FLAGS.HEAD");
|
||||
|
||||
Arrays.stream(ItemFlag.values()).forEach(itemFlag -> TLocale.sendTo(sender, "COMMANDS.TABOOLIB.ENCHANTS.BODY", itemFlag.name()));
|
||||
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.FLAGS.FOOT");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,84 +0,0 @@
|
||||
package me.skymc.taboolib.commands.sub;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.ConsoleCommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import me.skymc.taboolib.TabooLib;
|
||||
import me.skymc.taboolib.commands.SubCommand;
|
||||
import me.skymc.taboolib.jsonformatter.JSONFormatter;
|
||||
import me.skymc.taboolib.jsonformatter.click.SuggestCommandEvent;
|
||||
import me.skymc.taboolib.jsonformatter.hover.ShowTextEvent;
|
||||
|
||||
public class HelpCommand extends SubCommand {
|
||||
|
||||
public HelpCommand(CommandSender sender, String[] args) {
|
||||
super(sender, args);
|
||||
|
||||
HashMap<String, String> helps = new LinkedHashMap<>();
|
||||
helps.put("/taboolib save §8[§7名称§8]", "§e保存手中物品");
|
||||
helps.put("/taboolib item §8[§7名称§8] §8<§7玩家§8> §8<§7数量§8>", "§e给予玩家物品");
|
||||
helps.put("/taboolib iteminfo", "§e查看物品信息");
|
||||
helps.put("/taboolib itemlist", "§e查看所有物品");
|
||||
helps.put("/taboolib itemreload", "§e重载物品缓存");
|
||||
helps.put("§a", null);
|
||||
helps.put("/taboolib attributes", "§e查看所有属性");
|
||||
helps.put("/taboolib enchants", "§e查看所有附魔");
|
||||
helps.put("/taboolib potions", "§e查看所有药水");
|
||||
helps.put("/taboolib flags", "§e查看所有标签");
|
||||
helps.put("/taboolib slots", "§e查看所有部位");
|
||||
helps.put("/taboolib sounds", "§e查看所有音效");
|
||||
helps.put("§b", null);
|
||||
helps.put("/taboolib getvariable §8[§7-s|a§8] §8[§7键§8]", "§e查看变量");
|
||||
helps.put("/taboolib setvariable §8[§7-s|a§8] §8[§7键§8] §8[§7值§8]", "§e更改变量");
|
||||
helps.put("§c", null);
|
||||
helps.put("/taboolib cycle list", "§e列出所有时间检查器");
|
||||
helps.put("/taboolib cycle info §8[§7名称§8]", "§e查询检查器信息");
|
||||
helps.put("/taboolib cycle reset §8[§7名称§8]", "§e初始化时间检查器");
|
||||
helps.put("/taboolib cycle update §8[§7名称§8]", "§e更新时间检查器");
|
||||
helps.put("§f", null);
|
||||
helps.put("/taboolib shell load §8[§7名称§8]", "§e载入某个脚本");
|
||||
helps.put("/taboolib shell unload §8[§7名称§8]", "§e卸载某个脚本");
|
||||
helps.put("§g", null);
|
||||
helps.put("/taboolib tagprefix §8[§7名称§8] §8[§7文本§8]", "§e设置玩家头顶前缀");
|
||||
helps.put("/taboolib tagsuffix §8[§7名称§8] §8[§7文本§8]", "§e设置玩家头顶后缀");
|
||||
helps.put("/taboolib tagdelete §8[§7名称§8]", "§e删除玩家称号数据");
|
||||
helps.put("§e", null);
|
||||
helps.put("/taboolib importdata", "§4向数据库导入本地数据 §8(该操作将会清空数据库)");
|
||||
|
||||
if (sender instanceof ConsoleCommandSender || TabooLib.getVerint() < 10900) {
|
||||
sender.sendMessage("§f");
|
||||
sender.sendMessage("§b§l----- §3§lTaooLib Commands §b§l-----");
|
||||
sender.sendMessage("§f");
|
||||
// 遍历命令
|
||||
for (Entry<String, String> entry : helps.entrySet()) {
|
||||
if (entry.getValue() == null) {
|
||||
sender.sendMessage("§f");
|
||||
} else {
|
||||
sender.sendMessage("§f " + entry.getKey() + " §6- " + entry.getValue());
|
||||
}
|
||||
}
|
||||
sender.sendMessage("§f");
|
||||
}
|
||||
else if (sender instanceof Player) {
|
||||
JSONFormatter json = new JSONFormatter();
|
||||
json.append("§f"); json.newLine();
|
||||
json.append("§b§l----- §3§lTaooLib Commands §b§l-----"); json.newLine();
|
||||
json.append("§f"); json.newLine();
|
||||
// 遍历命令
|
||||
for (Entry<String, String> entry : helps.entrySet()) {
|
||||
if (entry.getValue() == null) {
|
||||
json.append("§f"); json.newLine();
|
||||
} else {
|
||||
json.appendHoverClick("§f " + entry.getKey() + " §6- " + entry.getValue(), new ShowTextEvent("§f点击复制指令"), new SuggestCommandEvent(entry.getKey().split("§")[0])); json.newLine();
|
||||
}
|
||||
}
|
||||
json.append("§f");
|
||||
json.send((Player) sender);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
package me.skymc.taboolib.commands.sub;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ilummc.tlib.resources.TLocale;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
@@ -18,28 +20,34 @@ public class ImportCommand extends SubCommand {
|
||||
super(sender, args);
|
||||
|
||||
if (isPlayer()) {
|
||||
MsgUtils.warn("改命令只能由控制台输入");
|
||||
TLocale.sendTo(sender, "COMMANDS.GLOBAL.ONLY-PLAYER");
|
||||
return;
|
||||
}
|
||||
else if (Main.getStorageType() == StorageType.LOCAL) {
|
||||
MsgUtils.warn("只有启用数据库储存时才能这么做");
|
||||
|
||||
if (Main.getStorageType() == StorageType.LOCAL) {
|
||||
TLocale.Logger.warn("COMMANDS.GLOBAL.ONLY-STORAGE-SQL");
|
||||
return;
|
||||
}
|
||||
else {
|
||||
MsgUtils.send("正在清空数据库...");
|
||||
Main.getConnection().truncateTable(Main.getTablePrefix() + "_playerdata");
|
||||
|
||||
MsgUtils.send("开始导入玩家数据...");
|
||||
int size = Main.getPlayerDataFolder().listFiles().length;
|
||||
int loop = 1;
|
||||
|
||||
for (File file : Main.getPlayerDataFolder().listFiles()) {
|
||||
FileConfiguration conf = YamlConfiguration.loadConfiguration(file);
|
||||
Main.getConnection().intoValue(Main.getTablePrefix() + "_playerdata", file.getName().replace(".yml", ""), ConfigUtils.encodeYAML(conf));
|
||||
|
||||
MsgUtils.send("导入玩家: &f" + file.getName().replace(".yml", "") + " &7进度: &f" + loop + "/" + size);
|
||||
loop++;
|
||||
}
|
||||
MsgUtils.send("导入完成!");
|
||||
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.IMPORTDATA.CLEARING");
|
||||
Main.getConnection().truncateTable(Main.getTablePrefix() + "_playerdata");
|
||||
|
||||
if (!Main.getPlayerDataFolder().exists()) {
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.IMPORTDATA.EMPTYDATA");
|
||||
return;
|
||||
}
|
||||
|
||||
int size = Objects.requireNonNull(Main.getPlayerDataFolder().listFiles()).length;
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.IMPORTDATA.IMPORTING-START", String.valueOf(size));
|
||||
|
||||
int loop = 1;
|
||||
for (File file : Objects.requireNonNull(Main.getPlayerDataFolder().listFiles())) {
|
||||
Main.getConnection().intoValue(Main.getTablePrefix() + "_playerdata", file.getName().replace(".yml", ""), ConfigUtils.encodeYAML(YamlConfiguration.loadConfiguration(file)));
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.IMPORTDATA.IMPORTING-PROGRESS", file.getName().replace(".yml", ""), String.valueOf(loop), String.valueOf(size));
|
||||
loop++;
|
||||
}
|
||||
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.IMPORTDATA.SUCCESS");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,51 +1,30 @@
|
||||
package me.skymc.taboolib.commands.sub;
|
||||
|
||||
import com.ilummc.tlib.resources.TLocale;
|
||||
import me.skymc.taboolib.commands.SubCommand;
|
||||
import me.skymc.taboolib.inventory.ItemUtils;
|
||||
import me.skymc.taboolib.itemnbtapi.NBTItem;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import me.skymc.taboolib.commands.SubCommand;
|
||||
import me.skymc.taboolib.inventory.ItemUtils;
|
||||
import me.skymc.taboolib.itemnbtapi.NBTItem;
|
||||
import me.skymc.taboolib.jsonformatter.JSONFormatter;
|
||||
import me.skymc.taboolib.jsonformatter.click.SuggestCommandEvent;
|
||||
import me.skymc.taboolib.jsonformatter.hover.ShowItemEvent;
|
||||
import me.skymc.taboolib.jsonformatter.hover.ShowTextEvent;
|
||||
import me.skymc.taboolib.message.MsgUtils;
|
||||
|
||||
public class InfoCommand extends SubCommand {
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public InfoCommand(CommandSender sender, String[] args) {
|
||||
super(sender, args);
|
||||
|
||||
if (isPlayer()) {
|
||||
Player player = (Player) sender;
|
||||
if (player.getItemInHand().getType().equals(Material.AIR)) {
|
||||
MsgUtils.send(player, "&7请手持正确物品");
|
||||
}
|
||||
else {
|
||||
sender.sendMessage("§f");
|
||||
sender.sendMessage("§b§l----- §3§lItemStack Info §b§l-----");
|
||||
sender.sendMessage("§f");
|
||||
|
||||
JSONFormatter json = new JSONFormatter();
|
||||
json.append("§7 - 物品材质: §f"); json.appendHoverClick("§f" + player.getItemInHand().getType().name(), new ShowTextEvent("§f点击复制"), new SuggestCommandEvent(player.getItemInHand().getType().name()));
|
||||
json.newLine();
|
||||
json.append("§7 - 物品名称: §f"); json.appendHoverClick("§f" + ItemUtils.getCustomName(player.getItemInHand()), new ShowTextEvent("§f点击复制"), new SuggestCommandEvent(ItemUtils.getCustomName(player.getItemInHand()).replace("§", "&")));
|
||||
json.newLine();
|
||||
json.append("§7 - 物品序号: §f" + player.getItemInHand().getTypeId() + ":" + player.getItemInHand().getDurability());
|
||||
json.newLine();
|
||||
json.append("§7 - 物品展示: §f"); json.appendHover(ItemUtils.getCustomName(player.getItemInHand()), new ShowItemEvent(player.getItemInHand()));
|
||||
json.send(player);
|
||||
|
||||
NBTItem nbt = new NBTItem(((Player) sender).getItemInHand());
|
||||
sender.sendMessage("§7 - 物品 NBT: §f");
|
||||
sender.sendMessage("§f");
|
||||
sender.sendMessage(nbt.toString());
|
||||
|
||||
sender.sendMessage("§f");
|
||||
}
|
||||
}
|
||||
}
|
||||
@SuppressWarnings("deprecation")
|
||||
public InfoCommand(CommandSender sender, String[] args) {
|
||||
super(sender, args);
|
||||
if (isPlayer()) {
|
||||
Player player = (Player) sender;
|
||||
if (player.getItemInHand().getType().equals(Material.AIR)) {
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.INFO.INVALID-ITEM");
|
||||
} else {
|
||||
NBTItem nbt = new NBTItem(player.getItemInHand());
|
||||
TLocale.sendTo(sender, "COMAMNDS.TABOOLIB.INFO.ITEM-INFO",
|
||||
player.getItemInHand().getType().name(),
|
||||
ItemUtils.getCustomName(player.getItemInHand()),
|
||||
player.getItemInHand().getTypeId() + ":" + player.getItemInHand().getDurability(),
|
||||
nbt.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,77 +1,64 @@
|
||||
package me.skymc.taboolib.commands.sub;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import com.ilummc.tlib.resources.TLocale;
|
||||
import me.skymc.taboolib.commands.SubCommand;
|
||||
import me.skymc.taboolib.inventory.ItemUtils;
|
||||
import me.skymc.taboolib.message.MsgUtils;
|
||||
import me.skymc.taboolib.other.NumberUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import me.skymc.taboolib.commands.SubCommand;
|
||||
import me.skymc.taboolib.inventory.ItemUtils;
|
||||
import me.skymc.taboolib.message.MsgUtils;
|
||||
import me.skymc.taboolib.other.NumberUtils;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class ItemCommand extends SubCommand {
|
||||
|
||||
/**
|
||||
* /TabooLib item 物品 玩家 数量
|
||||
*
|
||||
* @param sender
|
||||
* @param args
|
||||
*/
|
||||
public ItemCommand(CommandSender sender, String[] args) {
|
||||
super(sender, args);
|
||||
|
||||
if (args.length < 2) {
|
||||
MsgUtils.send(sender, "请输入正确的物品名称");
|
||||
setReturn(false);
|
||||
}
|
||||
else {
|
||||
if (ItemUtils.getCacheItem(args[1]) == null) {
|
||||
MsgUtils.send(sender, "物品 &f" + args[1] + "&7 不存在");
|
||||
setReturn(false);
|
||||
return;
|
||||
}
|
||||
|
||||
Player player;
|
||||
Integer amount = 1;
|
||||
ItemStack item = ItemUtils.getCacheItem(args[1]).clone();
|
||||
|
||||
if (args.length > 2) {
|
||||
player = Bukkit.getPlayerExact(args[2]);
|
||||
if (player == null) {
|
||||
MsgUtils.send(sender, "玩家 &f" + args[2] + "&7 不在线");
|
||||
setReturn(false);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if (sender instanceof Player) {
|
||||
player = (Player) sender;
|
||||
}
|
||||
else {
|
||||
MsgUtils.send(sender, "后台不允许这么做");
|
||||
setReturn(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (args.length > 3) {
|
||||
amount = NumberUtils.getInteger(args[3]);
|
||||
if (amount < 1) {
|
||||
MsgUtils.send(sender, "数量必须大于0");
|
||||
setReturn(false);
|
||||
return;
|
||||
}
|
||||
}
|
||||
item.setAmount(amount);
|
||||
|
||||
HashMap<Integer, ItemStack> map = player.getInventory().addItem(item);
|
||||
if (map.size() > 0) {
|
||||
player.getWorld().dropItem(player.getLocation(), item);
|
||||
}
|
||||
|
||||
MsgUtils.send(sender, "物品已发送至玩家 &f" + player.getName() + " &7的背包中");
|
||||
setReturn(true);
|
||||
}
|
||||
}
|
||||
|
||||
public ItemCommand(CommandSender sender, String[] args) {
|
||||
super(sender, args);
|
||||
|
||||
if (args.length < 2) {
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.ITEM.INVALID-NAME");
|
||||
return;
|
||||
}
|
||||
|
||||
if (ItemUtils.getCacheItem(args[1]) == null) {
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.ITEM.INVALID-ITEM", args[1]);
|
||||
return;
|
||||
}
|
||||
|
||||
Player player;
|
||||
Integer amount = 1;
|
||||
ItemStack item = ItemUtils.getCacheItem(args[1]).clone();
|
||||
|
||||
if (args.length > 2) {
|
||||
player = Bukkit.getPlayerExact(args[2]);
|
||||
if (player == null) {
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.ITEM.INVALID-PLAYER", args[2]);
|
||||
return;
|
||||
}
|
||||
} else if (sender instanceof Player) {
|
||||
player = (Player) sender;
|
||||
} else {
|
||||
TLocale.sendTo(sender, "COMMANDS.GLOBAL.ONLY-PLAYER");
|
||||
return;
|
||||
}
|
||||
|
||||
if (args.length > 3) {
|
||||
amount = NumberUtils.getInteger(args[3]);
|
||||
if (amount < 1) {
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.ITEM.INVALID-NUMBER");
|
||||
return;
|
||||
}
|
||||
}
|
||||
item.setAmount(amount);
|
||||
|
||||
HashMap<Integer, ItemStack> map = player.getInventory().addItem(item);
|
||||
if (map.size() > 0) {
|
||||
player.getWorld().dropItem(player.getLocation(), item);
|
||||
}
|
||||
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.ITEM.SUCCESS", player.getName());
|
||||
setReturn(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package me.skymc.taboolib.commands.sub;
|
||||
|
||||
import com.ilummc.tlib.resources.TLocale;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
@@ -9,29 +11,22 @@ import me.skymc.taboolib.jsonformatter.JSONFormatter;
|
||||
import me.skymc.taboolib.jsonformatter.click.SuggestCommandEvent;
|
||||
import me.skymc.taboolib.jsonformatter.hover.ShowTextEvent;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class PotionCommand extends SubCommand {
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public PotionCommand(CommandSender sender, String[] args) {
|
||||
super(sender, args);
|
||||
|
||||
sender.sendMessage("§f");
|
||||
sender.sendMessage("§b§l----- §3§lPotionEffect Types §b§l-----");
|
||||
sender.sendMessage("§f");
|
||||
|
||||
for (PotionEffectType type : PotionEffectType.values()) {
|
||||
if (type != null) {
|
||||
if (isPlayer()) {
|
||||
JSONFormatter json = new JSONFormatter();
|
||||
json.append(" §7- §f" + type.getId() + ". " + type.getName());
|
||||
json.appendHoverClick(" §8(点击复制)", new ShowTextEvent("§f点击复制"), new SuggestCommandEvent(type.getName()));
|
||||
json.send((Player) sender);
|
||||
}
|
||||
else {
|
||||
sender.sendMessage(" §7- §f" + type.getId() + ". " + type.getName() + "");
|
||||
}
|
||||
}
|
||||
}
|
||||
sender.sendMessage("§f");
|
||||
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.POTIONS.HEAD");
|
||||
|
||||
for (PotionEffectType potionEffectType : PotionEffectType.values()) {
|
||||
if (potionEffectType != null) {
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.POTIONS.BODY", String.valueOf(potionEffectType.getId()), potionEffectType.getName());
|
||||
}
|
||||
}
|
||||
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.POTIONS.FOOT");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,6 @@
|
||||
package me.skymc.taboolib.commands.sub;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import com.ilummc.tlib.resources.TLocale;
|
||||
import me.skymc.taboolib.Main;
|
||||
import me.skymc.taboolib.commands.SubCommand;
|
||||
import me.skymc.taboolib.fileutils.ConfigUtils;
|
||||
@@ -14,76 +9,78 @@ import me.skymc.taboolib.message.ChatCatcher;
|
||||
import me.skymc.taboolib.message.ChatCatcher.Catcher;
|
||||
import me.skymc.taboolib.message.MsgUtils;
|
||||
import me.skymc.taboolib.playerdata.DataUtils;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class SaveCommand extends SubCommand {
|
||||
|
||||
public SaveCommand(CommandSender sender, String[] args) {
|
||||
super(sender, args);
|
||||
if (!(sender instanceof Player)) {
|
||||
MsgUtils.send(sender, "&4后台无法这么做");
|
||||
return;
|
||||
}
|
||||
|
||||
if (args.length < 2) {
|
||||
MsgUtils.send(sender, "&4请输入正确的名称");
|
||||
return;
|
||||
}
|
||||
|
||||
if (((Player) sender).getItemInHand().getType().equals(Material.AIR)) {
|
||||
MsgUtils.send(sender, "&4你不能保存空气");
|
||||
return;
|
||||
}
|
||||
|
||||
if (ItemUtils.getItemCachesFinal().containsKey(args[1])) {
|
||||
MsgUtils.send(sender, "&4该名称所对应的物品保存于固定物品库中, 无法覆盖");
|
||||
return;
|
||||
}
|
||||
|
||||
if (ItemUtils.getItemCaches().containsKey(args[1])) {
|
||||
// 检查聊天引导
|
||||
if (ChatCatcher.contains((Player) sender)) {
|
||||
MsgUtils.send(sender, "&4你有一个正在进行的聊天引导, 请完成后在这么做");
|
||||
return;
|
||||
}
|
||||
|
||||
ChatCatcher.call((Player) sender, new ChatCatcher.Catcher() {
|
||||
|
||||
@Override
|
||||
public void cancel() {
|
||||
MsgUtils.send(sender, "&7退出引导");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Catcher before() {
|
||||
MsgUtils.send(sender, "物品 &f" + args[1] + "&7 已存在, 如果你想要覆盖它, 请在聊天框中输入 \"&f是&7\"");
|
||||
return this;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
public boolean after(String message) {
|
||||
if (message.equals("是")) {
|
||||
saveItem(args[1], ((Player) sender).getItemInHand());
|
||||
MsgUtils.send(sender, "物品 &f" + args[1] + " &7已替换");
|
||||
}
|
||||
else {
|
||||
MsgUtils.send(sender, "&7退出引导");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
saveItem(args[1], ((Player) sender).getItemInHand());
|
||||
MsgUtils.send(sender, "物品 &f" + args[1] + " &7已保存");
|
||||
}
|
||||
}
|
||||
public SaveCommand(CommandSender sender, String[] args) {
|
||||
super(sender, args);
|
||||
if (!(sender instanceof Player)) {
|
||||
TLocale.sendTo(sender, "COMMANDS.GLOBAL.ONLY-PLAYER");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
private void saveItem(String name, ItemStack item) {
|
||||
FileConfiguration conf = ConfigUtils.load(Main.getInst(), ItemUtils.getItemCacheFile());
|
||||
conf.set(name + ".bukkit", item);
|
||||
DataUtils.saveConfiguration(conf, ItemUtils.getItemCacheFile());
|
||||
ItemUtils.reloadItemCache();
|
||||
}
|
||||
if (args.length < 2) {
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.SAVE.INVALID-NAME");
|
||||
return;
|
||||
}
|
||||
|
||||
if (((Player) sender).getItemInHand().getType().equals(Material.AIR)) {
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.SAVE.INVALID-ITEM");
|
||||
return;
|
||||
}
|
||||
|
||||
if (ItemUtils.getItemCachesFinal().containsKey(args[1])) {
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.SAVE.INVALID-ITEM-FINAL-EXISTS");
|
||||
return;
|
||||
}
|
||||
|
||||
if (ItemUtils.getItemCaches().containsKey(args[1])) {
|
||||
// 检查聊天引导
|
||||
if (ChatCatcher.contains((Player) sender)) {
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.SAVE.GUIDE-EXISTS");
|
||||
return;
|
||||
}
|
||||
|
||||
ChatCatcher.call((Player) sender, new ChatCatcher.Catcher() {
|
||||
|
||||
@Override
|
||||
public void cancel() {
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.SAVE.GUIDE-QUIT");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Catcher before() {
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.SAVE.GUIDE-BEFORE", args[1]);
|
||||
return this;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
public boolean after(String message) {
|
||||
if (message.equalsIgnoreCase("yes")) {
|
||||
saveItem(args[1], ((Player) sender).getItemInHand());
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.SAVE.SUCCESS", args[1]);
|
||||
} else {
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.SAVE.GUIDE-QUIT");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
saveItem(args[1], ((Player) sender).getItemInHand());
|
||||
MsgUtils.send(sender, "物品 &f" + args[1] + " &7已保存");
|
||||
}
|
||||
}
|
||||
|
||||
private void saveItem(String name, ItemStack item) {
|
||||
FileConfiguration conf = ConfigUtils.load(Main.getInst(), ItemUtils.getItemCacheFile());
|
||||
conf.set(name + ".bukkit", item);
|
||||
DataUtils.saveConfiguration(conf, ItemUtils.getItemCacheFile());
|
||||
ItemUtils.reloadItemCache();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package me.skymc.taboolib.commands.sub;
|
||||
|
||||
import com.ilummc.tlib.resources.TLocale;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@@ -8,28 +9,17 @@ import me.skymc.taboolib.jsonformatter.JSONFormatter;
|
||||
import me.skymc.taboolib.jsonformatter.click.SuggestCommandEvent;
|
||||
import me.skymc.taboolib.jsonformatter.hover.ShowTextEvent;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class SlotCommand extends SubCommand {
|
||||
|
||||
public SlotCommand(CommandSender sender, String[] args) {
|
||||
super(sender, args);
|
||||
|
||||
sender.sendMessage("§f");
|
||||
sender.sendMessage("§b§l----- §3§lAttribute Slots §b§l-----");
|
||||
sender.sendMessage("§f");
|
||||
|
||||
String[] attributes = new String[] { "mainhand", "offhand", "feet", "legs", "chest", "head", "all" };
|
||||
|
||||
for (String name : attributes) {
|
||||
if (isPlayer()) {
|
||||
JSONFormatter json = new JSONFormatter();
|
||||
json.append(" §7- §f" + name);
|
||||
json.appendHoverClick(" §8(点击复制)", new ShowTextEvent("§f点击复制"), new SuggestCommandEvent(name));
|
||||
json.send((Player) sender);
|
||||
}
|
||||
else {
|
||||
sender.sendMessage(" §7- §f" + name);
|
||||
}
|
||||
}
|
||||
sender.sendMessage("§f");
|
||||
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.SLOTS.HEAD");
|
||||
|
||||
Arrays.stream(new String[] { "mainhand", "offhand", "feet", "legs", "chest", "head", "all" }).forEach(slots -> TLocale.sendTo(sender, "COMMANDS.TABOOLIB.SLOTS.BODY", slots));
|
||||
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.SLOTS.FOOT");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package me.skymc.taboolib.commands.sub;
|
||||
|
||||
import com.ilummc.tlib.resources.TLocale;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import me.skymc.taboolib.commands.SubCommand;
|
||||
@@ -12,10 +13,13 @@ public class VariableGetCommand extends SubCommand {
|
||||
super(sender, args);
|
||||
|
||||
if (args.length < 3) {
|
||||
MsgUtils.send(sender, "&4请输入正确的指令 ");
|
||||
TLocale.sendTo(sender, "COAMMNDS.PARAMETER.INSUFFICIENT");
|
||||
return;
|
||||
}
|
||||
else if (!(args[1].equals("-a") || args[1].equals("-s"))) {
|
||||
MsgUtils.send(sender, "&4请输入正确的读取方式");
|
||||
|
||||
if (!(args[1].equals("-a") || args[1].equals("-s"))) {
|
||||
TLocale.sendTo(sender, "COAMMNDS.TABOOLIB.VARIABLE.READ-ERROR-TYPE");
|
||||
return;
|
||||
}
|
||||
|
||||
Long time = System.currentTimeMillis();
|
||||
@@ -27,14 +31,8 @@ public class VariableGetCommand extends SubCommand {
|
||||
else if (args[1].equals("-a")) {
|
||||
value = GlobalDataManager.getVariableAsynchronous(args[2], null);
|
||||
}
|
||||
|
||||
if (value == null) {
|
||||
MsgUtils.send(sender, "读取完成, 耗时: &f" + (System.currentTimeMillis() - time) + " &7(ms)");
|
||||
MsgUtils.send(sender, "变量 &f" + args[2] + " &7不存在");
|
||||
}
|
||||
else {
|
||||
MsgUtils.send(sender, "读取完成, 耗时: &f" + (System.currentTimeMillis() - time) + " &7(ms)");
|
||||
MsgUtils.send(sender, "变量 &f" + args[2] + " &7的值为 &f" + value);
|
||||
}
|
||||
|
||||
TLocale.sendTo(sender, "COAMMNDS.TABOOLIB.VARIABLE.READ-SUCCESS", String.valueOf(System.currentTimeMillis() - time));
|
||||
TLocale.sendTo(sender, "COAMMNDS.TABOOLIB.VARIABLE.READ-RESULT", value == null ? "null" : value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package me.skymc.taboolib.commands.sub;
|
||||
|
||||
import com.ilummc.tlib.resources.TLocale;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import me.skymc.taboolib.commands.SubCommand;
|
||||
@@ -12,10 +13,13 @@ public class VariableSetCommand extends SubCommand {
|
||||
super(sender, args);
|
||||
|
||||
if (args.length < 4) {
|
||||
MsgUtils.send(sender, "&4请输入正确的指令 ");
|
||||
TLocale.sendTo(sender, "COAMMNDS.PARAMETER.INSUFFICIENT");
|
||||
return;
|
||||
}
|
||||
else if (!(args[1].equals("-a") || args[1].equals("-s"))) {
|
||||
MsgUtils.send(sender, "&4请输入正确的写入方式");
|
||||
|
||||
if (!(args[1].equals("-a") || args[1].equals("-s"))) {
|
||||
TLocale.sendTo(sender, "COAMMNDS.TABOOLIB.VARIABLE.WRITE-ERROR-TYPE");
|
||||
return;
|
||||
}
|
||||
|
||||
Long time = System.currentTimeMillis();
|
||||
@@ -27,8 +31,8 @@ public class VariableSetCommand extends SubCommand {
|
||||
else if (args[1].equals("-a")) {
|
||||
GlobalDataManager.setVariableAsynchronous(args[2], value);
|
||||
}
|
||||
|
||||
MsgUtils.send(sender, "写入完成, 耗时: &f" + (System.currentTimeMillis() - time) + " &7(ms)");
|
||||
|
||||
TLocale.sendTo(sender, "COAMMNDS.TABOOLIB.VARIABLE.WRITE-SUCCESS", String.valueOf(System.currentTimeMillis() - time));
|
||||
setReturn(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,36 +1,31 @@
|
||||
package me.skymc.taboolib.commands.sub.cycle;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import com.ilummc.tlib.resources.TLocale;
|
||||
import me.skymc.taboolib.commands.SubCommand;
|
||||
import me.skymc.taboolib.message.MsgUtils;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class CycleCommand extends SubCommand {
|
||||
|
||||
public CycleCommand(CommandSender sender, String[] args) {
|
||||
super(sender, args);
|
||||
if (args.length > 1) {
|
||||
if (args[1].equalsIgnoreCase("list")) {
|
||||
new CycleListCommand(sender, args);
|
||||
}
|
||||
else if (args[1].equalsIgnoreCase("info")) {
|
||||
new CycleInfoCommand(sender, args);
|
||||
}
|
||||
else if (args[1].equalsIgnoreCase("reset")) {
|
||||
new CycleResetCommand(sender, args);
|
||||
}
|
||||
else if (args[1].equalsIgnoreCase("update")) {
|
||||
new CycleUpdateCommand(sender, args);
|
||||
}
|
||||
}
|
||||
else {
|
||||
MsgUtils.send(sender, "&4指令错误");
|
||||
}
|
||||
}
|
||||
public CycleCommand(CommandSender sender, String[] args) {
|
||||
super(sender, args);
|
||||
if (args.length > 1) {
|
||||
if (args[1].equalsIgnoreCase("list")) {
|
||||
new CycleListCommand(sender, args);
|
||||
} else if (args[1].equalsIgnoreCase("info")) {
|
||||
new CycleInfoCommand(sender, args);
|
||||
} else if (args[1].equalsIgnoreCase("reset")) {
|
||||
new CycleResetCommand(sender, args);
|
||||
} else if (args[1].equalsIgnoreCase("update")) {
|
||||
new CycleUpdateCommand(sender, args);
|
||||
}
|
||||
} else {
|
||||
TLocale.sendTo(sender, "COMMANDS.PARAMETER.UNKNOWN");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean command() {
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean command() {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
package me.skymc.taboolib.commands.sub.itemlist;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import me.skymc.taboolib.commands.SubCommand;
|
||||
import me.skymc.taboolib.commands.sub.itemlist.listener.ItemLibraryPatch;
|
||||
import me.skymc.taboolib.other.NumberUtils;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
* @author sky
|
||||
@@ -13,19 +12,14 @@ import me.skymc.taboolib.other.NumberUtils;
|
||||
*/
|
||||
public class ItemListCommand extends SubCommand {
|
||||
|
||||
/**
|
||||
* @param sender
|
||||
* @param args
|
||||
*/
|
||||
public ItemListCommand(CommandSender sender, String[] args) {
|
||||
super(sender, args);
|
||||
if (isPlayer()) {
|
||||
if (args.length == 1) {
|
||||
ItemLibraryPatch.openInventory((Player) sender, 1);
|
||||
}
|
||||
else {
|
||||
ItemLibraryPatch.openInventory((Player) sender, NumberUtils.getInteger(args[1]));
|
||||
}
|
||||
}
|
||||
}
|
||||
public ItemListCommand(CommandSender sender, String[] args) {
|
||||
super(sender, args);
|
||||
if (isPlayer()) {
|
||||
if (args.length == 1) {
|
||||
ItemLibraryPatch.openInventory((Player) sender, 1);
|
||||
} else {
|
||||
ItemLibraryPatch.openInventory((Player) sender, NumberUtils.getInteger(args[1]));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
package me.skymc.taboolib.commands.sub.itemlist.listener;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
|
||||
import com.ilummc.tlib.resources.TLocale;
|
||||
import me.skymc.taboolib.inventory.InventoryUtil;
|
||||
import me.skymc.taboolib.inventory.ItemUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -16,97 +14,96 @@ import org.bukkit.inventory.InventoryHolder;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import me.skymc.taboolib.inventory.InventoryUtil;
|
||||
import me.skymc.taboolib.inventory.ItemUtils;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author sky
|
||||
* @since 2018年2月4日 下午4:35:00
|
||||
*/
|
||||
public class ItemLibraryPatch implements Listener {
|
||||
|
||||
/**
|
||||
* 打开物品库界面
|
||||
*
|
||||
* @param player
|
||||
* @param page
|
||||
*/
|
||||
public static void openInventory(Player player, int page) {
|
||||
ItemLibraryHolder holder = new ItemLibraryHolder(page);
|
||||
Inventory inventory = Bukkit.createInventory(holder, 54, "物品库");
|
||||
|
||||
LinkedHashMap<String, ItemStack> map = new LinkedHashMap<>();
|
||||
map.putAll(ItemUtils.getItemCachesFinal());
|
||||
map.putAll(ItemUtils.getItemCaches());
|
||||
/**
|
||||
* 打开物品库界面
|
||||
*
|
||||
* @param player
|
||||
* @param page
|
||||
*/
|
||||
public static void openInventory(Player player, int page) {
|
||||
ItemLibraryHolder holder = new ItemLibraryHolder(page);
|
||||
Inventory inventory = Bukkit.createInventory(holder, 54, TLocale.asString("COMMANDS.TABOOLIB.ITEMLIST.MENU.TITLE", String.valueOf(page)));
|
||||
|
||||
int loop = 0;
|
||||
for (String name : map.keySet()) {
|
||||
if (loop >= (page - 1) * 28) {
|
||||
if (loop < page * 28) {
|
||||
int slot = InventoryUtil.SLOT_OF_CENTENTS.get(loop - ((page - 1) * 28));
|
||||
ItemStack item = map.get(name).clone();
|
||||
{
|
||||
ItemMeta meta = item.getItemMeta();
|
||||
List<String> lore = meta.hasLore() ? meta.getLore() : new ArrayList<>();
|
||||
lore.add("§f");
|
||||
lore.add("§f§m ");
|
||||
lore.add("§f序列号: §8" + name);
|
||||
meta.setLore(lore);
|
||||
item.setItemMeta(meta);
|
||||
inventory.setItem(slot, item);
|
||||
}
|
||||
holder.ITEMS_DATA.put(slot, name);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
loop++;
|
||||
}
|
||||
LinkedHashMap<String, ItemStack> map = new LinkedHashMap<>();
|
||||
map.putAll(ItemUtils.getItemCachesFinal());
|
||||
map.putAll(ItemUtils.getItemCaches());
|
||||
|
||||
if (page > 1) {
|
||||
inventory.setItem(47, ItemUtils.setName(new ItemStack(Material.ARROW), "§f上一页"));
|
||||
}
|
||||
if (((int) Math.ceil(map.size() / 28D)) > page) {
|
||||
inventory.setItem(51, ItemUtils.setName(new ItemStack(Material.ARROW), "§f下一页"));
|
||||
}
|
||||
player.openInventory(inventory);
|
||||
}
|
||||
int loop = 0;
|
||||
for (String name : map.keySet()) {
|
||||
if (loop >= (page - 1) * 28) {
|
||||
if (loop < page * 28) {
|
||||
int slot = InventoryUtil.SLOT_OF_CENTENTS.get(loop - ((page - 1) * 28));
|
||||
inventory.setItem(slot, getItem(map, name));
|
||||
holder.ITEMS_DATA.put(slot, name);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
loop++;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void inventoryClick(InventoryClickEvent e) {
|
||||
if (e.getInventory().getHolder() instanceof ItemLibraryHolder) {
|
||||
e.setCancelled(true);
|
||||
if (page > 1) {
|
||||
inventory.setItem(47, ItemUtils.setName(new ItemStack(Material.ARROW), TLocale.asString("COMMANDS.TABOOLIB.ITEMLIST.MENU.BACK")));
|
||||
}
|
||||
if (((int) Math.ceil(map.size() / 28D)) > page) {
|
||||
inventory.setItem(51, ItemUtils.setName(new ItemStack(Material.ARROW), TLocale.asString("COMMANDS.TABOOLIB.ITEMLIST.MENU.NEXT")));
|
||||
}
|
||||
player.openInventory(inventory);
|
||||
}
|
||||
|
||||
if (e.getCurrentItem() == null || e.getCurrentItem().getType().equals(Material.AIR) || e.getRawSlot() >= e.getInventory().getSize()) {
|
||||
return;
|
||||
}
|
||||
@EventHandler
|
||||
public void inventoryClick(InventoryClickEvent e) {
|
||||
if (e.getInventory().getHolder() instanceof ItemLibraryHolder) {
|
||||
e.setCancelled(true);
|
||||
|
||||
switch (e.getRawSlot()) {
|
||||
case 47:
|
||||
openInventory((Player) e.getWhoClicked(), ((ItemLibraryHolder) e.getInventory().getHolder()).PAGE - 1);
|
||||
break;
|
||||
case 51:
|
||||
openInventory((Player) e.getWhoClicked(), ((ItemLibraryHolder) e.getInventory().getHolder()).PAGE + 1);
|
||||
break;
|
||||
default:
|
||||
e.getWhoClicked().getInventory().addItem(ItemUtils.getCacheItem(((ItemLibraryHolder) e.getInventory().getHolder()).ITEMS_DATA.get(e.getRawSlot())));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class ItemLibraryHolder implements InventoryHolder {
|
||||
if (e.getCurrentItem() == null || e.getCurrentItem().getType().equals(Material.AIR) || e.getRawSlot() >= e.getInventory().getSize()) {
|
||||
return;
|
||||
}
|
||||
|
||||
public final int PAGE;
|
||||
public final HashMap<Integer, String> ITEMS_DATA = new HashMap<>();
|
||||
|
||||
public ItemLibraryHolder(int page) {
|
||||
this.PAGE = page;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Inventory getInventory() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
int i = e.getRawSlot();
|
||||
if (i == 47) {
|
||||
openInventory((Player) e.getWhoClicked(), ((ItemLibraryHolder) e.getInventory().getHolder()).PAGE - 1);
|
||||
} else if (i == 51) {
|
||||
openInventory((Player) e.getWhoClicked(), ((ItemLibraryHolder) e.getInventory().getHolder()).PAGE + 1);
|
||||
} else {
|
||||
e.getWhoClicked().getInventory().addItem(ItemUtils.getCacheItem(((ItemLibraryHolder) e.getInventory().getHolder()).ITEMS_DATA.get(e.getRawSlot())));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static ItemStack getItem(HashMap<String, ItemStack> map, String name) {
|
||||
ItemStack item = map.get(name).clone();
|
||||
ItemMeta meta = item.getItemMeta();
|
||||
List<String> lore = meta.hasLore() ? meta.getLore() : new ArrayList<>();
|
||||
lore.addAll(TLocale.asStringList("COMMANDS.TABOOLIB.ITEMLIST.MENU.LORE", name));
|
||||
meta.setLore(lore);
|
||||
item.setItemMeta(meta);
|
||||
return item;
|
||||
}
|
||||
|
||||
public static class ItemLibraryHolder implements InventoryHolder {
|
||||
|
||||
public final int PAGE;
|
||||
public final HashMap<Integer, String> ITEMS_DATA = new HashMap<>();
|
||||
|
||||
public ItemLibraryHolder(int page) {
|
||||
this.PAGE = page;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Inventory getInventory() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,30 +1,28 @@
|
||||
package me.skymc.taboolib.commands.sub.shell;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import com.ilummc.tlib.resources.TLocale;
|
||||
import me.skymc.taboolib.commands.SubCommand;
|
||||
import me.skymc.taboolib.message.MsgUtils;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class ShellCommand extends SubCommand {
|
||||
|
||||
public ShellCommand(CommandSender sender, String[] args) {
|
||||
super(sender, args);
|
||||
if (args.length > 1) {
|
||||
if (args[1].equalsIgnoreCase("load")) {
|
||||
new ShellLoadCommand(sender, args);
|
||||
}
|
||||
else if (args[1].equalsIgnoreCase("unload")) {
|
||||
new ShellUnloadCommand(sender, args);
|
||||
}
|
||||
}
|
||||
else {
|
||||
MsgUtils.send(sender, "&4指令错误");
|
||||
}
|
||||
}
|
||||
public ShellCommand(CommandSender sender, String[] args) {
|
||||
super(sender, args);
|
||||
if (args.length > 1) {
|
||||
if (args[1].equalsIgnoreCase("load")) {
|
||||
new ShellLoadCommand(sender, args);
|
||||
} else if (args[1].equalsIgnoreCase("unload")) {
|
||||
new ShellUnloadCommand(sender, args);
|
||||
}
|
||||
} else {
|
||||
TLocale.sendTo(sender, "COMMANDS.PARAMETER.UNKNOWN");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean command() {
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean command() {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package me.skymc.taboolib.commands.sub.shell;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import com.ilummc.tlib.resources.TLocale;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import me.skymc.taboolib.commands.SubCommand;
|
||||
@@ -13,18 +14,18 @@ public class ShellLoadCommand extends SubCommand {
|
||||
public ShellLoadCommand(CommandSender sender, String[] args) {
|
||||
super(sender, args);
|
||||
if (args.length < 3) {
|
||||
MsgUtils.send(sender, "&c请输入正确的脚本名称");
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.JAVASHELL.INVALID-NAME");
|
||||
return;
|
||||
}
|
||||
|
||||
File file = new File(JavaShell.getScriptFolder(), args[2].contains(".java") ? args[2] : args[2] + ".java");
|
||||
if (!file.exists()) {
|
||||
MsgUtils.send(sender, "&c脚本 &4" + args[2] + "&c 不存在");
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.JAVASHELL.INVALID-SHELL", args[2]);
|
||||
return;
|
||||
}
|
||||
|
||||
if (JavaShell.reloadShell(args[2])) {
|
||||
MsgUtils.send(sender, "脚本 " + args[2] + " 已载入");
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.JAVASHELL.SUCCESS-LOAD", args[2]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package me.skymc.taboolib.commands.sub.shell;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import com.ilummc.tlib.resources.TLocale;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import me.skymc.taboolib.commands.SubCommand;
|
||||
@@ -13,18 +14,18 @@ public class ShellUnloadCommand extends SubCommand {
|
||||
public ShellUnloadCommand(CommandSender sender, String[] args) {
|
||||
super(sender, args);
|
||||
if (args.length < 3) {
|
||||
MsgUtils.send(sender, "&c请输入正确的脚本名称");
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.JAVASHELL.INVALID-NAME");
|
||||
return;
|
||||
}
|
||||
|
||||
File file = new File(JavaShell.getScriptFolder(), args[2].contains(".java") ? args[2] : args[2] + ".java");
|
||||
if (!file.exists()) {
|
||||
MsgUtils.send(sender, "&c脚本 &4" + args[2] + "&c 不存在");
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.JAVASHELL.INVALID-SHELL", args[2]);
|
||||
return;
|
||||
}
|
||||
|
||||
JavaShell.unloadShell(args[2]);
|
||||
MsgUtils.send(sender, "脚本 " + args[2] + " 已卸载");
|
||||
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.JAVASHELL.SUCCESS-UNLOAD", args[2]);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,31 +1,27 @@
|
||||
package me.skymc.taboolib.commands.sub.sounds;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import me.skymc.taboolib.commands.SubCommand;
|
||||
import me.skymc.taboolib.commands.sub.sounds.listener.SoundsLibraryPatch;
|
||||
import me.skymc.taboolib.other.NumberUtils;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
* @author sky
|
||||
* @since 2018-03-18 21:02:26
|
||||
*/
|
||||
public class SoundsCommand extends SubCommand {
|
||||
|
||||
/**
|
||||
* @param sender
|
||||
* @param args
|
||||
*/
|
||||
public SoundsCommand(CommandSender sender, String[] args) {
|
||||
super(sender, args);
|
||||
if (isPlayer()) {
|
||||
if (args.length == 1) {
|
||||
SoundsLibraryPatch.openInventory((Player) sender, 1);
|
||||
}
|
||||
else {
|
||||
SoundsLibraryPatch.openInventory((Player) sender, NumberUtils.getInteger(args[1]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public SoundsCommand(CommandSender sender, String[] args) {
|
||||
super(sender, args);
|
||||
if (isPlayer()) {
|
||||
if (args.length == 1) {
|
||||
SoundsLibraryPatch.openInventory((Player) sender, 1, null);
|
||||
} else if (args.length == 2) {
|
||||
SoundsLibraryPatch.openInventory((Player) sender, NumberUtils.getInteger(args[1]), null);
|
||||
} else {
|
||||
SoundsLibraryPatch.openInventory((Player) sender, NumberUtils.getInteger(args[1]), args[2]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
package me.skymc.taboolib.commands.sub.sounds.listener;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
|
||||
import com.ilummc.tlib.resources.TLocale;
|
||||
import com.ilummc.tlib.resources.type.TLocaleJson;
|
||||
import me.skymc.taboolib.inventory.InventoryUtil;
|
||||
import me.skymc.taboolib.inventory.ItemUtils;
|
||||
import me.skymc.taboolib.jsonformatter.JSONFormatter;
|
||||
import me.skymc.taboolib.message.MsgUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Sound;
|
||||
@@ -15,95 +18,105 @@ import org.bukkit.inventory.InventoryHolder;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import me.skymc.taboolib.inventory.InventoryUtil;
|
||||
import me.skymc.taboolib.inventory.ItemUtils;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author sky
|
||||
* @since 2018年2月4日 下午4:35:00
|
||||
*/
|
||||
public class SoundsLibraryPatch implements Listener {
|
||||
|
||||
/**
|
||||
* 打开物品库界面
|
||||
*
|
||||
* @param player
|
||||
* @param page
|
||||
*/
|
||||
public static void openInventory(Player player, int page) {
|
||||
SoundLibraryHolder holder = new SoundLibraryHolder(page);
|
||||
Inventory inventory = Bukkit.createInventory(holder, 54, "音效库 " + page);
|
||||
|
||||
int loop = 0;
|
||||
for (Sound sound : Arrays.asList(Sound.values())) {
|
||||
if (loop >= (page - 1) * 28) {
|
||||
if (loop < page * 28) {
|
||||
int slot = InventoryUtil.SLOT_OF_CENTENTS.get(loop - ((page - 1) * 28));
|
||||
ItemStack item = new ItemStack(Material.MAP);
|
||||
{
|
||||
ItemMeta meta = item.getItemMeta();
|
||||
meta.setDisplayName("§f" + sound.name());
|
||||
meta.setLore(Arrays.asList("", "§f左键: §71 音调", "§f左键: §72 音调"));
|
||||
item.setItemMeta(meta);
|
||||
inventory.setItem(slot, item);
|
||||
}
|
||||
holder.SOUNDS_DATA.put(slot, sound);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
loop++;
|
||||
}
|
||||
public static void openInventory(Player player, int page, String search) {
|
||||
if (page < 1) {
|
||||
page = 1;
|
||||
}
|
||||
|
||||
if (page > 1) {
|
||||
inventory.setItem(47, ItemUtils.setName(new ItemStack(Material.ARROW), "§f上一页"));
|
||||
}
|
||||
if (((int) Math.ceil(Sound.values().length / 28D)) > page) {
|
||||
inventory.setItem(51, ItemUtils.setName(new ItemStack(Material.ARROW), "§f下一页"));
|
||||
}
|
||||
player.openInventory(inventory);
|
||||
}
|
||||
SoundLibraryHolder holder = new SoundLibraryHolder(page, search);
|
||||
Inventory inventory = Bukkit.createInventory(holder, 54, TLocale.asString("COMMANDS.TABOOLIB.SOUNDS.MENU.TITLE", String.valueOf(page)));
|
||||
List<Sound> soundFilter = Arrays.stream(Sound.values()).filter(sound -> search == null || sound.name().contains(search.toUpperCase())).collect(Collectors.toList());
|
||||
|
||||
@EventHandler
|
||||
public void inventoryClick(InventoryClickEvent e) {
|
||||
if (e.getInventory().getHolder() instanceof SoundLibraryHolder) {
|
||||
e.setCancelled(true);
|
||||
int loop = 0;
|
||||
for (Sound sound : soundFilter) {
|
||||
if (loop >= (page - 1) * 28) {
|
||||
if (loop < page * 28) {
|
||||
int slot = InventoryUtil.SLOT_OF_CENTENTS.get(loop - ((page - 1) * 28));
|
||||
inventory.setItem(slot, getSoundItem(sound.name()));
|
||||
holder.SOUNDS_DATA.put(slot, sound);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
loop++;
|
||||
}
|
||||
|
||||
if (e.getCurrentItem() == null || e.getCurrentItem().getType().equals(Material.AIR) || e.getRawSlot() >= e.getInventory().getSize()) {
|
||||
return;
|
||||
}
|
||||
if (page > 1) {
|
||||
inventory.setItem(47, ItemUtils.setName(new ItemStack(Material.ARROW), TLocale.asString("COMMANDS.TABOOLIB.SOUNDS.MENU.BACK")));
|
||||
}
|
||||
if (((int) Math.ceil(Sound.values().length / 28D)) > page) {
|
||||
inventory.setItem(51, ItemUtils.setName(new ItemStack(Material.ARROW), TLocale.asString("COMMANDS.TABOOLIB.SOUNDS.MENU.NEXT")));
|
||||
}
|
||||
|
||||
switch (e.getRawSlot()) {
|
||||
case 47:
|
||||
openInventory((Player) e.getWhoClicked(), ((SoundLibraryHolder) e.getInventory().getHolder()).PAGE - 1);
|
||||
break;
|
||||
case 51:
|
||||
openInventory((Player) e.getWhoClicked(), ((SoundLibraryHolder) e.getInventory().getHolder()).PAGE + 1);
|
||||
break;
|
||||
default:
|
||||
Sound sound = ((SoundLibraryHolder) e.getInventory().getHolder()).SOUNDS_DATA.get(e.getRawSlot());
|
||||
if (e.getClick().isLeftClick()) {
|
||||
((Player) e.getWhoClicked()).playSound(e.getWhoClicked().getLocation(), sound, 1f, 1f);
|
||||
} else {
|
||||
((Player) e.getWhoClicked()).playSound(e.getWhoClicked().getLocation(), sound, 1f, 2f);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class SoundLibraryHolder implements InventoryHolder {
|
||||
if (!(player.getOpenInventory().getTopInventory().getHolder() instanceof SoundLibraryHolder)) {
|
||||
TLocale.sendTo(player, "COMMANDS.TABOOLIB.SOUNDS.RESULT.SEARCH", (search == null ? "*" : search), String.valueOf(soundFilter.size()));
|
||||
}
|
||||
player.openInventory(inventory);
|
||||
}
|
||||
|
||||
public final int PAGE;
|
||||
public final HashMap<Integer, Sound> SOUNDS_DATA = new HashMap<>();
|
||||
|
||||
public SoundLibraryHolder(int page) {
|
||||
this.PAGE = page;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Inventory getInventory() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@EventHandler
|
||||
public void inventoryClick(InventoryClickEvent e) {
|
||||
if (e.getInventory().getHolder() instanceof SoundLibraryHolder) {
|
||||
e.setCancelled(true);
|
||||
|
||||
if (e.getCurrentItem() == null || e.getCurrentItem().getType().equals(Material.AIR) || e.getRawSlot() >= e.getInventory().getSize()) {
|
||||
return;
|
||||
}
|
||||
|
||||
SoundLibraryHolder soundLibraryHolder = ((SoundLibraryHolder) e.getInventory().getHolder());
|
||||
int i = e.getRawSlot();
|
||||
if (i == 47) {
|
||||
openInventory((Player) e.getWhoClicked(), soundLibraryHolder.PAGE - 1, soundLibraryHolder.SEARCH);
|
||||
} else if (i == 51) {
|
||||
openInventory((Player) e.getWhoClicked(), soundLibraryHolder.PAGE + 1, soundLibraryHolder.SEARCH);
|
||||
} else {
|
||||
Sound sound = soundLibraryHolder.SOUNDS_DATA.get(e.getRawSlot());
|
||||
if (e.getClick().isLeftClick()) {
|
||||
((Player) e.getWhoClicked()).playSound(e.getWhoClicked().getLocation(), sound, 1f, 1f);
|
||||
} else if (e.getClick().isRightClick()) {
|
||||
((Player) e.getWhoClicked()).playSound(e.getWhoClicked().getLocation(), sound, 1f, 2f);
|
||||
} else if (e.getClick().isCreativeAction()) {
|
||||
TLocale.sendTo(e.getWhoClicked(), "COMMANDS.TABOOLIB.SOUNDS.RESULT.COPY", sound.name());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static ItemStack getSoundItem(String sound) {
|
||||
ItemStack item = new ItemStack(Material.MAP);
|
||||
ItemMeta meta = item.getItemMeta();
|
||||
meta.setDisplayName("§f§n" + sound);
|
||||
meta.setLore(TLocale.asStringList("COMMANDS.TABOOLIB.SOUNDS.MENU.LORE"));
|
||||
item.setItemMeta(meta);
|
||||
return item;
|
||||
}
|
||||
|
||||
public static class SoundLibraryHolder implements InventoryHolder {
|
||||
|
||||
public final int PAGE;
|
||||
public final String SEARCH;
|
||||
public final HashMap<Integer, Sound> SOUNDS_DATA = new HashMap<>();
|
||||
|
||||
public SoundLibraryHolder(int page, String search) {
|
||||
this.PAGE = page;
|
||||
this.SEARCH = search;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Inventory getInventory() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user