Skip to content
Snippets Groups Projects
Commit ce9eaa46 authored by Sofiane Lasri's avatar Sofiane Lasri
Browse files

feat: update plugin load behavior and add player join welcome messages

- Changed plugin load setting from STARTUP to POSTWORLD in `paper-plugin.yml`
- Implemented a welcome message feature in `PrivateServerPlugin.java` that sends random greetings to players upon joining the server, avoiding repetition of messages.
parent 0bb960b1
No related branches found
No related tags found
No related merge requests found
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;
}
}
......@@ -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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment