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