diff --git a/pom.xml b/pom.xml index f7e4ef9cf330acad5b5cf2a1428a18b8fc966196..63a2e5da1daceaafe6a26062e0205842acc81809 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ <groupId>com.slprojects</groupId> <artifactId>SLCraftPlugin</artifactId> - <version>1.6.0</version> + <version>1.6.1</version> <packaging>jar</packaging> <name>SLCraftPlugin</name> diff --git a/src/main/java/com/slprojects/slcraftplugin/Main.java b/src/main/java/com/slprojects/slcraftplugin/Main.java index b35113d220342a9fa995111cc5663a8f292acda1..66d92061a923ebfb3826c65534546218198e0b8a 100644 --- a/src/main/java/com/slprojects/slcraftplugin/Main.java +++ b/src/main/java/com/slprojects/slcraftplugin/Main.java @@ -3,8 +3,9 @@ package com.slprojects.slcraftplugin; import com.slprojects.slcraftplugin.commands.admins.WildReset; import com.slprojects.slcraftplugin.commands.publics.LinkCode; import com.slprojects.slcraftplugin.commands.publics.Wild; -import com.slprojects.slcraftplugin.parallelTasks.PlayerDataHandler; import com.slprojects.slcraftplugin.parallelTasks.InternalWebServer; +import com.slprojects.slcraftplugin.parallelTasks.PeriodicEvent; +import com.slprojects.slcraftplugin.parallelTasks.PlayerDataHandler; import me.clip.placeholderapi.PlaceholderAPI; import net.luckperms.api.LuckPerms; import net.luckperms.api.cacheddata.CachedMetaData; @@ -38,19 +39,20 @@ import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.Objects; -import java.util.UUID; import java.util.regex.Matcher; import java.util.regex.Pattern; public final class Main extends JavaPlugin implements Listener { // Variables - private List<UUID> wildCommandActiveUsers; private static FileConfiguration config; private static LuckPerms luckPermsApi; + + // Publiques car on les appelle ailleurs public PlayerDataHandler playerDataHandler; public Wild wildCommand; + public PeriodicEvent periodicEvent; + public final static int ticksPerSeconds = 20; - // Fonctions appelées à des évènements clés @Override public void onEnable() { // On s'assure qu'on a placeholder api @@ -84,11 +86,14 @@ public final class Main extends JavaPlugin implements Listener { reloadConfig(); config = getConfig(); updateConfig(); - playerDataHandler = new PlayerDataHandler(this); - // On initialise la base de donnée initDatabase(); + playerDataHandler = new PlayerDataHandler(this); + InternalWebServer.startServer(this); + periodicEvent = new PeriodicEvent(this); + + // On initialise les commandes wildCommand = new Wild(this); getCommand("wild").setExecutor(wildCommand); @@ -98,8 +103,6 @@ public final class Main extends JavaPlugin implements Listener { LinkCode linkCodeCommand = new LinkCode(this); getCommand("getLinkCode").setExecutor(linkCodeCommand); - InternalWebServer.startServer(this); - getServer().getConsoleSender().sendMessage(ChatColor.GREEN+"SL-Craft | Plugin démarré"); } @@ -142,7 +145,7 @@ public final class Main extends JavaPlugin implements Listener { } // On renvoie chaque message des joueurs sur le canal de chat du serveur discord - @SuppressWarnings({"unchecked", "deprecation"}) + @SuppressWarnings({"deprecation"}) @EventHandler(priority = EventPriority.LOWEST) void AsyncChatEvent(AsyncPlayerChatEvent e) { String playerFormattedMessage = e.getMessage(); @@ -316,6 +319,8 @@ public final class Main extends JavaPlugin implements Listener { saveConfig(); reloadConfig(); } + + // 1.6.1 } private void initDatabase(){ diff --git a/src/main/java/com/slprojects/slcraftplugin/commands/publics/Wild.java b/src/main/java/com/slprojects/slcraftplugin/commands/publics/Wild.java index 852e1b942c219f7a2294151f7e897d676dc236bf..70ed5adcb2a89c74fb3c1ecbd3b56791e1f44199 100644 --- a/src/main/java/com/slprojects/slcraftplugin/commands/publics/Wild.java +++ b/src/main/java/com/slprojects/slcraftplugin/commands/publics/Wild.java @@ -76,7 +76,7 @@ public class Wild implements CommandExecutor { 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; + int delayInTicks = plugin.getConfig().getInt("wild.move-cooldown") * plugin.ticksPerSeconds; new BukkitRunnable() { @Override diff --git a/src/main/java/com/slprojects/slcraftplugin/parallelTasks/PeriodicEvent.java b/src/main/java/com/slprojects/slcraftplugin/parallelTasks/PeriodicEvent.java new file mode 100644 index 0000000000000000000000000000000000000000..04cae337fa74185e50164f4b2be05f11663c3d19 --- /dev/null +++ b/src/main/java/com/slprojects/slcraftplugin/parallelTasks/PeriodicEvent.java @@ -0,0 +1,33 @@ +package com.slprojects.slcraftplugin.parallelTasks; + +import com.slprojects.slcraftplugin.Main; +import org.bukkit.scheduler.BukkitRunnable; + +public class PeriodicEvent { + private final Main plugin; + private boolean doesTheEventHasBeenCalled = false; + private final int periodicEventCallTime; + + public PeriodicEvent(Main plugin){ + this.plugin = plugin; + startPeriodicEvent(); + periodicEventCallTime = plugin.getConfig().getInt("periodicEventCallTime"); + } + + public void startPeriodicEvent(){ + if(doesTheEventHasBeenCalled) throw new RuntimeException("L'exécution de l'évènement périodique est déjà enclanchée."); + + doesTheEventHasBeenCalled = true; + new BukkitRunnable(){ + @Override + public void run(){ + periodicEvent(); + } + }.runTaskLater(plugin, (long) periodicEventCallTime * Main.ticksPerSeconds); + } + + private void periodicEvent(){ + // S'exécute à la fin + startPeriodicEvent(); + } +} diff --git a/src/main/java/com/slprojects/slcraftplugin/parallelTasks/PeriodicPlayerEvent.java b/src/main/java/com/slprojects/slcraftplugin/parallelTasks/PeriodicPlayerEvent.java deleted file mode 100644 index 48a22cd3908d6ddcdbe419a154456cc92d73f7fe..0000000000000000000000000000000000000000 --- a/src/main/java/com/slprojects/slcraftplugin/parallelTasks/PeriodicPlayerEvent.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.slprojects.slcraftplugin.parallelTasks; - -public class PeriodicPlayerEvent { -} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 85da917c30a52d0f4be08aca37891b0491ad56c6..8dcf1a752188dc17c4fa74d20c1e176a3da318ae 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -23,4 +23,7 @@ commands: description: Te permet d'obtenir un code pour associer ton compte Minecraft au site internet du serveur.' aliases: [ getlinkcode ] usage: /getlinkcode - permission: slcraft.getlinkcode \ No newline at end of file + permission: slcraft.getlinkcode + +periodicEventCallTime: 60 # En sencondes +ticks-per-seconds: 20 \ No newline at end of file