perf: 优化代码

This commit is contained in:
2022-11-02 07:42:51 +08:00
parent c21d63de5f
commit acf3ae0ea0
7 changed files with 74 additions and 4 deletions

View File

@@ -1,6 +1,7 @@
package cn.hamster3.mc.plugin.ball.bukkit;
import cn.hamster3.mc.plugin.ball.bukkit.api.BallBukkitAPI;
import cn.hamster3.mc.plugin.ball.bukkit.hook.PlaceholderHook;
import cn.hamster3.mc.plugin.ball.bukkit.listener.BallBukkitListener;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
@@ -39,6 +40,14 @@ public class HamsterBallPlugin extends JavaPlugin {
Bukkit.getPluginManager().registerEvents(BallBukkitListener.INSTANCE, this);
logger.info("已注册 BallBukkitListener.");
logger.info("HamsterBall 已启动.");
sync(() -> {
if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
PlaceholderHook.INSTANCE.register();
logger.info("已挂载 PlaceholderAPI 变量!");
} else {
logger.warning("服务器未安装 PlaceholderAPI, 取消挂载变量!");
}
});
}
@Override

View File

@@ -0,0 +1,55 @@
package cn.hamster3.mc.plugin.ball.bukkit.hook;
import cn.hamster3.mc.plugin.ball.common.api.BallAPI;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class PlaceholderHook extends PlaceholderExpansion {
public static final PlaceholderHook INSTANCE = new PlaceholderHook();
private PlaceholderHook() {
}
@Override
public @NotNull String getIdentifier() {
return "hamster_ball";
}
@Override
public @NotNull String getAuthor() {
return "MiniDay";
}
@Override
public @NotNull String getVersion() {
return "1.0.0";
}
@Override
public @Nullable String onRequest(OfflinePlayer player, @NotNull String params) {
switch (params) {
case "local_server_id": {
return BallAPI.getInstance().getLocalServerInfo().getId();
}
case "local_server_name": {
return BallAPI.getInstance().getLocalServerInfo().getName();
}
case "proxy_id": {
return BallAPI.getInstance().getPlayerInfo(player.getUniqueId()).getProxyServer();
}
case "proxy_name": {
String id = BallAPI.getInstance().getPlayerInfo(player.getUniqueId()).getProxyServer();
return BallAPI.getInstance().getServerInfo(id).getName();
}
}
return null;
}
@Override
public @Nullable String onPlaceholderRequest(Player player, @NotNull String params) {
return onRequest(player, params);
}
}

View File

@@ -7,5 +7,10 @@ author: MiniDay
website: https://github.com/MiniDay/hamster-ball
description: 仓鼠球:一个基于 Netty 的 Minecraft 服务端通用消息中间件原HamsterService
load: STARTUP
depend:
- HamsterCore
softdepend:
- PlaceholderAPI