feat: 支持新版仓鼠球

This commit is contained in:
2023-11-08 19:21:56 +08:00
parent 0510f23821
commit a82f1c734f
21 changed files with 187 additions and 170 deletions

View File

@@ -3,5 +3,5 @@ org.gradle.jvmargs=-Xmx2G
spigot_api_version=1.19.4-R0.1-SNAPSHOT
bungeecord_api_version=1.19-R0.1-SNAPSHOT
hamster_core_version=1.1.0-SNAPSHOT
hamster_ball_version=1.1.0-SNAPSHOT
hamster_ball_version=1.2.0-SNAPSHOT
placeholder_api_version=2.11.2

View File

@@ -1,6 +1,6 @@
version = '1.0.0'
version = '1.1.0'
setArchivesBaseName("HamsterAuto-ServerInfo")
dependencies {
compileOnly "cn.hamster3.mc.plugin:ball-common:${hamster_ball_version}"
compileOnly "cn.hamster3.mc.plugin:ball-bungeecord:${hamster_ball_version}"
}

View File

@@ -5,18 +5,16 @@ import cn.hamster3.mc.plugin.auto.server.info.util.ServerInfoUtils;
import cn.hamster3.mc.plugin.ball.common.api.BallAPI;
import cn.hamster3.mc.plugin.ball.common.entity.BallServerInfo;
import cn.hamster3.mc.plugin.ball.common.entity.BallServerType;
import cn.hamster3.mc.plugin.ball.common.listener.BallListener;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.plugin.Plugin;
public class ServerInfoPlugin extends Plugin implements BallListener {
public class ServerInfoPlugin extends Plugin {
private static ServerInfoPlugin instance;
public static ServerInfoPlugin getInstance() {
return instance;
}
@Override
public void onLoad() {
instance = this;
@@ -33,6 +31,6 @@ public class ServerInfoPlugin extends Plugin implements BallListener {
ProxyServer.getInstance().getServers().put(serverInfo.getId(), ServerInfoUtils.getServerInfo(serverInfo));
getLogger().info("已添加子服 " + serverInfo.getId() + " 的接入点配置.");
}
BallAPI.getInstance().addListener(ServerInfoListener.INSTANCE);
ProxyServer.getInstance().getPluginManager().registerListener(this, ServerInfoListener.INSTANCE);
}
}

View File

@@ -2,38 +2,40 @@ package cn.hamster3.mc.plugin.auto.server.info.listener;
import cn.hamster3.mc.plugin.auto.server.info.ServerInfoPlugin;
import cn.hamster3.mc.plugin.auto.server.info.util.ServerInfoUtils;
import cn.hamster3.mc.plugin.ball.bungee.event.server.ServerOfflineEvent;
import cn.hamster3.mc.plugin.ball.bungee.event.server.ServerOnlineEvent;
import cn.hamster3.mc.plugin.ball.common.entity.BallServerInfo;
import cn.hamster3.mc.plugin.ball.common.entity.BallServerType;
import cn.hamster3.mc.plugin.ball.common.event.server.ServerOfflineEvent;
import cn.hamster3.mc.plugin.ball.common.event.server.ServerOnlineEvent;
import cn.hamster3.mc.plugin.ball.common.listener.BallListener;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.config.ServerInfo;
import org.jetbrains.annotations.NotNull;
import net.md_5.bungee.api.plugin.Listener;
import net.md_5.bungee.event.EventHandler;
import java.util.Map;
public class ServerInfoListener implements BallListener {
public class ServerInfoListener implements Listener {
public static final ServerInfoListener INSTANCE = new ServerInfoListener();
private ServerInfoListener() {
}
@Override
public void onServerOnline(@NotNull ServerOnlineEvent event) {
@EventHandler
public void onServerOnline(ServerOnlineEvent event) {
BallServerInfo serverInfo = event.getServerInfo();
if (serverInfo.getType() != BallServerType.GAME) {
return;
}
ProxyServer.getInstance().getServers().put(serverInfo.getId(), ServerInfoUtils.getServerInfo(serverInfo));
ServerInfoPlugin.getInstance().getLogger().info("已添加子服 " + serverInfo.getId() + " 的接入点配置.");
ServerInfoPlugin.getInstance().getLogger().info("已添加子服 " + serverInfo.getId() + " 的接入点配置");
}
@Override
public void onServerOffline(@NotNull ServerOfflineEvent event) {
@EventHandler
public void onServerOffline(ServerOfflineEvent event) {
BallServerInfo info = event.getServerInfo();
String id = info.getId();
Map<String, ServerInfo> map = ProxyServer.getInstance().getServers();
if (map.remove(event.getServerID()) != null) {
ServerInfoPlugin.getInstance().getLogger().info("已移除子服 " + event.getServerID() + " 的接入点配置.");
if (map.remove(id) != null) {
ServerInfoPlugin.getInstance().getLogger().info("已移除子服 " + id + " 的接入点配置");
}
}
}

View File

@@ -1,9 +1,10 @@
version = '1.2.0'
version = '1.3.0'
setArchivesBaseName("HamsterBall-Bridge")
dependencies {
compileOnly "cn.hamster3.mc.plugin:ball-common:${hamster_ball_version}"
compileOnly "cn.hamster3.mc.plugin:core-bukkit:${hamster_core_version}"
compileOnly "cn.hamster3.mc.plugin:ball-bukkit:${hamster_ball_version}"
compileOnly "cn.hamster3.mc.plugin:ball-bungeecord:${hamster_ball_version}"
compileOnly "me.clip:placeholderapi:${placeholder_api_version}"
}

View File

@@ -1,20 +1,12 @@
package cn.hamster3.service.bukkit;
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;
import cn.hamster3.service.bukkit.hook.ServicePlaceholderHook;
import cn.hamster3.service.bukkit.listener.BridgeListener;
import cn.hamster3.service.bukkit.listener.ServiceMainListener;
import cn.hamster3.service.common.entity.ServiceMessageInfo;
import cn.hamster3.service.common.util.ServiceLogUtils;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull;
public class BallBridgePlugin extends JavaPlugin {
private static BallBridgePlugin instance;
@@ -31,30 +23,8 @@ public class BallBridgePlugin extends JavaPlugin {
@Override
public void onEnable() {
BallAPI.getInstance().addListener(new BallListener() {
@Override
public void onMessageSend(@NotNull BallMessageInfo event) {
Bukkit.getPluginManager().callEvent(new MessageSentEvent(new ServiceMessageInfo(
ServiceInfoAPI.getSenderInfo(event.getSenderID()),
event.getReceiverID(),
event.getChannel(),
event.getAction(),
event.getContent()
)));
}
@Override
public void onMessageReceived(@NotNull BallMessageInfo event) {
Bukkit.getPluginManager().callEvent(new MessageReceivedEvent(new ServiceMessageInfo(
ServiceInfoAPI.getSenderInfo(event.getSenderID()),
event.getReceiverID(),
event.getChannel(),
event.getAction(),
event.getContent()
)));
}
});
ServiceCommand.INSTANCE.hook();
ServiceCommand.INSTANCE.register();
Bukkit.getPluginManager().registerEvents(BridgeListener.INSTANCE, this);
Bukkit.getPluginManager().registerEvents(ServiceMainListener.INSTANCE, this);
Bukkit.getScheduler().runTask(this, () -> {
if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {

View File

@@ -1,7 +1,7 @@
package cn.hamster3.service.bukkit.api;
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.BallMessage;
import cn.hamster3.service.bukkit.BallBridgePlugin;
import cn.hamster3.service.bukkit.data.BukkitLocation;
import cn.hamster3.service.common.data.ServiceLocation;
@@ -27,7 +27,7 @@ public abstract class ServiceMessageAPI {
* @param tag 标签
*/
public static void subscribeTag(String tag) {
sendServiceMessage("HamsterService", "subscribeTag", tag);
BallAPI.getInstance().subscribe(tag);
}
/**
@@ -36,7 +36,7 @@ public abstract class ServiceMessageAPI {
* @param tag 标签
*/
public static void unsubscribeTag(String tag) {
sendServiceMessage("HamsterService", "unsubscribeTag", tag);
BallAPI.getInstance().unsubscribe(tag);
}
/**
@@ -81,16 +81,7 @@ public abstract class ServiceMessageAPI {
* @param content 附加参数
*/
public static void sendServiceMessage(String tag, String action, JsonElement content) {
BallAPI.getInstance().sendBallMessage(
new BallMessageInfo(
tag,
BallAPI.getInstance().getLocalServerId(),
null,
null,
action,
content
), false
);
BallAPI.getInstance().sendBallMessage(tag, new BallMessage(action, content), false);
}
/**
@@ -100,16 +91,14 @@ public abstract class ServiceMessageAPI {
* @param block 是否阻塞(即必须等待消息发送完成,该方法才会返回)
*/
public static void sendServiceMessage(ServiceMessageInfo info, boolean block) {
BallAPI.getInstance().sendBallMessage(
new BallMessageInfo(
info.getSenderInfo().getName(),
BallAPI.getInstance().getLocalServerId(),
null,
null,
info.getAction(),
info.getContent()
), block
BallMessage message = new BallMessage(
info.getSenderInfo().getName(),
info.getToServer(),
null,
info.getAction(),
info.getContent()
);
BallAPI.getInstance().sendBallMessage(info.getTag(), message, block);
}
/**

View File

@@ -0,0 +1,43 @@
package cn.hamster3.service.bukkit.listener;
import cn.hamster3.mc.plugin.ball.bukkit.event.MessageReceiveEvent;
import cn.hamster3.mc.plugin.ball.bukkit.event.MessageSendEvent;
import cn.hamster3.mc.plugin.ball.common.data.BallMessage;
import cn.hamster3.service.bukkit.api.ServiceInfoAPI;
import cn.hamster3.service.bukkit.event.MessageReceivedEvent;
import cn.hamster3.service.bukkit.event.MessageSentEvent;
import cn.hamster3.service.common.entity.ServiceMessageInfo;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
public class BridgeListener implements Listener {
public static final BridgeListener INSTANCE = new BridgeListener();
private BridgeListener() {
}
@EventHandler
public void onMessageSend(MessageSendEvent event) {
BallMessage ballMessage = event.getMessage();
Bukkit.getPluginManager().callEvent(new MessageSentEvent(new ServiceMessageInfo(
ServiceInfoAPI.getSenderInfo(ballMessage.getSenderID()),
ballMessage.getReceiverID(),
event.getChannel(),
ballMessage.getAction(),
ballMessage.getContent()
)));
}
@EventHandler
public void onMessageReceive(MessageReceiveEvent event) {
BallMessage ballMessage = event.getMessage();
Bukkit.getPluginManager().callEvent(new MessageReceivedEvent(new ServiceMessageInfo(
ServiceInfoAPI.getSenderInfo(ballMessage.getSenderID()),
ballMessage.getReceiverID(),
event.getChannel(),
ballMessage.getAction(),
ballMessage.getContent()
)));
}
}

View File

@@ -1,18 +1,11 @@
package cn.hamster3.service.bungee;
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.listener.BridgeListener;
import cn.hamster3.service.bungee.listener.ServiceMainListener;
import cn.hamster3.service.common.entity.ServiceMessageInfo;
import cn.hamster3.service.common.util.ServiceLogUtils;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.plugin.Plugin;
import org.jetbrains.annotations.NotNull;
public class BallBridgePlugin extends Plugin {
public static void main(String[] args) {
@@ -25,29 +18,7 @@ public class BallBridgePlugin extends Plugin {
@Override
public void onEnable() {
BallAPI.getInstance().addListener(new BallListener() {
@Override
public void onMessageSend(@NotNull BallMessageInfo event) {
ProxyServer.getInstance().getPluginManager().callEvent(new MessageSentEvent(new ServiceMessageInfo(
ServiceInfoAPI.getSenderInfo(event.getSenderID()),
event.getReceiverID(),
event.getChannel(),
event.getAction(),
event.getContent()
)));
}
@Override
public void onMessageReceived(@NotNull BallMessageInfo event) {
ProxyServer.getInstance().getPluginManager().callEvent(new MessageReceivedEvent(new ServiceMessageInfo(
ServiceInfoAPI.getSenderInfo(event.getSenderID()),
event.getReceiverID(),
event.getChannel(),
event.getAction(),
event.getContent()
)));
}
});
ProxyServer.getInstance().getPluginManager().registerListener(this, BridgeListener.INSTANCE);
ProxyServer.getInstance().getPluginManager().registerListener(this, ServiceMainListener.INSTANCE);
ProxyServer.getInstance().getPluginManager().registerCommand(this, ServiceCommand.INSTANCE);
}

View File

@@ -1,7 +1,7 @@
package cn.hamster3.service.bungee.api;
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.BallMessage;
import cn.hamster3.service.common.data.ServiceLocation;
import cn.hamster3.service.common.data.ServicePlayerInfo;
import cn.hamster3.service.common.entity.ServiceMessageInfo;
@@ -77,16 +77,7 @@ public abstract class ServiceMessageAPI {
* @param content 附加参数
*/
public static void sendServiceMessage(String tag, String action, JsonElement content) {
BallAPI.getInstance().sendBallMessage(
new BallMessageInfo(
tag,
BallAPI.getInstance().getLocalServerId(),
null,
null,
action,
content
), false
);
BallAPI.getInstance().sendBallMessage(tag, new BallMessage(action, content), false);
}
/**
@@ -96,16 +87,14 @@ public abstract class ServiceMessageAPI {
* @param block 是否阻塞(即必须等待消息发送完成,该方法才会返回)
*/
public static void sendServiceMessage(ServiceMessageInfo info, boolean block) {
BallAPI.getInstance().sendBallMessage(
new BallMessageInfo(
info.getSenderInfo().getName(),
BallAPI.getInstance().getLocalServerId(),
null,
null,
info.getAction(),
info.getContent()
), block
BallMessage message = new BallMessage(
info.getSenderInfo().getName(),
info.getToServer(),
null,
info.getAction(),
info.getContent()
);
BallAPI.getInstance().sendBallMessage(info.getTag(), message, block);
}
/**

View File

@@ -0,0 +1,43 @@
package cn.hamster3.service.bungee.listener;
import cn.hamster3.mc.plugin.ball.bungee.event.MessageReceiveEvent;
import cn.hamster3.mc.plugin.ball.bungee.event.MessageSendEvent;
import cn.hamster3.mc.plugin.ball.common.data.BallMessage;
import cn.hamster3.service.bungee.api.ServiceInfoAPI;
import cn.hamster3.service.bungee.event.MessageReceivedEvent;
import cn.hamster3.service.bungee.event.MessageSentEvent;
import cn.hamster3.service.common.entity.ServiceMessageInfo;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.plugin.Listener;
import net.md_5.bungee.event.EventHandler;
public class BridgeListener implements Listener {
public static final BridgeListener INSTANCE = new BridgeListener();
private BridgeListener() {
}
@EventHandler
public void onMessageSend(MessageSendEvent event) {
BallMessage ballMessage = event.getMessage();
ProxyServer.getInstance().getPluginManager().callEvent(new MessageSentEvent(new ServiceMessageInfo(
ServiceInfoAPI.getSenderInfo(ballMessage.getSenderID()),
ballMessage.getReceiverID(),
event.getChannel(),
ballMessage.getAction(),
ballMessage.getContent()
)));
}
@EventHandler
public void onMessageReceive(MessageReceiveEvent event) {
BallMessage ballMessage = event.getMessage();
ProxyServer.getInstance().getPluginManager().callEvent(new MessageReceivedEvent(new ServiceMessageInfo(
ServiceInfoAPI.getSenderInfo(ballMessage.getSenderID()),
ballMessage.getReceiverID(),
event.getChannel(),
ballMessage.getAction(),
ballMessage.getContent()
)));
}
}

View File

@@ -1,5 +1,6 @@
package cn.hamster3.service.common.entity;
import cn.hamster3.mc.plugin.core.common.api.CoreAPI;
import cn.hamster3.mc.plugin.core.common.util.CoreUtils;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
@@ -197,6 +198,6 @@ public class ServiceMessageInfo {
@Override
public String toString() {
return CoreUtils.GSON.toJson(this);
return CoreAPI.getInstance().getGson().toJson(this);
}
}

View File

@@ -1,4 +1,4 @@
version '1.0.0-SNAPSHOT'
version '1.1.0'
setArchivesBaseName("HamsterLobby")
dependencies {
@@ -7,4 +7,5 @@ dependencies {
compileOnly "cn.hamster3.mc.plugin:core-bukkit:${hamster_core_version}"
compileOnly "cn.hamster3.mc.plugin:ball-bukkit:${hamster_ball_version}"
compileOnly "cn.hamster3.mc.plugin:ball-bungeecord:${hamster_ball_version}"
}

View File

@@ -17,12 +17,12 @@ public class LobbyPlugin extends JavaPlugin {
@Override
public void onLoad() {
instance = this;
BallAPI.getInstance().addListener(ServiceListener.INSTANCE);
}
@Override
public void onEnable() {
Bukkit.getPluginManager().registerEvents(MainListener.INSTANCE, this);
Bukkit.getPluginManager().registerEvents(ServiceListener.INSTANCE, this);
Bukkit.getPluginManager().registerEvents(ProtectListener.INSTANCE, this);
BallAPI.getInstance().sendBallMessage("HamsterLobby", "registerLobby");
}

View File

@@ -1,21 +1,21 @@
package cn.hamster3.mc.plugin.lobby.bukkit.listener;
import cn.hamster3.mc.plugin.ball.bukkit.event.server.ServerOnlineEvent;
import cn.hamster3.mc.plugin.ball.common.api.BallAPI;
import cn.hamster3.mc.plugin.ball.common.entity.BallServerInfo;
import cn.hamster3.mc.plugin.ball.common.entity.BallServerType;
import cn.hamster3.mc.plugin.ball.common.event.server.ServerOnlineEvent;
import cn.hamster3.mc.plugin.ball.common.listener.BallListener;
import cn.hamster3.mc.plugin.lobby.bukkit.LobbyPlugin;
import org.jetbrains.annotations.NotNull;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
public class ServiceListener implements BallListener {
public class ServiceListener implements Listener {
public static final ServiceListener INSTANCE = new ServiceListener();
private ServiceListener() {
}
@Override
public void onServerOnline(@NotNull ServerOnlineEvent event) {
@EventHandler(ignoreCancelled = true)
public void onServerOnline(ServerOnlineEvent event) {
BallServerInfo info = event.getServerInfo();
if (info.getType() != BallServerType.PROXY) {
return;
@@ -23,4 +23,5 @@ public class ServiceListener implements BallListener {
BallAPI.getInstance().sendBallMessage("HamsterLobby", "registerLobby");
LobbyPlugin.getInstance().getLogger().info("代理端 " + info.getName() + " 已上线,发送大厅服注册消息。");
}
}

View File

@@ -24,8 +24,9 @@ public class LobbyPlugin extends Plugin {
@Override
public void onEnable() {
BallAPI.getInstance().addListener(ServiceListener.INSTANCE);
BallAPI.getInstance().subscribe("HamsterLobby");
ProxyServer.getInstance().setReconnectHandler(LobbyReconnectHandler.INSTANCE);
ProxyServer.getInstance().getPluginManager().registerListener(this, ServiceListener.INSTANCE);
ProxyServer.getInstance().getPluginManager().registerListener(this, MainListener.INSTANCE);
}
}

View File

@@ -1,25 +1,28 @@
package cn.hamster3.mc.plugin.lobby.bungee.listener;
import cn.hamster3.mc.plugin.ball.common.data.BallMessageInfo;
import cn.hamster3.mc.plugin.ball.common.event.server.ServerOfflineEvent;
import cn.hamster3.mc.plugin.ball.common.listener.BallListener;
import cn.hamster3.mc.plugin.ball.bungee.event.MessageReceiveEvent;
import cn.hamster3.mc.plugin.ball.bungee.event.server.ServerOfflineEvent;
import cn.hamster3.mc.plugin.ball.common.data.BallMessage;
import cn.hamster3.mc.plugin.lobby.bungee.LobbyPlugin;
import org.jetbrains.annotations.NotNull;
import net.md_5.bungee.api.plugin.Listener;
import net.md_5.bungee.event.EventHandler;
public class ServiceListener implements BallListener {
public class ServiceListener implements Listener {
public static final ServiceListener INSTANCE = new ServiceListener();
private ServiceListener() {
}
@Override
public void onMessageReceived(@NotNull BallMessageInfo event) {
@EventHandler
public void onMessageReceive(MessageReceiveEvent event) {
if (!"HamsterLobby".equals(event.getChannel())) {
return;
}
switch (event.getAction()) {
BallMessage ballMessage = event.getMessage();
switch (ballMessage.getAction()) {
case "registerLobby": {
String senderID = event.getSenderID();
String senderID = ballMessage.getSenderID();
LobbyPlugin.LOBBY_SERVERS.add(senderID);
LobbyPlugin.getInstance().getLogger().info("已添加大厅服务器: " + senderID);
break;
@@ -30,9 +33,9 @@ public class ServiceListener implements BallListener {
}
}
@Override
public void onServerOffline(@NotNull ServerOfflineEvent event) {
String serverID = event.getServerID();
@EventHandler
public void onServerOffline(ServerOfflineEvent event) {
String serverID = event.getServerInfo().getId();
if (LobbyPlugin.LOBBY_SERVERS.remove(serverID)) {
LobbyPlugin.getInstance().getLogger().info("已移除大厅服务器: " + serverID);
}

View File

@@ -1,7 +1,7 @@
version = '1.0.0'
version = '1.1.0'
setArchivesBaseName("HamsterTPA")
dependencies {
compileOnly "cn.hamster3.mc.plugin:core-bukkit:${hamster_ball_version}"
compileOnly "cn.hamster3.mc.plugin:ball-common:${hamster_ball_version}"
compileOnly "cn.hamster3.mc.plugin:core-bukkit:${hamster_core_version}"
compileOnly "cn.hamster3.mc.plugin:ball-bukkit:${hamster_ball_version}"
}

View File

@@ -7,6 +7,7 @@ import cn.hamster3.mc.plugin.tpa.command.TPDenyCommand;
import cn.hamster3.mc.plugin.tpa.config.ConfigManager;
import cn.hamster3.mc.plugin.tpa.core.DataManager;
import cn.hamster3.mc.plugin.tpa.listener.MainListener;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
public class HamsterTPAPlugin extends JavaPlugin {
@@ -26,9 +27,10 @@ public class HamsterTPAPlugin extends JavaPlugin {
@Override
public void onEnable() {
BallAPI.getInstance().addListener(MainListener.INSTANCE);
TPACommand.INSTANCE.hook();
TPAcceptCommand.INSTANCE.hook();
TPDenyCommand.INSTANCE.hook();
TPACommand.INSTANCE.register();
TPAcceptCommand.INSTANCE.register();
TPDenyCommand.INSTANCE.register();
Bukkit.getPluginManager().registerEvents(MainListener.INSTANCE, this);
BallAPI.getInstance().subscribe(BALL_CHANNEL);
}
}

View File

@@ -4,7 +4,7 @@ import cn.hamster3.mc.plugin.ball.common.api.BallAPI;
import cn.hamster3.mc.plugin.ball.common.entity.BallPlayerInfo;
import cn.hamster3.mc.plugin.core.bukkit.command.ParentCommand;
import cn.hamster3.mc.plugin.core.bukkit.constant.CoreMessage;
import cn.hamster3.mc.plugin.core.common.util.CoreUtils;
import cn.hamster3.mc.plugin.core.common.api.CoreAPI;
import cn.hamster3.mc.plugin.core.lib.net.kyori.adventure.text.TextReplacementConfig;
import cn.hamster3.mc.plugin.tpa.HamsterTPAPlugin;
import cn.hamster3.mc.plugin.tpa.config.ConfigManager;
@@ -78,7 +78,7 @@ public final class TPACommand extends ParentCommand {
.replacement(player.getName())
.build()),
false);
CoreUtils.SCHEDULED_EXECUTOR.schedule(
CoreAPI.getInstance().getScheduledService().schedule(
new TimeoutThread(uuid, playerInfo.getUuid()),
ConfigManager.getTimeout(),
TimeUnit.MILLISECONDS

View File

@@ -1,28 +1,30 @@
package cn.hamster3.mc.plugin.tpa.listener;
import cn.hamster3.mc.plugin.ball.common.data.BallMessageInfo;
import cn.hamster3.mc.plugin.ball.common.listener.BallListener;
import cn.hamster3.mc.plugin.ball.bukkit.event.MessageReceiveEvent;
import cn.hamster3.mc.plugin.ball.common.data.BallMessage;
import cn.hamster3.mc.plugin.tpa.HamsterTPAPlugin;
import cn.hamster3.mc.plugin.tpa.core.DataManager;
import com.google.gson.JsonObject;
import org.jetbrains.annotations.NotNull;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import java.util.UUID;
public final class MainListener implements BallListener {
public final class MainListener implements Listener {
public static final MainListener INSTANCE = new MainListener();
private MainListener() {
}
@Override
public void onMessageReceived(@NotNull BallMessageInfo event) {
@EventHandler(ignoreCancelled = true)
public void onMessageReceive(MessageReceiveEvent event) {
if (!HamsterTPAPlugin.BALL_CHANNEL.equals(event.getChannel())) {
return;
}
switch (event.getAction()) {
BallMessage ballMessage = event.getMessage();
switch (ballMessage.getAction()) {
case "setPlayerUseTime": {
JsonObject object = event.getContentAsJsonObject();
JsonObject object = ballMessage.getContentAsJsonObject();
DataManager.setPlayerUseTime(
UUID.fromString(object.get("uuid").getAsString()),
object.get("time").getAsLong(),
@@ -31,7 +33,7 @@ public final class MainListener implements BallListener {
break;
}
case "sendTPA": {
JsonObject object = event.getContentAsJsonObject();
JsonObject object = ballMessage.getContentAsJsonObject();
DataManager.sendTPA(
UUID.fromString(object.get("sender").getAsString()),
UUID.fromString(object.get("target").getAsString()),
@@ -41,7 +43,7 @@ public final class MainListener implements BallListener {
break;
}
case "clearTPAList": {
DataManager.clearTPAList(event.getContentAsUUID(), false);
DataManager.clearTPAList(ballMessage.getContentAsUUID(), false);
break;
}
case "": {