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")
|
setArchivesBaseName("HamsterBall-Bridge")
|
||||||
|
|
||||||
dependencies {
|
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.BallBridgePlugin;
|
||||||
import cn.hamster3.service.bukkit.command.sub.PlayerInfoCommand;
|
import cn.hamster3.service.bukkit.command.sub.PlayerInfoCommand;
|
||||||
import cn.hamster3.service.bukkit.command.sub.ServerInfoCommand;
|
import cn.hamster3.service.bukkit.command.sub.ServerInfoCommand;
|
||||||
|
import cn.hamster3.service.bukkit.command.sub.SudoConsoleCommand;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -15,6 +16,7 @@ public class ServiceCommand extends ParentCommand {
|
|||||||
super("hamster-service");
|
super("hamster-service");
|
||||||
addChildCommand(PlayerInfoCommand.INSTANCE);
|
addChildCommand(PlayerInfoCommand.INSTANCE);
|
||||||
addChildCommand(ServerInfoCommand.INSTANCE);
|
addChildCommand(ServerInfoCommand.INSTANCE);
|
||||||
|
addChildCommand(SudoConsoleCommand.INSTANCE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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.data.BallMessageInfo;
|
||||||
import cn.hamster3.mc.plugin.ball.common.listener.BallListener;
|
import cn.hamster3.mc.plugin.ball.common.listener.BallListener;
|
||||||
import cn.hamster3.service.bungee.api.ServiceInfoAPI;
|
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.MessageReceivedEvent;
|
||||||
import cn.hamster3.service.bungee.event.MessageSentEvent;
|
import cn.hamster3.service.bungee.event.MessageSentEvent;
|
||||||
import cn.hamster3.service.bungee.event.ServiceConnectEvent;
|
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().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