feat: 支持新版仓鼠球
This commit is contained in:
@@ -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,11 +33,11 @@ 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user