feat: 支持新版仓鼠球
This commit is contained in:
@@ -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
|
@@ -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}"
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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 + " 的接入点配置");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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}"
|
||||
}
|
||||
|
@@ -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")) {
|
||||
|
@@ -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(
|
||||
BallMessage message = new BallMessage(
|
||||
info.getSenderInfo().getName(),
|
||||
BallAPI.getInstance().getLocalServerId(),
|
||||
null,
|
||||
info.getToServer(),
|
||||
null,
|
||||
info.getAction(),
|
||||
info.getContent()
|
||||
), block
|
||||
);
|
||||
BallAPI.getInstance().sendBallMessage(info.getTag(), message, block);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -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()
|
||||
)));
|
||||
}
|
||||
}
|
@@ -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);
|
||||
}
|
||||
|
@@ -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(
|
||||
BallMessage message = new BallMessage(
|
||||
info.getSenderInfo().getName(),
|
||||
BallAPI.getInstance().getLocalServerId(),
|
||||
null,
|
||||
info.getToServer(),
|
||||
null,
|
||||
info.getAction(),
|
||||
info.getContent()
|
||||
), block
|
||||
);
|
||||
BallAPI.getInstance().sendBallMessage(info.getTag(), message, block);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -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()
|
||||
)));
|
||||
}
|
||||
}
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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}"
|
||||
}
|
||||
|
@@ -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");
|
||||
}
|
||||
|
@@ -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() + " 已上线,发送大厅服注册消息。");
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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}"
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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
|
||||
|
@@ -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 "": {
|
||||
|
Reference in New Issue
Block a user