From 1a1bf044f51a3506dcfc6780122de70513e692ba Mon Sep 17 00:00:00 2001 From: SofianeLasri <alasri250@gmail.com> Date: Tue, 6 Sep 2022 17:47:35 +0200 Subject: [PATCH] =?UTF-8?q?Refacto=20et=20classe=20p=C3=A9riodique=20ajout?= =?UTF-8?q?=C3=A9e.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- .../com/slprojects/slcraftplugin/Main.java | 23 ++++++++----- .../slcraftplugin/commands/publics/Wild.java | 2 +- .../parallelTasks/PeriodicEvent.java | 33 +++++++++++++++++++ .../parallelTasks/PeriodicPlayerEvent.java | 4 --- src/main/resources/plugin.yml | 5 ++- 6 files changed, 53 insertions(+), 16 deletions(-) create mode 100644 src/main/java/com/slprojects/slcraftplugin/parallelTasks/PeriodicEvent.java delete mode 100644 src/main/java/com/slprojects/slcraftplugin/parallelTasks/PeriodicPlayerEvent.java diff --git a/pom.xml b/pom.xml index f7e4ef9..63a2e5d 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 b35113d..66d9206 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 852e1b9..70ed5ad 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 0000000..04cae33 --- /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 48a22cd..0000000 --- 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 85da917..8dcf1a7 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 -- GitLab