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

Création du code permettant de détecter si le joueur est éligible au rôle de...

Création du code permettant de détecter si le joueur est éligible au rôle de joueur habitué, et création d'une fonction simulant un bruitage de feux d'artifice.
parent 79633f53
No related branches found
No related tags found
1 merge request!6Donner le joueur habitué aux joueurs.
Pipeline #57 passed
......@@ -45,7 +45,7 @@ import java.util.regex.Pattern;
public final class Main extends JavaPlugin implements Listener {
// Variables
private static FileConfiguration config;
private static LuckPerms luckPermsApi;
public static LuckPerms luckPermsApi;
public static String pluginName;
// Publiques car on les appelle ailleurs
......
package com.slprojects.slcraftplugin.parallelTasks.dataHandlers;
import com.slprojects.slcraftplugin.Main;
import com.slprojects.slcraftplugin.parallelTasks.events.GeneralEvents;
import com.slprojects.slcraftplugin.utils.Database;
import net.luckperms.api.model.group.Group;
import net.luckperms.api.model.user.User;
import net.md_5.bungee.api.ChatMessageType;
import net.md_5.bungee.api.chat.TextComponent;
import org.bukkit.ChatColor;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import java.time.Duration;
import java.time.LocalDateTime;
......@@ -15,12 +23,16 @@ public class PlayedTimeHandler implements dataHandler {
private final List<UUID> usersIndexes;
private final List<LocalDateTime> userSessionJoinDateTime;
private final List<Long> userStoredPlayedTimeBeforeJoining;
private final int requiredPlayedTimeForUpgradingPlayersAccount;
private final Group playersAccountUpgradeGroup;
public PlayedTimeHandler(Main plugin) {
this.plugin = plugin;
usersIndexes = new ArrayList<>();
userSessionJoinDateTime = new ArrayList<>();
userStoredPlayedTimeBeforeJoining = new ArrayList<>();
requiredPlayedTimeForUpgradingPlayersAccount = plugin.getConfig().getInt("stats.required-played-time-for-upgrading-players-account");
playersAccountUpgradeGroup = plugin.luckPermsApi.getGroupManager().getGroup(plugin.getConfig().getString("stats.players-account-upgrade-role"));
}
@Override
......@@ -49,5 +61,28 @@ public class PlayedTimeHandler implements dataHandler {
long actualPlayedTime = userStoredPlayedTimeBeforeJoining.get(usersIndexes.indexOf(playerUuid)) + playedTimeInSeconds;
Database.setUserSetting(playerUuid.toString(), "playedTime", String.valueOf(actualPlayedTime));
// Vérification pour avoir le rôle habitué
// TODO: Ne sauvegarde pas. :/
if(actualPlayedTime >= requiredPlayedTimeForUpgradingPlayersAccount){
String playerGroupName = plugin.luckPermsApi.getPlayerAdapter(Player.class).getMetaData(player).getPrimaryGroup();
if(playerGroupName != playersAccountUpgradeGroup.getName()){
player.sendMessage("Ton rôle: " + playerGroupName + " - Groupe visé: " + playersAccountUpgradeGroup.getName());
Group playerGroup = plugin.luckPermsApi.getGroupManager().getGroup(playerGroupName);
if(playerGroup.getWeight().getAsInt() < playersAccountUpgradeGroup.getWeight().getAsInt()){
User playerLuckPerms = plugin.luckPermsApi.getUserManager().getUser(player.getUniqueId());
playerLuckPerms.setPrimaryGroup(playersAccountUpgradeGroup.getName());
plugin.luckPermsApi.getUserManager().saveUser(playerLuckPerms);
int requiredPlayedTimeInHours = requiredPlayedTimeForUpgradingPlayersAccount / 60 / 60;
player.sendMessage(ChatColor.GREEN + "Bravo tu as passé plus de WOAW, " + ChatColor.GOLD + requiredPlayedTimeInHours + "H " + ChatColor.GREEN + "sur le serveur !!!");
player.sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(ChatColor.GREEN + "Bravo " + ChatColor.GOLD + player.getName() + ChatColor.GREEN + ", tu est maintenant un joueur habitué!"));
// Feux d'artifices
GeneralEvents.fireworkSoundEffect(player, plugin);
}
}
}
}
}
package com.slprojects.slcraftplugin.parallelTasks.events;
import com.slprojects.slcraftplugin.Main;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.Random;
public class GeneralEvents {
public static void fireworkSoundEffect(Player player, Main plugin){
int min = 1;
int max = 25;
Random random = new Random();
for(int i = 0; i < 6; i++){
int delay = random.nextInt(max - min + 1) + min;
new BukkitRunnable() {
@Override
public void run() {
player.playSound(player.getLocation(), Sound.ENTITY_FIREWORK_ROCKET_LAUNCH, 100, 2);
}
}.runTaskLater(plugin, delay);
new BukkitRunnable() {
@Override
public void run() {
player.playSound(player.getLocation(), Sound.ENTITY_FIREWORK_ROCKET_TWINKLE, 100, 2);
}
}.runTaskLater(plugin, delay + 40);
}
}
}
......@@ -43,3 +43,8 @@ server-type: prod # prod/dev
# Periodic events
periodic-event-call-time: 60 # En sencondes
ticks-per-seconds: 20
# Statistiques des joueurs
stats:
required-played-time-for-upgrading-players-account: 72000 # En sencondes
players-account-upgrade-role: "habitué"
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment