feat(hamster-ball-bridge): 添加查看玩家信息和服务器信息的指令
This commit is contained in:
@@ -31,11 +31,11 @@ subprojects {
|
||||
compileOnly 'org.jetbrains:annotations:23.0.0'
|
||||
}
|
||||
|
||||
tasks.withType(JavaCompile) {
|
||||
tasks.withType(JavaCompile).configureEach {
|
||||
options.setEncoding("UTF-8")
|
||||
}
|
||||
|
||||
tasks.withType(Jar) {
|
||||
tasks.withType(Jar).configureEach {
|
||||
from([rootProject.file("LICENSE")])
|
||||
duplicatesStrategy(DuplicatesStrategy.EXCLUDE)
|
||||
}
|
||||
@@ -46,6 +46,7 @@ subprojects {
|
||||
// withJavadocJar()
|
||||
withSourcesJar()
|
||||
}
|
||||
|
||||
jar {
|
||||
destinationDir(rootProject.buildDir)
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
version = '1.0.1'
|
||||
version = '1.1.0'
|
||||
setArchivesBaseName("HamsterBall-Bridge")
|
||||
|
||||
dependencies {
|
||||
@@ -6,7 +6,7 @@ dependencies {
|
||||
compileOnly 'net.md-5:bungeecord-api:1.19-R0.1-SNAPSHOT'
|
||||
|
||||
compileOnly "cn.hamster3.mc.plugin.ball:common:${hamster_ball_version}"
|
||||
compileOnly "cn.hamster3.mc.plugin.core:common:${hamster_core_version}"
|
||||
compileOnly "cn.hamster3.mc.plugin.core:bukkit:${hamster_core_version}"
|
||||
|
||||
compileOnly "me.clip:placeholderapi:${placeholder_api_version}"
|
||||
}
|
||||
@@ -18,3 +18,10 @@ processResources {
|
||||
}
|
||||
duplicatesStrategy(DuplicatesStrategy.EXCLUDE)
|
||||
}
|
||||
|
||||
java {
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
// withJavadocJar()
|
||||
withSourcesJar()
|
||||
}
|
||||
|
@@ -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.bukkit.api.ServiceInfoAPI;
|
||||
import cn.hamster3.service.bukkit.command.ServiceCommand;
|
||||
import cn.hamster3.service.bukkit.event.MessageReceivedEvent;
|
||||
import cn.hamster3.service.bukkit.event.MessageSentEvent;
|
||||
import cn.hamster3.service.bukkit.event.ServiceConnectEvent;
|
||||
@@ -58,6 +59,7 @@ public class BallBridgePlugin extends JavaPlugin {
|
||||
)));
|
||||
}
|
||||
});
|
||||
ServiceCommand.INSTANCE.hook();
|
||||
Bukkit.getPluginManager().registerEvents(ServiceMainListener.INSTANCE, this);
|
||||
Bukkit.getScheduler().runTask(this, () -> {
|
||||
if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
|
||||
|
@@ -0,0 +1,29 @@
|
||||
package cn.hamster3.service.bukkit.command;
|
||||
|
||||
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 org.bukkit.command.CommandSender;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ServiceCommand extends ParentCommand {
|
||||
public static final ServiceCommand INSTANCE = new ServiceCommand();
|
||||
|
||||
private ServiceCommand() {
|
||||
super("hamster-service");
|
||||
addChildCommand(PlayerInfoCommand.INSTANCE);
|
||||
addChildCommand(ServerInfoCommand.INSTANCE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull JavaPlugin getPlugin() {
|
||||
return BallBridgePlugin.getInstance();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(@NotNull CommandSender sender) {
|
||||
return sender.hasPermission("hamster.service.admin");
|
||||
}
|
||||
}
|
@@ -0,0 +1,71 @@
|
||||
package cn.hamster3.service.bukkit.command.sub;
|
||||
|
||||
import cn.hamster3.mc.plugin.core.bukkit.command.ChildCommand;
|
||||
import cn.hamster3.service.bukkit.api.ServiceInfoAPI;
|
||||
import cn.hamster3.service.common.data.ServicePlayerInfo;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class PlayerInfoCommand extends ChildCommand {
|
||||
public static final PlayerInfoCommand INSTANCE = new PlayerInfoCommand();
|
||||
|
||||
private PlayerInfoCommand() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getName() {
|
||||
return "player-info";
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getUsage() {
|
||||
return "player-info <玩家名>";
|
||||
}
|
||||
|
||||
@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 < 1) {
|
||||
sender.sendMessage("§a/service player-info <玩家名>");
|
||||
return true;
|
||||
}
|
||||
ServicePlayerInfo playerInfo = ServiceInfoAPI.getPlayerInfo(args[0]);
|
||||
if (playerInfo == null) {
|
||||
sender.sendMessage("§c未找到玩家 " + args[0] + " 的信息!");
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage("§a玩家UUID: " + playerInfo.getUuid());
|
||||
sender.sendMessage("§a玩家名称: " + playerInfo.getPlayerName());
|
||||
sender.sendMessage("§a在线状态: " + playerInfo.isOnline());
|
||||
sender.sendMessage("§a所在子服: " + playerInfo.getBukkitServer());
|
||||
sender.sendMessage("§a代理接入: " + playerInfo.getProxyServer());
|
||||
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 ServiceInfoAPI.getAllPlayerInfo().stream()
|
||||
.map(ServicePlayerInfo::getPlayerName)
|
||||
.filter(o -> o.toLowerCase().startsWith(args[0].toLowerCase()))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
@@ -0,0 +1,69 @@
|
||||
package cn.hamster3.service.bukkit.command.sub;
|
||||
|
||||
import cn.hamster3.mc.plugin.core.bukkit.command.ChildCommand;
|
||||
import cn.hamster3.service.bukkit.api.ServiceInfoAPI;
|
||||
import cn.hamster3.service.common.entity.ServiceSenderInfo;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class ServerInfoCommand extends ChildCommand {
|
||||
public static final ServerInfoCommand INSTANCE = new ServerInfoCommand();
|
||||
|
||||
private ServerInfoCommand() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getName() {
|
||||
return "server-info";
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getUsage() {
|
||||
return "server-info <服务器ID>";
|
||||
}
|
||||
|
||||
@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 < 1) {
|
||||
sender.sendMessage("§a/service server-info <服务器ID>");
|
||||
return true;
|
||||
}
|
||||
ServiceSenderInfo senderInfo = ServiceInfoAPI.getSenderInfo(args[0]);
|
||||
if (senderInfo == null) {
|
||||
sender.sendMessage("§c未找到服务器 " + args[0] + " 的信息!");
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage("§a服务器ID: " + senderInfo.getName());
|
||||
sender.sendMessage("§a服务器别名: " + senderInfo.getNickName());
|
||||
sender.sendMessage("§a服务器类型: " + senderInfo.getType().name());
|
||||
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 ServiceInfoAPI.getAllSenderInfo().stream()
|
||||
.map(ServiceSenderInfo::getName)
|
||||
.filter(o -> o.toLowerCase().startsWith(args[0].toLowerCase()))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
@@ -13,3 +13,11 @@ depend:
|
||||
|
||||
softdepend:
|
||||
- PlaceholderAPI
|
||||
|
||||
commands:
|
||||
hamster-service:
|
||||
aliases: [ hservice, service ]
|
||||
|
||||
permissions:
|
||||
hamster.service.admin:
|
||||
default: op
|
||||
|
Reference in New Issue
Block a user