Skip to content
Snippets Groups Projects
Select Git revision
  • 6b897976e6f4e09556eab9adcadf4200fed89b01
  • main default protected
  • feature/revoir_gestion_bdd
  • 1.6.1
  • 1.6.0
5 results

linkCodeCommand.java

Blame
  • PlayedTimeHandler.java 8.30 KiB
    package com.slprojects.slcraftplugin.parallelTasks.dataHandlers;
    
    import com.slprojects.slcraftplugin.Main;
    import com.slprojects.slcraftplugin.parallelTasks.events.GeneralEvents;
    import com.slprojects.slcraftplugin.utils.ConsoleLog;
    import com.slprojects.slcraftplugin.utils.Database;
    import net.luckperms.api.model.group.Group;
    import net.luckperms.api.model.user.User;
    import net.luckperms.api.node.types.InheritanceNode;
    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;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Objects;
    import java.util.UUID;
    
    public class PlayedTimeHandler implements dataHandler {
        private final Main plugin;
        private final List<UUID> usersIndexes;
        private final List<LocalDateTime> userSessionJoinDateTime;
        private final List<Long> userStoredPlayedTimeBeforeJoining;
        private final int requiredPlayedTimeForUpgradingPlayersAccount;
        private final Group playersAccountUpgradeGroup;
    
        /**
         * Gère le temps de jeu des joueurs
         *
         * @param plugin Plugin
         */
        public PlayedTimeHandler(Main plugin) {
            this.plugin = plugin;
            String playersAccountUpgradeRole = plugin.getConfig().getString("stats.players-account-upgrade-role");
    
            if (playersAccountUpgradeRole != null) {
                usersIndexes = new ArrayList<>();
                userSessionJoinDateTime = new ArrayList<>();
                userStoredPlayedTimeBeforeJoining = new ArrayList<>();
                requiredPlayedTimeForUpgradingPlayersAccount = plugin.getConfig().getInt("stats.required-played-time-for-upgrading-players-account");
                playersAccountUpgradeGroup = Main.luckPermsApi.getGroupManager().getGroup(playersAccountUpgradeRole);
    
                if (playersAccountUpgradeGroup == null) {
                    throw new RuntimeException("Le groupe " + playersAccountUpgradeRole + " n'existe pas !");
                }
            } else {
                throw new RuntimeException("La configuration stats.required-played-time-for-upgrading-players-account n'existe pas !");
            }
        }
    
        /**
         * Gestion de l'arrivée d'un joueur
         *
         * @param player Joueur
         */
        @Override
        public void joinEvent(Player player) {
            usersIndexes.add(player.getUniqueId());
            userSessionJoinDateTime.add(LocalDateTime.now());
    
            if (plugin.playerDataHandler.playerAlreadyJoined(player)) {
                userStoredPlayedTimeBeforeJoining.add(Long.valueOf(Database.getUserSetting(player.getUniqueId().toString(), "playedTime")));
                // Delay sinon le joueur ne voit pas
                new BukkitRunnable() {
                    @Override
                    public void run() {
                        checkPlayerTime(player);