diff --git a/src/main/java/com/slprojects/privateServerPlugin/PrivateServerPlugin.java b/src/main/java/com/slprojects/privateServerPlugin/PrivateServerPlugin.java
index 97a1051ab8d6b3eed7d7f9850f759e5a972df589..b1b9f68a93a7f5adead2fa1a59625ee99cf06a04 100644
--- a/src/main/java/com/slprojects/privateServerPlugin/PrivateServerPlugin.java
+++ b/src/main/java/com/slprojects/privateServerPlugin/PrivateServerPlugin.java
@@ -1,17 +1,70 @@
 package com.slprojects.privateServerPlugin;
 
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.minimessage.MiniMessage;
+import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.player.PlayerJoinEvent;
 import org.bukkit.plugin.java.JavaPlugin;
+import org.jetbrains.annotations.NotNull;
 
-public final class PrivateServerPlugin extends JavaPlugin {
+import java.util.ArrayList;
+import java.util.List;
+
+public final class PrivateServerPlugin extends JavaPlugin implements Listener {
+
+    private List<Integer> shownWelcomeMessagesIndexes;
 
     @Override
     public void onEnable() {
-        // Plugin startup logic
-
+        getServer().getPluginManager().registerEvents(this, this);
+        this.shownWelcomeMessagesIndexes = new ArrayList<>();
     }
 
     @Override
     public void onDisable() {
         // Plugin shutdown logic
     }
+
+    @EventHandler
+    public void onPlayerJoin(PlayerJoinEvent event) {
+        event.joinMessage(null);
+
+        for (Player p : getServer().getOnlinePlayers()) {
+            p.sendMessage(chooseRandomWelcomeMessage(event.getPlayer().getName()));
+        }
+    }
+
+    private Component chooseRandomWelcomeMessage(String playerNickname) {
+        List<String> welcomeMessages = getWelcomeMessages(playerNickname);
+
+        if (welcomeMessages.size() == shownWelcomeMessagesIndexes.size()) {
+            shownWelcomeMessagesIndexes.clear();
+        }
+
+        int choosenMessageIndex = (int) (Math.random() * welcomeMessages.size());
+        String choosenMessage = welcomeMessages.get(choosenMessageIndex);
+
+        while (shownWelcomeMessagesIndexes.contains(choosenMessageIndex)) {
+            choosenMessageIndex = (int) (Math.random() * welcomeMessages.size());
+            choosenMessage = welcomeMessages.get(choosenMessageIndex);
+        }
+
+        shownWelcomeMessagesIndexes.add(choosenMessageIndex);
+        return MiniMessage.miniMessage().deserialize(choosenMessage);
+    }
+
+    private static @NotNull List<String> getWelcomeMessages(String playerNickname) {
+        List<String> welcomeMessages = new ArrayList<>();
+        welcomeMessages.add("Un <green>" + playerNickname + "<reset> sauvage apparaît!");
+        welcomeMessages.add("Ah que coucou <green>" + playerNickname + "<reset> !");
+        welcomeMessages.add("Tiens, voilà <green>" + playerNickname + "<reset> !");
+        welcomeMessages.add("Yop <green>" + playerNickname + "<reset> !");
+        welcomeMessages.add("C'est qui ? C'est <green>" + playerNickname + "<reset> qui arrive !");
+        welcomeMessages.add("Bim bam boum, <green>" + playerNickname + "<reset> est là !");
+        welcomeMessages.add("Yo yo yo <green>" + playerNickname + "<reset> est dans la place !");
+        welcomeMessages.add("Faites du bruit pour notre cher <green>" + playerNickname + "<reset> !");
+        return welcomeMessages;
+    }
 }
diff --git a/src/main/resources/paper-plugin.yml b/src/main/resources/paper-plugin.yml
index 53b8ab2e380159c0d08b107f85ae49bbfac4b4df..9d031ffdef205c14609d346a03cd6ebda49e7d2c 100644
--- a/src/main/resources/paper-plugin.yml
+++ b/src/main/resources/paper-plugin.yml
@@ -2,7 +2,7 @@ name: PrivateServerPlugin
 version: '1.0-SNAPSHOT'
 main: com.slprojects.privateServerPlugin.PrivateServerPlugin
 api-version: '1.21'
-load: STARTUP
+load: POSTWORLD
 authors: [ Sofiane Lasri ]
 description: Plugin for my private servers.
 website: https://sofianelasri.fr