diff --git a/api/src/main/java/com/alttd/chat/config/Config.java b/api/src/main/java/com/alttd/chat/config/Config.java index 1798281..bbb4f12 100755 --- a/api/src/main/java/com/alttd/chat/config/Config.java +++ b/api/src/main/java/com/alttd/chat/config/Config.java @@ -467,8 +467,10 @@ public final class Config { } public static String HELP_REPORT = "/report "; + public static String FIRST_JOIN = "* Welcome to Altitude! They've joined for the first time."; private static void loadMessages() { HELP_REPORT = getString("settings.mail.mail-sent", HELP_REPORT); + FIRST_JOIN = getString("settings.first-join.message", FIRST_JOIN); } public static String EMOTELIST_HEADER = "Available Chat Emotes"; diff --git a/api/src/main/java/com/alttd/chat/config/ServerConfig.java b/api/src/main/java/com/alttd/chat/config/ServerConfig.java index 97cd7e9..edaf13b 100755 --- a/api/src/main/java/com/alttd/chat/config/ServerConfig.java +++ b/api/src/main/java/com/alttd/chat/config/ServerConfig.java @@ -74,9 +74,11 @@ public final class ServerConfig { public boolean GLOBALCHAT = false; public boolean JOINLEAVEMSSAGES = true; public boolean MUTED = false; + public boolean FIRST_JOIN_MESSAGES = false; private void ServerSettings() { GLOBALCHAT = getBoolean("global-chat-enabled", GLOBALCHAT); JOINLEAVEMSSAGES = getBoolean("joinleave-messages-enabled", JOINLEAVEMSSAGES); MUTED = getBoolean("server-muted", MUTED); + FIRST_JOIN_MESSAGES = getBoolean("first-join-messages", FIRST_JOIN_MESSAGES); } } diff --git a/galaxy/src/main/java/com/alttd/chat/ChatPlugin.java b/galaxy/src/main/java/com/alttd/chat/ChatPlugin.java index eb92eef..9122a63 100755 --- a/galaxy/src/main/java/com/alttd/chat/ChatPlugin.java +++ b/galaxy/src/main/java/com/alttd/chat/ChatPlugin.java @@ -41,7 +41,7 @@ public class ChatPlugin extends JavaPlugin { chatHandler = new ChatHandler(); DatabaseConnection.initialize(); serverConfig = new ServerConfig(Bukkit.getServerName()); - registerListener(new PlayerListener(), new ChatListener(), new BookListener()); + registerListener(new PlayerListener(serverConfig), new ChatListener(), new BookListener()); if(serverConfig.GLOBALCHAT) { registerCommand("globalchat", new GlobalChat()); registerCommand("toggleglobalchat", new ToggleGlobalChat()); diff --git a/galaxy/src/main/java/com/alttd/chat/listeners/PlayerListener.java b/galaxy/src/main/java/com/alttd/chat/listeners/PlayerListener.java index 8fb749e..615167a 100755 --- a/galaxy/src/main/java/com/alttd/chat/listeners/PlayerListener.java +++ b/galaxy/src/main/java/com/alttd/chat/listeners/PlayerListener.java @@ -1,5 +1,7 @@ package com.alttd.chat.listeners; +import com.alttd.chat.config.Config; +import com.alttd.chat.config.ServerConfig; import com.alttd.chat.database.Queries; import com.alttd.chat.managers.ChatUserManager; import com.alttd.chat.managers.RegexManager; @@ -9,11 +11,14 @@ import com.alttd.chat.objects.Toggleable; import com.alttd.chat.util.GalaxyUtility; import com.alttd.chat.util.Utility; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.MiniMessage; +import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.SignChangeEvent; +import org.bukkit.event.player.AsyncPlayerPreLoginEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; @@ -21,6 +26,12 @@ import java.util.UUID; public class PlayerListener implements Listener { + private final ServerConfig serverConfig; + + public PlayerListener(ServerConfig serverConfig) { + this.serverConfig = serverConfig; + } + @EventHandler private void onPlayerLogin(PlayerJoinEvent event) { Player player = event.getPlayer(); @@ -30,6 +41,10 @@ public class PlayerListener implements Listener { ChatUser user = ChatUserManager.getChatUser(uuid); if(user != null) return; + if (serverConfig.FIRST_JOIN_MESSAGES && !player.hasPlayedBefore()) { + player.getServer().sendMessage(MiniMessage.miniMessage().deserialize(Config.FIRST_JOIN, Placeholder.parsed("player", player.getName()))); + } + // user failed to load - create a new one ChatUser chatUser = new ChatUser(uuid, -1, null); ChatUserManager.addUser(chatUser);