diff --git a/velocity/src/main/java/com/alttd/chat/config/ServerConfig.java b/velocity/src/main/java/com/alttd/chat/config/ServerConfig.java index ce9a9b8..8705c54 100644 --- a/velocity/src/main/java/com/alttd/chat/config/ServerConfig.java +++ b/velocity/src/main/java/com/alttd/chat/config/ServerConfig.java @@ -69,7 +69,9 @@ public final class ServerConfig { /** DO NOT EDIT ANYTHING ABOVE **/ public boolean GLOBALCHAT = true; // TODO change to false on release + public boolean JOINLEAVEMSSAGES = true; // TODO change to false on release private void ServerSettings() { GLOBALCHAT = getBoolean("global-chat-enabled", GLOBALCHAT); + JOINLEAVEMSSAGES = getBoolean("joinleave-messages-enabled", JOINLEAVEMSSAGES); } } diff --git a/velocity/src/main/java/com/alttd/chat/data/ServerWrapper.java b/velocity/src/main/java/com/alttd/chat/data/ServerWrapper.java index 96b4653..0e70c1b 100644 --- a/velocity/src/main/java/com/alttd/chat/data/ServerWrapper.java +++ b/velocity/src/main/java/com/alttd/chat/data/ServerWrapper.java @@ -2,28 +2,43 @@ package com.alttd.chat.data; import com.alttd.chat.config.ServerConfig; import com.velocitypowered.api.proxy.server.RegisteredServer; +import net.kyori.adventure.text.Component; -public class ServerWrapper -{ - private RegisteredServer registeredServer; +public class ServerWrapper { + + private final RegisteredServer registeredServer; + private final String serverName; private final boolean globalChat; + private final boolean joinMessages; - public ServerWrapper(RegisteredServer registeredServer, ServerConfig serverConfig) - { + public ServerWrapper(RegisteredServer registeredServer, ServerConfig serverConfig) { this.registeredServer = registeredServer; + this.serverName = registeredServer.getServerInfo().getName(); this.globalChat = serverConfig.GLOBALCHAT; - + this.joinMessages = serverConfig.JOINLEAVEMSSAGES; } public RegisteredServer getRegisteredServer() { return registeredServer; } + public String serverName() { + return serverName; + } + public boolean globalChat() { return globalChat; } + public boolean joinMessages() { + return joinMessages; + } + + public void sendJoinLeaveMessage(Component component) { + if(joinMessages()) + getRegisteredServer().sendMessage(component); + } } diff --git a/velocity/src/main/java/com/alttd/chat/handlers/ServerHandler.java b/velocity/src/main/java/com/alttd/chat/handlers/ServerHandler.java index e3d3e82..06a3395 100644 --- a/velocity/src/main/java/com/alttd/chat/handlers/ServerHandler.java +++ b/velocity/src/main/java/com/alttd/chat/handlers/ServerHandler.java @@ -44,4 +44,13 @@ public class ServerHandler { { return Collections.unmodifiableList(servers); } + + public ServerWrapper getWrapper(String serverName) { + for(ServerWrapper wrapper : getServers()) { + if(wrapper.serverName().equalsIgnoreCase(serverName)) { + return wrapper; + } + } + return null; + } } diff --git a/velocity/src/main/java/com/alttd/chat/listeners/PlayerListener.java b/velocity/src/main/java/com/alttd/chat/listeners/PlayerListener.java index 4ace135..0ca26ef 100644 --- a/velocity/src/main/java/com/alttd/chat/listeners/PlayerListener.java +++ b/velocity/src/main/java/com/alttd/chat/listeners/PlayerListener.java @@ -2,6 +2,8 @@ package com.alttd.chat.listeners; import com.alttd.chat.VelocityChat; import com.alttd.chat.config.Config; +import com.alttd.chat.data.ServerWrapper; +import com.alttd.chat.handlers.ServerHandler; import com.alttd.chat.objects.ChatPlayer; import com.velocitypowered.api.event.PostOrder; import com.velocitypowered.api.event.Subscribe; @@ -18,6 +20,14 @@ import java.util.List; public class PlayerListener { + private final ServerHandler serverHandler; + private final MiniMessage miniMessage; + + public PlayerListener() { + serverHandler = VelocityChat.getPlugin().getServerHandler(); + miniMessage = MiniMessage.get(); + } + @Subscribe(order = PostOrder.FIRST) public void onPlayerLogin(LoginEvent event) { VelocityChat.getPlugin().getChatHandler().addPlayer(new ChatPlayer(event.getPlayer().getUniqueId())); @@ -31,27 +41,32 @@ public class PlayerListener { // Server Join and Leave messages @Subscribe public void serverConnected(ServerConnectedEvent event) { - MiniMessage miniMessage = MiniMessage.get(); - // todo optional setting to ignore this for servers? if (event.getPreviousServer().isPresent()) { RegisteredServer previousServer = event.getPreviousServer().get(); Player player = event.getPlayer(); - - List