Select Git revision
createdFiles.lst
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.");
}