From 75050cef30cc8803578635f5ae0187def0459d3a Mon Sep 17 00:00:00 2001 From: gab4000 Date: Thu, 10 Oct 2024 18:42:40 +0200 Subject: [PATCH 01/23] Patch du bug du /settings --- .../fr/communaywen/core/AywenCraftPlugin.java | 2 ++ .../core/settings/SettingsListener.java | 27 +++++++++++++++++++ .../core/settings/SettingsManager.java | 17 ++++++++++++ .../core/settings/SettingsMenu.java | 2 +- 4 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/main/java/fr/communaywen/core/settings/SettingsListener.java diff --git a/src/main/java/fr/communaywen/core/AywenCraftPlugin.java b/src/main/java/fr/communaywen/core/AywenCraftPlugin.java index fdf0e794..2c7484e3 100644 --- a/src/main/java/fr/communaywen/core/AywenCraftPlugin.java +++ b/src/main/java/fr/communaywen/core/AywenCraftPlugin.java @@ -69,6 +69,7 @@ import fr.communaywen.core.quests.qenum.QUESTS; import fr.communaywen.core.commands.staff.FreezeCommand; import fr.communaywen.core.commands.staff.PlayersCommand; +import fr.communaywen.core.settings.SettingsListener; import fr.communaywen.core.space.moon.MoonListener; import fr.communaywen.core.space.rocket.RocketListener; import fr.communaywen.core.tab.TabList; @@ -384,6 +385,7 @@ public void run() { /* LISTENERS */ registerEvents( + new SettingsListener(this), // new LeaderboardListener(this), // Desactivé de base new RocketListener(), new MoonListener(), diff --git a/src/main/java/fr/communaywen/core/settings/SettingsListener.java b/src/main/java/fr/communaywen/core/settings/SettingsListener.java new file mode 100644 index 00000000..3495b8f9 --- /dev/null +++ b/src/main/java/fr/communaywen/core/settings/SettingsListener.java @@ -0,0 +1,27 @@ +package fr.communaywen.core.settings; + +import fr.communaywen.core.AywenCraftPlugin; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; + +import java.sql.SQLException; + +public class SettingsListener implements Listener { + + AywenCraftPlugin plugin; + + public SettingsListener(AywenCraftPlugin plugin) { + this.plugin = plugin; + } + + @EventHandler + public void onJoin(PlayerJoinEvent e) throws SQLException { + String uuid = e.getPlayer().getUniqueId().toString(); + + if (this.plugin.getManagers().getSettingsManager().findPlayerSettingsByUUID(uuid) == null) { + this.plugin.getManagers().getSettingsManager().createPlayerSettings(new PlayerSettings(uuid, 3, 3, 3)); + } + } + +} diff --git a/src/main/java/fr/communaywen/core/settings/SettingsManager.java b/src/main/java/fr/communaywen/core/settings/SettingsManager.java index 671cea90..64b04953 100644 --- a/src/main/java/fr/communaywen/core/settings/SettingsManager.java +++ b/src/main/java/fr/communaywen/core/settings/SettingsManager.java @@ -34,6 +34,23 @@ public PlayerSettings findPlayerSettingsByUUID(Player player) throws SQLExceptio return null; } + public PlayerSettings findPlayerSettingsByUUID(String uuid) throws SQLException { + String sql = "SELECT * FROM settings WHERE player = ?"; + PreparedStatement statement = connection.prepareStatement(sql); + statement.setString(1, uuid); + ResultSet results = statement.executeQuery(); + if (results.next()) { + int mail_accept = results.getInt("mail_accept"); + int trade_accept = results.getInt("trade_accept"); + int tpa_accept = results.getInt("tpa_accept"); + PlayerSettings playerSettings = new PlayerSettings(uuid, mail_accept, trade_accept, tpa_accept); + statement.close(); + return playerSettings; + } + statement.close(); + return null; + } + public void createPlayerSettings(PlayerSettings settings) throws SQLException { String sql = "INSERT INTO settings ( player, mail_accept, trade_accept, tpa_accept ) VALUES (?, ?, ?, ?)"; diff --git a/src/main/java/fr/communaywen/core/settings/SettingsMenu.java b/src/main/java/fr/communaywen/core/settings/SettingsMenu.java index 3d63c8b0..ba2d73c7 100644 --- a/src/main/java/fr/communaywen/core/settings/SettingsMenu.java +++ b/src/main/java/fr/communaywen/core/settings/SettingsMenu.java @@ -62,7 +62,7 @@ public void onInventoryClick(InventoryClickEvent inventoryClickEvent) { map.put(22, new ItemBuilder(this, Material.PAPER, itemMeta -> { itemMeta.setDisplayName(ChatColor.GOLD + "Mailbox"); itemMeta.setCustomModelData(8000); - // itemMeta.setLore(List.of(SettingsUtils.getMailStatus(this.mail_accept))); + itemMeta.setLore(List.of(SettingsUtils.getMailStatus(this.mail_accept))); }).setNextMenu(new MailboxManagerMenu(owner, this))); map.put(45, new ItemBuilder(this, Material.BARRIER, itemMeta -> { itemMeta.setDisplayName(ChatColor.DARK_RED + "Fermer"); From df2ea2c0d0bf5a6d815d1e72fa444a7d9ba96538 Mon Sep 17 00:00:00 2001 From: gab4000 Date: Sat, 12 Oct 2024 14:10:20 +0200 Subject: [PATCH 02/23] =?UTF-8?q?Cr=C3=A9ation=20d'un=20cache=20pour=20le?= =?UTF-8?q?=20/settings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/settings/SettingsCache.java | 10 +++++++++ .../core/settings/SettingsListener.java | 16 ++++++++++++-- .../core/settings/SettingsManager.java | 13 ----------- .../core/settings/SettingsMenu.java | 22 +++++-------------- 4 files changed, 30 insertions(+), 31 deletions(-) create mode 100644 src/main/java/fr/communaywen/core/settings/SettingsCache.java diff --git a/src/main/java/fr/communaywen/core/settings/SettingsCache.java b/src/main/java/fr/communaywen/core/settings/SettingsCache.java new file mode 100644 index 00000000..9720331d --- /dev/null +++ b/src/main/java/fr/communaywen/core/settings/SettingsCache.java @@ -0,0 +1,10 @@ +package fr.communaywen.core.settings; + +import java.util.HashMap; +import java.util.Map; + +public class SettingsCache { + + public static Map settingsMap = new HashMap<>(); + +} diff --git a/src/main/java/fr/communaywen/core/settings/SettingsListener.java b/src/main/java/fr/communaywen/core/settings/SettingsListener.java index 3495b8f9..20b2fd64 100644 --- a/src/main/java/fr/communaywen/core/settings/SettingsListener.java +++ b/src/main/java/fr/communaywen/core/settings/SettingsListener.java @@ -4,6 +4,7 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerQuitEvent; import java.sql.SQLException; @@ -19,9 +20,20 @@ public SettingsListener(AywenCraftPlugin plugin) { public void onJoin(PlayerJoinEvent e) throws SQLException { String uuid = e.getPlayer().getUniqueId().toString(); - if (this.plugin.getManagers().getSettingsManager().findPlayerSettingsByUUID(uuid) == null) { - this.plugin.getManagers().getSettingsManager().createPlayerSettings(new PlayerSettings(uuid, 3, 3, 3)); + SettingsCache.settingsMap.put(uuid, this.plugin.getManagers().getSettingsManager().findPlayerSettingsByUUID(uuid)); + + if (SettingsCache.settingsMap.get(uuid) == null) { + SettingsCache.settingsMap.put(uuid, new PlayerSettings(uuid, 3, 3, 3)); } } + @EventHandler + public void onQuit(PlayerQuitEvent e) throws SQLException { + String uuid = e.getPlayer().getUniqueId().toString(); + + this.plugin.getManagers().getSettingsManager().updatePlayerSettings(SettingsCache.settingsMap.get(uuid)); + + SettingsCache.settingsMap.remove(uuid); + } + } diff --git a/src/main/java/fr/communaywen/core/settings/SettingsManager.java b/src/main/java/fr/communaywen/core/settings/SettingsManager.java index 64b04953..cde31041 100644 --- a/src/main/java/fr/communaywen/core/settings/SettingsManager.java +++ b/src/main/java/fr/communaywen/core/settings/SettingsManager.java @@ -51,19 +51,6 @@ public PlayerSettings findPlayerSettingsByUUID(String uuid) throws SQLException return null; } - public void createPlayerSettings(PlayerSettings settings) throws SQLException { - - String sql = "INSERT INTO settings ( player, mail_accept, trade_accept, tpa_accept ) VALUES (?, ?, ?, ?)"; - PreparedStatement statement = connection.prepareStatement(sql); - statement.setString(1, settings.uuid()); - statement.setInt(2, settings.mail_accept()); - statement.setInt(3, settings.trade_accept()); - statement.setInt(4, settings.tpa_accept()); - - statement.executeUpdate(); - statement.close(); - } - public void updatePlayerSettings(PlayerSettings settings) throws SQLException { String sql = "UPDATE settings SET mail_accept = ?, trade_accept = ?, tpa_accept = ? WHERE player = ?"; diff --git a/src/main/java/fr/communaywen/core/settings/SettingsMenu.java b/src/main/java/fr/communaywen/core/settings/SettingsMenu.java index ba2d73c7..17425395 100644 --- a/src/main/java/fr/communaywen/core/settings/SettingsMenu.java +++ b/src/main/java/fr/communaywen/core/settings/SettingsMenu.java @@ -15,7 +15,6 @@ import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import java.sql.SQLException; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -30,14 +29,14 @@ public class SettingsMenu extends Menu { @Setter private int mail_accept, trade_accept, tpa_accept; - public SettingsMenu(AywenCraftPlugin plugin, Player owner, SettingsManager manager) throws SQLException { + public SettingsMenu(AywenCraftPlugin plugin, Player owner, SettingsManager manager) { super(owner); this.plugin = plugin; this.owner = owner; this.manager = manager; - this.mail_accept = manager.findPlayerSettingsByUUID(owner).mail_accept(); - this.trade_accept = manager.findPlayerSettingsByUUID(owner).trade_accept(); - this.tpa_accept = manager.findPlayerSettingsByUUID(owner).tpa_accept(); + this.mail_accept = SettingsCache.settingsMap.get(owner.getUniqueId().toString()).mail_accept(); + this.trade_accept = SettingsCache.settingsMap.get(owner.getUniqueId().toString()).trade_accept(); + this.tpa_accept = SettingsCache.settingsMap.get(owner.getUniqueId().toString()).tpa_accept(); } @Override @@ -71,17 +70,8 @@ public void onInventoryClick(InventoryClickEvent inventoryClickEvent) { map.put(53, new ItemBuilder(this, Material.PAPER, itemMeta -> { itemMeta.setDisplayName(ChatColor.GREEN + "Sauvegarder"); itemMeta.setCustomModelData(8001); - }).setOnClick(inventoryClickEvent -> { - try { - if (plugin.getManagers().getSettingsManager().findPlayerSettingsByUUID(owner) == null) { - manager.createPlayerSettings(new PlayerSettings(owner.getUniqueId().toString(), mail_accept, trade_accept, tpa_accept)); - } else { - manager.updatePlayerSettings(new PlayerSettings(owner.getUniqueId().toString(), mail_accept, trade_accept, tpa_accept)); - } - } catch (SQLException e) { - e.printStackTrace(); - } - })); + }).setOnClick(inventoryClickEvent -> + SettingsCache.settingsMap.replace(owner.getUniqueId().toString(), new PlayerSettings(owner.getUniqueId().toString(), mail_accept, trade_accept, tpa_accept)))); return map; } From 4e4def7292ee72676c795bf14cf9a0c576aa3f29 Mon Sep 17 00:00:00 2001 From: gab4000 Date: Sat, 12 Oct 2024 20:33:52 +0200 Subject: [PATCH 03/23] Modification du cache /settings --- .../communaywen/core/settings/PlayerSettings.java | 4 +--- .../communaywen/core/settings/SettingsCache.java | 2 +- .../core/settings/SettingsListener.java | 7 +++++-- .../core/settings/SettingsManager.java | 15 ++++++++++++++- .../communaywen/core/settings/SettingsMenu.java | 2 +- .../core/settings/menus/MailboxManagerMenu.java | 2 +- 6 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/main/java/fr/communaywen/core/settings/PlayerSettings.java b/src/main/java/fr/communaywen/core/settings/PlayerSettings.java index 063eec0e..04aff070 100644 --- a/src/main/java/fr/communaywen/core/settings/PlayerSettings.java +++ b/src/main/java/fr/communaywen/core/settings/PlayerSettings.java @@ -1,5 +1,3 @@ package fr.communaywen.core.settings; -public record PlayerSettings(String uuid, int mail_accept, int trade_accept, int tpa_accept) { - -} +public record PlayerSettings(String uuid, int mail_accept, int trade_accept, int tpa_accept) {} \ No newline at end of file diff --git a/src/main/java/fr/communaywen/core/settings/SettingsCache.java b/src/main/java/fr/communaywen/core/settings/SettingsCache.java index 9720331d..100850e8 100644 --- a/src/main/java/fr/communaywen/core/settings/SettingsCache.java +++ b/src/main/java/fr/communaywen/core/settings/SettingsCache.java @@ -7,4 +7,4 @@ public class SettingsCache { public static Map settingsMap = new HashMap<>(); -} +} \ No newline at end of file diff --git a/src/main/java/fr/communaywen/core/settings/SettingsListener.java b/src/main/java/fr/communaywen/core/settings/SettingsListener.java index 20b2fd64..ce2f5cf0 100644 --- a/src/main/java/fr/communaywen/core/settings/SettingsListener.java +++ b/src/main/java/fr/communaywen/core/settings/SettingsListener.java @@ -31,9 +31,12 @@ public void onJoin(PlayerJoinEvent e) throws SQLException { public void onQuit(PlayerQuitEvent e) throws SQLException { String uuid = e.getPlayer().getUniqueId().toString(); - this.plugin.getManagers().getSettingsManager().updatePlayerSettings(SettingsCache.settingsMap.get(uuid)); + if (SettingsCache.settingsMap.put(uuid, this.plugin.getManagers().getSettingsManager().findPlayerSettingsByUUID(uuid)) == null) + this.plugin.getManagers().getSettingsManager().createPlayerSettings(SettingsCache.settingsMap.get(uuid)); + else + this.plugin.getManagers().getSettingsManager().updatePlayerSettings(SettingsCache.settingsMap.get(uuid)); SettingsCache.settingsMap.remove(uuid); } -} +} \ No newline at end of file diff --git a/src/main/java/fr/communaywen/core/settings/SettingsManager.java b/src/main/java/fr/communaywen/core/settings/SettingsManager.java index cde31041..d3ea717e 100644 --- a/src/main/java/fr/communaywen/core/settings/SettingsManager.java +++ b/src/main/java/fr/communaywen/core/settings/SettingsManager.java @@ -63,4 +63,17 @@ public void updatePlayerSettings(PlayerSettings settings) throws SQLException { statement.executeUpdate(); statement.close(); } -} + + public void createPlayerSettings(PlayerSettings settings) throws SQLException { + + String sql = "INSERT INTO settings (player, mail_accept, trade_accept, tpa_accept) VALUES (?, ?, ?, ?)"; + PreparedStatement statement = connection.prepareStatement(sql); + statement.setString(1, settings.uuid()); + statement.setInt(2, settings.mail_accept()); + statement.setInt(3, settings.trade_accept()); + statement.setInt(4, settings.tpa_accept()); + + statement.executeUpdate(); + statement.close(); + } +} \ No newline at end of file diff --git a/src/main/java/fr/communaywen/core/settings/SettingsMenu.java b/src/main/java/fr/communaywen/core/settings/SettingsMenu.java index 17425395..779dac3f 100644 --- a/src/main/java/fr/communaywen/core/settings/SettingsMenu.java +++ b/src/main/java/fr/communaywen/core/settings/SettingsMenu.java @@ -75,4 +75,4 @@ public void onInventoryClick(InventoryClickEvent inventoryClickEvent) { return map; } -} +} \ No newline at end of file diff --git a/src/main/java/fr/communaywen/core/settings/menus/MailboxManagerMenu.java b/src/main/java/fr/communaywen/core/settings/menus/MailboxManagerMenu.java index 9b4f8a72..b889f6e3 100644 --- a/src/main/java/fr/communaywen/core/settings/menus/MailboxManagerMenu.java +++ b/src/main/java/fr/communaywen/core/settings/menus/MailboxManagerMenu.java @@ -75,4 +75,4 @@ public void onInventoryClick(InventoryClickEvent inventoryClickEvent) { })); return map; } -} +} \ No newline at end of file From 19382bf37406a942f2e22040b28e5c1f8d578a14 Mon Sep 17 00:00:00 2001 From: gab4000 Date: Sun, 13 Oct 2024 10:44:48 +0200 Subject: [PATCH 04/23] =?UTF-8?q?Modification=20du=20cache=20/settings=20:?= =?UTF-8?q?=20taches=20effectu=C3=A9es=20sur=20un=20autre=20thread?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/settings/SettingsListener.java | 49 ++++++---- .../core/settings/SettingsManager.java | 97 +++++++++---------- .../core/settings/SettingsMenu.java | 10 +- .../core/utils/constant/Prefix.java | 1 + 4 files changed, 86 insertions(+), 71 deletions(-) diff --git a/src/main/java/fr/communaywen/core/settings/SettingsListener.java b/src/main/java/fr/communaywen/core/settings/SettingsListener.java index ce2f5cf0..12d05281 100644 --- a/src/main/java/fr/communaywen/core/settings/SettingsListener.java +++ b/src/main/java/fr/communaywen/core/settings/SettingsListener.java @@ -1,6 +1,10 @@ package fr.communaywen.core.settings; import fr.communaywen.core.AywenCraftPlugin; +import fr.communaywen.core.utils.constant.MessageManager; +import fr.communaywen.core.utils.constant.MessageType; +import fr.communaywen.core.utils.constant.Prefix; +import org.bukkit.Bukkit; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; @@ -17,26 +21,35 @@ public SettingsListener(AywenCraftPlugin plugin) { } @EventHandler - public void onJoin(PlayerJoinEvent e) throws SQLException { - String uuid = e.getPlayer().getUniqueId().toString(); - - SettingsCache.settingsMap.put(uuid, this.plugin.getManagers().getSettingsManager().findPlayerSettingsByUUID(uuid)); - - if (SettingsCache.settingsMap.get(uuid) == null) { - SettingsCache.settingsMap.put(uuid, new PlayerSettings(uuid, 3, 3, 3)); - } + public void onJoin(PlayerJoinEvent e) { + Bukkit.getScheduler().runTaskAsynchronously(this.plugin, () -> { + String uuid = e.getPlayer().getUniqueId().toString(); + PlayerSettings playerSettingsByUUID = this.plugin.getManagers().getSettingsManager().findPlayerSettingsByUUID(e.getPlayer()); + + Bukkit.getScheduler().runTask(this.plugin, () -> { + SettingsCache.settingsMap.put(uuid, playerSettingsByUUID); + + if (SettingsCache.settingsMap.get(uuid) == null) { + SettingsCache.settingsMap.put(uuid, new PlayerSettings(uuid, 3, 3, 3)); + } + }); + MessageManager.sendMessageType(e.getPlayer(), "Settings créés", Prefix.SETTINGS, MessageType.INFO, false); + }); } @EventHandler - public void onQuit(PlayerQuitEvent e) throws SQLException { - String uuid = e.getPlayer().getUniqueId().toString(); - - if (SettingsCache.settingsMap.put(uuid, this.plugin.getManagers().getSettingsManager().findPlayerSettingsByUUID(uuid)) == null) - this.plugin.getManagers().getSettingsManager().createPlayerSettings(SettingsCache.settingsMap.get(uuid)); - else - this.plugin.getManagers().getSettingsManager().updatePlayerSettings(SettingsCache.settingsMap.get(uuid)); - - SettingsCache.settingsMap.remove(uuid); + public void onQuit(PlayerQuitEvent e) { + Bukkit.getScheduler().runTaskAsynchronously(this.plugin, () -> { + String uuid = e.getPlayer().getUniqueId().toString(); + + if (this.plugin.getManagers().getSettingsManager().findPlayerSettingsByUUID(e.getPlayer()) == null) + this.plugin.getManagers().getSettingsManager().createPlayerSettings(SettingsCache.settingsMap.get(uuid)); + else + this.plugin.getManagers().getSettingsManager().updatePlayerSettings(SettingsCache.settingsMap.get(uuid)); + + Bukkit.getScheduler().runTask(this.plugin, () -> { + SettingsCache.settingsMap.remove(uuid); + }); + }); } - } \ No newline at end of file diff --git a/src/main/java/fr/communaywen/core/settings/SettingsManager.java b/src/main/java/fr/communaywen/core/settings/SettingsManager.java index d3ea717e..3d50bc6b 100644 --- a/src/main/java/fr/communaywen/core/settings/SettingsManager.java +++ b/src/main/java/fr/communaywen/core/settings/SettingsManager.java @@ -1,8 +1,11 @@ package fr.communaywen.core.settings; - import fr.communaywen.core.AywenCraftPlugin; +import fr.communaywen.core.utils.constant.MessageManager; +import fr.communaywen.core.utils.constant.MessageType; +import fr.communaywen.core.utils.constant.Prefix; import fr.communaywen.core.utils.database.DatabaseConnector; +import org.bukkit.Bukkit; import org.bukkit.entity.Player; import java.sql.PreparedStatement; @@ -17,63 +20,57 @@ public SettingsManager(AywenCraftPlugin plugin) { this.plugin = plugin; } - public PlayerSettings findPlayerSettingsByUUID(Player player) throws SQLException { - String sql = "SELECT * FROM settings WHERE player = ?"; - PreparedStatement statement = connection.prepareStatement(sql); - statement.setString(1, player.getUniqueId().toString()); - ResultSet results = statement.executeQuery(); - if (results.next()) { - int mail_accept = results.getInt("mail_accept"); - int trade_accept = results.getInt("trade_accept"); - int tpa_accept = results.getInt("tpa_accept"); - PlayerSettings playerSettings = new PlayerSettings(player.getUniqueId().toString(), mail_accept, trade_accept, tpa_accept); + public PlayerSettings findPlayerSettingsByUUID(Player player) { + try { + String sql = "SELECT * FROM settings WHERE player = ?"; + PreparedStatement statement = connection.prepareStatement(sql); + statement.setString(1, player.getUniqueId().toString()); + ResultSet results = statement.executeQuery(); + if (results.next()) { + int mail_accept = results.getInt("mail_accept"); + int trade_accept = results.getInt("trade_accept"); + int tpa_accept = results.getInt("tpa_accept"); + PlayerSettings playerSettings = new PlayerSettings(player.getUniqueId().toString(), mail_accept, trade_accept, tpa_accept); + statement.close(); + return playerSettings; + } statement.close(); - return playerSettings; + } catch (SQLException e) { + e.printStackTrace(); + MessageManager.sendMessageType(player, "Impossible de charger les settings", Prefix.SETTINGS, MessageType.ERROR, false); } - statement.close(); return null; } - public PlayerSettings findPlayerSettingsByUUID(String uuid) throws SQLException { - String sql = "SELECT * FROM settings WHERE player = ?"; - PreparedStatement statement = connection.prepareStatement(sql); - statement.setString(1, uuid); - ResultSet results = statement.executeQuery(); - if (results.next()) { - int mail_accept = results.getInt("mail_accept"); - int trade_accept = results.getInt("trade_accept"); - int tpa_accept = results.getInt("tpa_accept"); - PlayerSettings playerSettings = new PlayerSettings(uuid, mail_accept, trade_accept, tpa_accept); + public void updatePlayerSettings(PlayerSettings settings) { + try { + String sql = "UPDATE settings SET mail_accept = ?, trade_accept = ?, tpa_accept = ? WHERE player = ?"; + PreparedStatement statement = connection.prepareStatement(sql); + statement.setInt(1, settings.mail_accept()); + statement.setInt(2, settings.trade_accept()); + statement.setInt(3, settings.tpa_accept()); + statement.setString(4, settings.uuid()); + + statement.executeUpdate(); statement.close(); - return playerSettings; + } catch (SQLException e) { + e.printStackTrace(); } - statement.close(); - return null; - } - - public void updatePlayerSettings(PlayerSettings settings) throws SQLException { - - String sql = "UPDATE settings SET mail_accept = ?, trade_accept = ?, tpa_accept = ? WHERE player = ?"; - PreparedStatement statement = connection.prepareStatement(sql); - statement.setInt(1, settings.mail_accept()); - statement.setInt(2, settings.trade_accept()); - statement.setInt(3, settings.tpa_accept()); - statement.setString(4, settings.uuid()); - - statement.executeUpdate(); - statement.close(); } - public void createPlayerSettings(PlayerSettings settings) throws SQLException { - - String sql = "INSERT INTO settings (player, mail_accept, trade_accept, tpa_accept) VALUES (?, ?, ?, ?)"; - PreparedStatement statement = connection.prepareStatement(sql); - statement.setString(1, settings.uuid()); - statement.setInt(2, settings.mail_accept()); - statement.setInt(3, settings.trade_accept()); - statement.setInt(4, settings.tpa_accept()); - - statement.executeUpdate(); - statement.close(); + public void createPlayerSettings(PlayerSettings settings) { + try { + String sql = "INSERT INTO settings (player, mail_accept, trade_accept, tpa_accept) VALUES (?, ?, ?, ?)"; + PreparedStatement statement = connection.prepareStatement(sql); + statement.setString(1, settings.uuid()); + statement.setInt(2, settings.mail_accept()); + statement.setInt(3, settings.trade_accept()); + statement.setInt(4, settings.tpa_accept()); + + statement.executeUpdate(); + statement.close(); + } catch (SQLException e) { + e.printStackTrace(); + } } } \ No newline at end of file diff --git a/src/main/java/fr/communaywen/core/settings/SettingsMenu.java b/src/main/java/fr/communaywen/core/settings/SettingsMenu.java index 779dac3f..89f6ef87 100644 --- a/src/main/java/fr/communaywen/core/settings/SettingsMenu.java +++ b/src/main/java/fr/communaywen/core/settings/SettingsMenu.java @@ -5,6 +5,9 @@ import dev.xernas.menulib.utils.ItemBuilder; import fr.communaywen.core.AywenCraftPlugin; import fr.communaywen.core.settings.menus.MailboxManagerMenu; +import fr.communaywen.core.utils.constant.MessageManager; +import fr.communaywen.core.utils.constant.MessageType; +import fr.communaywen.core.utils.constant.Prefix; import lombok.Getter; import lombok.Setter; import me.clip.placeholderapi.PlaceholderAPI; @@ -70,9 +73,10 @@ public void onInventoryClick(InventoryClickEvent inventoryClickEvent) { map.put(53, new ItemBuilder(this, Material.PAPER, itemMeta -> { itemMeta.setDisplayName(ChatColor.GREEN + "Sauvegarder"); itemMeta.setCustomModelData(8001); - }).setOnClick(inventoryClickEvent -> - SettingsCache.settingsMap.replace(owner.getUniqueId().toString(), new PlayerSettings(owner.getUniqueId().toString(), mail_accept, trade_accept, tpa_accept)))); - + }).setOnClick(inventoryClickEvent -> { + SettingsCache.settingsMap.replace(owner.getUniqueId().toString(), new PlayerSettings(owner.getUniqueId().toString(), mail_accept, trade_accept, tpa_accept)); + MessageManager.sendMessageType(owner, "Settings enregistrés", Prefix.SETTINGS, MessageType.INFO, false); + })); return map; } } \ No newline at end of file diff --git a/src/main/java/fr/communaywen/core/utils/constant/Prefix.java b/src/main/java/fr/communaywen/core/utils/constant/Prefix.java index 581f3ca1..cdbbb61a 100644 --- a/src/main/java/fr/communaywen/core/utils/constant/Prefix.java +++ b/src/main/java/fr/communaywen/core/utils/constant/Prefix.java @@ -16,6 +16,7 @@ public enum Prefix { // For gradient color: https://www.birdflop.com/resources/rgb/ // Color format: §x§r§r§g§g§b§b§l + SETTINGS("§x§c§1§1§9§e§e§lѕ§x§c§1§1§9§e§e§lᴇ§x§c§1§1§9§e§e§lᴛ§x§c§1§1§9§e§e§lᴛ§x§c§1§1§9§e§e§lɪ§x§c§1§1§9§e§e§lɴ§x§c§1§1§9§e§e§lɢ§x§c§1§1§9§e§e§lѕ"), FREEZE("§x§1§9§5§0§E§E§l@§x§1§9§5§0§E§E§lꜰ§x§1§9§5§0§E§E§lʀ§x§1§9§5§0§E§E§lᴇ§x§1§9§5§0§E§E§lᴇ§x§1§9§5§0§E§E§lᴢ§x§1§9§5§0§E§E§lᴇ"), HOME("§x§0§8§F§B§5§D§l@§x§2§5§F§C§6§7§lʜ§x§4§1§F§D§7§0§lᴏ§x§5§E§F§E§7§A§lᴍ§x§7§A§F§F§8§3§lᴇ"), CLAIM("§x§4§5§9§5§F§F§l@§x§4§1§9§1§F§B§lᴄ§x§3§D§8§D§F§7§lʟ§x§3§9§8§A§F§4§lᴀ§x§3§5§8§6§F§0§lɪ§x§3§1§8§2§E§C§lᴍ"), From dd85c747785137a45f03764a829882d799a4337c Mon Sep 17 00:00:00 2001 From: gab4000 Date: Wed, 16 Oct 2024 19:52:08 +0200 Subject: [PATCH 05/23] =?UTF-8?q?Recup=C3=A9ration=20des=20settings=20lors?= =?UTF-8?q?=20du=20lancement=20du=20serveur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/fr/communaywen/core/Managers.java | 3 +- .../core/settings/SettingsListener.java | 21 +-------- .../core/settings/SettingsManager.java | 46 ++++++++++++------- 3 files changed, 33 insertions(+), 37 deletions(-) diff --git a/src/main/java/fr/communaywen/core/Managers.java b/src/main/java/fr/communaywen/core/Managers.java index 5c6e2c2c..1642d7ce 100644 --- a/src/main/java/fr/communaywen/core/Managers.java +++ b/src/main/java/fr/communaywen/core/Managers.java @@ -156,6 +156,7 @@ public void init(AywenCraftPlugin plugin) { moonDimManager.init(); homesManagers.loadHomes(); disabledWorldHome.loadConfig(); + settingsManager.init(); } public void cleanup() { @@ -171,6 +172,6 @@ public void cleanup() { corpseManager.removeAll(); teamManager.getTeamCache().saveAllTeamsToDatabase(); disabledWorldHome.saveConfig(); - + settingsManager.saveSettings(); } } diff --git a/src/main/java/fr/communaywen/core/settings/SettingsListener.java b/src/main/java/fr/communaywen/core/settings/SettingsListener.java index 12d05281..156efb06 100644 --- a/src/main/java/fr/communaywen/core/settings/SettingsListener.java +++ b/src/main/java/fr/communaywen/core/settings/SettingsListener.java @@ -24,32 +24,13 @@ public SettingsListener(AywenCraftPlugin plugin) { public void onJoin(PlayerJoinEvent e) { Bukkit.getScheduler().runTaskAsynchronously(this.plugin, () -> { String uuid = e.getPlayer().getUniqueId().toString(); - PlayerSettings playerSettingsByUUID = this.plugin.getManagers().getSettingsManager().findPlayerSettingsByUUID(e.getPlayer()); Bukkit.getScheduler().runTask(this.plugin, () -> { - SettingsCache.settingsMap.put(uuid, playerSettingsByUUID); - if (SettingsCache.settingsMap.get(uuid) == null) { SettingsCache.settingsMap.put(uuid, new PlayerSettings(uuid, 3, 3, 3)); + MessageManager.sendMessageType(e.getPlayer(), "Settings créés", Prefix.SETTINGS, MessageType.INFO, false); } }); - MessageManager.sendMessageType(e.getPlayer(), "Settings créés", Prefix.SETTINGS, MessageType.INFO, false); - }); - } - - @EventHandler - public void onQuit(PlayerQuitEvent e) { - Bukkit.getScheduler().runTaskAsynchronously(this.plugin, () -> { - String uuid = e.getPlayer().getUniqueId().toString(); - - if (this.plugin.getManagers().getSettingsManager().findPlayerSettingsByUUID(e.getPlayer()) == null) - this.plugin.getManagers().getSettingsManager().createPlayerSettings(SettingsCache.settingsMap.get(uuid)); - else - this.plugin.getManagers().getSettingsManager().updatePlayerSettings(SettingsCache.settingsMap.get(uuid)); - - Bukkit.getScheduler().runTask(this.plugin, () -> { - SettingsCache.settingsMap.remove(uuid); - }); }); } } \ No newline at end of file diff --git a/src/main/java/fr/communaywen/core/settings/SettingsManager.java b/src/main/java/fr/communaywen/core/settings/SettingsManager.java index 3d50bc6b..61ab682d 100644 --- a/src/main/java/fr/communaywen/core/settings/SettingsManager.java +++ b/src/main/java/fr/communaywen/core/settings/SettingsManager.java @@ -20,6 +20,36 @@ public SettingsManager(AywenCraftPlugin plugin) { this.plugin = plugin; } + public void init() { + try { + String sql = "SELECT * FROM settings"; + PreparedStatement statement = connection.prepareStatement(sql); + ResultSet results = statement.executeQuery(); + while (results.next()) { + PlayerSettings playerSettings = new PlayerSettings( + results.getString("player"), + results.getInt("mail_accept"), + results.getInt("trade_accept"), + results.getInt("tpa_accept")); + SettingsCache.settingsMap.put(playerSettings.uuid(), playerSettings); + } + } catch (SQLException e) { + e.printStackTrace(); + } + } + + public void saveSettings() { + try { + PreparedStatement clearAllStatement = plugin.getManagers().getDatabaseManager().getConnection().prepareStatement("DELETE FROM settings"); + clearAllStatement.executeUpdate(); + for (PlayerSettings settings : SettingsCache.settingsMap.values()) { + createPlayerSettings(settings); + } + } catch (SQLException e) { + e.printStackTrace(); + } + } + public PlayerSettings findPlayerSettingsByUUID(Player player) { try { String sql = "SELECT * FROM settings WHERE player = ?"; @@ -42,22 +72,6 @@ public PlayerSettings findPlayerSettingsByUUID(Player player) { return null; } - public void updatePlayerSettings(PlayerSettings settings) { - try { - String sql = "UPDATE settings SET mail_accept = ?, trade_accept = ?, tpa_accept = ? WHERE player = ?"; - PreparedStatement statement = connection.prepareStatement(sql); - statement.setInt(1, settings.mail_accept()); - statement.setInt(2, settings.trade_accept()); - statement.setInt(3, settings.tpa_accept()); - statement.setString(4, settings.uuid()); - - statement.executeUpdate(); - statement.close(); - } catch (SQLException e) { - e.printStackTrace(); - } - } - public void createPlayerSettings(PlayerSettings settings) { try { String sql = "INSERT INTO settings (player, mail_accept, trade_accept, tpa_accept) VALUES (?, ?, ?, ?)"; From e7581b59077667e54b2fab7cea3bfb6da7ea2809 Mon Sep 17 00:00:00 2001 From: gab4000 Date: Fri, 18 Oct 2024 20:42:54 +0200 Subject: [PATCH 06/23] Modification de la mailbox (appel db) --- .../communaywen/core/mailboxes/menu/letter/SendingLetter.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java b/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java index 3d95891b..cdf532b6 100644 --- a/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java +++ b/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java @@ -5,6 +5,7 @@ import fr.communaywen.core.mailboxes.MailboxManager; import fr.communaywen.core.mailboxes.utils.MailboxInv; import fr.communaywen.core.mailboxes.utils.MailboxMenuManager; +import fr.communaywen.core.settings.SettingsCache; import fr.communaywen.core.teams.TeamManager; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; @@ -36,7 +37,7 @@ public SendingLetter(Player player, OfflinePlayer receiver, AywenCraftPlugin plu this.teamManager = plugin.getManagers().getTeamManager(); FriendsManager friendsManager = new FriendsManager(plugin.getManagers().getDatabaseManager(), this.plugin); this.playerFriends = friendsManager.getFriends(player.getName()); - this.mail_accept = plugin.getManagers().getSettingsManager().findPlayerSettingsByUUID(Objects.requireNonNull(receiver.getPlayer())).mail_accept(); + this.mail_accept = SettingsCache.settingsMap.get(receiver.getUniqueId()).mail_accept(); inventory = Bukkit.createInventory(this, 54, MailboxMenuManager.getInvTitle(INV_NAME)); inventory.setItem(49, getHead(receiver)); inventory.setItem(45, homeBtn()); From bbaac524ce4986c745db9f6c79e73a0b99b38641 Mon Sep 17 00:00:00 2001 From: gab4000 Date: Fri, 18 Oct 2024 20:46:56 +0200 Subject: [PATCH 07/23] Modification de la mailbox pour le /settings #2 --- .../communaywen/core/mailboxes/menu/letter/SendingLetter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java b/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java index cdf532b6..8f281205 100644 --- a/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java +++ b/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java @@ -35,7 +35,7 @@ public SendingLetter(Player player, OfflinePlayer receiver, AywenCraftPlugin plu this.receiver = receiver; this.plugin = plugin; this.teamManager = plugin.getManagers().getTeamManager(); - FriendsManager friendsManager = new FriendsManager(plugin.getManagers().getDatabaseManager(), this.plugin); + FriendsManager friendsManager = plugin.getManagers().getFriendsManager(); this.playerFriends = friendsManager.getFriends(player.getName()); this.mail_accept = SettingsCache.settingsMap.get(receiver.getUniqueId()).mail_accept(); inventory = Bukkit.createInventory(this, 54, MailboxMenuManager.getInvTitle(INV_NAME)); From a408f60c43403f157e925074df76f19d6c6b6b53 Mon Sep 17 00:00:00 2001 From: gab4000 Date: Fri, 18 Oct 2024 20:49:18 +0200 Subject: [PATCH 08/23] Retour (mauvaise modif) --- .../mailboxes/menu/letter/SendingLetter.java | 92 +++++++------------ 1 file changed, 34 insertions(+), 58 deletions(-) diff --git a/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java b/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java index 88cdc0d8..cdf532b6 100644 --- a/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java +++ b/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java @@ -26,8 +26,8 @@ public class SendingLetter extends MailboxInv { private final OfflinePlayer receiver; private final AywenCraftPlugin plugin; private final TeamManager teamManager; - private List playerFriends = new ArrayList<>(); - + private final List playerFriends; + int mail_accept; public SendingLetter(Player player, OfflinePlayer receiver, AywenCraftPlugin plugin) throws SQLException { @@ -35,7 +35,7 @@ public SendingLetter(Player player, OfflinePlayer receiver, AywenCraftPlugin plu this.receiver = receiver; this.plugin = plugin; this.teamManager = plugin.getManagers().getTeamManager(); - FriendsManager friendsManager = plugin.getManagers().getFriendsManager(); + FriendsManager friendsManager = new FriendsManager(plugin.getManagers().getDatabaseManager(), this.plugin); this.playerFriends = friendsManager.getFriends(player.getName()); this.mail_accept = SettingsCache.settingsMap.get(receiver.getUniqueId()).mail_accept(); inventory = Bukkit.createInventory(this, 54, MailboxMenuManager.getInvTitle(INV_NAME)); @@ -45,17 +45,6 @@ public SendingLetter(Player player, OfflinePlayer receiver, AywenCraftPlugin plu inventory.setItem(50, cancelBtn()); for (int i = 0; i < 9; i++) inventory.setItem(i, transparentItem()); - - FriendsManager friendsManager = new FriendsManager(plugin.getManagers().getDatabaseManager(), this.plugin); - friendsManager.getFriendsAsync(player.getName()).thenAccept(friends -> { - this.playerFriends = friends; - plugin.getLogger().info("Amis chargés pour " + player.getName()); - }).exceptionally(ex -> { - plugin.getLogger().severe("Erreur lors du chargement des amis : " + ex.getMessage()); - return null; - }); - - this.mail_accept = plugin.getManagers().getSettingsManager().findPlayerSettingsByUUID(Objects.requireNonNull(receiver.getPlayer())).mail_accept(); } @Override @@ -80,49 +69,36 @@ public void sendLetter() { sendFailureMessage(player, "Vous ne pouvez pas envoyer de lettre vide"); return; } - - plugin.getLogger().info("Mail Accept: " + mail_accept); - - Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> { - switch (mail_accept) { - case 0: - Bukkit.getScheduler().runTask(plugin, () -> sendFailureMessage(player, "Ce joueur n'accepte pas les lettres")); - break; - - case 1: - if (!playerFriends.contains(receiver.getName())) { - Bukkit.getScheduler().runTask(plugin, () -> sendFailureMessage(player, "Ce joueur n'accepte pas les lettres")); - } else { - sendMailItems(player, receiver, items); - } - break; - - case 2: - String playerTeamName = teamManager.getTeamByPlayer(player.getUniqueId()).getName(); - String receiverTeamName = teamManager.getTeamByPlayer(receiver.getUniqueId()).getName(); - plugin.getLogger().info("Nom de l'équipe du joueur : " + playerTeamName); - plugin.getLogger().info("Nom de l'équipe du destinataire : " + receiverTeamName); - - if (!playerTeamName.equals(receiverTeamName)) { - Bukkit.getScheduler().runTask(plugin, () -> sendFailureMessage(player, "Ce joueur n'accepte pas les lettres")); - } else { - sendMailItems(player, receiver, items); - } - break; - - default: - sendMailItems(player, receiver, items); - break; - } - }); - } - - private void sendMailItems(Player player, OfflinePlayer receiver, ItemStack[] items) { - Bukkit.getScheduler().runTask(plugin, () -> { - if (!MailboxManager.sendItems(player, receiver, items)) { - MailboxManager.givePlayerItems(player, items); - } - }); + plugin.getLogger().info("Mail Accept" + mail_accept); + switch (mail_accept) { + case 0: + sendFailureMessage(player, "Ce joueur n'accepte pas les lettres"); + break; + + case 1: + if (!playerFriends.contains(receiver.getName())) { + sendFailureMessage(player, "Ce joueur n'accepte pas les lettres"); + } else { + if (!MailboxManager.sendItems(player, receiver, items)) MailboxManager.givePlayerItems(player, items); + } + break; + + case 2: + String playerTeamName = teamManager.getTeamByPlayer(player.getUniqueId()).getName(); + String receiverTeamName = teamManager.getTeamByPlayer(receiver.getUniqueId()).getName(); + plugin.getLogger().info("Player team name : " + playerTeamName); + plugin.getLogger().info("Player receiver name : " + receiverTeamName); + if (!playerTeamName.equals(receiverTeamName)) { + sendFailureMessage(player, "Ce joueur n'accepte pas les lettres"); + } else { + if (!MailboxManager.sendItems(player, receiver, items)) MailboxManager.givePlayerItems(player, items); + } + break; + + default: + if (!MailboxManager.sendItems(player, receiver, items)) MailboxManager.givePlayerItems(player, items); + break; + } } public void giveItems() { @@ -140,4 +116,4 @@ public boolean noSpace(ItemStack item) { } return true; } -} \ No newline at end of file +} From d0308b07e3f15db8fbe97202ca9c52732c832c84 Mon Sep 17 00:00:00 2001 From: gab4000 Date: Fri, 18 Oct 2024 20:58:13 +0200 Subject: [PATCH 09/23] Retour (mauvaise modif) --- .../core/mailboxes/menu/letter/SendingLetter.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java b/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java index cdf532b6..742741af 100644 --- a/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java +++ b/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java @@ -26,7 +26,7 @@ public class SendingLetter extends MailboxInv { private final OfflinePlayer receiver; private final AywenCraftPlugin plugin; private final TeamManager teamManager; - private final List playerFriends; + private List playerFriends; int mail_accept; @@ -35,8 +35,14 @@ public SendingLetter(Player player, OfflinePlayer receiver, AywenCraftPlugin plu this.receiver = receiver; this.plugin = plugin; this.teamManager = plugin.getManagers().getTeamManager(); - FriendsManager friendsManager = new FriendsManager(plugin.getManagers().getDatabaseManager(), this.plugin); - this.playerFriends = friendsManager.getFriends(player.getName()); + FriendsManager friendsManager = new FriendsManager(plugin.getManagers().getDatabaseManager(), this.plugin); + friendsManager.getFriendsAsync(player.getName()).thenAccept(friends -> { + this.playerFriends = friends; + plugin.getLogger().info("Amis chargés pour " + player.getName()); + }).exceptionally(ex -> { + plugin.getLogger().severe("Erreur lors du chargement des amis : " + ex.getMessage()); + return null; + }); this.mail_accept = SettingsCache.settingsMap.get(receiver.getUniqueId()).mail_accept(); inventory = Bukkit.createInventory(this, 54, MailboxMenuManager.getInvTitle(INV_NAME)); inventory.setItem(49, getHead(receiver)); From 7d2c032915a8f8da9e228b3c204cb15cc8ccf86f Mon Sep 17 00:00:00 2001 From: gab4000 Date: Sat, 19 Oct 2024 21:24:40 +0200 Subject: [PATCH 10/23] Modif de SendingLetter --- .../mailboxes/menu/letter/SendingLetter.java | 196 +++++++++--------- 1 file changed, 96 insertions(+), 100 deletions(-) diff --git a/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java b/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java index 742741af..d50a7cff 100644 --- a/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java +++ b/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java @@ -22,104 +22,100 @@ import static fr.communaywen.core.mailboxes.utils.MailboxUtils.sendFailureMessage; public class SendingLetter extends MailboxInv { - private final static String INV_NAME = "\uF990\uE003"; - private final OfflinePlayer receiver; - private final AywenCraftPlugin plugin; - private final TeamManager teamManager; - private List playerFriends; - - int mail_accept; - - public SendingLetter(Player player, OfflinePlayer receiver, AywenCraftPlugin plugin) throws SQLException { - super(player); - this.receiver = receiver; - this.plugin = plugin; - this.teamManager = plugin.getManagers().getTeamManager(); - FriendsManager friendsManager = new FriendsManager(plugin.getManagers().getDatabaseManager(), this.plugin); - friendsManager.getFriendsAsync(player.getName()).thenAccept(friends -> { - this.playerFriends = friends; - plugin.getLogger().info("Amis chargés pour " + player.getName()); - }).exceptionally(ex -> { - plugin.getLogger().severe("Erreur lors du chargement des amis : " + ex.getMessage()); - return null; - }); - this.mail_accept = SettingsCache.settingsMap.get(receiver.getUniqueId()).mail_accept(); - inventory = Bukkit.createInventory(this, 54, MailboxMenuManager.getInvTitle(INV_NAME)); - inventory.setItem(49, getHead(receiver)); - inventory.setItem(45, homeBtn()); - inventory.setItem(48, sendBtn()); - inventory.setItem(50, cancelBtn()); - - for (int i = 0; i < 9; i++) inventory.setItem(i, transparentItem()); - } - - @Override - public void openInventory() { - player.openInventory(this.inventory); - } - - public ItemStack[] getItems() { - List itemsList = new ArrayList<>(27); - for (int slot = 9; slot < 36; slot++) { - ItemStack item = inventory.getItem(slot); - if (item != null && !item.getType().isAir()) itemsList.add(item); - } - return itemsList.toArray(new ItemStack[0]); - } - - public void sendLetter() { - ItemStack[] items = getItems(); - inventory.clear(); - player.closeInventory(); - if (items.length == 0) { - sendFailureMessage(player, "Vous ne pouvez pas envoyer de lettre vide"); - return; - } - plugin.getLogger().info("Mail Accept" + mail_accept); - switch (mail_accept) { - case 0: - sendFailureMessage(player, "Ce joueur n'accepte pas les lettres"); - break; - - case 1: - if (!playerFriends.contains(receiver.getName())) { - sendFailureMessage(player, "Ce joueur n'accepte pas les lettres"); - } else { - if (!MailboxManager.sendItems(player, receiver, items)) MailboxManager.givePlayerItems(player, items); - } - break; - - case 2: - String playerTeamName = teamManager.getTeamByPlayer(player.getUniqueId()).getName(); - String receiverTeamName = teamManager.getTeamByPlayer(receiver.getUniqueId()).getName(); - plugin.getLogger().info("Player team name : " + playerTeamName); - plugin.getLogger().info("Player receiver name : " + receiverTeamName); - if (!playerTeamName.equals(receiverTeamName)) { - sendFailureMessage(player, "Ce joueur n'accepte pas les lettres"); - } else { - if (!MailboxManager.sendItems(player, receiver, items)) MailboxManager.givePlayerItems(player, items); - } - break; - - default: - if (!MailboxManager.sendItems(player, receiver, items)) MailboxManager.givePlayerItems(player, items); - break; - } - } - - public void giveItems() { - MailboxManager.givePlayerItems(player, getItems()); - } - - public boolean noSpace(ItemStack item) { - if (item == null || item.getType().isAir()) return false; - int size = item.getAmount(); - for (int slot = 9; slot < 36; slot++) { - ItemStack targetItem = inventory.getItem(slot); - if (targetItem == null || targetItem.getType().isAir()) return false; - if (targetItem.isSimilar(item)) size -= targetItem.getMaxStackSize() - targetItem.getAmount(); - if (size <= 0) return false; - } - return true; - } + private final static String INV_NAME = "\uF990\uE003"; + private final OfflinePlayer receiver; + private final AywenCraftPlugin plugin; + private final TeamManager teamManager; + private final List playerFriends; + + int mail_accept; + + public SendingLetter(Player player, OfflinePlayer receiver, AywenCraftPlugin plugin) throws SQLException { + super(player); + this.receiver = receiver; + this.plugin = plugin; + this.teamManager = plugin.getManagers().getTeamManager(); + FriendsManager friendsManager = plugin.getManagers().getFriendsManager(); + playerFriends = (List) friendsManager.getFriendsAsync(player.getName()); + this.mail_accept = SettingsCache.settingsMap.get(receiver.getUniqueId()).mail_accept(); + inventory = Bukkit.createInventory(this, 54, MailboxMenuManager.getInvTitle(INV_NAME)); + inventory.setItem(49, getHead(receiver)); + inventory.setItem(45, homeBtn()); + inventory.setItem(48, sendBtn()); + inventory.setItem(50, cancelBtn()); + + for (int i = 0; i < 9; i++) inventory.setItem(i, transparentItem()); + } + + @Override + public void openInventory() { + player.openInventory(this.inventory); + } + + public ItemStack[] getItems() { + List itemsList = new ArrayList<>(27); + for (int slot = 9; slot < 36; slot++) { + ItemStack item = inventory.getItem(slot); + if (item != null && ! item.getType().isAir()) itemsList.add(item); + } + return itemsList.toArray(new ItemStack[0]); + } + + public void sendLetter() { + ItemStack[] items = getItems(); + inventory.clear(); + player.closeInventory(); + if (items.length == 0) { + sendFailureMessage(player, "Vous ne pouvez pas envoyer de lettre vide"); + return; + } + plugin.getLogger().info("Mail Accept" + mail_accept); + switch (mail_accept) { + case 0: + sendFailureMessage(player, "Ce joueur n'accepte pas les lettres"); + break; + + case 1: + if (! playerFriends.contains(receiver.getName())) { + sendFailureMessage(player, "Ce joueur n'accepte pas les lettres"); + } else { + if (! MailboxManager.sendItems(player, receiver, items)) { + MailboxManager.givePlayerItems(player, items); + } + } + break; + + case 2: + String playerTeamName = teamManager.getTeamByPlayer(player.getUniqueId()).getName(); + String receiverTeamName = teamManager.getTeamByPlayer(receiver.getUniqueId()).getName(); + if (! playerTeamName.equals(receiverTeamName)) { + sendFailureMessage(player, "Ce joueur n'accepte pas les lettres"); + } else { + if (! MailboxManager.sendItems(player, receiver, items)) { + MailboxManager.givePlayerItems(player, items); + } + } + break; + + default: + if (! MailboxManager.sendItems(player, receiver, items)) MailboxManager.givePlayerItems(player, items); + break; + } + } + + public void giveItems() { + MailboxManager.givePlayerItems(player, getItems()); + } + + public boolean noSpace(ItemStack item) { + if (item == null || item.getType().isAir()) return false; + int size = item.getAmount(); + for (int slot = 9; slot < 36; slot++) { + ItemStack targetItem = inventory.getItem(slot); + if (targetItem == null || targetItem.getType().isAir()) return false; + if (targetItem.isSimilar(item)) size -= targetItem.getMaxStackSize() - targetItem.getAmount(); + if (size <= 0) return false; + } + return true; + } } From 77122074d434ed2cef2344582b6d78fc9087fb10 Mon Sep 17 00:00:00 2001 From: gab4000 Date: Sat, 19 Oct 2024 21:32:11 +0200 Subject: [PATCH 11/23] Modification du max achetable a l'adminshop (demande de couggette2mer) --- .../fr/communaywen/core/adminshop/menu/buy/AdminShopBuy.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/fr/communaywen/core/adminshop/menu/buy/AdminShopBuy.java b/src/main/java/fr/communaywen/core/adminshop/menu/buy/AdminShopBuy.java index 57d99ab3..94d059c7 100644 --- a/src/main/java/fr/communaywen/core/adminshop/menu/buy/AdminShopBuy.java +++ b/src/main/java/fr/communaywen/core/adminshop/menu/buy/AdminShopBuy.java @@ -21,7 +21,7 @@ public class AdminShopBuy extends Menu { BaseItems items; private final AtomicInteger number; private final AtomicDouble prize; - private static final int MAX_ITEMS = 255; + private static final int MAX_ITEMS = 2048; private String material = null; public AdminShopBuy(Player player, BaseItems items) { From 59159e0cc148dbd361ff3adcb4193105f764dc24 Mon Sep 17 00:00:00 2001 From: gab4000 Date: Mon, 21 Oct 2024 11:18:32 +0200 Subject: [PATCH 12/23] =?UTF-8?q?/settings=20fonctionnel=20+=20R=C3=A9para?= =?UTF-8?q?tion=20du=20/players=20et=20/freeze?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/communaywen/core/AywenCraftPlugin.java | 84 +++--- .../java/fr/communaywen/core/Managers.java | 277 +++++++++--------- .../core/adminshop/menu/buy/AdminShopBuy.java | 1 - .../core/listeners/FreezeListener.java | 6 +- .../mailboxes/menu/letter/SendingLetter.java | 60 ++-- .../core/quests/QuestsListener.java | 2 +- .../core/settings/SettingsManager.java | 27 -- .../core/settings/SettingsMenu.java | 11 +- .../core/staff/players/PlayerDetailsMenu.java | 214 +++++++------- .../core/staff/players/PlayersMenu.java | 117 ++++---- .../communaywen/core/utils/FriendsUtils.java | 219 +++++++------- 11 files changed, 486 insertions(+), 532 deletions(-) diff --git a/src/main/java/fr/communaywen/core/AywenCraftPlugin.java b/src/main/java/fr/communaywen/core/AywenCraftPlugin.java index 2296f084..7834254b 100644 --- a/src/main/java/fr/communaywen/core/AywenCraftPlugin.java +++ b/src/main/java/fr/communaywen/core/AywenCraftPlugin.java @@ -25,27 +25,26 @@ import fr.communaywen.core.commands.explosion.FBoomCommand; import fr.communaywen.core.commands.fun.*; import fr.communaywen.core.commands.homes.*; -import fr.communaywen.core.commands.spawn.head.HeadCommand; -import fr.communaywen.core.commands.spawn.jump.JumpCommand; -import fr.communaywen.core.commands.spawn.leaderboard.LeaderboardCommand; -import fr.communaywen.core.commands.teams.TeamClaim; import fr.communaywen.core.commands.link.LinkCommand; import fr.communaywen.core.commands.link.ManualLinkCommand; import fr.communaywen.core.commands.randomEvents.RandomEventsCommand; import fr.communaywen.core.commands.socials.DiscordCommand; import fr.communaywen.core.commands.socials.GithubCommand; +import fr.communaywen.core.commands.spawn.head.HeadCommand; +import fr.communaywen.core.commands.spawn.jump.JumpCommand; +import fr.communaywen.core.commands.spawn.leaderboard.LeaderboardCommand; +import fr.communaywen.core.commands.staff.FreezeCommand; +import fr.communaywen.core.commands.staff.PlayersCommand; import fr.communaywen.core.commands.staff.ReportCommands; import fr.communaywen.core.commands.teams.TeamAdminCommand; +import fr.communaywen.core.commands.teams.TeamClaim; import fr.communaywen.core.commands.teams.TeamCommand; import fr.communaywen.core.commands.teleport.RTPCommand; import fr.communaywen.core.commands.teleport.SpawnCommand; import fr.communaywen.core.commands.utils.*; -import fr.communaywen.core.contest.cache.ContestCache; -import fr.communaywen.core.contest.cache.ContestDataCache; import fr.communaywen.core.contest.listeners.ContestIntractEvents; import fr.communaywen.core.contest.listeners.ContestListener; import fr.communaywen.core.contest.listeners.FirerocketSpawnListener; -import fr.communaywen.core.contest.managers.ColorConvertor; import fr.communaywen.core.contest.managers.ContestManager; import fr.communaywen.core.customitems.commands.ShowCraftCommand; import fr.communaywen.core.customitems.listeners.CIBreakBlockListener; @@ -54,9 +53,9 @@ import fr.communaywen.core.elevator.ElevatorListener; import fr.communaywen.core.fallblood.BandageRecipe; import fr.communaywen.core.friends.commands.FriendsCommand; -import fr.communaywen.core.homes.world.DisabledWorldHome; import fr.communaywen.core.homes.Home; import fr.communaywen.core.homes.HomesManagers; +import fr.communaywen.core.homes.world.DisabledWorldHome; import fr.communaywen.core.levels.LevelsCommand; import fr.communaywen.core.levels.LevelsListeners; import fr.communaywen.core.listeners.*; @@ -68,26 +67,24 @@ import fr.communaywen.core.mailboxes.MailboxCommand; import fr.communaywen.core.mailboxes.MailboxListener; import fr.communaywen.core.managers.ChunkListManager; -import fr.communaywen.core.managers.LeaderboardManager; import fr.communaywen.core.personalhome.HSCommand; import fr.communaywen.core.quests.PlayerQuests; import fr.communaywen.core.quests.QuestsListener; import fr.communaywen.core.quests.QuestsManager; -import fr.communaywen.core.quests.qenum.QUESTS; -import fr.communaywen.core.commands.staff.FreezeCommand; -import fr.communaywen.core.commands.staff.PlayersCommand; import fr.communaywen.core.settings.SettingsListener; import fr.communaywen.core.space.moon.MoonListener; import fr.communaywen.core.space.rocket.RocketListener; import fr.communaywen.core.spawn.head.HeadListener; -import fr.communaywen.core.spawn.jump.JumpListener; import fr.communaywen.core.spawn.jump.JumpManager; import fr.communaywen.core.tab.TabList; import fr.communaywen.core.tpa.*; import fr.communaywen.core.trade.TradeAcceptCommand; import fr.communaywen.core.trade.TradeCommand; import fr.communaywen.core.trade.TradeListener; -import fr.communaywen.core.utils.*; +import fr.communaywen.core.utils.DiscordWebhook; +import fr.communaywen.core.utils.LinkerAPI; +import fr.communaywen.core.utils.MOTDChanger; +import fr.communaywen.core.utils.PermissionCategory; import fr.communaywen.core.utils.command.InteractiveHelpMenu; import lombok.Getter; import lombok.SneakyThrows; @@ -115,8 +112,9 @@ import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; -import java.util.*; +import java.util.Locale; public final class AywenCraftPlugin extends JavaPlugin { public static ArrayList frozenPlayers = new ArrayList<>(); @@ -402,7 +400,7 @@ public void run() { new QuestsListener(this), new ParticleListener(this), new HeadListener(this), - new JumpListener(this, jumpManager), + //new JumpListener(this, jumpManager), new LeaderboardListener(this, jumpManager), new RocketListener(), new MoonListener(), @@ -420,7 +418,7 @@ public void run() { new ChatListener(this, discordWebhook), new FreezeListener(this), new WelcomeMessage(managers.getWelcomeMessageConfig()), - new Dream(this), + //new Dream(this), new VpnListener(this), new ThorHammer(this), new FriendsListener(managers.getFriendsManager()), @@ -469,38 +467,38 @@ public void run() { // BETTER SPAWN // - Leaderboard - LeaderboardManager.createLeaderboardBalTop(); - LeaderboardManager.updateLeaderboardBalTop(); - LeaderboardManager.createLeaderboardTeamTop(); - LeaderboardManager.updateLeaderboardTeamTop(); - LeaderboardManager.createLeaderboardPlayTime(); - LeaderboardManager.updateLeaderboardPlayTime(); - jumpManager.createDisplayJumpStart(); - jumpManager.createDisplayJumpEnd(); - jumpManager.createLeaderboardLeaderboardRecord(); - jumpManager.updateLeaderboardLeaderboardRecord(); - jumpManager.createDisplayJumpEnd(); - LeaderboardManager.createLeaderboardContribution(); - try { - LeaderboardManager.updateLeaderboardContribution(); - } catch (IOException e) { - throw new RuntimeException(e); - } +// LeaderboardManager.createLeaderboardBalTop(); +// LeaderboardManager.updateLeaderboardBalTop(); +// LeaderboardManager.createLeaderboardTeamTop(); +// LeaderboardManager.updateLeaderboardTeamTop(); +// LeaderboardManager.createLeaderboardPlayTime(); +// LeaderboardManager.updateLeaderboardPlayTime(); +// jumpManager.createDisplayJumpStart(); +// jumpManager.createDisplayJumpEnd(); +// jumpManager.createLeaderboardLeaderboardRecord(); +// jumpManager.updateLeaderboardLeaderboardRecord(); +// jumpManager.createDisplayJumpEnd(); +// LeaderboardManager.createLeaderboardContribution(); +// try { +// LeaderboardManager.updateLeaderboardContribution(); +// } catch (IOException e) { +// throw new RuntimeException(e); +// } } @SneakyThrows @Override public void onDisable() { - // Remove Leaderboard - LeaderboardManager.removeLeaderboardBalTop(); - LeaderboardManager.removeLeaderboardTeamTop(); - jumpManager.removeLeaderboardLeaderboardRecord(); - LeaderboardManager.removeLeaderboardContribution(); - LeaderboardManager.removeLeaderboardPlayTime(); - - jumpManager.removeDisplayJumpStart(); - jumpManager.removeDisplayJumpEnd(); +// // Remove Leaderboard +// LeaderboardManager.removeLeaderboardBalTop(); +// LeaderboardManager.removeLeaderboardTeamTop(); +// jumpManager.removeLeaderboardLeaderboardRecord(); +// LeaderboardManager.removeLeaderboardContribution(); +// LeaderboardManager.removeLeaderboardPlayTime(); +// +// jumpManager.removeDisplayJumpStart(); +// jumpManager.removeDisplayJumpEnd(); for (Player player : Bukkit.getOnlinePlayers()) { PlayerQuests pq = QuestsManager.getPlayerQuests(player.getUniqueId()); // Load quest progress diff --git a/src/main/java/fr/communaywen/core/Managers.java b/src/main/java/fr/communaywen/core/Managers.java index a93d6f9a..d6648a30 100644 --- a/src/main/java/fr/communaywen/core/Managers.java +++ b/src/main/java/fr/communaywen/core/Managers.java @@ -7,22 +7,21 @@ import fr.communaywen.core.corpse.CorpseManager; import fr.communaywen.core.credit.Credit; import fr.communaywen.core.credit.FeatureManager; -import fr.communaywen.core.dreamdim.DimensionManager; import fr.communaywen.core.customitems.managers.CustomItemsManager; +import fr.communaywen.core.dreamdim.DimensionManager; import fr.communaywen.core.economy.EconomyManager; import fr.communaywen.core.friends.FriendsManager; -import fr.communaywen.core.guideline.advancements.dream.DreamTabManager; -import fr.communaywen.core.homes.world.DisabledWorldHome; import fr.communaywen.core.guideline.GuidelineManager; import fr.communaywen.core.homes.HomeUpgradeManager; import fr.communaywen.core.homes.HomesManagers; +import fr.communaywen.core.homes.world.DisabledWorldHome; import fr.communaywen.core.levels.LevelsDataManager; import fr.communaywen.core.levels.LevelsManager; +import fr.communaywen.core.luckyblocks.managers.LBPlayerManager; +import fr.communaywen.core.luckyblocks.managers.LuckyBlockManager; import fr.communaywen.core.managers.LeaderboardManager; import fr.communaywen.core.personalhome.Home; import fr.communaywen.core.personalhome.HomeManager; -import fr.communaywen.core.luckyblocks.managers.LBPlayerManager; -import fr.communaywen.core.luckyblocks.managers.LuckyBlockManager; import fr.communaywen.core.scoreboard.ScoreboardManager; import fr.communaywen.core.settings.SettingsManager; import fr.communaywen.core.space.moon.MoonDimensionManager; @@ -46,139 +45,137 @@ @Credit("Xernas") @Getter public class Managers { - - private AywenCraftPlugin plugin; - private JumpManager jumpManager; - private HeadManager headManager; - private ContestManager contestManager; - private ContestCache contestCache; - private LeaderboardManager leaderboardManager; - private DimensionManager dreamdimManager; - private MoonDimensionManager moonDimManager; - private HomeManager homeManager; - private TeamManager teamManager; - private GuidelineManager guidelineManager; - private FeatureManager featureManager; - private FriendsManager friendsManager; - private CorpseManager corpseManager; - private EconomyManager economyManager; - private ScoreboardManager scoreboardManager; - private DatabaseManager databaseManager; - private QuizManager quizManager; - private FallingBlocksExplosionManager fbeManager; - private LevelsManager levelsManager; - private TransactionsManager transactionsManager; - private CustomItemsManager customItemsManager; - private ReportManager reportManager; - private PlayerChatChannel chatChannel; - private LuckyBlockManager luckyBlockManager; - private LBPlayerManager lbPlayerManager; - private HomesManagers homesManagers; - private HomeUpgradeManager homeUpgradeManager; - private SettingsManager settingsManager; - private DisabledWorldHome disabledWorldHome; - - private FileConfiguration bookConfig; - private FileConfiguration wikiConfig; - private FileConfiguration welcomeMessageConfig; - private FileConfiguration levelsConfig; - private FileConfiguration quizzesConfig; - private FileConfiguration customItemsConfig; - - public void initConfig(AywenCraftPlugin plugin) { - plugin.saveDefaultConfig(); - bookConfig = ConfigUtils.loadConfig(plugin, "rules.yml"); - wikiConfig = ConfigUtils.loadConfig(plugin, "wiki.yml"); - welcomeMessageConfig = ConfigUtils.loadConfig(plugin, "welcomeMessageConfig.yml"); - levelsConfig = ConfigUtils.loadConfig(plugin, "levels.yml"); - quizzesConfig = ConfigUtils.loadConfig(plugin, "quizzes.yml"); - customItemsConfig = ConfigUtils.loadConfig(plugin, "customitems.yml"); - } - - public void init(AywenCraftPlugin plugin) { - this.plugin = plugin; - - // --------- MANAGERS --------- // - - featureManager = new FeatureManager(); - - // Database - databaseManager = new DatabaseManager(plugin, true); - try { - databaseManager.init(); // Créer les tables nécessaires - } catch (SQLException e) { - throw new RuntimeException(e); - } finally { - databaseManager.register( - // Utilisation : NomDeLaClasse.class, - // Dans la classe, ajouter : extends DatabaseConnector, et vous pourrez accéder à la base de données avec l'attribut "connection" - Blacklist.class, - RewardCommand.class, - TeamManager.class, - HomeManager.class, - Home.class, - Team.class, - TransactionsManager.class, - RandomEventsData.class - ); - } - // Database - - // leaderboardManager = new LeaderboardManager(plugin); // desactivé de base - jumpManager = new JumpManager(plugin); - headManager = new HeadManager(plugin); - leaderboardManager = new LeaderboardManager(plugin); - dreamdimManager = new DimensionManager(plugin); - moonDimManager = new MoonDimensionManager(plugin); - guidelineManager = new GuidelineManager(plugin); - contestManager = new ContestManager(plugin); - contestCache = new ContestCache(plugin, contestManager); - this.teamManager = new TeamManager(plugin); - scoreboardManager = new ScoreboardManager(plugin, contestManager); - dreamdimManager = new DimensionManager(plugin); - homeManager = new HomeManager(plugin); - quizManager = new QuizManager(plugin, quizzesConfig, contestManager); - economyManager = new EconomyManager(plugin.getDataFolder()); - friendsManager = new FriendsManager(databaseManager, plugin); - corpseManager = new CorpseManager(); - fbeManager = new FallingBlocksExplosionManager(); - levelsManager = new LevelsManager(); - transactionsManager = new TransactionsManager(); - customItemsManager = new CustomItemsManager(plugin, customItemsConfig); - chatChannel = new PlayerChatChannel(); - reportManager = new ReportManager(); - reportManager.loadReports(); - luckyBlockManager = new LuckyBlockManager(contestManager); - lbPlayerManager = new LBPlayerManager(); - homesManagers = new HomesManagers(); - homeUpgradeManager = new HomeUpgradeManager(homesManagers, plugin); - settingsManager = new SettingsManager(plugin); - disabledWorldHome = new DisabledWorldHome(plugin); - - LevelsDataManager.setLevelsFile(levelsConfig, new File(plugin.getDataFolder(), "levels.yml")); - LevelsDataManager.setLevelsFile(levelsConfig, new File(plugin.getDataFolder(), "levels.yml")); - - dreamdimManager.init(); - homeManager.init(); - moonDimManager.init(); - homesManagers.loadHomes(); - disabledWorldHome.loadConfig(); - settingsManager.init(); - } - - public void cleanup() { - /* Besoin de la db */ - reportManager.saveReports(); - DreamTabManager.close(); - - /* Plus besoin de la db */ - databaseManager.close(); - - dreamdimManager.close(); - quizManager.close(); - corpseManager.removeAll(); - teamManager.getTeamCache().saveAllTeamsToDatabase(); - disabledWorldHome.saveConfig(); - settingsManager.saveSettings(); - } + + private AywenCraftPlugin plugin; + private JumpManager jumpManager; + private HeadManager headManager; + private ContestManager contestManager; + private ContestCache contestCache; + private LeaderboardManager leaderboardManager; + private DimensionManager dreamdimManager; + private MoonDimensionManager moonDimManager; + private HomeManager homeManager; + private TeamManager teamManager; + private GuidelineManager guidelineManager; + private FeatureManager featureManager; + private FriendsManager friendsManager; + private CorpseManager corpseManager; + private EconomyManager economyManager; + private ScoreboardManager scoreboardManager; + private DatabaseManager databaseManager; + private QuizManager quizManager; + private FallingBlocksExplosionManager fbeManager; + private LevelsManager levelsManager; + private TransactionsManager transactionsManager; + private CustomItemsManager customItemsManager; + private ReportManager reportManager; + private PlayerChatChannel chatChannel; + private LuckyBlockManager luckyBlockManager; + private LBPlayerManager lbPlayerManager; + private HomesManagers homesManagers; + private HomeUpgradeManager homeUpgradeManager; + private SettingsManager settingsManager; + private DisabledWorldHome disabledWorldHome; + + private FileConfiguration bookConfig; + private FileConfiguration wikiConfig; + private FileConfiguration welcomeMessageConfig; + private FileConfiguration levelsConfig; + private FileConfiguration quizzesConfig; + private FileConfiguration customItemsConfig; + + public void initConfig(AywenCraftPlugin plugin) { + plugin.saveDefaultConfig(); + bookConfig = ConfigUtils.loadConfig(plugin, "rules.yml"); + wikiConfig = ConfigUtils.loadConfig(plugin, "wiki.yml"); + welcomeMessageConfig = ConfigUtils.loadConfig(plugin, "welcomeMessageConfig.yml"); + levelsConfig = ConfigUtils.loadConfig(plugin, "levels.yml"); + quizzesConfig = ConfigUtils.loadConfig(plugin, "quizzes.yml"); + customItemsConfig = ConfigUtils.loadConfig(plugin, "customitems.yml"); + } + + public void init(AywenCraftPlugin plugin) { + this.plugin = plugin; + + // --------- MANAGERS --------- // + + featureManager = new FeatureManager(); + + // Database + databaseManager = new DatabaseManager(plugin, true); + try { + databaseManager.init(); // Créer les tables nécessaires + } catch (SQLException e) { + throw new RuntimeException(e); + } finally { + databaseManager.register( + // Utilisation : NomDeLaClasse.class, + // Dans la classe, ajouter : extends DatabaseConnector, et vous pourrez accéder à la base de données avec l'attribut "connection" + Blacklist.class, + RewardCommand.class, + TeamManager.class, + HomeManager.class, + Home.class, + Team.class, + TransactionsManager.class, + RandomEventsData.class + ); + } + // Database + +// jumpManager = new JumpManager(plugin); + headManager = new HeadManager(plugin); +// leader boardManager = new LeaderboardManager(plugin); +// dreamdimManager = new DimensionManager(plugin); + moonDimManager = new MoonDimensionManager(plugin); +// guidelineManager = new GuidelineManager(plugin); + contestManager = new ContestManager(plugin); + contestCache = new ContestCache(plugin, contestManager); + this.teamManager = new TeamManager(plugin); + scoreboardManager = new ScoreboardManager(plugin, contestManager); + homeManager = new HomeManager(plugin); + //quizManager = new QuizManager(plugin, quizzesConfig, contestManager); + economyManager = new EconomyManager(plugin.getDataFolder()); + friendsManager = new FriendsManager(databaseManager, plugin); + corpseManager = new CorpseManager(); + fbeManager = new FallingBlocksExplosionManager(); + levelsManager = new LevelsManager(); + transactionsManager = new TransactionsManager(); + customItemsManager = new CustomItemsManager(plugin, customItemsConfig); + chatChannel = new PlayerChatChannel(); + reportManager = new ReportManager(); + reportManager.loadReports(); + luckyBlockManager = new LuckyBlockManager(contestManager); + lbPlayerManager = new LBPlayerManager(); + homesManagers = new HomesManagers(); + homeUpgradeManager = new HomeUpgradeManager(homesManagers, plugin); + settingsManager = new SettingsManager(plugin); + disabledWorldHome = new DisabledWorldHome(plugin); + + LevelsDataManager.setLevelsFile(levelsConfig, new File(plugin.getDataFolder(), "levels.yml")); + LevelsDataManager.setLevelsFile(levelsConfig, new File(plugin.getDataFolder(), "levels.yml")); + +// dreamdimManager.init(); + homeManager.init(); + moonDimManager.init(); + homesManagers.loadHomes(); + disabledWorldHome.loadConfig(); + settingsManager.init(); + } + + public void cleanup() { + /* Besoin de la db */ +// reportManager.saveReports(); +// DreamTabManager.close(); + + /* Plus besoin de la db */ +// databaseManager.close(); + +// dreamdimManager.close(); + //quizManager.close(); + corpseManager.removeAll(); + teamManager.getTeamCache().saveAllTeamsToDatabase(); + disabledWorldHome.saveConfig(); + settingsManager.saveSettings(); + } } diff --git a/src/main/java/fr/communaywen/core/adminshop/menu/buy/AdminShopBuy.java b/src/main/java/fr/communaywen/core/adminshop/menu/buy/AdminShopBuy.java index 94d059c7..222796e9 100644 --- a/src/main/java/fr/communaywen/core/adminshop/menu/buy/AdminShopBuy.java +++ b/src/main/java/fr/communaywen/core/adminshop/menu/buy/AdminShopBuy.java @@ -5,7 +5,6 @@ import dev.xernas.menulib.utils.InventorySize; import dev.xernas.menulib.utils.ItemBuilder; import fr.communaywen.core.adminshop.shopinterfaces.BaseItems; -import fr.communaywen.core.customitems.utils.CustomItemsUtils; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryClickEvent; diff --git a/src/main/java/fr/communaywen/core/listeners/FreezeListener.java b/src/main/java/fr/communaywen/core/listeners/FreezeListener.java index 493f66bc..da76027d 100644 --- a/src/main/java/fr/communaywen/core/listeners/FreezeListener.java +++ b/src/main/java/fr/communaywen/core/listeners/FreezeListener.java @@ -1,21 +1,17 @@ package fr.communaywen.core.listeners; import fr.communaywen.core.AywenCraftPlugin; -import fr.communaywen.core.utils.FreezeUtils; import org.bukkit.BanList; import org.bukkit.Bukkit; -import org.bukkit.ChatColor; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageEvent; -import org.bukkit.event.player.PlayerCommandSendEvent; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerTeleportEvent; -import java.util.Collection; import java.util.Date; import java.util.UUID; import java.util.concurrent.TimeUnit; @@ -45,7 +41,7 @@ public void onPlayerQuit(PlayerQuitEvent event) { public void onPlayerMove(PlayerMoveEvent e) { Player player = e.getPlayer(); if (AywenCraftPlugin.frozenPlayers.contains(player)) { - e.setTo(e.getFrom()); + e.setCancelled(true); } } diff --git a/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java b/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java index d50a7cff..12fd94e0 100644 --- a/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java +++ b/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java @@ -1,21 +1,17 @@ package fr.communaywen.core.mailboxes.menu.letter; import fr.communaywen.core.AywenCraftPlugin; -import fr.communaywen.core.friends.FriendsManager; import fr.communaywen.core.mailboxes.MailboxManager; import fr.communaywen.core.mailboxes.utils.MailboxInv; import fr.communaywen.core.mailboxes.utils.MailboxMenuManager; import fr.communaywen.core.settings.SettingsCache; -import fr.communaywen.core.teams.TeamManager; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; -import java.sql.SQLException; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import static fr.communaywen.core.mailboxes.utils.MailboxMenuManager.*; import static fr.communaywen.core.mailboxes.utils.MailboxUtils.getHead; @@ -25,18 +21,18 @@ public class SendingLetter extends MailboxInv { private final static String INV_NAME = "\uF990\uE003"; private final OfflinePlayer receiver; private final AywenCraftPlugin plugin; - private final TeamManager teamManager; - private final List playerFriends; +// private final TeamManager teamManager; +// private final List playerFriends; -> Temporaire int mail_accept; - public SendingLetter(Player player, OfflinePlayer receiver, AywenCraftPlugin plugin) throws SQLException { + public SendingLetter(Player player, OfflinePlayer receiver, AywenCraftPlugin plugin) { super(player); this.receiver = receiver; this.plugin = plugin; - this.teamManager = plugin.getManagers().getTeamManager(); - FriendsManager friendsManager = plugin.getManagers().getFriendsManager(); - playerFriends = (List) friendsManager.getFriendsAsync(player.getName()); +// this.teamManager = plugin.getManagers().getTeamManager(); +// FriendsManager friendsManager = plugin.getManagers().getFriendsManager(); +// playerFriends = (List) friendsManager.getFriendsAsync(player.getName()); this.mail_accept = SettingsCache.settingsMap.get(receiver.getUniqueId()).mail_accept(); inventory = Bukkit.createInventory(this, 54, MailboxMenuManager.getInvTitle(INV_NAME)); inventory.setItem(49, getHead(receiver)); @@ -74,28 +70,28 @@ public void sendLetter() { case 0: sendFailureMessage(player, "Ce joueur n'accepte pas les lettres"); break; - - case 1: - if (! playerFriends.contains(receiver.getName())) { - sendFailureMessage(player, "Ce joueur n'accepte pas les lettres"); - } else { - if (! MailboxManager.sendItems(player, receiver, items)) { - MailboxManager.givePlayerItems(player, items); - } - } - break; - - case 2: - String playerTeamName = teamManager.getTeamByPlayer(player.getUniqueId()).getName(); - String receiverTeamName = teamManager.getTeamByPlayer(receiver.getUniqueId()).getName(); - if (! playerTeamName.equals(receiverTeamName)) { - sendFailureMessage(player, "Ce joueur n'accepte pas les lettres"); - } else { - if (! MailboxManager.sendItems(player, receiver, items)) { - MailboxManager.givePlayerItems(player, items); - } - } - break; + +// case 1: +// if (! playerFriends.contains(receiver.getName())) { +// sendFailureMessage(player, "Ce joueur n'accepte pas les lettres"); +// } else { +// if (! MailboxManager.sendItems(player, receiver, items)) { +// MailboxManager.givePlayerItems(player, items); +// } +// } +// break; + +// case 2: +// String playerTeamName = teamManager.getTeamByPlayer(player.getUniqueId()).getName(); +// String receiverTeamName = teamManager.getTeamByPlayer(receiver.getUniqueId()).getName(); +// if (! playerTeamName.equals(receiverTeamName)) { +// sendFailureMessage(player, "Ce joueur n'accepte pas les lettres"); +// } else { +// if (! MailboxManager.sendItems(player, receiver, items)) { +// MailboxManager.givePlayerItems(player, items); +// } +// } +// break; default: if (! MailboxManager.sendItems(player, receiver, items)) MailboxManager.givePlayerItems(player, items); diff --git a/src/main/java/fr/communaywen/core/quests/QuestsListener.java b/src/main/java/fr/communaywen/core/quests/QuestsListener.java index 582cbfc2..fca41bfb 100644 --- a/src/main/java/fr/communaywen/core/quests/QuestsListener.java +++ b/src/main/java/fr/communaywen/core/quests/QuestsListener.java @@ -130,7 +130,7 @@ public void onPlayerMove(PlayerMoveEvent event) { int blockZ = to.getBlockZ(); - if (blockX != from.getBlockX() || blockZ != from.getBlockZ()) + if ((blockX != from.getBlockX() || blockZ != from.getBlockZ()) && !AywenCraftPlugin.frozenPlayers.contains(player)) QuestsManager.manageQuestsPlayer(player, QUESTS.WALK_BLOCKS, 1, "Block(s) marché(s)"); // if (blockX == NINJA_JUMP_END.getBlockX() && blockY == NINJA_JUMP_END.getBlockY() && blockZ == NINJA_JUMP_END.getBlockZ()) diff --git a/src/main/java/fr/communaywen/core/settings/SettingsManager.java b/src/main/java/fr/communaywen/core/settings/SettingsManager.java index 61ab682d..b9435a7c 100644 --- a/src/main/java/fr/communaywen/core/settings/SettingsManager.java +++ b/src/main/java/fr/communaywen/core/settings/SettingsManager.java @@ -1,12 +1,7 @@ package fr.communaywen.core.settings; import fr.communaywen.core.AywenCraftPlugin; -import fr.communaywen.core.utils.constant.MessageManager; -import fr.communaywen.core.utils.constant.MessageType; -import fr.communaywen.core.utils.constant.Prefix; import fr.communaywen.core.utils.database.DatabaseConnector; -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; import java.sql.PreparedStatement; import java.sql.ResultSet; @@ -50,28 +45,6 @@ public void saveSettings() { } } - public PlayerSettings findPlayerSettingsByUUID(Player player) { - try { - String sql = "SELECT * FROM settings WHERE player = ?"; - PreparedStatement statement = connection.prepareStatement(sql); - statement.setString(1, player.getUniqueId().toString()); - ResultSet results = statement.executeQuery(); - if (results.next()) { - int mail_accept = results.getInt("mail_accept"); - int trade_accept = results.getInt("trade_accept"); - int tpa_accept = results.getInt("tpa_accept"); - PlayerSettings playerSettings = new PlayerSettings(player.getUniqueId().toString(), mail_accept, trade_accept, tpa_accept); - statement.close(); - return playerSettings; - } - statement.close(); - } catch (SQLException e) { - e.printStackTrace(); - MessageManager.sendMessageType(player, "Impossible de charger les settings", Prefix.SETTINGS, MessageType.ERROR, false); - } - return null; - } - public void createPlayerSettings(PlayerSettings settings) { try { String sql = "INSERT INTO settings (player, mail_accept, trade_accept, tpa_accept) VALUES (?, ?, ?, ?)"; diff --git a/src/main/java/fr/communaywen/core/settings/SettingsMenu.java b/src/main/java/fr/communaywen/core/settings/SettingsMenu.java index 89f6ef87..296d79ba 100644 --- a/src/main/java/fr/communaywen/core/settings/SettingsMenu.java +++ b/src/main/java/fr/communaywen/core/settings/SettingsMenu.java @@ -1,5 +1,6 @@ package fr.communaywen.core.settings; +import dev.lone.itemsadder.api.CustomStack; import dev.xernas.menulib.Menu; import dev.xernas.menulib.utils.InventorySize; import dev.xernas.menulib.utils.ItemBuilder; @@ -12,7 +13,6 @@ import lombok.Setter; import me.clip.placeholderapi.PlaceholderAPI; import org.bukkit.ChatColor; -import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.ItemStack; @@ -61,18 +61,15 @@ public void onInventoryClick(InventoryClickEvent inventoryClickEvent) { public @NotNull Map getContent() { Map map = new HashMap<>(); - map.put(22, new ItemBuilder(this, Material.PAPER, itemMeta -> { + map.put(22, new ItemBuilder(this, CustomStack.getInstance("settings:mailbox_settings_btn").getItemStack(), itemMeta -> { itemMeta.setDisplayName(ChatColor.GOLD + "Mailbox"); - itemMeta.setCustomModelData(8000); itemMeta.setLore(List.of(SettingsUtils.getMailStatus(this.mail_accept))); }).setNextMenu(new MailboxManagerMenu(owner, this))); - map.put(45, new ItemBuilder(this, Material.BARRIER, itemMeta -> { + map.put(45, new ItemBuilder(this, CustomStack.getInstance("settings:close_btn").getItemStack(), itemMeta -> { itemMeta.setDisplayName(ChatColor.DARK_RED + "Fermer"); - itemMeta.setCustomModelData(8100); }).setCloseButton()); - map.put(53, new ItemBuilder(this, Material.PAPER, itemMeta -> { + map.put(53, new ItemBuilder(this, CustomStack.getInstance("settings:save_btn").getItemStack(), itemMeta -> { itemMeta.setDisplayName(ChatColor.GREEN + "Sauvegarder"); - itemMeta.setCustomModelData(8001); }).setOnClick(inventoryClickEvent -> { SettingsCache.settingsMap.replace(owner.getUniqueId().toString(), new PlayerSettings(owner.getUniqueId().toString(), mail_accept, trade_accept, tpa_accept)); MessageManager.sendMessageType(owner, "Settings enregistrés", Prefix.SETTINGS, MessageType.INFO, false); diff --git a/src/main/java/fr/communaywen/core/staff/players/PlayerDetailsMenu.java b/src/main/java/fr/communaywen/core/staff/players/PlayerDetailsMenu.java index 47ffec92..ec734473 100644 --- a/src/main/java/fr/communaywen/core/staff/players/PlayerDetailsMenu.java +++ b/src/main/java/fr/communaywen/core/staff/players/PlayerDetailsMenu.java @@ -1,5 +1,6 @@ package fr.communaywen.core.staff.players; +import dev.lone.itemsadder.api.CustomStack; import dev.xernas.menulib.Menu; import dev.xernas.menulib.utils.InventorySize; import dev.xernas.menulib.utils.ItemBuilder; @@ -21,109 +22,112 @@ import java.util.Map; public class PlayerDetailsMenu extends Menu { - private final Player target; - private final AywenCraftPlugin instance = AywenCraftPlugin.getInstance(); - private final TeamManager teamManager = new TeamManager(instance); - - public PlayerDetailsMenu(Player owner, Player target) { - super(owner); - this.target = target; - } - - @Override - public @NotNull String getName() { - return ChatColor.BLUE + "Détails"; - } - - @Override - public @NotNull InventorySize getInventorySize() { - return InventorySize.SMALLEST; - } - - @Override - public void onInventoryClick(InventoryClickEvent inventoryClickEvent) { - } - - @Override - public @NotNull Map getContent() { - Map map = new HashMap<>(); - map.put(0, new ItemBuilder(this, Material.PAPER, itemMeta -> { - itemMeta.setDisplayName(ChatColor.DARK_GREEN + "Retour"); - itemMeta.setCustomModelData(10005); - }).setBackButton()); - - map.put(1, new ItemBuilder(this, Material.COMPASS, itemMeta -> { - itemMeta.setDisplayName(ChatColor.DARK_GREEN + "Position/Cliquer pour se téléporter"); - itemMeta.setLore(List.of(ChatColor.BLUE + String.valueOf(target.getLocation().getBlockX()) + ", " + target.getLocation().getBlockY() + ", " + target.getLocation().getBlockZ())); - }).setOnClick(inventoryClickEvent -> { - if (!checkAuthorized()) return; - getOwner().teleport(target.getLocation()); - getOwner().sendMessage(ChatColor.DARK_GREEN + "Vous avez été téléporté au joueur " + ChatColor.BLUE + target.getDisplayName() + ChatColor.DARK_GREEN + " !"); - getOwner().closeInventory(); - })); - - map.put(2, new ItemBuilder(this, Material.APPLE, itemMeta -> { - itemMeta.setDisplayName(ChatColor.DARK_GREEN + "Vie"); - itemMeta.setLore(List.of(ChatColor.BLUE + String.valueOf(target.getHealth()))); - })); - - map.put(3, new ItemBuilder(this, Material.COOKED_BEEF, itemMeta -> { - itemMeta.setDisplayName(ChatColor.DARK_GREEN + "Faim"); - itemMeta.setLore(List.of(ChatColor.BLUE + String.valueOf(target.getFoodLevel()))); - })); - - map.put(4, new ItemBuilder(this, ItemUtils.getPlayerSkull(target.getUniqueId()), itemMeta -> { - itemMeta.setDisplayName(ChatColor.DARK_GREEN + target.getDisplayName()); - itemMeta.setLore(List.of(ChatColor.BLUE + "Team : " + teamManager.getTeamByPlayer(target.getUniqueId()).getName())); - })); - - map.put(5, new ItemBuilder(this, Material.EXPERIENCE_BOTTLE, itemMeta -> { - itemMeta.setDisplayName(ChatColor.DARK_GREEN + "Expérience"); - itemMeta.setLore(List.of(ChatColor.BLUE + "Niveau " + target.getLevel(), "Xp : " + target.getExp())); - })); - - map.put(6, new ItemBuilder(this, Material.ENDER_EYE, itemMeta -> { - itemMeta.setDisplayName(ChatColor.DARK_GREEN + "Voir l'inventaire"); - }).setOnClick(inventoryClickEvent -> { - if (!checkAuthorized() || !checkOnline()) return; - getOwner().openInventory(target.getInventory()); - })); - - map.put(7, new ItemBuilder(this, Material.PACKED_ICE, itemMeta -> { - itemMeta.setDisplayName(ChatColor.DARK_GREEN + "Geler le joueur"); - itemMeta.setLore(List.of(ChatColor.BLUE + "État : " + (AywenCraftPlugin.frozenPlayers.contains(target) ? "§4Freeze" : "§2Unfreeze"))); - }).setOnClick(inventoryClickEvent -> { - if (!checkAuthorized() || !checkOnline()) return; - FreezeUtils.switch_freeze(getOwner(), target); - getOwner().closeInventory(); - })); - - map.put(8, new ItemBuilder(this, Material.WOODEN_AXE, itemMeta -> { - itemMeta.setDisplayName(ChatColor.DARK_GREEN + "Bannir le joueur"); - }).setOnClick(inventoryClickEvent -> { - if (!checkAuthorized()) return; - String name = target.getName(); - Bukkit.getServer().getBanList(BanList.Type.NAME).addBan(name, "Aucune raison spécifiée", null, getOwner().getName()); - getOwner().sendMessage(ChatColor.BLUE + name + ChatColor.DARK_RED + " a bien été banni !"); - target.kickPlayer("Vous avez été banni pour aucune raison spécifiée"); - getOwner().closeInventory(); - })); - return map; - } - - public boolean checkOnline() { - if (target.isOnline()) return true; - - getOwner().sendMessage(ChatColor.RED + target.getName() + " n'est plus connecté"); - getOwner().closeInventory(); - return false; - } - - public boolean checkAuthorized() { - if (getOwner().hasPermission("openmc.staff.players")) return true; - - getOwner().sendMessage(ChatColor.RED + "Vous n'avez pas la permission de faire cela"); - getOwner().closeInventory(); - return false; - } + private final Player target; + private final AywenCraftPlugin instance = AywenCraftPlugin.getInstance(); + private final TeamManager teamManager = new TeamManager(instance); + + public PlayerDetailsMenu(Player owner, Player target) { + super(owner); + this.target = target; + } + + @Override + public @NotNull String getName() { + return ChatColor.BLUE + "Détails"; + } + + @Override + public @NotNull InventorySize getInventorySize() { + return InventorySize.SMALLEST; + } + + @Override + public void onInventoryClick(InventoryClickEvent inventoryClickEvent) { + } + + @Override + public @NotNull Map getContent() { + Map map = new HashMap<>(); + map.put(0, new ItemBuilder(this, CustomStack.getInstance("_iainternal:icon_back_orange") + .getItemStack(), itemMeta -> itemMeta.setDisplayName(ChatColor.DARK_GREEN + "Retour")).setBackButton()); + + map.put(1, new ItemBuilder(this, Material.COMPASS, itemMeta -> { + itemMeta.setDisplayName(ChatColor.DARK_GREEN + "Position/Cliquer pour se téléporter"); + itemMeta.setLore(List.of(ChatColor.BLUE + String.valueOf( + target.getLocation().getBlockX()) + + ", " + target.getLocation().getBlockY() + + ", " + target.getLocation().getBlockZ()) + ); + }).setOnClick(inventoryClickEvent -> { + if (! checkAuthorized()) return; + getOwner().teleport(target.getLocation()); + getOwner().sendMessage(ChatColor.DARK_GREEN + "Vous avez été téléporté au joueur " + ChatColor.BLUE + target.getDisplayName() + ChatColor.DARK_GREEN + " !"); + getOwner().closeInventory(); + })); + + map.put(2, new ItemBuilder(this, Material.APPLE, itemMeta -> { + itemMeta.setDisplayName(ChatColor.DARK_GREEN + "Vie"); + itemMeta.setLore(List.of(ChatColor.BLUE + String.valueOf(target.getHealth()))); + })); + + map.put(3, new ItemBuilder(this, Material.COOKED_BEEF, itemMeta -> { + itemMeta.setDisplayName(ChatColor.DARK_GREEN + "Faim"); + itemMeta.setLore(List.of(ChatColor.BLUE + String.valueOf(target.getFoodLevel()))); + })); + + map.put(4, new ItemBuilder(this, ItemUtils.getPlayerSkull(target.getUniqueId()), itemMeta -> { + itemMeta.setDisplayName(ChatColor.DARK_GREEN + target.getDisplayName()); + itemMeta.setLore(List.of(ChatColor.BLUE + "Team : " + (teamManager.getTeamByPlayer(target.getUniqueId()) == null ? + ChatColor.ITALIC + "Wilderness" : teamManager.getTeamByPlayer(target.getUniqueId()).getName()))); + })); + + map.put(5, new ItemBuilder(this, Material.EXPERIENCE_BOTTLE, itemMeta -> { + itemMeta.setDisplayName(ChatColor.DARK_GREEN + "Expérience"); + itemMeta.setLore(List.of(ChatColor.BLUE + "Niveau " + target.getLevel(), "Xp : " + target.getExp())); + })); + + map.put(6, new ItemBuilder(this, Material.ENDER_EYE, itemMeta -> { + itemMeta.setDisplayName(ChatColor.DARK_GREEN + "Voir l'inventaire"); + }).setOnClick(inventoryClickEvent -> { + if (! checkAuthorized() || ! checkOnline()) return; + getOwner().openInventory(target.getInventory()); + })); + + map.put(7, new ItemBuilder(this, Material.PACKED_ICE, itemMeta -> { + itemMeta.setDisplayName(ChatColor.DARK_GREEN + "Geler le joueur"); + itemMeta.setLore(List.of(ChatColor.BLUE + "État : " + (AywenCraftPlugin.frozenPlayers.contains(target) ? "§4Freeze" : "§2Unfreeze"))); + }).setOnClick(inventoryClickEvent -> { + if (! checkAuthorized() || ! checkOnline()) return; + FreezeUtils.switch_freeze(getOwner(), target); + getOwner().closeInventory(); + })); + + map.put(8, new ItemBuilder(this, Material.WOODEN_AXE, itemMeta -> { + itemMeta.setDisplayName(ChatColor.DARK_GREEN + "Bannir le joueur"); + }).setOnClick(inventoryClickEvent -> { + if (! checkAuthorized()) return; + String name = target.getName(); + Bukkit.getServer().getBanList(BanList.Type.NAME).addBan(name, "Aucune raison spécifiée", null, getOwner().getName()); + getOwner().sendMessage(ChatColor.BLUE + name + ChatColor.DARK_RED + " a bien été banni !"); + target.kickPlayer("Vous avez été banni pour aucune raison spécifiée"); + getOwner().closeInventory(); + })); + return map; + } + + public boolean checkOnline() { + if (target.isOnline()) return true; + + getOwner().sendMessage(ChatColor.RED + target.getName() + " n'est plus connecté"); + getOwner().closeInventory(); + return false; + } + + public boolean checkAuthorized() { + if (getOwner().hasPermission("openmc.staff.players")) return true; + + getOwner().sendMessage(ChatColor.RED + "Vous n'avez pas la permission de faire cela"); + getOwner().closeInventory(); + return false; + } } \ No newline at end of file diff --git a/src/main/java/fr/communaywen/core/staff/players/PlayersMenu.java b/src/main/java/fr/communaywen/core/staff/players/PlayersMenu.java index 9ca4b834..9ab2a531 100644 --- a/src/main/java/fr/communaywen/core/staff/players/PlayersMenu.java +++ b/src/main/java/fr/communaywen/core/staff/players/PlayersMenu.java @@ -1,5 +1,6 @@ package fr.communaywen.core.staff.players; +import dev.lone.itemsadder.api.CustomStack; import dev.xernas.menulib.PaginatedMenu; import dev.xernas.menulib.utils.ItemBuilder; import dev.xernas.menulib.utils.ItemUtils; @@ -20,64 +21,60 @@ import java.util.Map; public class PlayersMenu extends PaginatedMenu { - private final AywenCraftPlugin instance = new AywenCraftPlugin(); - private final TeamManager teamManager = new TeamManager(instance); - public PlayersMenu(Player owner) { - super(owner); - } - - @Override - public @Nullable Material getBorderMaterial() { - return Material.LIGHT_GRAY_STAINED_GLASS_PANE; - } - - @Override - public @NotNull List getStaticSlots() { - return StaticSlots.BOTTOM; - } - - @Override - public @NotNull List getItems() { - ArrayList players = new ArrayList<>(this.getOwner().getServer().getOnlinePlayers()); - - List items = new ArrayList<>(); - for (Player player : players) { - items.add(new ItemBuilder(this, ItemUtils.getPlayerSkull(player.getUniqueId()), itemMeta -> { - itemMeta.setDisplayName(ChatColor.WHITE + player.getName()); - itemMeta.setLore(List.of( - ChatColor.GOLD + "Vie : " + ChatColor.RED + player.getHealth(), - ChatColor.GOLD + "XP : " + ChatColor.AQUA + player.getExp(), - ChatColor.BLUE + "Team : " + teamManager.getTeamByPlayer(player.getUniqueId()).getName() - )); - }).setNextMenu(new PlayerDetailsMenu(this.getOwner(), player))); - } - return items; - } - - @Override - public Map getButtons() { - Map map = new HashMap<>(); - map.put(49, new ItemBuilder(this, Material.PAPER, itemMeta -> { - itemMeta.setDisplayName(ChatColor.GRAY + "Fermer"); - itemMeta.setCustomModelData(10003); - }).setCloseButton()); - map.put(48, new ItemBuilder(this, Material.PAPER, itemMeta -> { - itemMeta.setDisplayName(ChatColor.RED + "Page précédente"); - itemMeta.setCustomModelData(10005); - }).setPreviousPageButton()); - map.put(50, new ItemBuilder(this, Material.PAPER, itemMeta -> { - itemMeta.setDisplayName(ChatColor.GREEN + "Page suivante"); - itemMeta.setCustomModelData(10006); - }).setNextPageButton()); - return map; - } - - @Override - public @NotNull String getName() { - return ChatColor.BLUE + "Liste des joueurs"; - } - - @Override - public void onInventoryClick(InventoryClickEvent inventoryClickEvent) { - } + private final AywenCraftPlugin instance = AywenCraftPlugin.getInstance(); + private final TeamManager teamManager = new TeamManager(instance); + + public PlayersMenu(Player owner) { + super(owner); + } + + @Override + public @Nullable Material getBorderMaterial() { + return Material.LIGHT_GRAY_STAINED_GLASS_PANE; + } + + @Override + public @NotNull List getStaticSlots() { + return StaticSlots.BOTTOM; + } + + @Override + public @NotNull List getItems() { + ArrayList players = new ArrayList<>(this.getOwner().getServer().getOnlinePlayers()); + + List items = new ArrayList<>(); + for (Player player : players) { + items.add(new ItemBuilder(this, ItemUtils.getPlayerSkull(player.getUniqueId()), itemMeta -> { + itemMeta.setDisplayName(ChatColor.WHITE + player.getName()); + itemMeta.setLore(List.of( + ChatColor.GOLD + "Vie : " + ChatColor.RED + player.getHealth(), + ChatColor.GOLD + "XP : " + ChatColor.AQUA + player.getExp(), + ChatColor.BLUE + "Team : " + (teamManager.getTeamByPlayer(player.getUniqueId()) == null ? + ChatColor.ITALIC + "Wilderness" : teamManager.getTeamByPlayer(player.getUniqueId()).getName()) + )); + }).setNextMenu(new PlayerDetailsMenu(this.getOwner(), player))); + } + return items; + } + + @Override + public Map getButtons() { + Map map = new HashMap<>(); + map.put(49, new ItemBuilder(this, CustomStack.getInstance("_iainternal:icon_cancel") + .getItemStack(), itemMeta -> itemMeta.setDisplayName(ChatColor.GRAY + "Fermer")).setCloseButton()); + map.put(48, new ItemBuilder(this, CustomStack.getInstance("_iainternal:icon_back_orange") + .getItemStack(), itemMeta -> itemMeta.setDisplayName(ChatColor.RED + "Page précédente")).setPreviousPageButton()); + map.put(50, new ItemBuilder(this, CustomStack.getInstance("_iainternal:icon_next_orange") + .getItemStack(), itemMeta -> itemMeta.setDisplayName(ChatColor.GREEN + "Page suivante")).setNextPageButton()); + return map; + } + + @Override + public @NotNull String getName() { + return ChatColor.BLUE + "Liste des joueurs"; + } + + @Override + public void onInventoryClick(InventoryClickEvent inventoryClickEvent) { + } } diff --git a/src/main/java/fr/communaywen/core/utils/FriendsUtils.java b/src/main/java/fr/communaywen/core/utils/FriendsUtils.java index 840fcf10..3790d0eb 100644 --- a/src/main/java/fr/communaywen/core/utils/FriendsUtils.java +++ b/src/main/java/fr/communaywen/core/utils/FriendsUtils.java @@ -1,8 +1,6 @@ package fr.communaywen.core.utils; -import fr.communaywen.core.AywenCraftPlugin; import fr.communaywen.core.utils.database.DatabaseManager; -import org.bukkit.Bukkit; import java.sql.*; import java.util.ArrayList; @@ -10,113 +8,112 @@ import java.util.concurrent.CompletableFuture; public class FriendsUtils { - - private static final String TABLE_NAME = "friends"; - - public static boolean addInDatabase(DatabaseManager dbManager, String firstUUID, String secondUUID) throws SQLException { - try { - Connection connection = dbManager.getConnection(); - - PreparedStatement statement = connection.prepareStatement("INSERT INTO " + TABLE_NAME + " (firstPlayer_uuid, secondPlayer_uuid, friendDate) VALUES (?, ?, ?)"); - - statement.setString(1, firstUUID); - statement.setString(2, secondUUID); - statement.setTimestamp(3, new Timestamp(System.currentTimeMillis())); - - statement.executeUpdate(); - - return true; - } catch (Exception e) { - System.out.println(e.toString()); - return false; - } - } - - public static boolean removeInDatabase(DatabaseManager dbManager, String firstUUID, String secondUUID) throws SQLException { - try { - Connection connection = dbManager.getConnection(); - - PreparedStatement statement = connection.prepareStatement("DELETE FROM " + TABLE_NAME + " WHERE firstPlayer_uuid = ? AND secondPlayer_uuid = ?"); - - statement.setString(1, firstUUID); - statement.setString(2, secondUUID); - - statement.executeUpdate(); - - return true; - } catch (Exception e) { - System.out.println(e.toString()); - return false; - } - } - - public static boolean areFriends(DatabaseManager dbManager, String firstUUID, String secondUUID) throws SQLException { - try { - Connection connection = dbManager.getConnection(); - - PreparedStatement statement = connection.prepareStatement("SELECT * FROM " + TABLE_NAME + " WHERE (firstPlayer_uuid = ? AND secondPlayer_uuid = ?) OR (firstPlayer_uuid = ? AND secondPlayer_uuid = ?)"); - - statement.setString(1, firstUUID); - statement.setString(2, secondUUID); - statement.setString(3, secondUUID); - statement.setString(4, firstUUID); - - ResultSet resultSet = statement.executeQuery(); - - return resultSet.next(); - } catch (Exception e) { - System.out.println(e.toString()); - return false; - } - } - - public static Timestamp getTimestamp(DatabaseManager dbManager, String firstUUID, String secondUUID) throws SQLException { - try { - Connection connection = dbManager.getConnection(); - - PreparedStatement statement = connection.prepareStatement("SELECT friendDate FROM " + TABLE_NAME + " WHERE (firstPlayer_uuid = ? AND secondPlayer_uuid = ?) OR (firstPlayer_uuid = ? AND secondPlayer_uuid = ?)"); - - statement.setString(1, firstUUID); - statement.setString(2, secondUUID); - statement.setString(3, secondUUID); - statement.setString(4, firstUUID); - - ResultSet resultSet = statement.executeQuery(); - if (resultSet.next()) { - return resultSet.getTimestamp("friendDate"); - } - - } catch (Exception e) { - System.out.println(e.toString()); - } - - return null; - } - - public static CompletableFuture> getAllFriendsAsync(DatabaseManager dbManager, String uuid) { - return CompletableFuture.supplyAsync(() -> { - List friends = new ArrayList<>(); - - try { - Connection connection = dbManager.getConnection(); - - String sql = "SELECT * FROM " + TABLE_NAME + " WHERE firstPlayer_uuid = ? OR secondPlayer_uuid = ?"; - PreparedStatement statement = connection.prepareStatement(sql); - statement.setString(1, uuid); - statement.setString(2, uuid); - - ResultSet resultSet = statement.executeQuery(); - while (resultSet.next()) { - String friendUUID = resultSet.getString("firstPlayer_uuid").equals(uuid) ? resultSet.getString("secondPlayer_uuid") : resultSet.getString("firstPlayer_uuid"); - friends.add(friendUUID); - } - - } catch (SQLException e) { - System.out.println(e.getMessage()); - } - - return friends; - }); - } - + + private static final String TABLE_NAME = "friends"; + + public static boolean addInDatabase(DatabaseManager dbManager, String firstUUID, String secondUUID) { + try { + Connection connection = dbManager.getConnection(); + + PreparedStatement statement = connection.prepareStatement("INSERT INTO " + TABLE_NAME + " (firstPlayer_uuid, secondPlayer_uuid, friendDate) VALUES (?, ?, ?)"); + + statement.setString(1, firstUUID); + statement.setString(2, secondUUID); + statement.setTimestamp(3, new Timestamp(System.currentTimeMillis())); + + statement.executeUpdate(); + + return true; + } catch (Exception e) { + System.out.println(e.toString()); + return false; + } + } + + public static boolean removeInDatabase(DatabaseManager dbManager, String firstUUID, String secondUUID) { + try { + Connection connection = dbManager.getConnection(); + + PreparedStatement statement = connection.prepareStatement("DELETE FROM " + TABLE_NAME + " WHERE firstPlayer_uuid = ? AND secondPlayer_uuid = ?"); + + statement.setString(1, firstUUID); + statement.setString(2, secondUUID); + + statement.executeUpdate(); + + return true; + } catch (Exception e) { + System.out.println(e.toString()); + return false; + } + } + + public static boolean areFriends(DatabaseManager dbManager, String firstUUID, String secondUUID) { + try { + Connection connection = dbManager.getConnection(); + + PreparedStatement statement = connection.prepareStatement("SELECT * FROM " + TABLE_NAME + " WHERE (firstPlayer_uuid = ? AND secondPlayer_uuid = ?) OR (firstPlayer_uuid = ? AND secondPlayer_uuid = ?)"); + + statement.setString(1, firstUUID); + statement.setString(2, secondUUID); + statement.setString(3, secondUUID); + statement.setString(4, firstUUID); + + ResultSet resultSet = statement.executeQuery(); + + return resultSet.next(); + } catch (Exception e) { + System.out.println(e.toString()); + return false; + } + } + + public static Timestamp getTimestamp(DatabaseManager dbManager, String firstUUID, String secondUUID) { + try { + Connection connection = dbManager.getConnection(); + + PreparedStatement statement = connection.prepareStatement("SELECT friendDate FROM " + TABLE_NAME + " WHERE (firstPlayer_uuid = ? AND secondPlayer_uuid = ?) OR (firstPlayer_uuid = ? AND secondPlayer_uuid = ?)"); + + statement.setString(1, firstUUID); + statement.setString(2, secondUUID); + statement.setString(3, secondUUID); + statement.setString(4, firstUUID); + + ResultSet resultSet = statement.executeQuery(); + if (resultSet.next()) { + return resultSet.getTimestamp("friendDate"); + } + + } catch (Exception e) { + System.out.println(e.toString()); + } + + return null; + } + + public static CompletableFuture> getAllFriendsAsync(DatabaseManager dbManager, String uuid) { + return CompletableFuture.supplyAsync(() -> { + List friends = new ArrayList<>(); + + try { + Connection connection = dbManager.getConnection(); + + String sql = "SELECT * FROM " + TABLE_NAME + " WHERE firstPlayer_uuid = ? OR secondPlayer_uuid = ?"; + PreparedStatement statement = connection.prepareStatement(sql); + statement.setString(1, uuid); + statement.setString(2, uuid); + + ResultSet resultSet = statement.executeQuery(); + while (resultSet.next()) { + String friendUUID = resultSet.getString("firstPlayer_uuid").equals(uuid) ? resultSet.getString("secondPlayer_uuid") : resultSet.getString("firstPlayer_uuid"); + friends.add(friendUUID); + } + + } catch (SQLException e) { + System.out.println(e.getMessage()); + } + + return friends; + }); + } } From e0abd205aba5442ff677c97d8090dcc04cb28030 Mon Sep 17 00:00:00 2001 From: gab4000 Date: Mon, 21 Oct 2024 11:21:07 +0200 Subject: [PATCH 13/23] Changement de la version de ProtocolLib (SNAPSHOT -> 5.3.0) --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index c27ad9c6..2b791745 100644 --- a/build.gradle +++ b/build.gradle @@ -34,7 +34,7 @@ dependencies { compileOnly "net.luckperms:api:5.4" // LuckPerms compileOnly "com.github.LoneDev6:API-ItemsAdder:3.6.3-beta-14" // ItemsAdder compileOnly "me.clip:placeholderapi:2.11.6" // PlaceholderAPI - compileOnly "com.github.dmulloy2:ProtocolLib:-SNAPSHOT" // ProtocolLib + compileOnly "com.github.dmulloy2:ProtocolLib:5.3.0" // ProtocolLib compileOnly "commons-codec:commons-codec:1.16.1" compileOnly "com.onarandombox.multiversecore:Multiverse-Core:4.3.+" // Multiverse Core compileOnly "com.sk89q.worldedit:worldedit-bukkit:7+" // WorldEdit From 0b471d2b5f27177ae5dc310e729cb8338ee06d2f Mon Sep 17 00:00:00 2001 From: gab4000 Date: Mon, 21 Oct 2024 15:03:12 +0200 Subject: [PATCH 14/23] =?UTF-8?q?R=C3=A9paration=20mailbox?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../communaywen/core/mailboxes/menu/letter/SendingLetter.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java b/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java index 12fd94e0..b93f011a 100644 --- a/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java +++ b/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java @@ -33,7 +33,7 @@ public SendingLetter(Player player, OfflinePlayer receiver, AywenCraftPlugin plu // this.teamManager = plugin.getManagers().getTeamManager(); // FriendsManager friendsManager = plugin.getManagers().getFriendsManager(); // playerFriends = (List) friendsManager.getFriendsAsync(player.getName()); - this.mail_accept = SettingsCache.settingsMap.get(receiver.getUniqueId()).mail_accept(); + this.mail_accept = SettingsCache.settingsMap.get(receiver.getUniqueId().toString()).mail_accept(); inventory = Bukkit.createInventory(this, 54, MailboxMenuManager.getInvTitle(INV_NAME)); inventory.setItem(49, getHead(receiver)); inventory.setItem(45, homeBtn()); @@ -69,6 +69,7 @@ public void sendLetter() { switch (mail_accept) { case 0: sendFailureMessage(player, "Ce joueur n'accepte pas les lettres"); + for (ItemStack item : items) player.getWorld().dropItemNaturally(player.getLocation(), item); break; // case 1: From 9726a1cb8fc5fbefa3ae2af4a275631c8a0fbe1c Mon Sep 17 00:00:00 2001 From: gab4000 Date: Tue, 22 Oct 2024 19:44:26 +0200 Subject: [PATCH 15/23] =?UTF-8?q?R=C3=A9solution=20erreurs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/communaywen/core/AywenCraftPlugin.java | 56 ++++++++++--------- .../java/fr/communaywen/core/Managers.java | 23 ++++---- 2 files changed, 41 insertions(+), 38 deletions(-) diff --git a/src/main/java/fr/communaywen/core/AywenCraftPlugin.java b/src/main/java/fr/communaywen/core/AywenCraftPlugin.java index 7834254b..47e50c11 100644 --- a/src/main/java/fr/communaywen/core/AywenCraftPlugin.java +++ b/src/main/java/fr/communaywen/core/AywenCraftPlugin.java @@ -67,6 +67,7 @@ import fr.communaywen.core.mailboxes.MailboxCommand; import fr.communaywen.core.mailboxes.MailboxListener; import fr.communaywen.core.managers.ChunkListManager; +import fr.communaywen.core.managers.LeaderboardManager; import fr.communaywen.core.personalhome.HSCommand; import fr.communaywen.core.quests.PlayerQuests; import fr.communaywen.core.quests.QuestsListener; @@ -75,6 +76,7 @@ import fr.communaywen.core.space.moon.MoonListener; import fr.communaywen.core.space.rocket.RocketListener; import fr.communaywen.core.spawn.head.HeadListener; +import fr.communaywen.core.spawn.jump.JumpListener; import fr.communaywen.core.spawn.jump.JumpManager; import fr.communaywen.core.tab.TabList; import fr.communaywen.core.tpa.*; @@ -400,7 +402,7 @@ public void run() { new QuestsListener(this), new ParticleListener(this), new HeadListener(this), - //new JumpListener(this, jumpManager), + new JumpListener(this, jumpManager), new LeaderboardListener(this, jumpManager), new RocketListener(), new MoonListener(), @@ -418,7 +420,7 @@ public void run() { new ChatListener(this, discordWebhook), new FreezeListener(this), new WelcomeMessage(managers.getWelcomeMessageConfig()), - //new Dream(this), + new Dream(this), new VpnListener(this), new ThorHammer(this), new FriendsListener(managers.getFriendsManager()), @@ -467,23 +469,23 @@ public void run() { // BETTER SPAWN // - Leaderboard -// LeaderboardManager.createLeaderboardBalTop(); -// LeaderboardManager.updateLeaderboardBalTop(); -// LeaderboardManager.createLeaderboardTeamTop(); -// LeaderboardManager.updateLeaderboardTeamTop(); -// LeaderboardManager.createLeaderboardPlayTime(); -// LeaderboardManager.updateLeaderboardPlayTime(); -// jumpManager.createDisplayJumpStart(); -// jumpManager.createDisplayJumpEnd(); -// jumpManager.createLeaderboardLeaderboardRecord(); -// jumpManager.updateLeaderboardLeaderboardRecord(); -// jumpManager.createDisplayJumpEnd(); -// LeaderboardManager.createLeaderboardContribution(); -// try { -// LeaderboardManager.updateLeaderboardContribution(); -// } catch (IOException e) { -// throw new RuntimeException(e); -// } + LeaderboardManager.createLeaderboardBalTop(); + LeaderboardManager.updateLeaderboardBalTop(); + LeaderboardManager.createLeaderboardTeamTop(); + LeaderboardManager.updateLeaderboardTeamTop(); + LeaderboardManager.createLeaderboardPlayTime(); + LeaderboardManager.updateLeaderboardPlayTime(); + jumpManager.createDisplayJumpStart(); + jumpManager.createDisplayJumpEnd(); + jumpManager.createLeaderboardLeaderboardRecord(); + jumpManager.updateLeaderboardLeaderboardRecord(); + jumpManager.createDisplayJumpEnd(); + LeaderboardManager.createLeaderboardContribution(); + try { + LeaderboardManager.updateLeaderboardContribution(); + } catch (IOException e) { + throw new RuntimeException(e); + } } @@ -491,14 +493,14 @@ public void run() { @Override public void onDisable() { // // Remove Leaderboard -// LeaderboardManager.removeLeaderboardBalTop(); -// LeaderboardManager.removeLeaderboardTeamTop(); -// jumpManager.removeLeaderboardLeaderboardRecord(); -// LeaderboardManager.removeLeaderboardContribution(); -// LeaderboardManager.removeLeaderboardPlayTime(); -// -// jumpManager.removeDisplayJumpStart(); -// jumpManager.removeDisplayJumpEnd(); + LeaderboardManager.removeLeaderboardBalTop(); + LeaderboardManager.removeLeaderboardTeamTop(); + jumpManager.removeLeaderboardLeaderboardRecord(); + LeaderboardManager.removeLeaderboardContribution(); + LeaderboardManager.removeLeaderboardPlayTime(); + + jumpManager.removeDisplayJumpStart(); + jumpManager.removeDisplayJumpEnd(); for (Player player : Bukkit.getOnlinePlayers()) { PlayerQuests pq = QuestsManager.getPlayerQuests(player.getUniqueId()); // Load quest progress diff --git a/src/main/java/fr/communaywen/core/Managers.java b/src/main/java/fr/communaywen/core/Managers.java index d6648a30..57015576 100644 --- a/src/main/java/fr/communaywen/core/Managers.java +++ b/src/main/java/fr/communaywen/core/Managers.java @@ -12,6 +12,7 @@ import fr.communaywen.core.economy.EconomyManager; import fr.communaywen.core.friends.FriendsManager; import fr.communaywen.core.guideline.GuidelineManager; +import fr.communaywen.core.guideline.advancements.dream.DreamTabManager; import fr.communaywen.core.homes.HomeUpgradeManager; import fr.communaywen.core.homes.HomesManagers; import fr.communaywen.core.homes.world.DisabledWorldHome; @@ -123,18 +124,18 @@ public void init(AywenCraftPlugin plugin) { } // Database -// jumpManager = new JumpManager(plugin); + jumpManager = new JumpManager(plugin); headManager = new HeadManager(plugin); -// leader boardManager = new LeaderboardManager(plugin); -// dreamdimManager = new DimensionManager(plugin); + leaderboardManager = new LeaderboardManager(plugin); + dreamdimManager = new DimensionManager(plugin); moonDimManager = new MoonDimensionManager(plugin); -// guidelineManager = new GuidelineManager(plugin); + guidelineManager = new GuidelineManager(plugin); contestManager = new ContestManager(plugin); contestCache = new ContestCache(plugin, contestManager); this.teamManager = new TeamManager(plugin); scoreboardManager = new ScoreboardManager(plugin, contestManager); homeManager = new HomeManager(plugin); - //quizManager = new QuizManager(plugin, quizzesConfig, contestManager); + quizManager = new QuizManager(plugin, quizzesConfig, contestManager); economyManager = new EconomyManager(plugin.getDataFolder()); friendsManager = new FriendsManager(databaseManager, plugin); corpseManager = new CorpseManager(); @@ -155,7 +156,7 @@ public void init(AywenCraftPlugin plugin) { LevelsDataManager.setLevelsFile(levelsConfig, new File(plugin.getDataFolder(), "levels.yml")); LevelsDataManager.setLevelsFile(levelsConfig, new File(plugin.getDataFolder(), "levels.yml")); -// dreamdimManager.init(); + dreamdimManager.init(); homeManager.init(); moonDimManager.init(); homesManagers.loadHomes(); @@ -165,14 +166,14 @@ public void init(AywenCraftPlugin plugin) { public void cleanup() { /* Besoin de la db */ -// reportManager.saveReports(); -// DreamTabManager.close(); + reportManager.saveReports(); + DreamTabManager.close(); /* Plus besoin de la db */ -// databaseManager.close(); + databaseManager.close(); -// dreamdimManager.close(); - //quizManager.close(); + dreamdimManager.close(); + quizManager.close(); corpseManager.removeAll(); teamManager.getTeamCache().saveAllTeamsToDatabase(); disabledWorldHome.saveConfig(); From e14d149b950220134518a9c8a8c069dd48a6dbcd Mon Sep 17 00:00:00 2001 From: gab4000 Date: Tue, 22 Oct 2024 19:46:28 +0200 Subject: [PATCH 16/23] =?UTF-8?q?R=C3=A9solution=20erreurs=20#2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/fr/communaywen/core/Managers.java | 133 ------------------ 1 file changed, 133 deletions(-) diff --git a/src/main/java/fr/communaywen/core/Managers.java b/src/main/java/fr/communaywen/core/Managers.java index 91f25304..18fd352d 100644 --- a/src/main/java/fr/communaywen/core/Managers.java +++ b/src/main/java/fr/communaywen/core/Managers.java @@ -47,139 +47,6 @@ @Getter public class Managers { - private AywenCraftPlugin plugin; - private JumpManager jumpManager; - private HeadManager headManager; - private ContestManager contestManager; - private ContestCache contestCache; - private LeaderboardManager leaderboardManager; - private DimensionManager dreamdimManager; - private MoonDimensionManager moonDimManager; - private HomeManager homeManager; - private TeamManager teamManager; - private GuidelineManager guidelineManager; - private FeatureManager featureManager; - private FriendsManager friendsManager; - private CorpseManager corpseManager; - private EconomyManager economyManager; - private ScoreboardManager scoreboardManager; - private DatabaseManager databaseManager; - private QuizManager quizManager; - private FallingBlocksExplosionManager fbeManager; - private LevelsManager levelsManager; - private TransactionsManager transactionsManager; - private CustomItemsManager customItemsManager; - private ReportManager reportManager; - private PlayerChatChannel chatChannel; - private LuckyBlockManager luckyBlockManager; - private LBPlayerManager lbPlayerManager; - private HomesManagers homesManagers; - private HomeUpgradeManager homeUpgradeManager; - private SettingsManager settingsManager; - private DisabledWorldHome disabledWorldHome; - - private FileConfiguration bookConfig; - private FileConfiguration wikiConfig; - private FileConfiguration welcomeMessageConfig; - private FileConfiguration levelsConfig; - private FileConfiguration quizzesConfig; - private FileConfiguration customItemsConfig; - - public void initConfig(AywenCraftPlugin plugin) { - plugin.saveDefaultConfig(); - bookConfig = ConfigUtils.loadConfig(plugin, "rules.yml"); - wikiConfig = ConfigUtils.loadConfig(plugin, "wiki.yml"); - welcomeMessageConfig = ConfigUtils.loadConfig(plugin, "welcomeMessageConfig.yml"); - levelsConfig = ConfigUtils.loadConfig(plugin, "levels.yml"); - quizzesConfig = ConfigUtils.loadConfig(plugin, "quizzes.yml"); - customItemsConfig = ConfigUtils.loadConfig(plugin, "customitems.yml"); - } - - public void init(AywenCraftPlugin plugin) { - this.plugin = plugin; - - // --------- MANAGERS --------- // - - featureManager = new FeatureManager(); - - // Database - databaseManager = new DatabaseManager(plugin, true); - try { - databaseManager.init(); // Créer les tables nécessaires - } catch (SQLException e) { - throw new RuntimeException(e); - } finally { - databaseManager.register( - // Utilisation : NomDeLaClasse.class, - // Dans la classe, ajouter : extends DatabaseConnector, et vous pourrez accéder à la base de données avec l'attribut "connection" - Blacklist.class, - RewardCommand.class, - TeamManager.class, - HomeManager.class, - Home.class, - Team.class, - TransactionsManager.class, - RandomEventsData.class - ); - } - // Database - - jumpManager = new JumpManager(plugin); - headManager = new HeadManager(plugin); - leaderboardManager = new LeaderboardManager(plugin); - dreamdimManager = new DimensionManager(plugin); - moonDimManager = new MoonDimensionManager(plugin); - guidelineManager = new GuidelineManager(plugin); - contestManager = new ContestManager(plugin); - contestCache = new ContestCache(plugin, contestManager); - this.teamManager = new TeamManager(plugin); - scoreboardManager = new ScoreboardManager(plugin, contestManager); - homeManager = new HomeManager(plugin); - quizManager = new QuizManager(plugin, quizzesConfig, contestManager); - economyManager = new EconomyManager(plugin.getDataFolder()); - friendsManager = new FriendsManager(databaseManager, plugin); - corpseManager = new CorpseManager(); - fbeManager = new FallingBlocksExplosionManager(); - levelsManager = new LevelsManager(); - transactionsManager = new TransactionsManager(); - customItemsManager = new CustomItemsManager(plugin, customItemsConfig); - chatChannel = new PlayerChatChannel(); - reportManager = new ReportManager(); - reportManager.loadReports(); - luckyBlockManager = new LuckyBlockManager(contestManager); - lbPlayerManager = new LBPlayerManager(); - homesManagers = new HomesManagers(); - homeUpgradeManager = new HomeUpgradeManager(homesManagers, plugin); - settingsManager = new SettingsManager(plugin); - disabledWorldHome = new DisabledWorldHome(plugin); - - LevelsDataManager.setLevelsFile(levelsConfig, new File(plugin.getDataFolder(), "levels.yml")); - LevelsDataManager.setLevelsFile(levelsConfig, new File(plugin.getDataFolder(), "levels.yml")); - - dreamdimManager.init(); - homeManager.init(); - moonDimManager.init(); - homesManagers.loadHomes(); - disabledWorldHome.loadConfig(); - settingsManager.init(); - } - - public void cleanup() { - /* Besoin de la db */ - reportManager.saveReports(); - DreamTabManager.close(); - - /* Plus besoin de la db */ - databaseManager.close(); - - dreamdimManager.close(); - quizManager.close(); - corpseManager.removeAll(); - teamManager.getTeamCache().saveAllTeamsToDatabase(); - disabledWorldHome.saveConfig(); - settingsManager.saveSettings(); - } - private AywenCraftPlugin plugin; private JumpManager jumpManager; private HeadManager headManager; From 4ffa66c4f234057ea9e5484f17bcb5181bb091d3 Mon Sep 17 00:00:00 2001 From: gab4000 Date: Tue, 22 Oct 2024 19:53:37 +0200 Subject: [PATCH 17/23] =?UTF-8?q?R=C3=A9solution=20erreurs=20#3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/communaywen/core/AywenCraftPlugin.java | 256 ++++++++---------- 1 file changed, 112 insertions(+), 144 deletions(-) diff --git a/src/main/java/fr/communaywen/core/AywenCraftPlugin.java b/src/main/java/fr/communaywen/core/AywenCraftPlugin.java index 47e50c11..aaadb6c8 100644 --- a/src/main/java/fr/communaywen/core/AywenCraftPlugin.java +++ b/src/main/java/fr/communaywen/core/AywenCraftPlugin.java @@ -13,80 +13,56 @@ import fr.communaywen.core.claim.GamePlayer; import fr.communaywen.core.claim.RegionManager; import fr.communaywen.core.clockinfos.tasks.CompassClockTask; -import fr.communaywen.core.commands.contest.ContestCommand; -import fr.communaywen.core.commands.corpse.CorpseCommand; -import fr.communaywen.core.commands.credits.CreditCommand; -import fr.communaywen.core.commands.credits.FeatureCommand; -import fr.communaywen.core.commands.economy.AdminShopCommand; -import fr.communaywen.core.commands.economy.BaltopCommand; -import fr.communaywen.core.commands.economy.MoneyCommand; -import fr.communaywen.core.commands.economy.PayCommands; -import fr.communaywen.core.commands.explosion.ExplodeRandomCommand; -import fr.communaywen.core.commands.explosion.FBoomCommand; + +import fr.communaywen.core.commands.contest.*; +import fr.communaywen.core.commands.corpse.*; +import fr.communaywen.core.commands.credits.*; +import fr.communaywen.core.commands.economy.*; +import fr.communaywen.core.commands.explosion.*; import fr.communaywen.core.commands.fun.*; import fr.communaywen.core.commands.homes.*; -import fr.communaywen.core.commands.link.LinkCommand; -import fr.communaywen.core.commands.link.ManualLinkCommand; -import fr.communaywen.core.commands.randomEvents.RandomEventsCommand; -import fr.communaywen.core.commands.socials.DiscordCommand; -import fr.communaywen.core.commands.socials.GithubCommand; -import fr.communaywen.core.commands.spawn.head.HeadCommand; -import fr.communaywen.core.commands.spawn.jump.JumpCommand; -import fr.communaywen.core.commands.spawn.leaderboard.LeaderboardCommand; -import fr.communaywen.core.commands.staff.FreezeCommand; -import fr.communaywen.core.commands.staff.PlayersCommand; -import fr.communaywen.core.commands.staff.ReportCommands; -import fr.communaywen.core.commands.teams.TeamAdminCommand; -import fr.communaywen.core.commands.teams.TeamClaim; -import fr.communaywen.core.commands.teams.TeamCommand; -import fr.communaywen.core.commands.teleport.RTPCommand; -import fr.communaywen.core.commands.teleport.SpawnCommand; +import fr.communaywen.core.commands.link.*; +import fr.communaywen.core.commands.randomEvents.*; +import fr.communaywen.core.commands.socials.*; +import fr.communaywen.core.commands.spawn.head.*; +import fr.communaywen.core.commands.spawn.jump.*; +import fr.communaywen.core.commands.spawn.leaderboard.*; +import fr.communaywen.core.commands.staff.*; +import fr.communaywen.core.commands.teams.*; +import fr.communaywen.core.commands.teleport.*; import fr.communaywen.core.commands.utils.*; -import fr.communaywen.core.contest.listeners.ContestIntractEvents; -import fr.communaywen.core.contest.listeners.ContestListener; -import fr.communaywen.core.contest.listeners.FirerocketSpawnListener; + + +import fr.communaywen.core.contest.listeners.*; +import fr.communaywen.core.customitems.listeners.*; +import fr.communaywen.core.listeners.*; + import fr.communaywen.core.contest.managers.ContestManager; import fr.communaywen.core.customitems.commands.ShowCraftCommand; -import fr.communaywen.core.customitems.listeners.CIBreakBlockListener; -import fr.communaywen.core.customitems.listeners.CIEnchantListener; -import fr.communaywen.core.customitems.listeners.CIPrepareAnvilListener; import fr.communaywen.core.elevator.ElevatorListener; import fr.communaywen.core.fallblood.BandageRecipe; import fr.communaywen.core.friends.commands.FriendsCommand; +import fr.communaywen.core.homes.world.DisabledWorldHome; import fr.communaywen.core.homes.Home; import fr.communaywen.core.homes.HomesManagers; -import fr.communaywen.core.homes.world.DisabledWorldHome; import fr.communaywen.core.levels.LevelsCommand; import fr.communaywen.core.levels.LevelsListeners; -import fr.communaywen.core.listeners.*; import fr.communaywen.core.luckyblocks.commands.LuckyBlockCommand; -import fr.communaywen.core.luckyblocks.listeners.LBBlockBreakListener; -import fr.communaywen.core.luckyblocks.listeners.LBEntityDeathListener; -import fr.communaywen.core.luckyblocks.listeners.LBPlayerInteractListener; -import fr.communaywen.core.luckyblocks.listeners.LBPlayerQuitListener; +import fr.communaywen.core.luckyblocks.listeners.*; import fr.communaywen.core.mailboxes.MailboxCommand; import fr.communaywen.core.mailboxes.MailboxListener; import fr.communaywen.core.managers.ChunkListManager; import fr.communaywen.core.managers.LeaderboardManager; import fr.communaywen.core.personalhome.HSCommand; -import fr.communaywen.core.quests.PlayerQuests; -import fr.communaywen.core.quests.QuestsListener; -import fr.communaywen.core.quests.QuestsManager; -import fr.communaywen.core.settings.SettingsListener; +import fr.communaywen.core.quests.*; import fr.communaywen.core.space.moon.MoonListener; import fr.communaywen.core.space.rocket.RocketListener; import fr.communaywen.core.spawn.head.HeadListener; -import fr.communaywen.core.spawn.jump.JumpListener; -import fr.communaywen.core.spawn.jump.JumpManager; +import fr.communaywen.core.spawn.jump.*; import fr.communaywen.core.tab.TabList; import fr.communaywen.core.tpa.*; -import fr.communaywen.core.trade.TradeAcceptCommand; -import fr.communaywen.core.trade.TradeCommand; -import fr.communaywen.core.trade.TradeListener; -import fr.communaywen.core.utils.DiscordWebhook; -import fr.communaywen.core.utils.LinkerAPI; -import fr.communaywen.core.utils.MOTDChanger; -import fr.communaywen.core.utils.PermissionCategory; +import fr.communaywen.core.trade.*; +import fr.communaywen.core.utils.*; import fr.communaywen.core.utils.command.InteractiveHelpMenu; import lombok.Getter; import lombok.SneakyThrows; @@ -114,12 +90,11 @@ import java.io.File; import java.io.IOException; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Locale; +import java.util.*; public final class AywenCraftPlugin extends JavaPlugin { - public static ArrayList frozenPlayers = new ArrayList<>(); + @Getter public static ArrayList frozenPlayers = new ArrayList<>(); public static ArrayList playerClaimsByPass = new ArrayList<>(); @Getter private static AywenCraftPlugin instance; @@ -139,8 +114,8 @@ public final class AywenCraftPlugin extends JavaPlugin { private BukkitCommandHandler handler; @Getter private TabList tabList; - private HashMap, HashMap>> flags; - + @Getter private HashMap, HashMap>> flags; + /** * Format a permission with the permission prefix. * @@ -150,10 +125,10 @@ public final class AywenCraftPlugin extends JavaPlugin { * @see PermissionCategory #PERMISSION_PREFIX */ public static @NotNull String formatPermission(final @NotNull PermissionCategory category, - final @NotNull String suffix) { + final @NotNull String suffix) { return category.formatPermission(suffix); } - + @Override public void onLoad() { this.registerFlags(new StateFlag("disable-thor-hammer", false)); @@ -161,74 +136,75 @@ public void onLoad() { this.registerFlags(new StateFlag("disable-builder-wand", false)); this.registerFlags(new StateFlag("disable-fly", false)); this.registerFlags(new StateFlag("disable-spawn-grave", false)); + this.registerFlags(new StateFlag("disable-wind-charge", false)); } - + @SneakyThrows @Override public void onEnable() { // Logs super.getLogger().info("Hello le monde, ici le plugin AywenCraft !"); - + // Gardez les au début sinon ça pète tout instance = this; - + RegisteredServiceProvider provider = Bukkit.getServicesManager().getRegistration(LuckPerms.class); if (provider != null) { api = provider.getProvider(); } else { getLogger().severe("LuckPerms not found !"); - getServer().getPluginManager().disablePlugin(this); + Bukkit.getPluginManager().disablePlugin(this); return; } - + MenuLib.init(this); managers.initConfig(this); managers.init(this); jumpManager = managers.getJumpManager(); contestManager = managers.getContestManager(); ClaimConfigDataBase.loadAllClaimsData(); - + eventsManager = new EventsManager(this, loadEventsManager()); // TODO: include to Managers.java - + mvCore = (MultiverseCore) Bukkit.getServer().getPluginManager().getPlugin("Multiverse-Core"); - + LinkerAPI linkerAPI = new LinkerAPI(managers.getDatabaseManager()); - + OnPlayers onPlayers = new OnPlayers(); onPlayers.setLinkerAPI(linkerAPI); onPlayers.setLuckPerms(api); - + MOTDChanger motdChanger = new MOTDChanger(); motdChanger.startMOTDChanger(this); - + this.adventure = BukkitAudiences.create(this); - + this.regions = new ArrayList<>(); - + this.tabList = new TabList(); - + /* ----- */ - + String webhookUrl = getConfig().getString("discord.webhookURL"); String botName = getConfig().getString("discord.webhookName"); String botAvatarUrl = getConfig().getString("discord.webhookIconURL"); DiscordWebhook discordWebhook = new DiscordWebhook(webhookUrl, botName, botAvatarUrl); - + /* COMMANDS */ - + this.handler = BukkitCommandHandler.create(this); this.interactiveHelpMenu = InteractiveHelpMenu.create(); this.handler.accept(interactiveHelpMenu); this.handler.getTranslator().setLocale(Locale.FRENCH); - + this.handler.getAutoCompleter().registerSuggestion("homes", (args, sender, command) -> { Player player = Bukkit.getPlayer(sender.getUniqueId()); List suggestions = new ArrayList<>(); - + if(command.getName().equals("home")) { suggestions.add("upgrade"); } - + assert player != null; if(!command.equals("renamehome")) { if(args.isEmpty()) { @@ -237,16 +213,16 @@ public void onEnable() { .map(OfflinePlayer::getName) .map(name -> name + ":") .toList()); - + } suggestions.addAll(managers.getHomesManagers().getHomeNamesByPlayer(player.getUniqueId())); } else { String arg = args.getFirst(); - + if(arg.contains(":") && player.hasPermission("ayw.home.teleport.others")) { String[] parts = arg.split(":", 2); Player target = Bukkit.getPlayer(parts[0]); - + if(target != null) { String prefix = parts[0] + ":"; suggestions.addAll(managers.getHomesManagers().getHomeNamesByPlayer(target.getUniqueId()) @@ -262,16 +238,16 @@ public void onEnable() { .map(name -> name + ":") .toList()); } - + suggestions.addAll(managers.getHomesManagers().getHomeNamesByPlayer(player.getUniqueId()) .stream() .filter(home -> home.toLowerCase().startsWith(arg.toLowerCase())) .toList()); } - + return suggestions; } - + if(player.hasPermission("ayw.home.teleport.others")) { suggestions.addAll(Bukkit.getOnlinePlayers().stream() .map(OfflinePlayer::getName) @@ -279,47 +255,47 @@ public void onEnable() { .toList()); } } - + suggestions.addAll(HomesManagers.homes.stream() .filter(home -> home.getPlayer().equals(sender.getUniqueId().toString())) .map(Home::getName) .toList()); - + suggestions.add("upgrade"); return suggestions; }); - + this.handler.getAutoCompleter().registerSuggestion("featureName", SuggestionProvider.of(managers.getWikiConfig().getKeys(false))); this.handler.getAutoCompleter().registerSuggestion("lbEventsId", SuggestionProvider.of(managers.getLuckyBlockManager().getLuckyBlocksIds())); this.handler.getAutoCompleter().registerSuggestion("colorContest", SuggestionProvider.of(managers.getContestManager().getColorContestList())); this.handler.getAutoCompleter().registerSuggestion("listLeaderboard", SuggestionProvider.of(managers.getLeaderboardManager().getLbList())); this.handler.getAutoCompleter().registerSuggestion("homeWorldsAdd", (args, sender, command) -> { - + List allWorlds = new ArrayList<>(Bukkit.getWorlds().stream().map(World::getName).toList()); allWorlds.removeAll(managers.getDisabledWorldHome().getDisabledWorlds()); - + return allWorlds; }); this.handler.getAutoCompleter().registerSuggestion("homeWorldsRemove", (args, sender, command) -> { DisabledWorldHome disabledWorldHome = managers.getDisabledWorldHome(); - + return (List) new ArrayList(disabledWorldHome.getDisabledWorlds()); }); - + this.handler.getAutoCompleter().registerParameterSuggestions(OfflinePlayer.class, ((args, sender, command) -> { OfflinePlayer[] offlinePlayers = Bukkit.getServer().getOfflinePlayers(); List playerNames = new ArrayList<>(); - + for (OfflinePlayer player : offlinePlayers) { String playerName = player.getName(); if (playerName != null) { playerNames.add(playerName); } } - + return playerNames; })); - + this.handler.register( new LeaderboardCommand(this, jumpManager), new SettingsCommand(this), @@ -379,9 +355,9 @@ public void onEnable() { new RenameHomeCommands(managers.getHomesManagers()), new HomeDisabledWorldCommand(managers.getDisabledWorldHome()) ); - + /* -------- */ - + new BukkitRunnable() { @Override public void run() { @@ -393,13 +369,11 @@ public void run() { } } }.runTaskTimer(this, 0L, 100L); - + new CompassClockTask().runTaskTimer(this, 0L, 5L); - + /* LISTENERS */ registerEvents( - new SettingsListener(this), - new QuestsListener(this), new ParticleListener(this), new HeadListener(this), new JumpListener(this, jumpManager), @@ -446,27 +420,27 @@ public void run() { new LBPlayerInteractListener(managers.getLuckyBlockManager()), new LBEntityDeathListener(managers.getLuckyBlockManager()) ); - + getServer().getPluginManager().registerEvents(eventsManager, this); // TODO: refactor - + /* --------- */ - + saveDefaultConfig(); - + createSandRecipe(); createFarineRecipe(); createCrazyPotion(); - + for (Player player : Bukkit.getOnlinePlayers()) { new GamePlayer(player.getName()); QuestsManager.loadPlayerData(player); } - + QuestsManager.initializeQuestsTable(); ClaimConfigDataBase.processStoredClaimData(); new BandageRecipe(); - - + + // BETTER SPAWN // - Leaderboard LeaderboardManager.createLeaderboardBalTop(); @@ -486,22 +460,26 @@ public void run() { } catch (IOException e) { throw new RuntimeException(e); } - + } - + @SneakyThrows @Override public void onDisable() { -// // Remove Leaderboard + // VIDER LES DONNEES + this.getManagers().getContestCache().clearContestCache(); + this.getManagers().getContestCache().clearPlayerContestCache(); + + // Remove Leaderboard LeaderboardManager.removeLeaderboardBalTop(); LeaderboardManager.removeLeaderboardTeamTop(); jumpManager.removeLeaderboardLeaderboardRecord(); LeaderboardManager.removeLeaderboardContribution(); LeaderboardManager.removeLeaderboardPlayTime(); - + jumpManager.removeDisplayJumpStart(); jumpManager.removeDisplayJumpEnd(); - + for (Player player : Bukkit.getOnlinePlayers()) { PlayerQuests pq = QuestsManager.getPlayerQuests(player.getUniqueId()); // Load quest progress QuestsManager.savePlayerQuestProgress(player, pq); // Save quest progress @@ -513,16 +491,16 @@ public void onDisable() { } catch (IOException e) { throw new RuntimeException(e); } - + managers.cleanup(); } - + public void registerEvents(Listener... args) { for (Listener listener : args) { getServer().getPluginManager().registerEvents(listener, this); } } - + private void registerFlags(Flag flag) { FlagRegistry registry = WorldGuard.getInstance().getFlagRegistry(); if (this.flags == null) { @@ -550,71 +528,61 @@ private void registerFlags(Flag flag) { } } } - public HashMap, HashMap>> getCustomFlags() { - return flags; - } - - public ArrayList getFrozenPlayers() { - return frozenPlayers; - } - - - // Farine pour fabriquer du pain - + public int getBanDuration() { return getConfig().getInt("deco_freeze_nombre_de_jours_ban", 30); } - + private void createFarineRecipe() { ItemStack farine = new ItemStack(Material.SUGAR); ItemMeta meta = farine.getItemMeta(); assert meta != null; meta.setDisplayName("Farine"); farine.setItemMeta(meta); - + ShapedRecipe recipe = new ShapedRecipe(new NamespacedKey(this, "farine"), farine); recipe.shape(" A ", " B ", " "); recipe.setIngredient('A', Material.GUNPOWDER); recipe.setIngredient('B', Material.WHEAT); - + Bukkit.addRecipe(recipe); } - + private void createCrazyPotion() { ItemStack crazyPotion = new ItemStack(Material.POTION); PotionMeta meta = (PotionMeta) crazyPotion.getItemMeta(); - + meta.setDisplayName("§k NEW §r §4 Mining Potion §r §k NEW"); meta.addCustomEffect(new PotionEffect(PotionEffectType.SPEED, 4800, 9), true); meta.addCustomEffect(new PotionEffect(PotionEffectType.HASTE, 4800, 55), true); - + crazyPotion.setItemMeta(meta); - + NamespacedKey nmKey = new NamespacedKey(this, "crazypotion_craft"); ShapedRecipe recipe = new ShapedRecipe(nmKey, crazyPotion); - + recipe.shape("BBB", "WGW", "IEI"); - + recipe.setIngredient('B', Material.DIAMOND_BLOCK); recipe.setIngredient('G', Material.GLASS_BOTTLE); recipe.setIngredient('W', Material.WATER_BUCKET); recipe.setIngredient('E', Material.ENDER_PEARL); recipe.setIngredient('I', Material.IRON_INGOT); - + getServer().addRecipe(recipe); - + } - + private void createSandRecipe() { ItemStack sand = new ItemStack(Material.SAND, 4); - + ShapedRecipe recipe = new ShapedRecipe(new NamespacedKey(this, "sand_craft"), sand); recipe.shape("A"); recipe.setIngredient('A', Material.SANDSTONE); - + Bukkit.addRecipe(recipe); } - + private Menu hasMenuOpened(Player player) { Inventory inv = player.getOpenInventory().getTopInventory(); if (inv.getHolder() instanceof Menu invMenu) { @@ -622,7 +590,7 @@ private Menu hasMenuOpened(Player player) { } return null; } - + // TODO: include to Managers.java private FileConfiguration loadEventsManager() { File eventsFile = new File(getDataFolder(), "events.yml"); @@ -631,4 +599,4 @@ private FileConfiguration loadEventsManager() { } return YamlConfiguration.loadConfiguration(eventsFile); } -} +} \ No newline at end of file From 75c20c987f80d508280ca10a0b5357c5c52ed6da Mon Sep 17 00:00:00 2001 From: gab4000 Date: Tue, 22 Oct 2024 20:00:26 +0200 Subject: [PATCH 18/23] =?UTF-8?q?R=C3=A9solution=20erreurs=20#4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/fr/communaywen/core/quests/QuestsListener.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/fr/communaywen/core/quests/QuestsListener.java b/src/main/java/fr/communaywen/core/quests/QuestsListener.java index 6c8b296d..f132dcb0 100644 --- a/src/main/java/fr/communaywen/core/quests/QuestsListener.java +++ b/src/main/java/fr/communaywen/core/quests/QuestsListener.java @@ -131,7 +131,7 @@ public void onPlayerMove(PlayerMoveEvent event) { if ((blockX != from.getBlockX() || blockZ != from.getBlockZ()) && !AywenCraftPlugin.frozenPlayers.contains(player)) - QuestsManager.manageQuestsPlayer(player, QUESTS.WALK_BLOCKS, 1, "Block(s) marché(s)"); + QuestsManager.manageQuestsPlayer(player.getUniqueId(), QUESTS.WALK_BLOCKS, 1, "Block(s) marché(s)"); if (blockX != from.getBlockX() || blockZ != from.getBlockZ()) QuestsManager.manageQuestsPlayer(player.getUniqueId(), QUESTS.WALK_BLOCKS, 1, "Block(s) marché(s)"); From 57adad105d1853484df7bef3ebc18f8d47b6a341 Mon Sep 17 00:00:00 2001 From: gab4000 Date: Wed, 23 Oct 2024 16:24:49 +0200 Subject: [PATCH 19/23] Opti SettingsListener + changement adminshop (256 items max) --- src/main/java/fr/communaywen/core/Managers.java | 1 - .../core/adminshop/menu/buy/AdminShopBuy.java | 2 +- .../core/settings/SettingsListener.java | 15 +++++---------- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/src/main/java/fr/communaywen/core/Managers.java b/src/main/java/fr/communaywen/core/Managers.java index 18fd352d..3c1d3bfa 100644 --- a/src/main/java/fr/communaywen/core/Managers.java +++ b/src/main/java/fr/communaywen/core/Managers.java @@ -124,7 +124,6 @@ public void init(AywenCraftPlugin plugin) { } // Database - // leaderboardManager = new LeaderboardManager(plugin); // desactivé de base jumpManager = new JumpManager(plugin); headManager = new HeadManager(plugin); leaderboardManager = new LeaderboardManager(plugin); diff --git a/src/main/java/fr/communaywen/core/adminshop/menu/buy/AdminShopBuy.java b/src/main/java/fr/communaywen/core/adminshop/menu/buy/AdminShopBuy.java index 222796e9..545efcd4 100644 --- a/src/main/java/fr/communaywen/core/adminshop/menu/buy/AdminShopBuy.java +++ b/src/main/java/fr/communaywen/core/adminshop/menu/buy/AdminShopBuy.java @@ -20,7 +20,7 @@ public class AdminShopBuy extends Menu { BaseItems items; private final AtomicInteger number; private final AtomicDouble prize; - private static final int MAX_ITEMS = 2048; + private static final int MAX_ITEMS = 256; private String material = null; public AdminShopBuy(Player player, BaseItems items) { diff --git a/src/main/java/fr/communaywen/core/settings/SettingsListener.java b/src/main/java/fr/communaywen/core/settings/SettingsListener.java index 156efb06..cbe24e14 100644 --- a/src/main/java/fr/communaywen/core/settings/SettingsListener.java +++ b/src/main/java/fr/communaywen/core/settings/SettingsListener.java @@ -22,15 +22,10 @@ public SettingsListener(AywenCraftPlugin plugin) { @EventHandler public void onJoin(PlayerJoinEvent e) { - Bukkit.getScheduler().runTaskAsynchronously(this.plugin, () -> { - String uuid = e.getPlayer().getUniqueId().toString(); - - Bukkit.getScheduler().runTask(this.plugin, () -> { - if (SettingsCache.settingsMap.get(uuid) == null) { - SettingsCache.settingsMap.put(uuid, new PlayerSettings(uuid, 3, 3, 3)); - MessageManager.sendMessageType(e.getPlayer(), "Settings créés", Prefix.SETTINGS, MessageType.INFO, false); - } - }); - }); + String uuid = e.getPlayer().getUniqueId().toString(); + if (SettingsCache.settingsMap.get(uuid) == null) { + SettingsCache.settingsMap.put(uuid, new PlayerSettings(uuid, 3, 3, 3)); + MessageManager.sendMessageType(e.getPlayer(), "Settings créés", Prefix.SETTINGS, MessageType.INFO, false); + } } } \ No newline at end of file From 51da5a2678c2d5cb7e28f360021bc4feb8a39d76 Mon Sep 17 00:00:00 2001 From: gab4000 Date: Thu, 24 Oct 2024 20:54:47 +0200 Subject: [PATCH 20/23] Load nd Save settings --- src/main/java/fr/communaywen/core/Managers.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/fr/communaywen/core/Managers.java b/src/main/java/fr/communaywen/core/Managers.java index 3c1d3bfa..c63fad7f 100644 --- a/src/main/java/fr/communaywen/core/Managers.java +++ b/src/main/java/fr/communaywen/core/Managers.java @@ -163,6 +163,7 @@ public void init(AywenCraftPlugin plugin) { homesManagers.loadHomes(); homesManagers.loadHomeLimits(); disabledWorldHome.loadConfig(); + settingsManager.init(); } public void cleanup() { @@ -178,6 +179,6 @@ public void cleanup() { corpseManager.removeAll(); teamManager.getTeamCache().saveAllTeamsToDatabase(); disabledWorldHome.saveConfig(); - + settingsManager.saveSettings(); } } From 6ace335102513c424b8f40e54b9cb8c700a37383 Mon Sep 17 00:00:00 2001 From: gab4000 Date: Sun, 3 Nov 2024 13:26:57 +0100 Subject: [PATCH 21/23] rename variables --- .../java/fr/communaywen/core/Managers.java | 2 +- .../mailboxes/menu/letter/SendingLetter.java | 10 +++++----- .../core/settings/PlayerSettings.java | 2 +- .../core/settings/SettingsCache.java | 2 +- .../core/settings/SettingsManager.java | 6 +++--- .../core/settings/SettingsMenu.java | 12 ++++++------ .../core/settings/SettingsUtils.java | 4 ++-- .../settings/menus/MailboxManagerMenu.java | 18 +++++++++--------- .../utils/command/InteractiveHelpMenu.java | 4 ++-- 9 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/main/java/fr/communaywen/core/Managers.java b/src/main/java/fr/communaywen/core/Managers.java index c63fad7f..35a8ea0b 100644 --- a/src/main/java/fr/communaywen/core/Managers.java +++ b/src/main/java/fr/communaywen/core/Managers.java @@ -132,7 +132,7 @@ public void init(AywenCraftPlugin plugin) { guidelineManager = new GuidelineManager(plugin); contestCache = new ContestCache(plugin); contestManager = new ContestManager(plugin, contestCache); - this.teamManager = new TeamManager(plugin); + teamManager = new TeamManager(plugin); scoreboardManager = new ScoreboardManager(plugin); dreamdimManager = new DimensionManager(plugin); homeManager = new HomeManager(plugin); diff --git a/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java b/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java index b93f011a..eb0e4c95 100644 --- a/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java +++ b/src/main/java/fr/communaywen/core/mailboxes/menu/letter/SendingLetter.java @@ -24,7 +24,7 @@ public class SendingLetter extends MailboxInv { // private final TeamManager teamManager; // private final List playerFriends; -> Temporaire - int mail_accept; + int mailAccept; public SendingLetter(Player player, OfflinePlayer receiver, AywenCraftPlugin plugin) { super(player); @@ -33,7 +33,7 @@ public SendingLetter(Player player, OfflinePlayer receiver, AywenCraftPlugin plu // this.teamManager = plugin.getManagers().getTeamManager(); // FriendsManager friendsManager = plugin.getManagers().getFriendsManager(); // playerFriends = (List) friendsManager.getFriendsAsync(player.getName()); - this.mail_accept = SettingsCache.settingsMap.get(receiver.getUniqueId().toString()).mail_accept(); + mailAccept = SettingsCache.settingsMap.get(receiver.getUniqueId().toString()).mailAccept(); inventory = Bukkit.createInventory(this, 54, MailboxMenuManager.getInvTitle(INV_NAME)); inventory.setItem(49, getHead(receiver)); inventory.setItem(45, homeBtn()); @@ -45,7 +45,7 @@ public SendingLetter(Player player, OfflinePlayer receiver, AywenCraftPlugin plu @Override public void openInventory() { - player.openInventory(this.inventory); + player.openInventory(inventory); } public ItemStack[] getItems() { @@ -65,8 +65,8 @@ public void sendLetter() { sendFailureMessage(player, "Vous ne pouvez pas envoyer de lettre vide"); return; } - plugin.getLogger().info("Mail Accept" + mail_accept); - switch (mail_accept) { + plugin.getLogger().info("Mail Accept" + mailAccept); + switch (mailAccept) { case 0: sendFailureMessage(player, "Ce joueur n'accepte pas les lettres"); for (ItemStack item : items) player.getWorld().dropItemNaturally(player.getLocation(), item); diff --git a/src/main/java/fr/communaywen/core/settings/PlayerSettings.java b/src/main/java/fr/communaywen/core/settings/PlayerSettings.java index 04aff070..df08153b 100644 --- a/src/main/java/fr/communaywen/core/settings/PlayerSettings.java +++ b/src/main/java/fr/communaywen/core/settings/PlayerSettings.java @@ -1,3 +1,3 @@ package fr.communaywen.core.settings; -public record PlayerSettings(String uuid, int mail_accept, int trade_accept, int tpa_accept) {} \ No newline at end of file +public record PlayerSettings(String uuid, int mailAccept, int tradeAccept, int tpaAccept) {} \ No newline at end of file diff --git a/src/main/java/fr/communaywen/core/settings/SettingsCache.java b/src/main/java/fr/communaywen/core/settings/SettingsCache.java index 100850e8..fb9ea40f 100644 --- a/src/main/java/fr/communaywen/core/settings/SettingsCache.java +++ b/src/main/java/fr/communaywen/core/settings/SettingsCache.java @@ -5,6 +5,6 @@ public class SettingsCache { - public static Map settingsMap = new HashMap<>(); + public static Map settingsMap = new HashMap<>(); // UUID; PlayerSettings } \ No newline at end of file diff --git a/src/main/java/fr/communaywen/core/settings/SettingsManager.java b/src/main/java/fr/communaywen/core/settings/SettingsManager.java index b9435a7c..876e0691 100644 --- a/src/main/java/fr/communaywen/core/settings/SettingsManager.java +++ b/src/main/java/fr/communaywen/core/settings/SettingsManager.java @@ -50,9 +50,9 @@ public void createPlayerSettings(PlayerSettings settings) { String sql = "INSERT INTO settings (player, mail_accept, trade_accept, tpa_accept) VALUES (?, ?, ?, ?)"; PreparedStatement statement = connection.prepareStatement(sql); statement.setString(1, settings.uuid()); - statement.setInt(2, settings.mail_accept()); - statement.setInt(3, settings.trade_accept()); - statement.setInt(4, settings.tpa_accept()); + statement.setInt(2, settings.mailAccept()); + statement.setInt(3, settings.tradeAccept()); + statement.setInt(4, settings.tpaAccept()); statement.executeUpdate(); statement.close(); diff --git a/src/main/java/fr/communaywen/core/settings/SettingsMenu.java b/src/main/java/fr/communaywen/core/settings/SettingsMenu.java index 296d79ba..322db547 100644 --- a/src/main/java/fr/communaywen/core/settings/SettingsMenu.java +++ b/src/main/java/fr/communaywen/core/settings/SettingsMenu.java @@ -30,16 +30,16 @@ public class SettingsMenu extends Menu { @Getter @Setter - private int mail_accept, trade_accept, tpa_accept; + private int mailAccept, tradeAccept, tpaAccept; public SettingsMenu(AywenCraftPlugin plugin, Player owner, SettingsManager manager) { super(owner); this.plugin = plugin; this.owner = owner; this.manager = manager; - this.mail_accept = SettingsCache.settingsMap.get(owner.getUniqueId().toString()).mail_accept(); - this.trade_accept = SettingsCache.settingsMap.get(owner.getUniqueId().toString()).trade_accept(); - this.tpa_accept = SettingsCache.settingsMap.get(owner.getUniqueId().toString()).tpa_accept(); + mailAccept = SettingsCache.settingsMap.get(owner.getUniqueId().toString()).mailAccept(); + tradeAccept = SettingsCache.settingsMap.get(owner.getUniqueId().toString()).tradeAccept(); + tpaAccept = SettingsCache.settingsMap.get(owner.getUniqueId().toString()).tpaAccept(); } @Override @@ -63,7 +63,7 @@ public void onInventoryClick(InventoryClickEvent inventoryClickEvent) { map.put(22, new ItemBuilder(this, CustomStack.getInstance("settings:mailbox_settings_btn").getItemStack(), itemMeta -> { itemMeta.setDisplayName(ChatColor.GOLD + "Mailbox"); - itemMeta.setLore(List.of(SettingsUtils.getMailStatus(this.mail_accept))); + itemMeta.setLore(List.of(SettingsUtils.getMailStatus(mailAccept))); }).setNextMenu(new MailboxManagerMenu(owner, this))); map.put(45, new ItemBuilder(this, CustomStack.getInstance("settings:close_btn").getItemStack(), itemMeta -> { itemMeta.setDisplayName(ChatColor.DARK_RED + "Fermer"); @@ -71,7 +71,7 @@ public void onInventoryClick(InventoryClickEvent inventoryClickEvent) { map.put(53, new ItemBuilder(this, CustomStack.getInstance("settings:save_btn").getItemStack(), itemMeta -> { itemMeta.setDisplayName(ChatColor.GREEN + "Sauvegarder"); }).setOnClick(inventoryClickEvent -> { - SettingsCache.settingsMap.replace(owner.getUniqueId().toString(), new PlayerSettings(owner.getUniqueId().toString(), mail_accept, trade_accept, tpa_accept)); + SettingsCache.settingsMap.replace(owner.getUniqueId().toString(), new PlayerSettings(owner.getUniqueId().toString(), mailAccept, tradeAccept, tpaAccept)); MessageManager.sendMessageType(owner, "Settings enregistrés", Prefix.SETTINGS, MessageType.INFO, false); })); return map; diff --git a/src/main/java/fr/communaywen/core/settings/SettingsUtils.java b/src/main/java/fr/communaywen/core/settings/SettingsUtils.java index 21fb0ef6..e96522dc 100644 --- a/src/main/java/fr/communaywen/core/settings/SettingsUtils.java +++ b/src/main/java/fr/communaywen/core/settings/SettingsUtils.java @@ -4,8 +4,8 @@ public class SettingsUtils { - public static String getMailStatus(int mail_accept) { - return switch (mail_accept) { + public static String getMailStatus(int mailAccept) { + return switch (mailAccept) { case 0 -> ChatColor.RED + "Personne"; case 1 -> ChatColor.GOLD + "Amis seulement"; case 2 -> ChatColor.YELLOW + "Team seulement"; diff --git a/src/main/java/fr/communaywen/core/settings/menus/MailboxManagerMenu.java b/src/main/java/fr/communaywen/core/settings/menus/MailboxManagerMenu.java index b889f6e3..f7df8bde 100644 --- a/src/main/java/fr/communaywen/core/settings/menus/MailboxManagerMenu.java +++ b/src/main/java/fr/communaywen/core/settings/menus/MailboxManagerMenu.java @@ -22,7 +22,7 @@ public class MailboxManagerMenu extends Menu { public MailboxManagerMenu(Player owner, SettingsMenu settingsMenu) { super(owner); - this.player = owner; + player = owner; this.settingsMenu = settingsMenu; } @@ -47,30 +47,30 @@ public void onInventoryClick(InventoryClickEvent inventoryClickEvent) { map.put(1, new ItemBuilder(this, Material.RED_WOOL, itemMeta -> { itemMeta.setDisplayName(ChatColor.DARK_RED + "Personne"); - itemMeta.setEnchantmentGlintOverride(settingsMenu.getMail_accept() == 0); + itemMeta.setEnchantmentGlintOverride(settingsMenu.getMailAccept() == 0); }).setOnClick(inventoryClickEvent -> { - settingsMenu.setMail_accept(0); + settingsMenu.setMailAccept(0); back(); })); // map.put(3, new ItemBuilder(this, Material.ORANGE_WOOL, itemMeta -> { // itemMeta.setDisplayName(ChatColor.GOLD + "Amis seulement"); -// itemMeta.setEnchantmentGlintOverride(settingsMenu.getMail_accept() == 1); +// itemMeta.setEnchantmentGlintOverride(settingsMenu.getMailAccept() == 1); // }).setOnClick(inventoryClickEvent -> { -// settingsMenu.setMail_accept(1); +// settingsMenu.setMailAccept(1); // back(); // })); // map.put(5, new ItemBuilder(this, Material.YELLOW_WOOL, itemMeta -> { // itemMeta.setDisplayName(ChatColor.YELLOW + "Team seulement"); -// itemMeta.setEnchantmentGlintOverride(settingsMenu.getMail_accept() == 2); +// itemMeta.setEnchantmentGlintOverride(settingsMenu.getMaiLAccept() == 2); // }).setOnClick(inventoryClickEvent -> { -// settingsMenu.setMail_accept(2); +// settingsMenu.setMailAccept(2); // back(); // })); map.put(7, new ItemBuilder(this, Material.GREEN_WOOL, itemMeta -> { itemMeta.setDisplayName(ChatColor.GREEN + "Tout le monde"); - itemMeta.setEnchantmentGlintOverride(settingsMenu.getMail_accept() == 3); + itemMeta.setEnchantmentGlintOverride(settingsMenu.getMailAccept() == 3); }).setOnClick(inventoryClickEvent -> { - settingsMenu.setMail_accept(3); + settingsMenu.setMailAccept(3); back(); })); return map; diff --git a/src/main/java/fr/communaywen/core/utils/command/InteractiveHelpMenu.java b/src/main/java/fr/communaywen/core/utils/command/InteractiveHelpMenu.java index d5b8a604..9b9db723 100644 --- a/src/main/java/fr/communaywen/core/utils/command/InteractiveHelpMenu.java +++ b/src/main/java/fr/communaywen/core/utils/command/InteractiveHelpMenu.java @@ -39,7 +39,7 @@ * } * *
  • Create the commands that you would like to display the help menu in. Send the help - * menu using {@link InteractiveHelpMenu#sendInteractiveMenu(Audience, CommandHelp, int, ExecutableCommand)}. + * menu using @link InteractiveHelpMenu#sendInteractiveMenu(Audience, CommandHelp, int, ExecutableCommand). * All the parameters should be parameters in the help method, and Lamp will resolve them automatically * to the appropriate values. *
    {@code
    @@ -74,7 +74,7 @@
      *     
  • /foo bar help: Lists all commands in /foo bar
  • *
  • /foo buzz bar help: Lists all commands in /foo buzz bar
  • * - * This is why {@link #sendInteractiveMenu(Audience, CommandHelp, int, ExecutableCommand)} requires + * This is why @link #sendInteractiveMenu(Audience, CommandHelp, int, ExecutableCommand) requires * an {@link ExecutableCommand}, as it uses it to resolve sibling commands that should be * listed in the help menu. */ From 089c63f30c946ae754bd89498443299da40ca6b4 Mon Sep 17 00:00:00 2001 From: gab4000 Date: Sun, 3 Nov 2024 13:28:58 +0100 Subject: [PATCH 22/23] remove condition in QuestsListener --- src/main/java/fr/communaywen/core/quests/QuestsListener.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/fr/communaywen/core/quests/QuestsListener.java b/src/main/java/fr/communaywen/core/quests/QuestsListener.java index f132dcb0..ab4dd99e 100644 --- a/src/main/java/fr/communaywen/core/quests/QuestsListener.java +++ b/src/main/java/fr/communaywen/core/quests/QuestsListener.java @@ -132,8 +132,6 @@ public void onPlayerMove(PlayerMoveEvent event) { if ((blockX != from.getBlockX() || blockZ != from.getBlockZ()) && !AywenCraftPlugin.frozenPlayers.contains(player)) QuestsManager.manageQuestsPlayer(player.getUniqueId(), QUESTS.WALK_BLOCKS, 1, "Block(s) marché(s)"); - if (blockX != from.getBlockX() || blockZ != from.getBlockZ()) - QuestsManager.manageQuestsPlayer(player.getUniqueId(), QUESTS.WALK_BLOCKS, 1, "Block(s) marché(s)"); // if (blockX == NINJA_JUMP_END.getBlockX() && blockY == NINJA_JUMP_END.getBlockY() && blockZ == NINJA_JUMP_END.getBlockZ()) // QuestsManager.manageQuestsPlayer(player, QUESTS.NINJA, 1, "jump complété"); From 42b98532f2b79cdb5c6e1b87ae16d51cd15563b7 Mon Sep 17 00:00:00 2001 From: gab4000 Date: Sat, 16 Nov 2024 20:47:48 +0100 Subject: [PATCH 23/23] resolve ProtocolLib confict --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index bd163ef6..4a0f7ffc 100644 --- a/build.gradle +++ b/build.gradle @@ -34,7 +34,7 @@ dependencies { compileOnly "net.luckperms:api:5.4" // LuckPerms compileOnly "com.github.LoneDev6:API-ItemsAdder:3.6.3-beta-14" // ItemsAdder compileOnly "me.clip:placeholderapi:2.11.6" // PlaceholderAPI - compileOnly "com.github.dmulloy2:ProtocolLib:5.3.0" // ProtocolLib + compileOnly "com.github.dmulloy2:ProtocolLib:-SNAPSHOT" // ProtocolLib compileOnly "commons-codec:commons-codec:1.16.1" compileOnly "com.onarandombox.multiversecore:Multiverse-Core:4.3.+" // Multiverse Core compileOnly "com.sk89q.worldedit:worldedit-bukkit:7+" // WorldEdit