From 9284ec34094a047ecf817c6e1908f11d7d3a6f22 Mon Sep 17 00:00:00 2001 From: Taah Date: Mon, 9 May 2022 18:05:31 -0700 Subject: [PATCH] add plugin messaging to proxies for kicking players --- server/src/main/java/dev/plex/Plex.java | 17 +++++++--- .../java/dev/plex/command/impl/BanCMD.java | 13 +++++--- .../java/dev/plex/command/impl/KickCMD.java | 16 +++++++--- .../dev/plex/command/impl/TempbanCMD.java | 17 +++++++--- .../main/java/dev/plex/util/BungeeUtil.java | 32 +++++++++++++++++++ 5 files changed, 77 insertions(+), 18 deletions(-) create mode 100644 server/src/main/java/dev/plex/util/BungeeUtil.java diff --git a/server/src/main/java/dev/plex/Plex.java b/server/src/main/java/dev/plex/Plex.java index 856d21e..84d50eb 100644 --- a/server/src/main/java/dev/plex/Plex.java +++ b/server/src/main/java/dev/plex/Plex.java @@ -23,10 +23,7 @@ import dev.plex.storage.player.MongoPlayerData; import dev.plex.storage.player.SQLPlayerData; import dev.plex.storage.punishment.SQLNotes; import dev.plex.storage.punishment.SQLPunishment; -import dev.plex.util.BuildInfo; -import dev.plex.util.PlexLog; -import dev.plex.util.PlexUtils; -import dev.plex.util.UpdateChecker; +import dev.plex.util.*; import dev.plex.world.CustomWorld; import java.io.File; import lombok.Getter; @@ -103,6 +100,7 @@ public class Plex extends PlexPlugin moduleManager.loadModules(); this.setChatHandler(new ChatListener.ChatHandlerImpl()); + } @Override @@ -190,6 +188,15 @@ public class Plex extends PlexPlugin PlexLog.log("Started " + serviceManager.serviceCount() + " services."); reloadPlayers(); + PlexLog.debug("Registered Bukkit -> BungeeCord Plugin Messaging Channel"); + PlexLog.debug("Velocity Support? " + BungeeUtil.isVelocity()); + PlexLog.debug("BungeeCord Support? " + BungeeUtil.isBungeeCord()); + if (BungeeUtil.isBungeeCord() && BungeeUtil.isVelocity()) + { + PlexLog.warn("It seems you have both velocity and bungeecord configuration options enabled! When running Velocity, you do NOT need to enable bungeecord."); + } + this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord"); + moduleManager.enableModules(); } @@ -220,6 +227,8 @@ public class Plex extends PlexPlugin redisConnection.getJedis().close(); } + this.getServer().getMessenger().unregisterOutgoingPluginChannel(this); + moduleManager.disableModules(); } diff --git a/server/src/main/java/dev/plex/command/impl/BanCMD.java b/server/src/main/java/dev/plex/command/impl/BanCMD.java index d64016e..440bc58 100644 --- a/server/src/main/java/dev/plex/command/impl/BanCMD.java +++ b/server/src/main/java/dev/plex/command/impl/BanCMD.java @@ -12,10 +12,8 @@ import dev.plex.player.PlexPlayer; import dev.plex.punishment.Punishment; import dev.plex.punishment.PunishmentType; import dev.plex.rank.enums.Rank; -import dev.plex.util.PlexLog; -import dev.plex.util.PlexUtils; -import dev.plex.util.TimeUtils; -import dev.plex.util.WebUtils; +import dev.plex.util.*; + import java.time.ZoneId; import java.time.ZonedDateTime; import java.util.List; @@ -100,7 +98,12 @@ public class BanCMD extends PlexCommand { if (player != null) { - player.kick(Punishment.generateBanMessage(punishment)); + if (BungeeUtil.isBungeeCord() || BungeeUtil.isVelocity()) + { + BungeeUtil.kickPlayer(player, Punishment.generateBanMessage(punishment)); + } else { + player.kick(Punishment.generateBanMessage(punishment)); + } } }); PlexLog.debug("(From /ban command) PunishedPlayer UUID: " + plexPlayer.getUuid()); diff --git a/server/src/main/java/dev/plex/command/impl/KickCMD.java b/server/src/main/java/dev/plex/command/impl/KickCMD.java index af28137..2db291f 100644 --- a/server/src/main/java/dev/plex/command/impl/KickCMD.java +++ b/server/src/main/java/dev/plex/command/impl/KickCMD.java @@ -10,12 +10,10 @@ import dev.plex.player.PlexPlayer; import dev.plex.punishment.Punishment; import dev.plex.punishment.PunishmentType; import dev.plex.rank.enums.Rank; +import dev.plex.util.BungeeUtil; import dev.plex.util.PlexUtils; import dev.plex.util.TimeUtils; import dev.plex.util.WebUtils; -import java.time.ZoneId; -import java.time.ZonedDateTime; -import java.util.UUID; import net.kyori.adventure.text.Component; import org.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; @@ -24,6 +22,10 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.util.UUID; + @CommandParameters(name = "kick", description = "Kicks a player", usage = "/ ") @CommandPermissions(level = Rank.ADMIN, permission = "plex.kick", source = RequiredCommandSource.ANY) public class KickCMD extends PlexCommand @@ -65,7 +67,13 @@ public class KickCMD extends PlexCommand punishment.setIp(player.getAddress().getAddress().getHostAddress().trim()); plugin.getPunishmentManager().punish(plexPlayer, punishment); PlexUtils.broadcast(messageComponent("kickedPlayer", sender.getName(), plexPlayer.getName())); - player.kick(componentFromString(reason)); + if (BungeeUtil.isBungeeCord() || BungeeUtil.isVelocity()) + { + BungeeUtil.kickPlayer(player, Punishment.generateBanMessage(punishment)); + } else + { + player.kick(Punishment.generateBanMessage(punishment)); + } return null; } } \ No newline at end of file diff --git a/server/src/main/java/dev/plex/command/impl/TempbanCMD.java b/server/src/main/java/dev/plex/command/impl/TempbanCMD.java index f048df2..2579d17 100644 --- a/server/src/main/java/dev/plex/command/impl/TempbanCMD.java +++ b/server/src/main/java/dev/plex/command/impl/TempbanCMD.java @@ -11,11 +11,10 @@ import dev.plex.player.PlexPlayer; import dev.plex.punishment.Punishment; import dev.plex.punishment.PunishmentType; import dev.plex.rank.enums.Rank; +import dev.plex.util.BungeeUtil; import dev.plex.util.PlexUtils; import dev.plex.util.TimeUtils; import dev.plex.util.WebUtils; -import java.util.List; -import java.util.UUID; import net.kyori.adventure.text.Component; import org.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; @@ -24,6 +23,9 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.List; +import java.util.UUID; + @CommandParameters(name = "tempban", usage = "/