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