From 1de44ba982d21fe8f87f8ec557b9a907bf3405c0 Mon Sep 17 00:00:00 2001 From: YuTian <2953516620@qq.com> Date: Fri, 7 Feb 2025 00:45:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86CommandEntity.java?= =?UTF-8?q?=E3=80=81CommandHandler.java=E3=80=81ElementOriginLib.java?= =?UTF-8?q?=E5=92=8CSerializeHelper.java=E6=96=87=E4=BB=B6=EF=BC=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BA=86=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../elementoriginlib/ElementOriginLib.java | 21 ------------------- .../command/CommandEntity.java | 2 +- .../command/handler/CommandHandler.java | 12 +++++------ .../serialize/SerializeHelper.java | 6 ++++-- 4 files changed, 11 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/io/yutian/elementoriginlib/ElementOriginLib.java b/src/main/java/com/io/yutian/elementoriginlib/ElementOriginLib.java index 2eb712d..5374bcc 100644 --- a/src/main/java/com/io/yutian/elementoriginlib/ElementOriginLib.java +++ b/src/main/java/com/io/yutian/elementoriginlib/ElementOriginLib.java @@ -7,10 +7,7 @@ import com.io.yutian.elementoriginlib.listener.PlayerChatInputListener; import com.io.yutian.elementoriginlib.logger.Logger; import com.io.yutian.elementoriginlib.manager.CommandManager; import com.io.yutian.elementoriginlib.redis.RedisIO; -import net.byteflux.libby.*; -import net.byteflux.libby.logging.LogLevel; import org.bukkit.plugin.java.JavaPlugin; -import org.jetbrains.annotations.NotNull; import org.slf4j.LoggerFactory; public final class ElementOriginLib extends JavaPlugin { @@ -28,8 +25,6 @@ public final class ElementOriginLib extends JavaPlugin { public void onEnable() { instance = this; -// loadLibraries(); - new GuiHandlerListener(this); new PlayerChatInputListener(this); @@ -40,22 +35,6 @@ public final class ElementOriginLib extends JavaPlugin { redisIO = new RedisIO(); redisIO.init(this); - logger.info("Successfully load ElementOriginLib v"+getPluginMeta().getVersion()); - - } - - private void loadLibraries() { - logger.info("Loading libraries..."); - LibraryManager libraryManager = new BukkitLibraryManager(this); - libraryManager.addMavenCentral(); - libraryManager.setLogLevel(LogLevel.WARN); - libraryManager.loadLibrary(Library.builder().groupId("org{}apache{}commons").artifactId("commons-compress").version("1.27.1").build()); - libraryManager.loadLibrary(Library.builder().groupId("com{}github{}luben").artifactId("zstd-jni").version("1.5.6-9").build()); - libraryManager.loadLibrary(Library.builder().groupId("com{}fasterxml{}jackson{}core").artifactId("jackson-databind").version("2.18.2").build()); -// libraryManager.loadLibrary(Library.builder().groupId("com{}zaxxer").artifactId("HikariCP").version("6.2.1").build()); -// libraryManager.loadLibrary(Library.builder().groupId("org{}xerial").artifactId("sqlite-jdbc").version("3.46.0.0").build()); - libraryManager.loadLibrary(Library.builder().groupId("redis{}clients").id("jedis").artifactId("jedis").version("5.2.0").build()); - logger.info("Successfully loaded libraries."); } @Override diff --git a/src/main/java/com/io/yutian/elementoriginlib/command/CommandEntity.java b/src/main/java/com/io/yutian/elementoriginlib/command/CommandEntity.java index b7f4e3d..e28dcf2 100644 --- a/src/main/java/com/io/yutian/elementoriginlib/command/CommandEntity.java +++ b/src/main/java/com/io/yutian/elementoriginlib/command/CommandEntity.java @@ -237,7 +237,7 @@ public class CommandEntity { if (!suggestionType.isEmpty()) { Suggest suggest = Suggests.getSuggest(suggestionType); if (suggest == null) { - throwParseException(clazz, "建议类型 " + parameter.getType().getName() + " 不存在"); + throwParseException(clazz, "建议类型 " + suggestionType + " 不存在"); } else { argument.suggest(suggest); } diff --git a/src/main/java/com/io/yutian/elementoriginlib/command/handler/CommandHandler.java b/src/main/java/com/io/yutian/elementoriginlib/command/handler/CommandHandler.java index 76c3033..720b4c7 100644 --- a/src/main/java/com/io/yutian/elementoriginlib/command/handler/CommandHandler.java +++ b/src/main/java/com/io/yutian/elementoriginlib/command/handler/CommandHandler.java @@ -109,9 +109,8 @@ public class CommandHandler implements CommandExecutor, TabCompleter { Map parsedArguments = new HashMap<>(); List methodParams = new ArrayList<>(); - for (Argument argument : arguments) { - int argIndex = startIndex + arguments.indexOf(argument); - + for (int argIndex = 0; argIndex < arguments.size(); argIndex++) { + Argument argument = arguments.get(argIndex); if (argIndex >= args.length) { if (!argument.isOptional()) { sender.sendMessage(Lang.get("command.short-arg", argument.getName())); @@ -123,7 +122,7 @@ public class CommandHandler implements CommandExecutor, TabCompleter { if (argument.isOptional() && argIndex >= args.length) { rawValue = argument.getDefaultValue(); } else { - rawValue = args[argIndex]; + rawValue = args[argIndex + startIndex]; } if (!argument.getArgumentsType().test(rawValue)) { sender.sendMessage(Lang.get("command.error-arg", argIndex + 1, rawValue)); @@ -134,12 +133,12 @@ public class CommandHandler implements CommandExecutor, TabCompleter { methodParams.add(parsedValue); } - return parsedArguments; } @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + long startTime = System.currentTimeMillis(); execute(sender, label, args); return true; } @@ -193,9 +192,10 @@ public class CommandHandler implements CommandExecutor, TabCompleter { entries = commandEntry.getChildrens(); } + if (entries.size() == 0) { List arguments = commandEntry.getArguments(); - int index = (int) (currentDepth - commandEntry.getDepth() - 1); + int index = (int) (currentDepth - commandEntry.getDepth() - 2); if (index >= arguments.size()) { return Collections.emptyList(); } diff --git a/src/main/java/com/io/yutian/elementoriginlib/serialize/SerializeHelper.java b/src/main/java/com/io/yutian/elementoriginlib/serialize/SerializeHelper.java index 57d9a28..e8cc1fa 100644 --- a/src/main/java/com/io/yutian/elementoriginlib/serialize/SerializeHelper.java +++ b/src/main/java/com/io/yutian/elementoriginlib/serialize/SerializeHelper.java @@ -11,6 +11,7 @@ import com.io.yutian.elementoriginlib.logger.Logger; import com.io.yutian.elementoriginlib.serialize.serializers.*; import org.bukkit.inventory.ItemStack; +import java.util.Objects; import java.util.UUID; public class SerializeHelper { @@ -76,16 +77,17 @@ public class SerializeHelper { try { return objectWriter.writeValueAsString(obj); } catch (JsonProcessingException e) { - LOGGER.error("Failed to serialize object: " + obj, e); + LOGGER.error("序列化对象失败: " + obj, e); return null; } } public static T deserialize(String json, Class clazz) { + long start = System.currentTimeMillis(); try { return objectReader.forType(clazz).readValue(json); } catch (JsonProcessingException e) { - LOGGER.error("Failed to deserialize object: " + json, e); + LOGGER.error("反序列化对象失败: " + json, e); return null; } }