diff --git a/hamster-ball-bukkit/src/main/java/cn/hamster3/mc/plugin/ball/bukkit/listener/BallBukkitListener.java b/hamster-ball-bukkit/src/main/java/cn/hamster3/mc/plugin/ball/bukkit/listener/BallBukkitListener.java index 492a732..b0af4b8 100644 --- a/hamster-ball-bukkit/src/main/java/cn/hamster3/mc/plugin/ball/bukkit/listener/BallBukkitListener.java +++ b/hamster-ball-bukkit/src/main/java/cn/hamster3/mc/plugin/ball/bukkit/listener/BallBukkitListener.java @@ -107,7 +107,7 @@ public class BallBukkitListener implements Listener, BallListener { SendPlayerToPlayerEvent event = CoreUtils.GSON.fromJson(info.getContent(), SendPlayerToPlayerEvent.class); Player toPlayer = Bukkit.getPlayer(event.getToPlayerUUID()); if (toPlayer == null) { - return; + break; } Location location = toPlayer.getLocation(); for (UUID uuid : event.getSendPlayerUUID()) { diff --git a/hamster-ball-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/listener/BallBungeeCordListener.java b/hamster-ball-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/listener/BallBungeeCordListener.java index c5859c2..0b74081 100644 --- a/hamster-ball-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/listener/BallBungeeCordListener.java +++ b/hamster-ball-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/listener/BallBungeeCordListener.java @@ -100,6 +100,23 @@ public final class BallBungeeCordListener implements Listener, BallListener { } break; } + case SendPlayerToPlayerEvent.ACTION: { + SendPlayerToPlayerEvent event = CoreUtils.GSON.fromJson(info.getContent(), SendPlayerToPlayerEvent.class); + UUID toPlayerUUID = event.getToPlayerUUID(); + ProxiedPlayer toPlayer = ProxyServer.getInstance().getPlayer(toPlayerUUID); + if (toPlayer == null) { + HamsterBallPlugin.getInstance().getLogger().warning("试图传送玩家时失败: 目标玩家 " + toPlayerUUID + " 不在线!"); + break; + } + ServerInfo toServer = toPlayer.getServer().getInfo(); + for (UUID uuid : event.getSendPlayerUUID()) { + ProxiedPlayer sendPlayer = ProxyServer.getInstance().getPlayer(uuid); + if (sendPlayer.getServer().getInfo().getName().equals(toServer.getName())) { + continue; + } + sendPlayer.connect(toServer); + } + } } } diff --git a/hamster-ball-server/src/main/java/cn/hamster3/mc/plugin/ball/server/connector/BallServerChannelInitializer.java b/hamster-ball-server/src/main/java/cn/hamster3/mc/plugin/ball/server/connector/BallServerChannelInitializer.java index 7df6490..abb30c8 100644 --- a/hamster-ball-server/src/main/java/cn/hamster3/mc/plugin/ball/server/connector/BallServerChannelInitializer.java +++ b/hamster-ball-server/src/main/java/cn/hamster3/mc/plugin/ball/server/connector/BallServerChannelInitializer.java @@ -58,7 +58,7 @@ public class BallServerChannelInitializer extends ChannelInitializer