This commit is contained in:
Izzel_Aliz
2018-05-09 13:11:59 +08:00
129 changed files with 7406 additions and 4399 deletions

View File

@@ -15,45 +15,45 @@ 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")) {
if (args.length == 0 || "help".equalsIgnoreCase(args[0])) {
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.HELP", label);
} else if ("save".equalsIgnoreCase(args[0])) {
new SaveCommand(sender, args);
} else if (args[0].equalsIgnoreCase("enchants")) {
} else if ("enchants".equalsIgnoreCase(args[0])) {
new EnchantCommand(sender, args);
} else if (args[0].equalsIgnoreCase("potions")) {
} else if ("potions".equalsIgnoreCase(args[0])) {
new PotionCommand(sender, args);
} else if (args[0].equalsIgnoreCase("flags")) {
} else if ("flags".equalsIgnoreCase(args[0])) {
new FlagCommand(sender, args);
} else if (args[0].equalsIgnoreCase("attributes")) {
} else if ("attributes".equalsIgnoreCase(args[0])) {
new AttributesCommand(sender, args);
} else if (args[0].equalsIgnoreCase("slots")) {
} else if ("slots".equalsIgnoreCase(args[0])) {
new SlotCommand(sender, args);
} else if (args[0].equalsIgnoreCase("importdata")) {
} else if ("importdata".equalsIgnoreCase(args[0])) {
new ImportCommand(sender, args);
} else if (args[0].equalsIgnoreCase("iteminfo")) {
} else if ("iteminfo".equalsIgnoreCase(args[0])) {
new InfoCommand(sender, args);
} else if (args[0].equalsIgnoreCase("itemlist")) {
} else if ("itemlist".equalsIgnoreCase(args[0])) {
new ItemListCommand(sender, args);
} else if (args[0].equalsIgnoreCase("item") || args[0].equalsIgnoreCase("i")) {
} else if ("item".equalsIgnoreCase(args[0]) || "i".equalsIgnoreCase(args[0])) {
new ItemCommand(sender, args);
} else if (args[0].equalsIgnoreCase("setvariable")) {
} else if ("setvariable".equalsIgnoreCase(args[0])) {
new VariableSetCommand(sender, args);
} else if (args[0].equalsIgnoreCase("getvariable")) {
} else if ("getvariable".equalsIgnoreCase(args[0])) {
new VariableGetCommand(sender, args);
} else if (args[0].equalsIgnoreCase("shell") || args[0].equalsIgnoreCase("s")) {
} else if ("shell".equalsIgnoreCase(args[0]) || "s".equalsIgnoreCase(args[0])) {
new ShellCommand(sender, args);
} else if (args[0].equalsIgnoreCase("cycle") || args[0].equalsIgnoreCase("c")) {
} else if ("cycle".equalsIgnoreCase(args[0]) || "c".equalsIgnoreCase(args[0])) {
new CycleCommand(sender, args);
} else if (args[0].equalsIgnoreCase("sounds")) {
} else if ("sounds".equalsIgnoreCase(args[0])) {
new SoundsCommand(sender, args);
} else if (args[0].equalsIgnoreCase("tagprefix")) {
} else if ("tagprefix".equalsIgnoreCase(args[0])) {
new TagPrefixCommand(sender, args);
} else if (args[0].equalsIgnoreCase("tagsuffix")) {
} else if ("tagsuffix".equalsIgnoreCase(args[0])) {
new TagSuffixCommand(sender, args);
} else if (args[0].equalsIgnoreCase("tagdelete")) {
} else if ("tagdelete".equalsIgnoreCase(args[0])) {
new TagDeleteCommand(sender, args);
} else if (args[0].equalsIgnoreCase("itemreload") || args[0].equalsIgnoreCase("ireload")) {
} else if ("itemreload".equalsIgnoreCase(args[0]) || "ireload".equalsIgnoreCase(args[0])) {
ItemUtils.reloadItemCache();
ItemUtils.reloadItemName();
TLocale.sendTo(sender, "COMMANDS.RELOAD.SUCCESS-NORMAL");

View File

@@ -0,0 +1,29 @@
package me.skymc.taboolib.commands.internal;
/**
* @author Bkm016
* @since 2018-04-17
*/
public class InternalArgument {
private String name;
private boolean required;
public String getName() {
return name;
}
public boolean isRequired() {
return required;
}
public InternalArgument(String name, boolean required) {
this.name = name;
this.required = required;
}
@Override
public String toString() {
return required ? "§7[§8" + name + "§7]" : "§7<§8" + name + "§7>";
}
}

View File

@@ -0,0 +1,11 @@
package me.skymc.taboolib.commands.internal;
/**
* @Author sky
* @Since 2018-05-07 21:36
*/
public interface InternalCommand {
String getCommandTitle();
}

View File

@@ -0,0 +1,111 @@
package me.skymc.taboolib.commands.internal;
import com.ilummc.tlib.resources.TLocale;
import me.skymc.taboolib.Main;
import me.skymc.taboolib.TabooLib;
import me.skymc.taboolib.string.ArrayUtils;
import me.skymc.taboolib.string.StringUtils;
import org.bukkit.Bukkit;
import org.bukkit.command.*;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @Author sky
* @Since 2018-05-07 21:38
*/
public abstract class InternalCommandExecutor implements InternalCommand, CommandExecutor, TabExecutor {
private InternalCommandExecutor subExecutor;
private List<InternalSubCommandExecutor> subCommandExecutors = new ArrayList<>();
public static InternalCommandExecutor createCommandExecutor(String command, InternalCommandExecutor internalCommandExecutor) {
assert Bukkit.getPluginCommand(command) == null : "PluginCommand \"" + command + "\"not found";
assert internalCommandExecutor != null : "Executor can not be null";
assert internalCommandExecutor.getCommandTitle() != null : "Executor title can not be null";
assert internalCommandExecutor.getClass() != InternalCommandExecutor.class : "SubExecutor can not be \"InternalCommandExecutor.class\"";
internalCommandExecutor.setSubExecutor(internalCommandExecutor);
Bukkit.getPluginCommand(command).setExecutor(internalCommandExecutor);
Bukkit.getPluginCommand(command).setTabCompleter(internalCommandExecutor);
return internalCommandExecutor;
}
public void setSubExecutor(InternalCommandExecutor subExecutor) {
this.subExecutor = subExecutor;
}
public InternalCommandExecutor getSubExecutor() {
return subExecutor;
}
public List<InternalSubCommandExecutor> getSubCommandExecutors() {
return subCommandExecutors;
}
public void registerSubCommandExecutor(InternalSubCommandExecutor subCommandExecutor) {
assert subCommandExecutor.getLabel() != null : "Command label can not be null";
assert subCommandExecutor.getDescription() != null : "Command description can not be null";
assert subCommandExecutor.getArguments() != null : "Command arguments can not be null";
subCommandExecutors.add(subCommandExecutor);
}
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (args.length == 0) {
helpCommand(sender, label);
} else {
for (InternalSubCommandExecutor subCommand : subCommandExecutors) {
if (subCommand == null || !args[0].equalsIgnoreCase(subCommand.getLabel())) {
continue;
}
if (!isConfirmType(sender, subCommand.getType())) {
TLocale.sendTo(sender, "COMMANDS.INTERNAL.ONLY-PLAYER", args[0], TLocale.asString("COMMANDS.INTERNAL.TYPE-" + subCommand.getType()));
return true;
}
String[] subCommandArgs = ArrayUtils.removeFirst(args);
if (subCommand.isParameterConform(subCommandArgs)) {
subCommand.onCommand(sender, command, label, subCommandArgs);
} else {
TLocale.sendTo(sender, "COMMANDS.INTERNAL.ERROR-USAGE", args[0], subCommand.getCommandString(label));
}
return true;
}
new BukkitRunnable() {
@Override
public void run() {
List<InternalSubCommandExecutor> commandCompute = subCommandExecutors.stream().filter(Objects::nonNull).sorted((b, a) -> Double.compare(StringUtils.similarDegree(args[0], a.getLabel()), StringUtils.similarDegree(args[0], b.getLabel()))).collect(Collectors.toList());
if (commandCompute.size() > 0) {
TLocale.sendTo(sender, "COMMANDS.INTERNAL.ERROR-COMMAND", args[0], commandCompute.get(0).getCommandString(label).trim());
}
}
}.runTaskAsynchronously(Main.getInst());
}
return true;
}
@Override
public List<String> onTabComplete(CommandSender commandSender, Command command, String s, String[] args) {
return args.length == 1 ? subCommandExecutors.stream().filter(internalCommandExecutor -> internalCommandExecutor != null && (args[0].isEmpty() || internalCommandExecutor.getLabel().startsWith(args[0]))).map(InternalSubCommand::getLabel).collect(Collectors.toList()) : null;
}
private String getEmptyLine() {
return TabooLib.getVerint() < 10800 ? "~" : "";
}
private void helpCommand(CommandSender sender, String label) {
sender.sendMessage(getEmptyLine());
sender.sendMessage(subExecutor.getCommandTitle());
sender.sendMessage(getEmptyLine());
subCommandExecutors.stream().map(subCommand -> subCommand == null ? getEmptyLine() : subCommand.getCommandString(label)).forEach(sender::sendMessage);
sender.sendMessage(getEmptyLine());
}
private boolean isConfirmType(CommandSender sender, InternalSubCommandType commandType) {
return commandType == InternalSubCommandType.ALL || sender instanceof ConsoleCommandSender && commandType == InternalSubCommandType.CONSOLE;
}
}

View File

@@ -0,0 +1,20 @@
package me.skymc.taboolib.commands.internal;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
/**
* @author Bkm016
* @since 2018-04-17
*/
public interface InternalSubCommand {
String getLabel();
String getDescription();
InternalArgument[] getArguments();
void onCommand(CommandSender sender, Command command, String label, String[] args);
}

View File

@@ -0,0 +1,38 @@
package me.skymc.taboolib.commands.internal;
import java.util.stream.IntStream;
/**
* @author Bkm016
* @since 2018-04-17
*/
public abstract class InternalSubCommandExecutor implements InternalSubCommand {
public InternalSubCommandType getType() {
return InternalSubCommandType.ALL;
}
public boolean requiredPlayer() {
return false;
}
public boolean isParameterConform(String[] args) {
return IntStream.range(0, getArguments().length).noneMatch(i -> getArguments()[i].isRequired() && (args == null || args.length <= i));
}
public String getCommandString(String label) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(" §f/");
stringBuilder.append(label);
stringBuilder.append(" ");
stringBuilder.append(getLabel());
stringBuilder.append(" ");
for (InternalArgument parameter : getArguments()) {
stringBuilder.append(parameter.toString());
stringBuilder.append(" ");
}
stringBuilder.append("§6- §e");
stringBuilder.append(getDescription());
return stringBuilder.toString();
}
}

View File

@@ -0,0 +1,11 @@
package me.skymc.taboolib.commands.internal;
/**
* @author Bkm016
* @since 2018-04-17
*/
public enum InternalSubCommandType {
CONSOLE, PLAYER, ALL
}

View File

@@ -1,7 +1,7 @@
package me.skymc.taboolib.commands.language;
import com.ilummc.tlib.resources.TLocale;
import me.skymc.taboolib.Main;
import me.skymc.taboolib.message.MsgUtils;
import me.skymc.taboolib.string.language2.Language2Value;
import org.bukkit.Bukkit;
import org.bukkit.Material;
@@ -16,64 +16,57 @@ import org.bukkit.entity.Player;
*/
public class Language2Command implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (args.length == 0) {
sender.sendMessage("§f");
sender.sendMessage("§b§l----- §3§lLanguage2 Commands §b§l-----");
sender.sendMessage("§f");
sender.sendMessage("§f /language2 send §8[§7玩家/ALL§8] §8[§7语言§8] §8<§7变量§8> §6- §e发送语言提示");
sender.sendMessage("§f /language2 reload §6- §e重载语言库");
sender.sendMessage("§f");
}
else if (args[0].equalsIgnoreCase("reload")) {
MsgUtils.send(sender, "§7重载中..");
long time = System.currentTimeMillis();
Main.getExampleLanguage2().reload();
MsgUtils.send(sender, "§7重载完成! 耗时: &f" + (System.currentTimeMillis() - time) + "ms");
}
else if (args[0].equalsIgnoreCase("send")) {
if (args.length < 3) {
MsgUtils.send(sender, "§4参数错误");
}
else {
// 时间
long time = System.currentTimeMillis();
// 获取语言文件
Language2Value value = Main.getExampleLanguage2().get(args[2]);
// 如果有变量参数
if (args.length > 3) {
int i = 0;
for (String variable : args[3].split("\\|")) {
value.addPlaceholder("$" + i, variable);
i++;
}
}
// 如果是公告
if (args[1].equals("ALL")) {
// 发送信息
value.broadcast();
}
else {
// 获取玩家
Player player = Bukkit.getPlayerExact(args[1]);
if (player == null) {
MsgUtils.send(sender, "§4玩家不在线");
}
else {
// 发送信息
value.send(player);
}
}
// 如果发送者是玩家
if (sender instanceof Player && ((Player) sender).getItemInHand().getType().equals(Material.COMMAND)) {
MsgUtils.send(sender, "§7信息已发送, 本次计算耗时: &f" + (System.currentTimeMillis() - time) + "ms");
}
}
}
return true;
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (args.length == 0) {
TLocale.sendTo(sender, "COMMANDS.LANGUAGE2.HELP", label);
} else if ("reload".equalsIgnoreCase(args[0])) {
reload(sender);
} else if ("send".equalsIgnoreCase(args[0])) {
send(sender, args);
}
return true;
}
private void send(CommandSender sender, String[] args) {
if (args.length < 3) {
TLocale.sendTo(sender, "COMMANDS.PARAMETER.UNKNOWN");
} else {
long time = System.currentTimeMillis();
Language2Value value = getLanguage2Value(args);
if ("ALL".equalsIgnoreCase(args[1])) {
value.broadcast();
} else {
Player player = Bukkit.getPlayerExact(args[1]);
if (player == null) {
TLocale.sendTo(sender, "COMMANDS.LANGUAGE2.INVALID-PLAYER", args[1]);
} else {
value.send(player);
}
}
if (sender instanceof Player && ((Player) sender).getItemInHand().getType().equals(Material.COMMAND)) {
TLocale.sendTo(sender, "COMMANDS.LANGUAGE2.SUCCESS-SEND", String.valueOf(System.currentTimeMillis() - time));
}
}
}
private Language2Value getLanguage2Value(String[] args) {
Language2Value value = Main.getExampleLanguage2().get(args[2]);
if (args.length > 3) {
int i = 0;
for (String variable : args[3].split("\\|")) {
value.addPlaceholder("$" + i++, variable);
}
}
return value;
}
private void reload(CommandSender sender) {
TLocale.sendTo(sender, "COMMANDS.RELOAD.LOADING");
long time = System.currentTimeMillis();
Main.getExampleLanguage2().reload();
TLocale.sendTo(sender, "COMMANDS.RELOAD.SUCCESS-ELAPSED-TIME", String.valueOf(System.currentTimeMillis() - time));
}
}

View File

@@ -1,7 +1,6 @@
package me.skymc.taboolib.commands.locale;
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;
@@ -21,35 +20,31 @@ public class TabooLibLocaleCommand implements CommandExecutor {
@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")) {
TLocale.sendTo(sender, "COMMANDS.TLOCALE.HELP", label);
} else if ("send".equalsIgnoreCase(args[0])) {
send(sender, args);
} else if (args[0].equalsIgnoreCase("reload")) {
} else if ("reload".equalsIgnoreCase(args[0])) {
reload(sender);
} else {
MsgUtils.send(sender, "§4参数错误");
TLocale.sendTo(sender, "COMMANDS.PARAMETER.UNKNOWN");
}
return true;
}
void send(CommandSender sender, String[] args) {
if (args.length < 3) {
MsgUtils.send(sender, "§4参数错误");
TLocale.sendTo(sender, "COMMANDS.PARAMETER.UNKNOWN");
return;
}
long time = System.currentTimeMillis();
List<Player> target = new ArrayList<>();
if (args[1].equalsIgnoreCase("all")) {
if ("all".equalsIgnoreCase(args[1])) {
target.addAll(Bukkit.getOnlinePlayers());
} else {
Player player = Bukkit.getPlayerExact(args[1]);
if (player == null) {
MsgUtils.send(sender, "§4玩家不在线");
TLocale.sendTo(sender, "COMMANDS.TLOCALE.INVALID-PLAYER", args[1]);
return;
}
target.add(player);
@@ -64,13 +59,13 @@ public class TabooLibLocaleCommand implements CommandExecutor {
}
if (sender instanceof Player) {
MsgUtils.send(sender, "§7信息已发送");
TLocale.sendTo(sender, "COMMANDS.TLOCALE.SUCCESS-SEND", String.valueOf(System.currentTimeMillis() - time));
}
}
void reload(CommandSender sender) {
TLocale.reload();
MsgUtils.send(sender, "§7重载完成");
TLocale.sendTo(sender, "COMMANDS.TLOCALE.SUCCESS-RELOAD");
}
}

View File

@@ -0,0 +1,216 @@
package me.skymc.taboolib.commands.plugin;
import com.google.common.base.Joiner;
import com.ilummc.tlib.resources.TLocale;
import me.skymc.taboolib.commands.internal.InternalArgument;
import me.skymc.taboolib.commands.internal.InternalCommandExecutor;
import me.skymc.taboolib.commands.internal.InternalSubCommandExecutor;
import me.skymc.taboolib.plugin.PluginUtils;
import me.skymc.taboolib.string.ArrayUtils;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.Plugin;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Author sky
* @Since 2018-05-07 20:14
*/
public class TabooLibPluginCommand extends InternalCommandExecutor {
public TabooLibPluginCommand() {
listCommand();
infoCommand();
loadCommand();
unloadCommand();
reloadCommand();
}
@Override
public String getCommandTitle() {
return TLocale.asString("COMMANDS.TPLUGIN.COMMAND-TITLE");
}
void loadCommand() {
registerSubCommandExecutor(new InternalSubCommandExecutor() {
@Override
public String getLabel() {
return "load";
}
@Override
public String getDescription() {
return TLocale.asString("COMMANDS.TPLUGIN.LOAD.DESCRIPTION");
}
@Override
public InternalArgument[] getArguments() {
return new InternalArgument[]{new InternalArgument(TLocale.asString("COMMANDS.TPLUGIN.LOAD.ARGUMENTS.0"), true)};
}
@Override
public void onCommand(CommandSender sender, Command command, String label, String[] args) {
String name = ArrayUtils.arrayJoin(args, 0);
if (PluginUtils.getPluginByName(name) != null) {
TLocale.sendTo(sender, "COMMANDS.TPLUGIN.LOAD.INVALID-PLUGIN", name);
} else {
switch (PluginUtils.load(name)) {
case "loaded": {
TLocale.sendTo(sender, "COMMANDS.TPLUGIN.LOAD.LOAD-SUCCESS", name);
break;
}
default: {
TLocale.sendTo(sender, "COMMANDS.TPLUGIN.LOAD.LOAD-FALL", name);
}
}
}
}
});
}
void unloadCommand() {
registerSubCommandExecutor(new InternalSubCommandExecutor() {
@Override
public String getLabel() {
return "unload";
}
@Override
public String getDescription() {
return TLocale.asString("COMMANDS.TPLUGIN.UNLOAD.DESCRIPTION");
}
@Override
public InternalArgument[] getArguments() {
return new InternalArgument[]{new InternalArgument(TLocale.asString("COMMANDS.TPLUGIN.UNLOAD.ARGUMENTS.0"), true)};
}
@Override
public void onCommand(CommandSender sender, Command command, String label, String[] args) {
String name = ArrayUtils.arrayJoin(args, 0);
Plugin plugin = PluginUtils.getPluginByName(name);
if (plugin == null) {
TLocale.sendTo(sender, "COMMANDS.TPLUGIN.UNLOAD.INVALID-PLUGIN", name);
} else if (PluginUtils.isIgnored(plugin)) {
TLocale.sendTo(sender, "COMMANDS.TPLUGIN.UNLOAD.INVALID-PLUGIN-IGNORED", name);
} else {
switch (PluginUtils.unload(plugin)) {
case "unloaded": {
TLocale.sendTo(sender, "COMMANDS.TPLUGIN.UNLOAD.UNLOAD-SUCCESS", name);
break;
}
default: {
TLocale.sendTo(sender, "COMMANDS.TPLUGIN.UNLOAD.UNLOAD-FALL", name);
}
}
}
}
});
}
void reloadCommand() {
registerSubCommandExecutor(new InternalSubCommandExecutor() {
@Override
public String getLabel() {
return "reload";
}
@Override
public String getDescription() {
return TLocale.asString("COMMANDS.TPLUGIN.RELOAD.DESCRIPTION");
}
@Override
public InternalArgument[] getArguments() {
return new InternalArgument[]{new InternalArgument(TLocale.asString("COMMANDS.TPLUGIN.RELOAD.ARGUMENTS.0"), true)};
}
@Override
public void onCommand(CommandSender sender, Command command, String label, String[] args) {
String name = ArrayUtils.arrayJoin(args, 0);
Plugin plugin = PluginUtils.getPluginByName(name);
if (plugin == null) {
TLocale.sendTo(sender, "COMMANDS.TPLUGIN.RELOAD.INVALID-PLUGIN", name);
} else if (PluginUtils.isIgnored(plugin)) {
TLocale.sendTo(sender, "COMMANDS.TPLUGIN.RELOAD.INVALID-PLUGIN-IGNORED", name);
} else {
TLocale.sendTo(sender, "COMMANDS.TPLUGIN.RELOAD.TRY-RELOAD");
PluginUtils.reload(plugin);
}
}
});
}
void infoCommand() {
registerSubCommandExecutor(new InternalSubCommandExecutor() {
@Override
public String getLabel() {
return "info";
}
@Override
public String getDescription() {
return TLocale.asString("COMMANDS.TPLUGIN.INFO.DESCRIPTION");
}
@Override
public InternalArgument[] getArguments() {
return new InternalArgument[]{new InternalArgument(TLocale.asString("COMMANDS.TPLUGIN.INFO.ARGUMENTS.0"), true)};
}
@Override
public void onCommand(CommandSender sender, Command command, String label, String[] args) {
String name = ArrayUtils.arrayJoin(args, 0);
Plugin plugin = PluginUtils.getPluginByName(name);
if (plugin == null) {
TLocale.sendTo(sender, "COMMANDS.TPLUGIN.INFO.INVALID-PLUGIN", name);
} else {
TLocale.sendTo(sender, "COMMANDS.TPLUGIN.INFO.INFO-PLUGIN",
plugin.getName(),
String.valueOf(plugin.getDescription().getDescription()),
String.valueOf(plugin.getDescription().getAuthors()),
String.valueOf(plugin.getDescription().getDepend()),
String.valueOf(plugin.getDescription().getSoftDepend()),
String.valueOf(plugin.getDescription().getMain()),
String.valueOf(plugin.getDescription().getVersion()),
String.valueOf(plugin.getDescription().getWebsite()),
String.valueOf(plugin.getDescription().getCommands().keySet()));
}
}
});
}
void listCommand() {
registerSubCommandExecutor(new InternalSubCommandExecutor() {
@Override
public String getLabel() {
return "list";
}
@Override
public String getDescription() {
return TLocale.asString("COMMANDS.TPLUGIN.LIST.DESCRIPTION");
}
@Override
public InternalArgument[] getArguments() {
return new InternalArgument[0];
}
@Override
public void onCommand(CommandSender sender, Command command, String label, String[] args) {
List<String> pluginList = Arrays.stream(Bukkit.getPluginManager().getPlugins()).map(Plugin::getName).sorted(String.CASE_INSENSITIVE_ORDER).collect(Collectors.toList());
TLocale.sendTo(sender, "COMMANDS.TPLUGIN.LIST.LIST-PLUGIN", String.valueOf(Bukkit.getPluginManager().getPlugins().length), Joiner.on(", ").join(pluginList));
}
});
}
}

View File

@@ -62,7 +62,7 @@ public class SaveCommand extends SubCommand {
@SuppressWarnings("deprecation")
@Override
public boolean after(String message) {
if (message.equalsIgnoreCase("yes")) {
if ("yes".equalsIgnoreCase(message)) {
saveItem(args[1], ((Player) sender).getItemInHand());
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.SAVE.SUCCESS", args[1]);
} else {

View File

@@ -1,12 +1,12 @@
package me.skymc.taboolib.commands.sub;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.ilummc.tlib.resources.TLocale;
import me.skymc.taboolib.commands.SubCommand;
import me.skymc.taboolib.message.MsgUtils;
import me.skymc.taboolib.team.TagManager;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
/**
* @author sky
@@ -14,27 +14,23 @@ import me.skymc.taboolib.team.TagManager;
*/
public class TagDeleteCommand extends SubCommand {
/**
* @param sender
* @param args
*/
public TagDeleteCommand(CommandSender sender, String[] args) {
super(sender, args);
if (args.length < 2) {
MsgUtils.send(sender, "参数错误");
return;
}
Player player = Bukkit.getPlayerExact(args[1]);
if (player == null) {
MsgUtils.send(sender, "玩家 &f" + args[1] + " &7不在线");
return;
}
TagManager.getInst().removeData(player);
if (sender instanceof Player) {
MsgUtils.send(sender, "删除玩家 &f" + args[1] + " &7的称号数据");
}
}
public TagDeleteCommand(CommandSender sender, String[] args) {
super(sender, args);
if (args.length < 2) {
TLocale.sendTo(sender, "COMMANDS.PARAMETER.UNKNOWN");
return;
}
Player player = Bukkit.getPlayerExact(args[1]);
if (player == null) {
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.PLAYERTAG.INVALID-PLAYER", args[1]);
return;
}
TagManager.getInst().removeData(player);
if (sender instanceof Player) {
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.PLAYERTAG.SUCCESS-DELETE", args[1]);
}
}
}

View File

@@ -1,5 +1,6 @@
package me.skymc.taboolib.commands.sub;
import com.ilummc.tlib.resources.TLocale;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@@ -15,20 +16,16 @@ import me.skymc.taboolib.team.TagManager;
*/
public class TagPrefixCommand extends SubCommand {
/**
* @param sender
* @param args
*/
public TagPrefixCommand(CommandSender sender, String[] args) {
super(sender, args);
if (args.length < 3) {
MsgUtils.send(sender, "参数错误");
TLocale.sendTo(sender, "COMMANDS.PARAMETER.UNKNOWN");
return;
}
Player player = Bukkit.getPlayerExact(args[1]);
if (player == null) {
MsgUtils.send(sender, "玩家 &f" + args[1] + " &7不在线");
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.PLAYERTAG.INVALID-PLAYER", args[1]);
return;
}
@@ -39,7 +36,7 @@ public class TagPrefixCommand extends SubCommand {
TagManager.getInst().setPrefix(player, value);
if (sender instanceof Player) {
MsgUtils.send(sender, "设置玩家 &f" + args[1] + " &7的前缀为 &f" + value);
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.PLAYERTAG.SUCCESS-PREFIX-SET", args[1], value);
}
}

View File

@@ -1,13 +1,13 @@
package me.skymc.taboolib.commands.sub;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.ilummc.tlib.resources.TLocale;
import me.clip.placeholderapi.PlaceholderAPI;
import me.skymc.taboolib.commands.SubCommand;
import me.skymc.taboolib.message.MsgUtils;
import me.skymc.taboolib.team.TagManager;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
/**
* @author sky
@@ -15,32 +15,28 @@ import me.skymc.taboolib.team.TagManager;
*/
public class TagSuffixCommand extends SubCommand {
/**
* @param sender
* @param args
*/
public TagSuffixCommand(CommandSender sender, String[] args) {
super(sender, args);
if (args.length < 3) {
MsgUtils.send(sender, "参数错误");
return;
}
Player player = Bukkit.getPlayerExact(args[1]);
if (player == null) {
MsgUtils.send(sender, "玩家 &f" + args[1] + " &7不在线");
return;
}
String value = getArgs(2).replace("&", "§");
if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
value = PlaceholderAPI.setPlaceholders(player, value);
}
TagManager.getInst().setSuffix(player, value);
if (sender instanceof Player) {
MsgUtils.send(sender, "设置玩家 &f" + args[1] + " &7的后缀为 &f" + value);
}
}
public TagSuffixCommand(CommandSender sender, String[] args) {
super(sender, args);
if (args.length < 3) {
TLocale.sendTo(sender, "COMMANDS.PARAMETER.UNKNOWN");
return;
}
Player player = Bukkit.getPlayerExact(args[1]);
if (player == null) {
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.PLAYERTAG.INVALID-PLAYER", args[1]);
return;
}
String value = getArgs(2).replace("&", "§");
if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
value = PlaceholderAPI.setPlaceholders(player, value);
}
TagManager.getInst().setSuffix(player, value);
if (sender instanceof Player) {
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.PLAYERTAG.SUCCESS-SUFFIX-SET", args[1], value);
}
}
}

View File

@@ -5,32 +5,34 @@ import me.skymc.taboolib.commands.SubCommand;
import me.skymc.taboolib.database.GlobalDataManager;
import org.bukkit.command.CommandSender;
/**
* @author sky
*/
public class VariableGetCommand extends SubCommand {
public VariableGetCommand(CommandSender sender, String[] args) {
super(sender, args);
if (args.length < 3) {
public VariableGetCommand(CommandSender sender, String[] args) {
super(sender, args);
if (args.length < 3) {
TLocale.sendTo(sender, "COAMMNDS.PARAMETER.INSUFFICIENT");
return;
}
if (!(args[1].equals("-a") || args[1].equals("-s"))) {
if (!("-a".equals(args[1]) || "-s".equals(args[1]))) {
TLocale.sendTo(sender, "COAMMNDS.TABOOLIB.VARIABLE.READ-ERROR-TYPE");
return;
}
Long time = System.currentTimeMillis();
String value = null;
if (args[1].equals("-s")) {
value = GlobalDataManager.getVariable(args[2], null);
}
else if (args[1].equals("-a")) {
value = GlobalDataManager.getVariableAsynchronous(args[2], null);
}
}
Long time = System.currentTimeMillis();
String value = null;
if ("-s".equals(args[1])) {
value = GlobalDataManager.getVariable(args[2], null);
} else if ("-a".equals(args[1])) {
value = GlobalDataManager.getVariableAsynchronous(args[2], null);
}
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);
}
}
}

View File

@@ -7,30 +7,29 @@ import org.bukkit.command.CommandSender;
public class VariableSetCommand extends SubCommand {
public VariableSetCommand(CommandSender sender, String[] args) {
super(sender, args);
if (args.length < 4) {
public VariableSetCommand(CommandSender sender, String[] args) {
super(sender, args);
if (args.length < 4) {
TLocale.sendTo(sender, "COAMMNDS.PARAMETER.INSUFFICIENT");
return;
}
if (!(args[1].equals("-a") || args[1].equals("-s"))) {
if (!("-a".equals(args[1]) || "-s".equals(args[1]))) {
TLocale.sendTo(sender, "COAMMNDS.TABOOLIB.VARIABLE.WRITE-ERROR-TYPE");
return;
}
Long time = System.currentTimeMillis();
String value = getArgs(3);
if (args[1].equals("-s")) {
GlobalDataManager.setVariable(args[2], value);
}
else if (args[1].equals("-a")) {
GlobalDataManager.setVariableAsynchronous(args[2], value);
}
}
Long time = System.currentTimeMillis();
String value = getArgs(3);
if ("-s".equals(args[1])) {
GlobalDataManager.setVariable(args[2], value);
} else if ("-a".equals(args[1])) {
GlobalDataManager.setVariableAsynchronous(args[2], value);
}
TLocale.sendTo(sender, "COAMMNDS.TABOOLIB.VARIABLE.WRITE-SUCCESS", String.valueOf(System.currentTimeMillis() - time));
setReturn(true);
}
setReturn(true);
}
}

View File

@@ -9,13 +9,13 @@ public class CycleCommand extends SubCommand {
public CycleCommand(CommandSender sender, String[] args) {
super(sender, args);
if (args.length > 1) {
if (args[1].equalsIgnoreCase("list")) {
if ("list".equalsIgnoreCase(args[1])) {
new CycleListCommand(sender, args);
} else if (args[1].equalsIgnoreCase("info")) {
} else if ("info".equalsIgnoreCase(args[1])) {
new CycleInfoCommand(sender, args);
} else if (args[1].equalsIgnoreCase("reset")) {
} else if ("reset".equalsIgnoreCase(args[1])) {
new CycleResetCommand(sender, args);
} else if (args[1].equalsIgnoreCase("update")) {
} else if ("update".equalsIgnoreCase(args[1])) {
new CycleUpdateCommand(sender, args);
}
} else {

View File

@@ -2,6 +2,7 @@ package me.skymc.taboolib.commands.sub.cycle;
import java.util.concurrent.TimeUnit;
import com.ilummc.tlib.resources.TLocale;
import org.bukkit.command.CommandSender;
import me.skymc.taboolib.commands.SubCommand;
@@ -15,25 +16,21 @@ public class CycleInfoCommand extends SubCommand {
public CycleInfoCommand(CommandSender sender, String[] args) {
super(sender, args);
if (args.length < 3) {
MsgUtils.send(sender, "&c请输入正确的检查器名称");
TLocale.sendTo(sender, "COMMANDS.PARAMETER.UNKNOWN");
return;
}
TimeCycle cycle = TimeCycleManager.getTimeCycle(args[2]);
if (cycle == null) {
MsgUtils.send(sender, "&c检查器 &4" + args[2] + " &c不存在");
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.TIMECYCLE.INVALID-CYCLE", args[2]);
return;
}
sender.sendMessage("§f");
sender.sendMessage("§b§l----- §3§lTimeCycle Info §b§l-----");
sender.sendMessage("§f");
sender.sendMessage(" §f- §7注册周期: §f" + asString(cycle.getCycle() / 1000L));
sender.sendMessage(" §f- §7注册插件: §f" + cycle.getPlugin().getName());
sender.sendMessage("§f");
sender.sendMessage(" §f- §7上次刷新时间: §f" + DateUtils.CH_ALL.format(TimeCycleManager.getBeforeTimeline(cycle.getName())));
sender.sendMessage(" §f- §7下次刷新时间: §f" + DateUtils.CH_ALL.format(TimeCycleManager.getAfterTimeline(cycle.getName())));
sender.sendMessage("§f");
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.TIMECYCLE.CYCLE-INFO",
asString(cycle.getCycle() / 1000L),
cycle.getPlugin().getName(),
DateUtils.CH_ALL.format(TimeCycleManager.getBeforeTimeline(cycle.getName())),
DateUtils.CH_ALL.format(TimeCycleManager.getAfterTimeline(cycle.getName())));
}
public String asString(long seconds) {
@@ -48,5 +45,4 @@ public class CycleInfoCommand extends SubCommand {
public boolean command() {
return true;
}
}

View File

@@ -1,5 +1,6 @@
package me.skymc.taboolib.commands.sub.cycle;
import com.ilummc.tlib.resources.TLocale;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@@ -9,29 +10,20 @@ import me.skymc.taboolib.jsonformatter.click.SuggestCommandEvent;
import me.skymc.taboolib.jsonformatter.hover.ShowTextEvent;
import me.skymc.taboolib.timecycle.TimeCycle;
import me.skymc.taboolib.timecycle.TimeCycleManager;
import org.bukkit.inventory.ItemFlag;
import java.util.Arrays;
public class CycleListCommand extends SubCommand {
public CycleListCommand(CommandSender sender, String[] args) {
super(sender, args);
sender.sendMessage("§f");
sender.sendMessage("§b§l----- §3§lTimeCycle List §b§l-----");
sender.sendMessage("§f");
for (TimeCycle cycle : TimeCycleManager.getTimeCycles()) {
if (isPlayer()) {
JSONFormatter json = new JSONFormatter();
json.append(" §7- §f" + cycle.getName());
json.appendHoverClick(" §8(点击复制)", new ShowTextEvent("§f点击复制"), new SuggestCommandEvent(cycle.getName()));
json.send((Player) sender);
}
else {
sender.sendMessage(" §7- §f" + cycle.getName());
}
}
sender.sendMessage("§f");
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.TIMECYCLE.LIST.HEAD");
TimeCycleManager.getTimeCycles().forEach(cycle -> TLocale.sendTo(sender, "COMMANDS.TABOOLIB.TIMECYCLE.LIST.BODY", cycle.getName()));
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.TIMECYCLE.LIST.FOOT");
}
@Override

View File

@@ -1,5 +1,6 @@
package me.skymc.taboolib.commands.sub.cycle;
import com.ilummc.tlib.resources.TLocale;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.scheduler.BukkitRunnable;
@@ -18,13 +19,13 @@ public class CycleResetCommand extends SubCommand {
public CycleResetCommand(CommandSender sender, String[] args) {
super(sender, args);
if (args.length < 3) {
MsgUtils.send(sender, "&c请输入正确的检查器名称");
TLocale.sendTo(sender, "COMMANDS.PARAMETER.UNKNOWN");
return;
}
TimeCycle cycle = TimeCycleManager.getTimeCycle(args[2]);
if (cycle == null) {
MsgUtils.send(sender, "&c检查器 &4" + args[2] + " &c不存在");
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.TIMECYCLE.INVALID-CYCLE", args[2]);
return;
}
@@ -38,7 +39,7 @@ public class CycleResetCommand extends SubCommand {
// 触发器
Bukkit.getPluginManager().callEvent(new TimeCycleEvent(cycle));
// 提示
MsgUtils.send(sender, "检查器 &f" + args[2] + " &7初始化完成");
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.TIMECYCLE.CYCLE-RESET", args[2]);
}
}.runTaskAsynchronously(Main.getInst());
}

View File

@@ -1,5 +1,6 @@
package me.skymc.taboolib.commands.sub.cycle;
import com.ilummc.tlib.resources.TLocale;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.scheduler.BukkitRunnable;
@@ -17,13 +18,13 @@ public class CycleUpdateCommand extends SubCommand {
public CycleUpdateCommand(CommandSender sender, String[] args) {
super(sender, args);
if (args.length < 3) {
MsgUtils.send(sender, "&c请输入正确的检查器名称");
TLocale.sendTo(sender, "COMMANDS.PARAMETER.UNKNOWN");
return;
}
TimeCycle cycle = TimeCycleManager.getTimeCycle(args[2]);
if (cycle == null) {
MsgUtils.send(sender, "&c检查器 &4" + args[2] + " &c不存在");
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.TIMECYCLE.INVALID-CYCLE", args[2]);
return;
}
@@ -36,7 +37,7 @@ public class CycleUpdateCommand extends SubCommand {
// 触发器
Bukkit.getPluginManager().callEvent(new TimeCycleEvent(cycle));
// 提示
MsgUtils.send(sender, "检查器 &f" + args[2] + " &7已更新");
TLocale.sendTo(sender, "COMMANDS.TABOOLIB.TIMECYCLE.CYCLE-UPDATE", args[2]);
}
}.runTaskAsynchronously(Main.getInst());
}

View File

@@ -9,9 +9,9 @@ public class ShellCommand extends SubCommand {
public ShellCommand(CommandSender sender, String[] args) {
super(sender, args);
if (args.length > 1) {
if (args[1].equalsIgnoreCase("load")) {
if ("load".equalsIgnoreCase(args[1])) {
new ShellLoadCommand(sender, args);
} else if (args[1].equalsIgnoreCase("unload")) {
} else if ("unload".equalsIgnoreCase(args[1])) {
new ShellUnloadCommand(sender, args);
}
} else {