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));
}
-
}