feat(hamster-ball-bridge): 添加 SudoConsole 指令
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
version = '1.1.1'
|
||||
version = '1.1.2'
|
||||
setArchivesBaseName("HamsterBall-Bridge")
|
||||
|
||||
dependencies {
|
||||
|
@@ -4,6 +4,7 @@ import cn.hamster3.mc.plugin.core.bukkit.command.ParentCommand;
|
||||
import cn.hamster3.service.bukkit.BallBridgePlugin;
|
||||
import cn.hamster3.service.bukkit.command.sub.PlayerInfoCommand;
|
||||
import cn.hamster3.service.bukkit.command.sub.ServerInfoCommand;
|
||||
import cn.hamster3.service.bukkit.command.sub.SudoConsoleCommand;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -15,6 +16,7 @@ public class ServiceCommand extends ParentCommand {
|
||||
super("hamster-service");
|
||||
addChildCommand(PlayerInfoCommand.INSTANCE);
|
||||
addChildCommand(ServerInfoCommand.INSTANCE);
|
||||
addChildCommand(SudoConsoleCommand.INSTANCE);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -0,0 +1,79 @@
|
||||
package cn.hamster3.service.bukkit.command.sub;
|
||||
|
||||
import cn.hamster3.mc.plugin.core.bukkit.command.ChildCommand;
|
||||
import cn.hamster3.service.bukkit.api.ServiceMessageAPI;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class SudoConsoleCommand extends ChildCommand {
|
||||
public static final SudoConsoleCommand INSTANCE = new SudoConsoleCommand();
|
||||
|
||||
private SudoConsoleCommand() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getName() {
|
||||
return "command";
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getUsage() {
|
||||
return "command [bukkit/proxy] [命令内容]";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(@NotNull CommandSender sender) {
|
||||
return sender.hasPermission("hamster.service.admin");
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getDescription() {
|
||||
return "广播控制台执行命令";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
|
||||
if (args.length < 2) {
|
||||
sender.sendMessage("§c/service command [bukkit/proxy] [命令内容]");
|
||||
return true;
|
||||
}
|
||||
|
||||
String action;
|
||||
switch (args[0].toLowerCase()) {
|
||||
case "bukkit": {
|
||||
action = "bukkitConsoleCommand";
|
||||
break;
|
||||
}
|
||||
case "proxy": {
|
||||
action = "proxyConsoleCommand";
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
sender.sendMessage("§c/service command [bukkit/proxy] [命令内容]");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
StringBuilder builder = new StringBuilder();
|
||||
for (int i = 1; i < args.length; i++) {
|
||||
builder.append(args[i]).append(" ");
|
||||
}
|
||||
ServiceMessageAPI.sendServiceMessage("HamsterService", action, builder.toString());
|
||||
sender.sendMessage("§c已广播命令执行信息.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
|
||||
if (args.length == 1) {
|
||||
return Arrays.asList("bukkit", "proxy");
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
@@ -4,6 +4,7 @@ import cn.hamster3.mc.plugin.ball.common.api.BallAPI;
|
||||
import cn.hamster3.mc.plugin.ball.common.data.BallMessageInfo;
|
||||
import cn.hamster3.mc.plugin.ball.common.listener.BallListener;
|
||||
import cn.hamster3.service.bungee.api.ServiceInfoAPI;
|
||||
import cn.hamster3.service.bungee.command.ServiceCommand;
|
||||
import cn.hamster3.service.bungee.event.MessageReceivedEvent;
|
||||
import cn.hamster3.service.bungee.event.MessageSentEvent;
|
||||
import cn.hamster3.service.bungee.event.ServiceConnectEvent;
|
||||
@@ -54,5 +55,6 @@ public class BallBridgePlugin extends Plugin {
|
||||
}
|
||||
});
|
||||
ProxyServer.getInstance().getPluginManager().registerListener(this, ServiceMainListener.INSTANCE);
|
||||
ProxyServer.getInstance().getPluginManager().registerCommand(this, ServiceCommand.INSTANCE);
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,36 @@
|
||||
package cn.hamster3.service.bungee.command;
|
||||
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import net.md_5.bungee.api.plugin.Command;
|
||||
|
||||
public class ServiceCommand extends Command {
|
||||
public static final ServiceCommand INSTANCE = new ServiceCommand();
|
||||
|
||||
private ServiceCommand() {
|
||||
super("service", "service.admin");
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("SpellCheckingInspection")
|
||||
public void execute(CommandSender sender, String[] args) {
|
||||
if (!sender.hasPermission("service.admin")) {
|
||||
sender.sendMessage(new TextComponent("§c你没有权限执行这个命令!"));
|
||||
return;
|
||||
}
|
||||
if (args.length < 1) {
|
||||
sender.sendMessage(new TextComponent("§c/service command [bukkit/proxy] [命令内容]"));
|
||||
return;
|
||||
}
|
||||
switch (args[0]) {
|
||||
case "safemode": {
|
||||
break;
|
||||
}
|
||||
case "command": {
|
||||
SudoConsoleCommand.INSTANCE.onCommand(sender, args);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@@ -0,0 +1,42 @@
|
||||
package cn.hamster3.service.bungee.command;
|
||||
|
||||
import cn.hamster3.service.bungee.api.ServiceMessageAPI;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class SudoConsoleCommand {
|
||||
public static final SudoConsoleCommand INSTANCE = new SudoConsoleCommand();
|
||||
|
||||
private SudoConsoleCommand() {
|
||||
}
|
||||
|
||||
public void onCommand(@NotNull CommandSender sender, @NotNull String[] args) {
|
||||
if (args.length < 3) {
|
||||
sender.sendMessage(new TextComponent("§c/service command [bukkit/proxy] [命令内容]"));
|
||||
return;
|
||||
}
|
||||
|
||||
String action;
|
||||
switch (args[1].toLowerCase()) {
|
||||
case "bukkit": {
|
||||
action = "bukkitConsoleCommand";
|
||||
break;
|
||||
}
|
||||
case "proxy": {
|
||||
action = "proxyConsoleCommand";
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
sender.sendMessage(new TextComponent("§c/service command [bukkit/proxy] [命令内容]"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
StringBuilder builder = new StringBuilder();
|
||||
for (int i = 2; i < args.length; i++) {
|
||||
builder.append(args[i]).append(" ");
|
||||
}
|
||||
ServiceMessageAPI.sendServiceMessage("HamsterService", action, builder.toString());
|
||||
sender.sendMessage(new TextComponent("§c已广播命令执行信息."));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user