史诗级大饼,请叫我黑饼王。

This commit is contained in:
坏黑
2018-08-23 23:59:20 +08:00
parent 600ac49622
commit 24556b9f2a
64 changed files with 2683 additions and 944 deletions

View File

@@ -4,6 +4,7 @@ import com.ilummc.tlib.resources.TLocale;
import com.ilummc.tlib.util.Strings;
import me.skymc.taboolib.commands.internal.BaseMainCommand;
import me.skymc.taboolib.commands.internal.BaseSubCommand;
import me.skymc.taboolib.commands.internal.TCommand;
import me.skymc.taboolib.commands.internal.type.CommandArgument;
import me.skymc.taboolib.commands.internal.type.CommandRegister;
import me.skymc.taboolib.string.ArrayUtils;
@@ -18,6 +19,7 @@ import org.bukkit.event.server.ServerCommandEvent;
* @Author sky
* @Since 2018-07-04 21:32
*/
@TCommand(name = "taboolibexecute")
public class TabooLibExecuteCommand extends BaseMainCommand {
@Override

View File

@@ -5,6 +5,7 @@ import com.ilummc.tlib.util.Strings;
import me.skymc.taboolib.Main;
import me.skymc.taboolib.commands.internal.BaseMainCommand;
import me.skymc.taboolib.commands.internal.BaseSubCommand;
import me.skymc.taboolib.commands.internal.TCommand;
import me.skymc.taboolib.commands.internal.type.CommandArgument;
import me.skymc.taboolib.commands.internal.type.CommandRegister;
import me.skymc.taboolib.commands.internal.type.CommandType;
@@ -33,6 +34,7 @@ import java.util.concurrent.TimeUnit;
* @Author sky
* @Since 2018-05-09 21:38
*/
@TCommand(name = "taboolib")
public class TabooLibMainCommand extends BaseMainCommand {
@Override

View File

@@ -1,10 +1,23 @@
package me.skymc.taboolib.commands.internal;
import me.skymc.taboolib.fileutils.FileUtils;
import me.skymc.taboolib.listener.TListener;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.server.PluginEnableEvent;
import org.bukkit.plugin.Plugin;
/**
* @Author sky
* @Since 2018-05-23 2:43
*/
public class TBaseCommand {
@TListener(register = "onLoad")
public class TBaseCommand implements Listener {
void onLoad() {
registerCommands();
}
/**
* 向服务端注册 BaseMainCommand 类
@@ -16,4 +29,43 @@ public class TBaseCommand {
public static BaseMainCommand registerCommand(String command, BaseMainCommand baseMainCommand) {
return BaseMainCommand.createCommandExecutor(command, baseMainCommand);
}
/**
* 注册所有插件的所有 TCommand 命令
*/
public static void registerCommands() {
for (Plugin plugin : Bukkit.getPluginManager().getPlugins()) {
try {
registerCommand(plugin);
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* 注册插件的所有 TCommand 命令
*
* @param plugin 插件
*/
public static void registerCommand(Plugin plugin) {
for (Class pluginClass : FileUtils.getClasses(plugin)) {
if (BaseMainCommand.class.isAssignableFrom(pluginClass) && pluginClass.isAnnotationPresent(TCommand.class)) {
TCommand tCommand = (TCommand) pluginClass.getAnnotation(TCommand.class);
try {
registerCommand(tCommand.name(), (BaseMainCommand) pluginClass.newInstance());
} catch (InstantiationException | IllegalAccessException e) {
e.printStackTrace();
}
}
}
}
@EventHandler
public void onEnable(PluginEnableEvent e) {
try {
registerCommand(e.getPlugin());
} catch (Exception ignored) {
}
}
}

View File

@@ -0,0 +1,18 @@
package me.skymc.taboolib.commands.internal;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* @Author sky
* @Since 2018-08-23 20:34
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface TCommand {
String name();
}

View File

@@ -4,12 +4,12 @@ import com.ilummc.tlib.resources.TLocale;
import com.ilummc.tlib.resources.TLocaleLoader;
import me.skymc.taboolib.commands.internal.BaseMainCommand;
import me.skymc.taboolib.commands.internal.BaseSubCommand;
import me.skymc.taboolib.commands.internal.TCommand;
import me.skymc.taboolib.commands.internal.type.CommandArgument;
import me.skymc.taboolib.commands.internal.type.CommandRegister;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
@@ -22,6 +22,7 @@ import java.util.stream.IntStream;
* @author sky
* @since 2018-04-22 14:36:28
*/
@TCommand(name = "tabooliblocale")
public class TabooLibLocaleCommand extends BaseMainCommand {
@Override

View File

@@ -5,6 +5,7 @@ import com.ilummc.tlib.resources.TLocale;
import me.skymc.taboolib.commands.internal.BaseMainCommand;
import me.skymc.taboolib.commands.internal.BaseSubCommand;
import me.skymc.taboolib.commands.internal.ISubCommand;
import me.skymc.taboolib.commands.internal.TCommand;
import me.skymc.taboolib.commands.internal.type.CommandArgument;
import me.skymc.taboolib.commands.internal.type.CommandRegister;
import me.skymc.taboolib.plugin.PluginLoadState;
@@ -25,6 +26,7 @@ import java.util.stream.Collectors;
* @Author sky
* @Since 2018-05-07 20:14
*/
@TCommand(name = "taboolibplugin")
public class TabooLibPluginCommand extends BaseMainCommand {
@Override

View File

@@ -3,6 +3,7 @@ package me.skymc.taboolib.commands.taboolib.listener;
import com.ilummc.tlib.resources.TLocale;
import me.skymc.taboolib.inventory.InventoryUtil;
import me.skymc.taboolib.inventory.ItemUtils;
import me.skymc.taboolib.listener.TListener;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
@@ -23,6 +24,7 @@ import java.util.List;
* @author sky
* @since 2018年2月4日 下午4:35:00
*/
@TListener
public class ListenerItemListCommand implements Listener {
/**

View File

@@ -3,6 +3,7 @@ package me.skymc.taboolib.commands.taboolib.listener;
import com.ilummc.tlib.resources.TLocale;
import me.skymc.taboolib.inventory.InventoryUtil;
import me.skymc.taboolib.inventory.ItemUtils;
import me.skymc.taboolib.listener.TListener;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.Sound;
@@ -24,6 +25,7 @@ import java.util.stream.Collectors;
* @author sky
* @since 2018年2月4日 下午4:35:00
*/
@TListener
public class ListenerSoundsCommand implements Listener {
public static void openInventory(Player player, int page, String search) {