From 5181dd3058491bc770f83524168693ab0d5f3eeb Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Wed, 31 May 2023 08:41:42 +0800 Subject: [PATCH] =?UTF-8?q?feat(hamster-core-bukkit):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=8C=87=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../command/core/ParentCoreCommand.java | 3 +- .../bukkit/command/core/sub/EnvCommand.java | 8 +++ .../bukkit/command/core/sub/GCCommand.java | 2 +- ...RuntimeCommand.java => MemoryCommand.java} | 19 +++--- .../command/core/sub/SystemCommand.java | 60 +++++++++++++++++++ 5 files changed, 81 insertions(+), 11 deletions(-) rename hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/sub/{RuntimeCommand.java => MemoryCommand.java} (58%) create mode 100644 hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/sub/SystemCommand.java diff --git a/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/ParentCoreCommand.java b/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/ParentCoreCommand.java index 5dc7483..4c4de5f 100644 --- a/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/ParentCoreCommand.java +++ b/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/ParentCoreCommand.java @@ -16,7 +16,8 @@ public class ParentCoreCommand extends ParentCommand { addChildCommand(YamlCommand.INSTANCE); addChildCommand(InfoModeCommand.INSTANCE); addChildCommand(ReloadCommand.INSTANCE); - addChildCommand(RuntimeCommand.INSTANCE); + addChildCommand(MemoryCommand.INSTANCE); + addChildCommand(SystemCommand.INSTANCE); } @Override diff --git a/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/sub/EnvCommand.java b/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/sub/EnvCommand.java index 2c1e5aa..5736ce3 100644 --- a/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/sub/EnvCommand.java +++ b/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/sub/EnvCommand.java @@ -7,6 +7,7 @@ import org.jetbrains.annotations.NotNull; import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; public class EnvCommand extends ChildCommand { public static final EnvCommand INSTANCE = new EnvCommand(); @@ -46,6 +47,13 @@ public class EnvCommand extends ChildCommand { @Override public List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) { + if (args.length == 1) { + String lowerCase = args[0].toLowerCase(); + return System.getenv().keySet() + .stream() + .filter(o -> o.startsWith(lowerCase)) + .collect(Collectors.toList()); + } return Collections.emptyList(); } } diff --git a/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/sub/GCCommand.java b/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/sub/GCCommand.java index a6d2835..99b3beb 100644 --- a/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/sub/GCCommand.java +++ b/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/sub/GCCommand.java @@ -31,7 +31,7 @@ public class GCCommand extends ChildCommand { @Override public @NotNull String getDescription() { - return "通知JVM进行一次垃圾回收"; + return "通知 JVM 进行一次垃圾回收"; } @Override diff --git a/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/sub/RuntimeCommand.java b/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/sub/MemoryCommand.java similarity index 58% rename from hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/sub/RuntimeCommand.java rename to hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/sub/MemoryCommand.java index f509998..92beb16 100644 --- a/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/sub/RuntimeCommand.java +++ b/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/sub/MemoryCommand.java @@ -8,20 +8,20 @@ import org.jetbrains.annotations.NotNull; import java.util.Collections; import java.util.List; -public class RuntimeCommand extends ChildCommand { - public static final RuntimeCommand INSTANCE = new RuntimeCommand(); +public class MemoryCommand extends ChildCommand { + public static final MemoryCommand INSTANCE = new MemoryCommand(); - private RuntimeCommand() { + private MemoryCommand() { } @Override public @NotNull String getName() { - return "runtime"; + return "memory"; } @Override public @NotNull String getUsage() { - return "runtime"; + return "memory"; } @Override @@ -31,15 +31,16 @@ public class RuntimeCommand extends ChildCommand { @Override public @NotNull String getDescription() { - return "查看JVM信息"; + return "查看内存信息"; } @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) { Runtime runtime = Runtime.getRuntime(); - sender.sendMessage("空闲内存:" + runtime.freeMemory() / 1024.0); - sender.sendMessage("已用内存:" + runtime.totalMemory() / 1024.0); - sender.sendMessage("最大可用内存:" + runtime.maxMemory() / 1024.0); + sender.sendMessage(String.format("活跃内存:%.2f MB", (runtime.totalMemory() - runtime.freeMemory()) / 1024.0 / 1024.0)); + sender.sendMessage(String.format("空闲内存:%.2f MB", runtime.freeMemory() / 1024.0 / 1024.0)); + sender.sendMessage(String.format("占用系统内存:%.2f MB", runtime.totalMemory() / 1024.0 / 1024.0)); + sender.sendMessage(String.format("最大可用内存:%.2f MB", runtime.maxMemory() / 1024.0 / 1024.0)); return true; } diff --git a/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/sub/SystemCommand.java b/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/sub/SystemCommand.java new file mode 100644 index 0000000..6d6b415 --- /dev/null +++ b/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/sub/SystemCommand.java @@ -0,0 +1,60 @@ +package cn.hamster3.mc.plugin.core.bukkit.command.core.sub; + +import cn.hamster3.mc.plugin.core.bukkit.command.ChildCommand; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; + +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +public class SystemCommand extends ChildCommand { + public static final SystemCommand INSTANCE = new SystemCommand(); + + private SystemCommand() { + } + + @Override + public @NotNull String getName() { + return "system"; + } + + @Override + public @NotNull String getUsage() { + return "system"; + } + + @Override + public boolean hasPermission(@NotNull CommandSender sender) { + return true; + } + + @Override + public @NotNull String getDescription() { + return "查看系统属性"; + } + + @Override + public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) { + if (args.length < 1) { + sender.sendMessage(System.getProperties().toString()); + return true; + } + sender.sendMessage(args[0] + "=" + System.getProperty(args[0], "")); + return true; + } + + @Override + public List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) { + if (args.length == 1) { + String lowerCase = args[0].toLowerCase(); + return System.getProperties().keySet() + .stream() + .map(Object::toString) + .filter(o -> o.startsWith(lowerCase)) + .collect(Collectors.toList()); + } + return Collections.emptyList(); + } +}