feat: 支持新版仓鼠球

This commit is contained in:
2023-11-12 17:50:55 +08:00
parent d20259631a
commit 9a7a0c92af
17 changed files with 48 additions and 96 deletions

View File

@@ -1,7 +1,6 @@
org.gradle.jvmargs=-Xmx2G org.gradle.jvmargs=-Xmx2G
spigot_api_version=1.20.2-R0.1-SNAPSHOT
spigot_api_version=1.19.4-R0.1-SNAPSHOT bungeecord_api_version=1.20-R0.1-SNAPSHOT
bungeecord_api_version=1.19-R0.1-SNAPSHOT hamster_core_version=1.1.0
hamster_core_version=1.1.0-SNAPSHOT hamster_ball_version=1.3.0
hamster_ball_version=1.2.0-SNAPSHOT
placeholder_api_version=2.11.2 placeholder_api_version=2.11.2

View File

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

View File

@@ -31,6 +31,6 @@ public class ServerInfoPlugin extends Plugin {
ProxyServer.getInstance().getServers().put(serverInfo.getId(), ServerInfoUtils.getServerInfo(serverInfo)); ProxyServer.getInstance().getServers().put(serverInfo.getId(), ServerInfoUtils.getServerInfo(serverInfo));
getLogger().info("已添加子服 " + serverInfo.getId() + " 的接入点配置."); getLogger().info("已添加子服 " + serverInfo.getId() + " 的接入点配置.");
} }
ProxyServer.getInstance().getPluginManager().registerListener(this, ServerInfoListener.INSTANCE); BallAPI.getInstance().getEventBus().register(ServerInfoListener.INSTANCE);
} }
} }

View File

@@ -2,24 +2,23 @@ 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.ServerInfoPlugin;
import cn.hamster3.mc.plugin.auto.server.info.util.ServerInfoUtils; 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.BallServerInfo;
import cn.hamster3.mc.plugin.ball.common.entity.BallServerType; 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 com.google.common.eventbus.Subscribe;
import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.config.ServerInfo; import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.api.plugin.Listener;
import net.md_5.bungee.event.EventHandler;
import java.util.Map; import java.util.Map;
public class ServerInfoListener implements Listener { public class ServerInfoListener {
public static final ServerInfoListener INSTANCE = new ServerInfoListener(); public static final ServerInfoListener INSTANCE = new ServerInfoListener();
private ServerInfoListener() { private ServerInfoListener() {
} }
@EventHandler @Subscribe
public void onServerOnline(ServerOnlineEvent event) { public void onServerOnline(ServerOnlineEvent event) {
BallServerInfo serverInfo = event.getServerInfo(); BallServerInfo serverInfo = event.getServerInfo();
if (serverInfo.getType() != BallServerType.GAME) { if (serverInfo.getType() != BallServerType.GAME) {
@@ -29,7 +28,7 @@ public class ServerInfoListener implements Listener {
ServerInfoPlugin.getInstance().getLogger().info("已添加子服 " + serverInfo.getId() + " 的接入点配置"); ServerInfoPlugin.getInstance().getLogger().info("已添加子服 " + serverInfo.getId() + " 的接入点配置");
} }
@EventHandler @Subscribe
public void onServerOffline(ServerOfflineEvent event) { public void onServerOffline(ServerOfflineEvent event) {
BallServerInfo info = event.getServerInfo(); BallServerInfo info = event.getServerInfo();
String id = info.getId(); String id = info.getId();

View File

@@ -1,10 +1,10 @@
version = '1.3.0' version = '1.4.0'
setArchivesBaseName("HamsterBall-Bridge") setArchivesBaseName("HamsterBall-Bridge")
dependencies { dependencies {
compileOnly "cn.hamster3.mc.plugin:core-bukkit:${hamster_core_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-bukkit:${hamster_ball_version}"
compileOnly "cn.hamster3.mc.plugin:ball-bungeecord:${hamster_ball_version}" compileOnly "cn.hamster3.mc.plugin:ball-bungee:${hamster_ball_version}"
compileOnly "me.clip:placeholderapi:${placeholder_api_version}" compileOnly "me.clip:placeholderapi:${placeholder_api_version}"
} }

View File

@@ -1,9 +1,10 @@
package cn.hamster3.service.bukkit; package cn.hamster3.service.bukkit;
import cn.hamster3.mc.plugin.ball.common.api.BallAPI;
import cn.hamster3.service.bukkit.command.ServiceCommand; import cn.hamster3.service.bukkit.command.ServiceCommand;
import cn.hamster3.service.bukkit.hook.ServicePlaceholderHook; 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.bukkit.listener.ServiceMainListener;
import cn.hamster3.service.common.listener.BridgeListener;
import cn.hamster3.service.common.util.ServiceLogUtils; import cn.hamster3.service.common.util.ServiceLogUtils;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
@@ -24,7 +25,7 @@ public class BallBridgePlugin extends JavaPlugin {
@Override @Override
public void onEnable() { public void onEnable() {
ServiceCommand.INSTANCE.register(); ServiceCommand.INSTANCE.register();
Bukkit.getPluginManager().registerEvents(BridgeListener.INSTANCE, this); BallAPI.getInstance().getEventBus().register(BridgeListener.INSTANCE);
Bukkit.getPluginManager().registerEvents(ServiceMainListener.INSTANCE, this); Bukkit.getPluginManager().registerEvents(ServiceMainListener.INSTANCE, this);
Bukkit.getScheduler().runTask(this, () -> { Bukkit.getScheduler().runTask(this, () -> {
if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) { if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
@@ -34,6 +35,6 @@ public class BallBridgePlugin extends JavaPlugin {
getLogger().warning("未找到 PlaceholderAPI 插件, 取消注册占位符."); getLogger().warning("未找到 PlaceholderAPI 插件, 取消注册占位符.");
} }
}); });
BallAPI.getInstance().subscribe("HamsterService");
} }
} }

View File

@@ -1,8 +1,9 @@
package cn.hamster3.service.bungee; package cn.hamster3.service.bungee;
import cn.hamster3.mc.plugin.ball.common.api.BallAPI;
import cn.hamster3.service.bungee.command.ServiceCommand; import cn.hamster3.service.bungee.command.ServiceCommand;
import cn.hamster3.service.bungee.listener.BridgeListener;
import cn.hamster3.service.bungee.listener.ServiceMainListener; import cn.hamster3.service.bungee.listener.ServiceMainListener;
import cn.hamster3.service.common.listener.BridgeListener;
import cn.hamster3.service.common.util.ServiceLogUtils; import cn.hamster3.service.common.util.ServiceLogUtils;
import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.plugin.Plugin; import net.md_5.bungee.api.plugin.Plugin;
@@ -18,8 +19,9 @@ public class BallBridgePlugin extends Plugin {
@Override @Override
public void onEnable() { public void onEnable() {
ProxyServer.getInstance().getPluginManager().registerListener(this, BridgeListener.INSTANCE); BallAPI.getInstance().getEventBus().register(BridgeListener.INSTANCE);
ProxyServer.getInstance().getPluginManager().registerListener(this, ServiceMainListener.INSTANCE); ProxyServer.getInstance().getPluginManager().registerListener(this, ServiceMainListener.INSTANCE);
ProxyServer.getInstance().getPluginManager().registerCommand(this, ServiceCommand.INSTANCE); ProxyServer.getInstance().getPluginManager().registerCommand(this, ServiceCommand.INSTANCE);
BallAPI.getInstance().subscribe("HamsterService");
} }
} }

View File

@@ -1,43 +0,0 @@
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,24 +1,21 @@
package cn.hamster3.service.bukkit.listener; package cn.hamster3.service.common.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.mc.plugin.ball.common.data.BallMessage;
import cn.hamster3.service.bukkit.api.ServiceInfoAPI; import cn.hamster3.service.bukkit.api.ServiceInfoAPI;
import cn.hamster3.service.bukkit.event.MessageReceivedEvent; import cn.hamster3.service.bukkit.event.MessageReceivedEvent;
import cn.hamster3.service.bukkit.event.MessageSentEvent; import cn.hamster3.service.bukkit.event.MessageSentEvent;
import cn.hamster3.service.common.entity.ServiceMessageInfo; import cn.hamster3.service.common.entity.ServiceMessageInfo;
import com.google.common.eventbus.Subscribe;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
public class BridgeListener implements Listener { public class BridgeListener {
public static final BridgeListener INSTANCE = new BridgeListener(); public static final BridgeListener INSTANCE = new BridgeListener();
private BridgeListener() { private BridgeListener() {
} }
@EventHandler @Subscribe
public void onMessageSend(MessageSendEvent event) { public void onMessageSent(cn.hamster3.mc.plugin.ball.common.event.message.MessageSentEvent event) {
BallMessage ballMessage = event.getMessage(); BallMessage ballMessage = event.getMessage();
Bukkit.getPluginManager().callEvent(new MessageSentEvent(new ServiceMessageInfo( Bukkit.getPluginManager().callEvent(new MessageSentEvent(new ServiceMessageInfo(
ServiceInfoAPI.getSenderInfo(ballMessage.getSenderID()), ServiceInfoAPI.getSenderInfo(ballMessage.getSenderID()),
@@ -29,8 +26,8 @@ public class BridgeListener implements Listener {
))); )));
} }
@EventHandler @Subscribe
public void onMessageReceive(MessageReceiveEvent event) { public void onMessageReceived(cn.hamster3.mc.plugin.ball.common.event.message.MessageReceivedEvent event) {
BallMessage ballMessage = event.getMessage(); BallMessage ballMessage = event.getMessage();
Bukkit.getPluginManager().callEvent(new MessageReceivedEvent(new ServiceMessageInfo( Bukkit.getPluginManager().callEvent(new MessageReceivedEvent(new ServiceMessageInfo(
ServiceInfoAPI.getSenderInfo(ballMessage.getSenderID()), ServiceInfoAPI.getSenderInfo(ballMessage.getSenderID()),

View File

@@ -5,5 +5,5 @@ dependencies {
//noinspection VulnerableLibrariesLocal //noinspection VulnerableLibrariesLocal
compileOnly "net.md-5:bungeecord-api:${bungeecord_api_version}" compileOnly "net.md-5:bungeecord-api:${bungeecord_api_version}"
compileOnly "cn.hamster3.mc.plugin:core-bungeecord:${hamster_core_version}" compileOnly "cn.hamster3.mc.plugin:core-bungee:${hamster_core_version}"
} }

View File

@@ -7,5 +7,5 @@ dependencies {
compileOnly "cn.hamster3.mc.plugin:core-bukkit:${hamster_core_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-bukkit:${hamster_ball_version}"
compileOnly "cn.hamster3.mc.plugin:ball-bungeecord:${hamster_ball_version}" compileOnly "cn.hamster3.mc.plugin:ball-bungee:${hamster_ball_version}"
} }

View File

@@ -22,8 +22,8 @@ public class LobbyPlugin extends JavaPlugin {
@Override @Override
public void onEnable() { public void onEnable() {
Bukkit.getPluginManager().registerEvents(MainListener.INSTANCE, this); Bukkit.getPluginManager().registerEvents(MainListener.INSTANCE, this);
Bukkit.getPluginManager().registerEvents(ServiceListener.INSTANCE, this);
Bukkit.getPluginManager().registerEvents(ProtectListener.INSTANCE, this); Bukkit.getPluginManager().registerEvents(ProtectListener.INSTANCE, this);
BallAPI.getInstance().getEventBus().register(ServiceListener.INSTANCE);
BallAPI.getInstance().sendBallMessage("HamsterLobby", "registerLobby"); BallAPI.getInstance().sendBallMessage("HamsterLobby", "registerLobby");
} }
} }

View File

@@ -1,20 +1,19 @@
package cn.hamster3.mc.plugin.lobby.bukkit.listener; 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.api.BallAPI;
import cn.hamster3.mc.plugin.ball.common.entity.BallServerInfo; 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.entity.BallServerType;
import cn.hamster3.mc.plugin.ball.common.event.server.ServerOnlineEvent;
import cn.hamster3.mc.plugin.lobby.bukkit.LobbyPlugin; import cn.hamster3.mc.plugin.lobby.bukkit.LobbyPlugin;
import org.bukkit.event.EventHandler; import com.google.common.eventbus.Subscribe;
import org.bukkit.event.Listener;
public class ServiceListener implements Listener { public class ServiceListener {
public static final ServiceListener INSTANCE = new ServiceListener(); public static final ServiceListener INSTANCE = new ServiceListener();
private ServiceListener() { private ServiceListener() {
} }
@EventHandler(ignoreCancelled = true) @Subscribe
public void onServerOnline(ServerOnlineEvent event) { public void onServerOnline(ServerOnlineEvent event) {
BallServerInfo info = event.getServerInfo(); BallServerInfo info = event.getServerInfo();
if (info.getType() != BallServerType.PROXY) { if (info.getType() != BallServerType.PROXY) {

View File

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

View File

@@ -1,11 +1,11 @@
package cn.hamster3.mc.plugin.lobby.bungee.listener; package cn.hamster3.mc.plugin.lobby.bungee.listener;
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.ball.common.data.BallMessage;
import cn.hamster3.mc.plugin.ball.common.event.message.MessageReceivedEvent;
import cn.hamster3.mc.plugin.ball.common.event.server.ServerOfflineEvent;
import cn.hamster3.mc.plugin.lobby.bungee.LobbyPlugin; import cn.hamster3.mc.plugin.lobby.bungee.LobbyPlugin;
import com.google.common.eventbus.Subscribe;
import net.md_5.bungee.api.plugin.Listener; import net.md_5.bungee.api.plugin.Listener;
import net.md_5.bungee.event.EventHandler;
public class ServiceListener implements Listener { public class ServiceListener implements Listener {
public static final ServiceListener INSTANCE = new ServiceListener(); public static final ServiceListener INSTANCE = new ServiceListener();
@@ -13,9 +13,8 @@ public class ServiceListener implements Listener {
private ServiceListener() { private ServiceListener() {
} }
@Subscribe
@EventHandler public void onMessageReceived(MessageReceivedEvent event) {
public void onMessageReceive(MessageReceiveEvent event) {
if (!"HamsterLobby".equals(event.getChannel())) { if (!"HamsterLobby".equals(event.getChannel())) {
return; return;
} }
@@ -33,7 +32,7 @@ public class ServiceListener implements Listener {
} }
} }
@EventHandler @Subscribe
public void onServerOffline(ServerOfflineEvent event) { public void onServerOffline(ServerOfflineEvent event) {
String serverID = event.getServerInfo().getId(); String serverID = event.getServerInfo().getId();
if (LobbyPlugin.LOBBY_SERVERS.remove(serverID)) { if (LobbyPlugin.LOBBY_SERVERS.remove(serverID)) {

View File

@@ -7,7 +7,6 @@ import cn.hamster3.mc.plugin.tpa.command.TPDenyCommand;
import cn.hamster3.mc.plugin.tpa.config.ConfigManager; import cn.hamster3.mc.plugin.tpa.config.ConfigManager;
import cn.hamster3.mc.plugin.tpa.core.DataManager; import cn.hamster3.mc.plugin.tpa.core.DataManager;
import cn.hamster3.mc.plugin.tpa.listener.MainListener; import cn.hamster3.mc.plugin.tpa.listener.MainListener;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
public class HamsterTPAPlugin extends JavaPlugin { public class HamsterTPAPlugin extends JavaPlugin {
@@ -30,7 +29,7 @@ public class HamsterTPAPlugin extends JavaPlugin {
TPACommand.INSTANCE.register(); TPACommand.INSTANCE.register();
TPAcceptCommand.INSTANCE.register(); TPAcceptCommand.INSTANCE.register();
TPDenyCommand.INSTANCE.register(); TPDenyCommand.INSTANCE.register();
Bukkit.getPluginManager().registerEvents(MainListener.INSTANCE, this); BallAPI.getInstance().getEventBus().register(MainListener.INSTANCE);
BallAPI.getInstance().subscribe(BALL_CHANNEL); BallAPI.getInstance().subscribe(BALL_CHANNEL);
} }
} }

View File

@@ -1,11 +1,11 @@
package cn.hamster3.mc.plugin.tpa.listener; package cn.hamster3.mc.plugin.tpa.listener;
import cn.hamster3.mc.plugin.ball.bukkit.event.MessageReceiveEvent;
import cn.hamster3.mc.plugin.ball.common.data.BallMessage; import cn.hamster3.mc.plugin.ball.common.data.BallMessage;
import cn.hamster3.mc.plugin.ball.common.event.message.MessageReceivedEvent;
import cn.hamster3.mc.plugin.tpa.HamsterTPAPlugin; import cn.hamster3.mc.plugin.tpa.HamsterTPAPlugin;
import cn.hamster3.mc.plugin.tpa.core.DataManager; import cn.hamster3.mc.plugin.tpa.core.DataManager;
import com.google.common.eventbus.Subscribe;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import java.util.UUID; import java.util.UUID;
@@ -16,8 +16,8 @@ public final class MainListener implements Listener {
private MainListener() { private MainListener() {
} }
@EventHandler(ignoreCancelled = true) @Subscribe
public void onMessageReceive(MessageReceiveEvent event) { public void onMessageReceived(MessageReceivedEvent event) {
if (!HamsterTPAPlugin.BALL_CHANNEL.equals(event.getChannel())) { if (!HamsterTPAPlugin.BALL_CHANNEL.equals(event.getChannel())) {
return; return;
} }