diff --git a/proxy/src/main/java/dev/plex/Plex.java b/proxy/src/main/java/dev/plex/Plex.java index 4b8f044..491cee9 100644 --- a/proxy/src/main/java/dev/plex/Plex.java +++ b/proxy/src/main/java/dev/plex/Plex.java @@ -10,17 +10,16 @@ import dev.plex.config.TomlConfig; import dev.plex.handlers.ListenerHandler; import dev.plex.settings.ServerSettings; import dev.plex.util.PlexLog; -import lombok.Getter; - import java.io.File; import java.nio.file.Path; import java.util.logging.Logger; +import lombok.Getter; /** * Credits for TOML library go to https://github.com/mwanji/toml4j * I was unable to add it back to the package without it glitching, so * I kept it in a separate package. - * + *

* Modifications: Properly indent arrays in TOML as well as only append * missing object fields into the file */ @@ -38,7 +37,7 @@ public class Plex { private static Plex plugin; - private final ProxyServer server; + public final ProxyServer server; private final Logger logger; private final File dataFolder; diff --git a/proxy/src/main/java/dev/plex/listener/impl/ConnectionListener.java b/proxy/src/main/java/dev/plex/listener/impl/ConnectionListener.java new file mode 100644 index 0000000..e7a71aa --- /dev/null +++ b/proxy/src/main/java/dev/plex/listener/impl/ConnectionListener.java @@ -0,0 +1,45 @@ +package dev.plex.listener.impl; + +import com.velocitypowered.api.event.PostOrder; +import com.velocitypowered.api.event.Subscribe; +import com.velocitypowered.api.event.connection.DisconnectEvent; +import com.velocitypowered.api.event.player.ServerConnectedEvent; +import dev.plex.Plex; +import dev.plex.listener.PlexListener; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.MiniMessage; + +public class ConnectionListener extends PlexListener +{ + @Subscribe(order = PostOrder.FIRST) + public void onPlayerJoin(ServerConnectedEvent event) + { + if (event.getPreviousServer().isPresent()) + { + Plex.get().server.sendMessage(miniMessage("[<#ffbf00>o] " + + event.getPlayer().getUsername() + " switched from " + event.getPreviousServer().get().getServerInfo().getName() + + " to " + event.getServer().getServerInfo().getName())); + } + else + { + Plex.get().server.sendMessage(miniMessage("[+] " + + event.getPlayer().getUsername() + " joined server " + event.getServer().getServerInfo().getName())); + } + } + + @Subscribe(order = PostOrder.FIRST) + public void onPlayerLeave(DisconnectEvent event) + { + if (event.getPlayer().getCurrentServer().isPresent()) + { + Plex.get().server.sendMessage(miniMessage("[-] " + + event.getPlayer().getUsername() + " left server " + + event.getPlayer().getCurrentServer().get().getServerInfo().getName())); + } + } + + private Component miniMessage(String message) + { + return MiniMessage.miniMessage().deserialize(message); + } +} diff --git a/proxy/src/main/java/dev/plex/listener/impl/ServerListener.java b/proxy/src/main/java/dev/plex/listener/impl/ServerListener.java index b12d5b2..7e9de8f 100644 --- a/proxy/src/main/java/dev/plex/listener/impl/ServerListener.java +++ b/proxy/src/main/java/dev/plex/listener/impl/ServerListener.java @@ -4,20 +4,16 @@ import com.velocitypowered.api.event.PostOrder; import com.velocitypowered.api.event.Subscribe; import com.velocitypowered.api.event.proxy.ProxyPingEvent; import com.velocitypowered.api.proxy.server.ServerPing; -import dev.plex.Plex; import dev.plex.listener.PlexListener; import dev.plex.settings.ServerSettings; -import dev.plex.util.PlexLog; import dev.plex.util.RandomUtil; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.minimessage.MiniMessage; - import java.util.UUID; import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.atomic.AtomicReference; import java.util.regex.Matcher; import java.util.regex.Pattern; -import java.util.stream.Collectors; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.MiniMessage; public class ServerListener extends PlexListener { @@ -41,7 +37,9 @@ public class ServerListener extends PlexListener motd.set(motd.get().append(Component.space())); } builder.description(motd.get()); - } else { + } + else + { builder.description(MiniMessage.miniMessage().deserialize(baseMotd)); } @@ -61,5 +59,4 @@ public class ServerListener extends PlexListener Matcher matcher = Pattern.compile("[&][0-9a-fk-or]{1}").matcher(code); return matcher.replaceAll(matchResult -> "ยง" + matcher.group().substring(1)); } - }