diff --git a/src/main/java/com/slprojects/slcraftplugin/Main.java b/src/main/java/com/slprojects/slcraftplugin/Main.java
index 023443147788d34ddb2e5a89ca68ed233776f85b..4ad6029f51652421c164e123a2494b02ebabb26e 100644
--- a/src/main/java/com/slprojects/slcraftplugin/Main.java
+++ b/src/main/java/com/slprojects/slcraftplugin/Main.java
@@ -59,7 +59,7 @@ public final class Main extends JavaPlugin implements Listener {
             // On initialise les listeners
             getServer().getPluginManager().registerEvents(this, this);
         } else {
-            getServer().getConsoleSender().sendMessage(ChatColor.RED+"[\"+ this.getName() +\"] PlaceholderAPI n'est pas accessible!");
+            getServer().getConsoleSender().sendMessage(ChatColor.RED+"["+ this.getName() +"] PlaceholderAPI n'est pas accessible!");
             getServer().getPluginManager().disablePlugin(this);
         }
 
@@ -89,12 +89,11 @@ public final class Main extends JavaPlugin implements Listener {
         // On initialise la base de donnée
         initDatabase();
 
-        wildCommandActiveUsers = new ArrayList<>();
         wildCommand wildCommand = new wildCommand(this);
-        Objects.requireNonNull(getCommand("wild")).setExecutor(wildCommand);
+        getCommand("wild").setExecutor(wildCommand);
 
         linkCodeCommand linkCodeCommand = new linkCodeCommand(this);
-        Objects.requireNonNull(getCommand("getLinkCode")).setExecutor(linkCodeCommand);
+        getCommand("getLinkCode").setExecutor(linkCodeCommand);
 
         internalWebServer.startServer(this);
 
@@ -268,26 +267,6 @@ public final class Main extends JavaPlugin implements Listener {
         sendMessageToDiscord(message, "SL-Craft");
     }
 
-    // Propre à la commande wild: évite les spams de la commande
-    public boolean checkActiveUserForWildCommand(UUID playerUuid){
-        if(wildCommandActiveUsers.contains(playerUuid)){
-            return false;
-        }else{
-            wildCommandActiveUsers.add(playerUuid);
-            return true;
-        }
-    }
-    public void removeActiveUserForWildCommand(UUID playerUuid){
-        if(wildCommandActiveUsers.contains(playerUuid)){
-            try {
-                TimeUnit.SECONDS.sleep(5);
-            } catch (InterruptedException e) {
-                e.printStackTrace();
-            }
-            wildCommandActiveUsers.remove(playerUuid);
-        }
-    }
-
     public Connection bddOpenConn() { // si mot de passe avec des caractère spéciaux
         Connection conn=null;
         try {
@@ -310,11 +289,26 @@ public final class Main extends JavaPlugin implements Listener {
     
     private void updateConfig(){
         getLogger().info("Vérification du fichier de configuration...");
-        // On va vérifier si l'on dispose de la nouvelle variable du port du serveur web
+        // 1.6.0
         if(!config.contains("server-type")){
             getLogger().info("Ajout de la variable serverType dans le fichier de configuration...");
             config.set("server-type", "dev");
 
+            saveConfig();
+            reloadConfig();
+        }
+
+        if(config.contains("wild") && (config.contains("excluded-biomes") && config.contains("world") && config.contains("max-range"))){
+            getLogger().info("Mise à jour des paramètres concernant la commande /wild");
+
+            config.set("wild.excluded-biomes", config.get("excluded-biomes"));
+            config.set("wild.world", config.get("world"));
+            config.set("wild.max-range", config.get("max-range"));
+
+            config.set("excluded-biomes", null);
+            config.set("world", null);
+            config.set("max-range", null);
+
             config.options().copyDefaults(true);
             saveConfig();
             reloadConfig();
diff --git a/src/main/java/com/slprojects/slcraftplugin/commandes/wildCommand.java b/src/main/java/com/slprojects/slcraftplugin/commandes/wildCommand.java
index c36e6f6f2fdf4371a60bfe335ba956af0408a805..e20b4f4f1e3e0c5467a0596c0263ba55582c6b7d 100644
--- a/src/main/java/com/slprojects/slcraftplugin/commandes/wildCommand.java
+++ b/src/main/java/com/slprojects/slcraftplugin/commandes/wildCommand.java
@@ -9,22 +9,39 @@ 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.util.List;
-import java.util.Objects;
-import java.util.Random;
+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 wildCommand implements CommandExecutor {
+
     // Variables
     private final Main plugin;
 
+    private List<UUID> wildUsersIndexes;
+    private List<LocalDateTime> wildUsersLastAsked;
+    private List<Integer> wildUsersAskNum;
+    private List<Location> wildUsersStartLocation;
+    private final int usageCooldown;
+    private final int usagePerDay;
 
     public wildCommand(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
@@ -33,8 +50,35 @@ public class wildCommand implements CommandExecutor {
         // 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();
+
+            if(wildUsersIndexes.contains(playerUUID)){
+                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.");
+                }
+            }else{
+                wildUsersIndexes.add(playerUUID);
+                wildUsersLastAsked.add(dateTimeNow);
+                wildUsersAskNum.add(0);
+                wildUsersStartLocation.add(player.getLocation());
+                askForTeleport(player);
+            }
 
-            // On vérifie qu'il n'a pas déjà lancé la commande wild
+            /*// On vérifie qu'il n'a pas déjà lancé la commande wild dans les n dernières secondes
             if(!plugin.checkActiveUserForWildCommand(player.getUniqueId())){
                 plugin.getServer().getConsoleSender().sendMessage("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 5s avant de relancer la commande.");
@@ -44,14 +88,14 @@ public class wildCommand implements CommandExecutor {
 
             // on récupère la liste des biomes exclus
             List<String> excludedBiomes;
-            excludedBiomes = (List<String>) plugin.getConfig().getList("excluded-biomes");
+            excludedBiomes = (List<String>) plugin.getConfig().getList("wild.excluded-biomes");
 
             player.sendMessage("§6Téléportation vers une coordonnée aléatoire.");
 
             // On défini le radius de téléportation
             Random r = new Random();
-            int low = plugin.getConfig().getInt("max-range")*(-1);
-            int high = plugin.getConfig().getInt("max-range");
+            int low = plugin.getConfig().getInt("wild.max-range")*(-1);
+            int high = plugin.getConfig().getInt("wild.max-range");
 
             // Tant qu'on a un biome non souhaite, on va regérer les coordonnées
             boolean flag=true;
@@ -60,13 +104,13 @@ public class wildCommand implements CommandExecutor {
                 flag=false;
                 x = r.nextInt(high-low) + low;
                 z = r.nextInt(high-low) + low;
-                y = Objects.requireNonNull(Bukkit.getWorld(Objects.requireNonNull(plugin.getConfig().getString("world")))).getHighestBlockYAt(x, z);
+                y = Objects.requireNonNull(Bukkit.getWorld(Objects.requireNonNull(plugin.getConfig().getString("wild.world")))).getHighestBlockYAt(x, z);
                 y++; // On incrémente la pos Y pour éviter que le joueur se retrouve dans le sol
 
                 for (String excludedBiome : Objects.requireNonNull(excludedBiomes)) {
                     try{
                         Biome.valueOf(excludedBiome.toUpperCase());
-                        if (Objects.requireNonNull(Bukkit.getWorld(Objects.requireNonNull(plugin.getConfig().getString("world")))).getBiome(x, y, z).equals(Biome.valueOf(excludedBiome.toUpperCase()))) {
+                        if (Objects.requireNonNull(Bukkit.getWorld(Objects.requireNonNull(plugin.getConfig().getString("wild.world")))).getBiome(x, y, z).equals(Biome.valueOf(excludedBiome.toUpperCase()))) {
                             flag = true;
                         }
                     }catch(Exception ignored){}
@@ -74,7 +118,7 @@ public class wildCommand implements CommandExecutor {
             }
             // On téléporte le joueur
 
-            Location loc = new Location(Bukkit.getWorld(Objects.requireNonNull(plugin.getConfig().getString("world"))), x, y, z, 0, 0);
+            Location loc = new Location(Bukkit.getWorld(Objects.requireNonNull(plugin.getConfig().getString("wild.world"))), x, y, z, 0, 0);
             player.teleport(loc);
 
             int maxVal = Math.max(abs(x), abs(z));
@@ -93,8 +137,81 @@ public class wildCommand implements CommandExecutor {
                 plugin.removeActiveUserForWildCommand(player.getUniqueId());
             };
 
-            new Thread(runnableRemoveActiveUser).start();
+            new Thread(runnableRemoveActiveUser).start();*/
         }
         return true;
     }
+
+    private void askForTeleport(Player player){
+        int playerIndex = wildUsersIndexes.indexOf(player.getUniqueId());
+        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.GREEN+"accepté");
+        player.sendMessage("Vous allez être téléporté dans §c" + plugin.getConfig().getInt("wild.move-cooldown") + "s§r, ne bougez pas.");
+        int delayInTicks = plugin.getConfig().getInt("wild.move-cooldown") * 20;
+
+        new BukkitRunnable() {
+            @Override
+            public void run(){
+                Location oldPlayerLocation = wildUsersStartLocation.get(playerIndex);
+                Location newPlayerLocation = player.getLocation();
+
+                if((oldPlayerLocation.getX() != newPlayerLocation.getX()) && (oldPlayerLocation.getY() != newPlayerLocation.getY()) && (oldPlayerLocation.getZ() != newPlayerLocation.getZ())){
+                    player.sendMessage("§cVous avez bougé, téléportation annulée.");
+                    // Date bidon pour annuler le cooldown (c'est ma date de naissance :D)
+                    wildUsersLastAsked.set(playerIndex, LocalDateTime.parse("2001-12-11 12:30", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")));
+                }else{
+                    teleportPlayer(player, playerIndex);
+                }
+            }
+        }.runTaskLater(plugin, delayInTicks);
+    }
+
+    private void teleportPlayer(Player player, int playerIndex){
+        wildUsersAskNum.set(playerIndex, wildUsersAskNum.get(playerIndex)+1);
+
+        // on récupère la liste des biomes exclus
+        List<String> excludedBiomes;
+        excludedBiomes = (List<String>) plugin.getConfig().getList("wild.excluded-biomes");
+
+        player.sendMessage("§6Téléportation vers une coordonnée aléatoire.");
+
+        // On défini le radius de téléportation
+        Random r = new Random();
+        int low = plugin.getConfig().getInt("wild.max-range")*(-1);
+        int high = plugin.getConfig().getInt("wild.max-range");
+
+        // Tant qu'on a un biome non souhaite, on va regérer les coordonnées
+        boolean flag=true;
+        int x=0, z=0, y=0;
+        while(flag){
+            flag=false;
+            x = r.nextInt(high-low) + low;
+            z = r.nextInt(high-low) + low;
+            y = Bukkit.getWorld(plugin.getConfig().getString("wild.world")).getHighestBlockYAt(x, z);
+            y++; // On incrémente la pos Y pour éviter que le joueur se retrouve dans le sol
+
+            for (String excludedBiome : excludedBiomes) {
+                // Biomes non reconnus ou supprimés (deep warm ocean)
+                try{
+                    Biome.valueOf(excludedBiome.toUpperCase());
+                    if (Bukkit.getWorld(plugin.getConfig().getString("wild.world")).getBiome(x, y, z).equals(Biome.valueOf(excludedBiome.toUpperCase()))) {
+                        flag = true;
+                    }
+                }catch(Exception ignored){}
+            }
+        }
+
+        // On téléporte le joueur
+        Location loc = new Location(Bukkit.getWorld(plugin.getConfig().getString("wild.world")), x, y, z, 0, 0);
+        player.teleport(loc);
+
+        int maxVal = Math.max(abs(x), abs(z));
+
+        if(maxVal <= 10000){
+            player.sendMessage("§7§oVous êtes sur un biome généré en 1.16");
+        }else if(maxVal <= 14500){
+            player.sendMessage("§7§oVous êtes sur un biome généré en 1.17");
+        }else{
+            player.sendMessage("§7§oVous êtes sur un biome généré en 1.18");
+        }
+    }
 }
diff --git a/src/main/java/com/slprojects/slcraftplugin/tachesParalleles/internalWebServer.java b/src/main/java/com/slprojects/slcraftplugin/tachesParalleles/internalWebServer.java
index 8612aa21f497867c70ea25361cbb3c0f0e7cc0ab..2d9480d447a7c1275569d7874408b116e1a04912 100644
--- a/src/main/java/com/slprojects/slcraftplugin/tachesParalleles/internalWebServer.java
+++ b/src/main/java/com/slprojects/slcraftplugin/tachesParalleles/internalWebServer.java
@@ -18,8 +18,8 @@ public class internalWebServer {
     public static void startServer(Main plugin){
         int serverPort = plugin.getConfig().getInt("internal-webserver-port");
 
-        plugin.getServer().getConsoleSender().sendMessage("Lancement du serveur web intégré sur le port " + ChatColor.GOLD + serverPort);
-        plugin.getServer().getConsoleSender().sendMessage(ChatColor.YELLOW + "Attention! Le serveur ne fonctionne pas avec les requêtes https!");
+        plugin.getServer().getConsoleSender().sendMessage("["+ plugin.getName() +"] Lancement du serveur web intégré sur le port " + ChatColor.GOLD + serverPort);
+        plugin.getServer().getConsoleSender().sendMessage(ChatColor.YELLOW + "["+ plugin.getName() +"] Attention! Le serveur ne fonctionne pas avec les requêtes https!");
         // On fait un thread pour écouter le port
         Runnable serverThread = () -> {
             try {
@@ -113,7 +113,7 @@ public class internalWebServer {
                     client.close(); // Close the socket itself
                 }
             } catch (IOException e) {
-                plugin.getServer().getConsoleSender().sendMessage(ChatColor.RED + "Erreur lors de l'écoute du port " + ChatColor.GOLD  + serverPort);
+                plugin.getServer().getConsoleSender().sendMessage(ChatColor.RED + "["+ plugin.getName() +"] Erreur lors de l'écoute du port " + ChatColor.GOLD  + serverPort);
                 e.printStackTrace();
 
                 // On va logger le message sur discord
@@ -125,7 +125,7 @@ public class internalWebServer {
                     urlString = plugin.getConfig().getString("discordBot-api-url") + "mc/error/" + URLEncoder.encode(json.toJSONString(), "UTF-8").replace("+", "%20");
                     relaunchListener(plugin);
                 } catch (UnsupportedEncodingException ex) {
-                    plugin.getServer().getConsoleSender().sendMessage(ChatColor.RED + "Erreur lors de l'encodage du message. Func waitForDiscordMsg::startServer(Main plugin)");
+                    plugin.getServer().getConsoleSender().sendMessage(ChatColor.RED + "["+ plugin.getName() +"] Erreur lors de l'encodage du message. Func waitForDiscordMsg::startServer(Main plugin)");
                     ex.printStackTrace();
                 }
                 plugin.getHttp(urlString);
@@ -137,7 +137,7 @@ public class internalWebServer {
         new Thread(serverThread).start();
     }
 
-    //TODO: Vérifier l'utilité de cette fonction
+    // TODO: Vérifier l'utilité de cette fonction
     public static void relaunchListener(Main plugin) {
         // On relance la fonction avec une latence
         startServer(plugin);
diff --git a/src/main/java/com/slprojects/slcraftplugin/tachesParalleles/savePlayerData.java b/src/main/java/com/slprojects/slcraftplugin/tachesParalleles/savePlayerData.java
index 4dcd682f601f47ad1f6531123d701da6cb55e31f..1331726580461f1e04260cb55f9863a23153eb94 100644
--- a/src/main/java/com/slprojects/slcraftplugin/tachesParalleles/savePlayerData.java
+++ b/src/main/java/com/slprojects/slcraftplugin/tachesParalleles/savePlayerData.java
@@ -61,7 +61,7 @@ public class savePlayerData {
         try {
             con.close();
         } catch (SQLException e) {
-            plugin.getLogger().warning(ChatColor.RED + "Impossible de fermer la connexion à la bdd. Func savePlayerData::saveOnQuit(Player player)");
+            plugin.getLogger().warning("Impossible de fermer la connexion à la bdd. Func savePlayerData::saveOnQuit(Player player)");
             e.printStackTrace();
         }
     }
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index 237af8a1f79988d42ca1d63ff56a4355a6c0f1fe..545d91fc007eab14046124467cc1264d1eac5bc4 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -1,19 +1,22 @@
 # /wild
-excluded-biomes:
-  - cold_ocean
-  - deep_cold_ocean
-  - deep_frozen_ocean
-  - deep_lukewarm_ocean
-  - deep_ocean
-  - deep_warm_ocean
-  - frozen_ocean
-  - frozen_river
-  - lukewarm_ocean
-  - ocean
-  - river
-  - warm_ocean
-world: survie
-max-range: 20000 #14500 -> 1.17, 10000 -> 1.16
+wild:
+  excluded-biomes:
+    - cold_ocean
+    - deep_cold_ocean
+    - deep_frozen_ocean
+    - deep_lukewarm_ocean
+    - deep_ocean
+    - frozen_ocean
+    - frozen_river
+    - lukewarm_ocean
+    - ocean
+    - river
+    - warm_ocean
+  world: survie
+  max-range: 20000 #14500 -> 1.17, 10000 -> 1.16
+  usage-cooldown: 30
+  move-cooldown: 5
+  usage-per-day: 5
 
 # Configuration de la base de donnée
 database: