Change leave/join messages
This commit is contained in:
parent
ec2377a837
commit
19bb94fa74
|
|
@ -69,7 +69,9 @@ public final class ServerConfig {
|
||||||
/** DO NOT EDIT ANYTHING ABOVE **/
|
/** DO NOT EDIT ANYTHING ABOVE **/
|
||||||
|
|
||||||
public boolean GLOBALCHAT = true; // TODO change to false on release
|
public boolean GLOBALCHAT = true; // TODO change to false on release
|
||||||
|
public boolean JOINLEAVEMSSAGES = true; // TODO change to false on release
|
||||||
private void ServerSettings() {
|
private void ServerSettings() {
|
||||||
GLOBALCHAT = getBoolean("global-chat-enabled", GLOBALCHAT);
|
GLOBALCHAT = getBoolean("global-chat-enabled", GLOBALCHAT);
|
||||||
|
JOINLEAVEMSSAGES = getBoolean("joinleave-messages-enabled", JOINLEAVEMSSAGES);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,28 +2,43 @@ package com.alttd.chat.data;
|
||||||
|
|
||||||
import com.alttd.chat.config.ServerConfig;
|
import com.alttd.chat.config.ServerConfig;
|
||||||
import com.velocitypowered.api.proxy.server.RegisteredServer;
|
import com.velocitypowered.api.proxy.server.RegisteredServer;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
|
|
||||||
public class ServerWrapper
|
public class ServerWrapper {
|
||||||
{
|
|
||||||
private RegisteredServer registeredServer;
|
private final RegisteredServer registeredServer;
|
||||||
|
private final String serverName;
|
||||||
|
|
||||||
private final boolean globalChat;
|
private final boolean globalChat;
|
||||||
|
private final boolean joinMessages;
|
||||||
|
|
||||||
public ServerWrapper(RegisteredServer registeredServer, ServerConfig serverConfig)
|
public ServerWrapper(RegisteredServer registeredServer, ServerConfig serverConfig) {
|
||||||
{
|
|
||||||
this.registeredServer = registeredServer;
|
this.registeredServer = registeredServer;
|
||||||
|
this.serverName = registeredServer.getServerInfo().getName();
|
||||||
|
|
||||||
this.globalChat = serverConfig.GLOBALCHAT;
|
this.globalChat = serverConfig.GLOBALCHAT;
|
||||||
|
this.joinMessages = serverConfig.JOINLEAVEMSSAGES;
|
||||||
}
|
}
|
||||||
|
|
||||||
public RegisteredServer getRegisteredServer() {
|
public RegisteredServer getRegisteredServer() {
|
||||||
return registeredServer;
|
return registeredServer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String serverName() {
|
||||||
|
return serverName;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean globalChat()
|
public boolean globalChat()
|
||||||
{
|
{
|
||||||
return globalChat;
|
return globalChat;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean joinMessages() {
|
||||||
|
return joinMessages;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void sendJoinLeaveMessage(Component component) {
|
||||||
|
if(joinMessages())
|
||||||
|
getRegisteredServer().sendMessage(component);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -44,4 +44,13 @@ public class ServerHandler {
|
||||||
{
|
{
|
||||||
return Collections.unmodifiableList(servers);
|
return Collections.unmodifiableList(servers);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ServerWrapper getWrapper(String serverName) {
|
||||||
|
for(ServerWrapper wrapper : getServers()) {
|
||||||
|
if(wrapper.serverName().equalsIgnoreCase(serverName)) {
|
||||||
|
return wrapper;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@ package com.alttd.chat.listeners;
|
||||||
|
|
||||||
import com.alttd.chat.VelocityChat;
|
import com.alttd.chat.VelocityChat;
|
||||||
import com.alttd.chat.config.Config;
|
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.alttd.chat.objects.ChatPlayer;
|
||||||
import com.velocitypowered.api.event.PostOrder;
|
import com.velocitypowered.api.event.PostOrder;
|
||||||
import com.velocitypowered.api.event.Subscribe;
|
import com.velocitypowered.api.event.Subscribe;
|
||||||
|
|
@ -18,6 +20,14 @@ import java.util.List;
|
||||||
|
|
||||||
public class PlayerListener {
|
public class PlayerListener {
|
||||||
|
|
||||||
|
private final ServerHandler serverHandler;
|
||||||
|
private final MiniMessage miniMessage;
|
||||||
|
|
||||||
|
public PlayerListener() {
|
||||||
|
serverHandler = VelocityChat.getPlugin().getServerHandler();
|
||||||
|
miniMessage = MiniMessage.get();
|
||||||
|
}
|
||||||
|
|
||||||
@Subscribe(order = PostOrder.FIRST)
|
@Subscribe(order = PostOrder.FIRST)
|
||||||
public void onPlayerLogin(LoginEvent event) {
|
public void onPlayerLogin(LoginEvent event) {
|
||||||
VelocityChat.getPlugin().getChatHandler().addPlayer(new ChatPlayer(event.getPlayer().getUniqueId()));
|
VelocityChat.getPlugin().getChatHandler().addPlayer(new ChatPlayer(event.getPlayer().getUniqueId()));
|
||||||
|
|
@ -31,27 +41,32 @@ public class PlayerListener {
|
||||||
// Server Join and Leave messages
|
// Server Join and Leave messages
|
||||||
@Subscribe
|
@Subscribe
|
||||||
public void serverConnected(ServerConnectedEvent event) {
|
public void serverConnected(ServerConnectedEvent event) {
|
||||||
MiniMessage miniMessage = MiniMessage.get();
|
|
||||||
// todo optional setting to ignore this for servers?
|
|
||||||
if (event.getPreviousServer().isPresent()) {
|
if (event.getPreviousServer().isPresent()) {
|
||||||
RegisteredServer previousServer = event.getPreviousServer().get();
|
RegisteredServer previousServer = event.getPreviousServer().get();
|
||||||
|
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
List<Template> templates = new ArrayList<>(List.of(
|
List<Template> templates = new ArrayList<>(List.of(
|
||||||
Template.of("player", player.getUsername()),
|
Template.of("player", player.getUsername()),
|
||||||
Template.of("from_server", previousServer.getServerInfo().getName()),
|
Template.of("from_server", previousServer.getServerInfo().getName()),
|
||||||
Template.of("to_server", event.getServer().getServerInfo().getName())));
|
Template.of("to_server", event.getServer().getServerInfo().getName())));
|
||||||
|
// todo Code clean up @Destro
|
||||||
previousServer.sendMessage(miniMessage.parse(Config.SERVERSWTICHMESSAGETO, templates));
|
ServerWrapper wrapper = serverHandler.getWrapper(previousServer.getServerInfo().toString());
|
||||||
event.getServer().sendMessage(miniMessage.parse(Config.SERVERSWTICHMESSAGEFROM, templates));
|
if(wrapper != null) {
|
||||||
|
wrapper.sendJoinLeaveMessage(miniMessage.parse(Config.SERVERSWTICHMESSAGETO, templates));
|
||||||
|
}
|
||||||
|
wrapper = serverHandler.getWrapper(event.getServer().getServerInfo().toString());
|
||||||
|
if(wrapper != null) {
|
||||||
|
wrapper.sendJoinLeaveMessage(miniMessage.parse(Config.SERVERSWTICHMESSAGEFROM, templates));
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
List<Template> templates = new ArrayList<>(List.of(
|
List<Template> templates = new ArrayList<>(List.of(
|
||||||
Template.of("player", event.getPlayer().getUsername())
|
Template.of("player", event.getPlayer().getUsername())
|
||||||
));
|
));
|
||||||
event.getServer().sendMessage(miniMessage.parse(Config.SERVERJOINMESSAGE, templates));
|
ServerWrapper wrapper = serverHandler.getWrapper(event.getServer().getServerInfo().toString());
|
||||||
|
if(wrapper != null) {
|
||||||
|
wrapper.sendJoinLeaveMessage(miniMessage.parse(Config.SERVERJOINMESSAGE, templates));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -60,13 +75,14 @@ public class PlayerListener {
|
||||||
if (event.getLoginStatus().equals(DisconnectEvent.LoginStatus.SUCCESSFUL_LOGIN) && event.getPlayer().getCurrentServer().isPresent()) {
|
if (event.getLoginStatus().equals(DisconnectEvent.LoginStatus.SUCCESSFUL_LOGIN) && event.getPlayer().getCurrentServer().isPresent()) {
|
||||||
RegisteredServer registeredServer = event.getPlayer().getCurrentServer().get().getServer();
|
RegisteredServer registeredServer = event.getPlayer().getCurrentServer().get().getServer();
|
||||||
|
|
||||||
MiniMessage miniMessage = MiniMessage.get();
|
|
||||||
|
|
||||||
List<Template> templates = new ArrayList<>(List.of(
|
List<Template> templates = new ArrayList<>(List.of(
|
||||||
Template.of("player", event.getPlayer().getUsername()),
|
Template.of("player", event.getPlayer().getUsername()),
|
||||||
Template.of("from_server", registeredServer.getServerInfo().getName())));
|
Template.of("from_server", registeredServer.getServerInfo().getName())));
|
||||||
|
|
||||||
registeredServer.sendMessage(miniMessage.parse(Config.SERVERLEAVEMESSAGE, templates));
|
ServerWrapper wrapper = serverHandler.getWrapper(registeredServer.getServerInfo().toString());
|
||||||
|
if(wrapper != null) {
|
||||||
|
wrapper.sendJoinLeaveMessage(miniMessage.parse(Config.SERVERJOINMESSAGE, templates));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user