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

createdFiles.lst

Blame
  • Wild.java 8.94 KiB
    package com.slprojects.slcraftplugin.commands.publics;
    
    import com.slprojects.slcraftplugin.Main;
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Location;
    import org.bukkit.block.Biome;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.scheduler.BukkitRunnable;
    import org.jetbrains.annotations.NotNull;
    
    import java.time.LocalDateTime;
    import java.time.format.DateTimeFormatter;
    import java.time.temporal.ChronoUnit;
    import java.util.*;
    
    import static java.lang.Math.abs;
    
    public class Wild implements CommandExecutor {
    
        // Variables
        private final Main plugin;
    
        private final List<UUID> wildUsersIndexes;
        private final List<LocalDateTime> wildUsersLastAsked;
        private final List<Integer> wildUsersAskNum;
        private final List<Location> wildUsersStartLocation;
        private final int usageCooldown;
        private final int usagePerDay;
    
        public Wild(Main plugin) {
            // On récupère la classe parente pour les paramètres
            this.plugin = plugin;
            wildUsersIndexes = new ArrayList<>();
            wildUsersLastAsked = new ArrayList<>();
            wildUsersAskNum = new ArrayList<>();
            wildUsersStartLocation = new ArrayList<>();
            usageCooldown = plugin.getConfig().getInt("wild.usage-cooldown");
            usagePerDay = plugin.getConfig().getInt("wild.usage-per-day");
    
            plugin.getServer().getConsoleSender().sendMessage("Instance de wild.");
        }
    
        @Override
        public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
            // On vérifie que la commande a bien été lancée par un joueur
            if (sender instanceof Player) {
                Player player = (Player) sender;
                UUID playerUUID = player.getUniqueId();
                int playerIndex;
                LocalDateTime dateTimeNow = LocalDateTime.now();
    
                playerIndex = wildUsersIndexes.indexOf(playerUUID);
    
                if (abs(ChronoUnit.SECONDS.between(wildUsersLastAsked.get(playerIndex), dateTimeNow)) > usageCooldown) {
                    if (wildUsersAskNum.get(playerIndex) < usagePerDay) {
                        wildUsersLastAsked.set(playerIndex, dateTimeNow);
                        wildUsersStartLocation.set(playerIndex, player.getLocation());
                        askForTeleport(player);
                    } else {
                        plugin.getServer().getConsoleSender().sendMessage("[" + plugin.getName() + "] Le joueur " + ChatColor.GOLD + player.getName() + ChatColor.RESET + " a exécuté la commande " + ChatColor.GOLD + "/wild" + ChatColor.RESET + " : " + ChatColor.RED + "refusé");
                        player.sendMessage("§cVous n'avez le droit qu'à §n" + usagePerDay + "§r§c téléportations aléatoires par jour.");
                    }
                } else {
                    plugin.getServer().getConsoleSender().sendMessage("[" + plugin.getName() + "] Le joueur " + ChatColor.GOLD + player.getName() + ChatColor.RESET + " a exécuté la commande " + ChatColor.GOLD + "/wild" + ChatColor.RESET + " : " + ChatColor.RED + "refusé");
                    player.sendMessage("§cVous devez attendre §n" + usageCooldown + "s§r§c avant de relancer la commande.");
                }