From 7e2c90484856e678c73cee4d70407eb20f0bdf45 Mon Sep 17 00:00:00 2001 From: iambibi_ <89582596+iambibi@users.noreply.github.com> Date: Thu, 13 Aug 2026 11:04:52 +0200 Subject: [PATCH 1/7] chore: update --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 24ca86ebd..429ac18f2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -19,5 +19,5 @@ lombokVersion = 1.18.46 # Test Dependencies slf4jVersion = 2.1.0-alpha1 junitVersion = 6.1.1 -mockbukkitVersion = 4.114.0 +mockbukkitVersion = 4.116.1 h2DatabaseVersion = 2.4.240 From 028910af2a17f299e0d6a027cc0f0bf7589c2820 Mon Sep 17 00:00:00 2001 From: iambibi_ <89582596+iambibi@users.noreply.github.com> Date: Fri, 14 Aug 2026 14:20:01 +0200 Subject: [PATCH 2/7] chore: rewrite OMCRegistry with NotLoadedUnitTest --- .../java/fr/openmc/core/ListenersManager.java | 61 +++++++----------- src/main/java/fr/openmc/core/OMCPlugin.java | 16 ++--- src/main/java/fr/openmc/core/OMCRegistry.java | 22 ++++--- .../core/bootstrap/features/Feature.java | 20 ++---- .../features/types/HasListeners.java | 6 +- ...InUnitTest.java => NotLoadInUnitTest.java} | 2 +- .../fr/openmc/core/bootstrap/hooks/Hooks.java | 4 +- .../bootstrap/listeners/ListenerFactory.java | 31 +++++++++ .../registries/RegistryLoadingType.java | 4 +- .../commands/admin/freeze/FreezeManager.java | 8 +-- .../core/commands/utils/SpawnManager.java | 8 +-- .../animations/AnimationsManager.java | 13 ++-- .../animations/listeners/EmoteListener.java | 4 +- .../PlayerFinishJoiningListener.java | 4 +- .../chatanimations/ChatAnimationManager.java | 9 +-- .../core/features/city/CityManager.java | 6 +- .../features/city/ProtectionsManager.java | 32 +++++----- .../city/sub/mascots/MascotsManager.java | 22 +++---- .../listeners/MascotsProtectionsListener.java | 4 +- .../city/sub/mayor/managers/MayorManager.java | 32 +++++----- .../sub/milestone/CityMilestoneManager.java | 6 +- .../city/sub/notation/NotationManager.java | 2 +- .../features/city/sub/war/WarManager.java | 2 +- .../cube/multiblocks/MultiBlockManager.java | 14 ++--- .../dimopener/DimensionOpenerManager.java | 8 +-- .../core/features/displays/TabList.java | 4 +- .../displays/holograms/HologramLoader.java | 4 +- .../scoreboards/ScoreboardManager.java | 11 ++-- .../core/features/dream/DreamManager.java | 63 +++++++++---------- .../dream/mecanism/altar/AltarManager.java | 2 +- .../blocksdrops/DreamBlocksDropsManager.java | 2 +- .../cloudfishing/CloudFishingManager.java | 2 +- .../dream/mecanism/cold/ColdManager.java | 2 +- .../metaldetector/MetalDetectorManager.java | 2 +- .../mecanism/sfx/ghost/DreamGhostManager.java | 2 +- .../mecanism/tradernpc/GlaciteNpcManager.java | 2 +- .../dream/registries/DreamBlocksRegistry.java | 6 +- .../dream/registries/DreamItemRegistry.java | 4 +- .../dream/registries/DreamMobsRegistry.java | 8 +-- .../dailyevents/DailyEventsManager.java | 12 ++-- .../bloodynight/BloodyNightManager.java | 8 +-- .../goldenharvest/GoldenHarvestManager.java | 14 ++--- .../MiraculousFishingManager.java | 10 +-- .../halloween/managers/HalloweenManager.java | 8 +-- .../contest/managers/ContestManager.java | 2 +- .../itemsadder/SpawnerExtractorListener.java | 3 +- .../itemsadder/elevator/ElevatorManager.java | 14 ++--- .../leaderboards/LeaderboardManager.java | 4 +- .../core/features/mainmenu/MainMenu.java | 4 +- .../milestones/MilestonesManager.java | 9 ++- .../core/features/profile/ProfileManager.java | 8 +-- .../settings/PlayerSettingsManager.java | 8 +-- .../features/shops/managers/ShopManager.java | 6 +- .../core/features/tickets/TicketListener.java | 4 +- .../core/features/tickets/TicketManager.java | 8 +-- .../core/features/updates/UpdateManager.java | 8 +-- .../core/hooks/itemsadder/ItemsAdderHook.java | 2 +- .../core/listeners/ItemsAddersListener.java | 4 +- .../listeners/RegionTrackingListener.java | 3 +- .../ambient/CustomAmbientRegistry.java | 12 ++-- .../listeners/AmbientFixedTimeListener.java | 3 +- .../listeners/AmbientWeatherListener.java | 3 +- .../ambient/listeners/BiomesOnChunkLoad.java | 3 +- .../CustomEnchantmentRegistry.java | 2 +- .../registry/items/CustomItemRegistry.java | 14 ++--- .../lootboxes/CustomLootboxRegistry.java | 8 +-- .../core/registry/mobs/CustomMobRegistry.java | 14 +++-- .../core/utils/nms/entity/EntityGlowNMS.java | 3 +- 68 files changed, 324 insertions(+), 331 deletions(-) rename src/main/java/fr/openmc/core/bootstrap/features/types/{NotInUnitTest.java => NotLoadInUnitTest.java} (77%) create mode 100644 src/main/java/fr/openmc/core/bootstrap/listeners/ListenerFactory.java diff --git a/src/main/java/fr/openmc/core/ListenersManager.java b/src/main/java/fr/openmc/core/ListenersManager.java index fbd617505..079783e58 100644 --- a/src/main/java/fr/openmc/core/ListenersManager.java +++ b/src/main/java/fr/openmc/core/ListenersManager.java @@ -2,62 +2,49 @@ import fr.openmc.api.input.ChatInput; import fr.openmc.api.input.location.ItemInteraction; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.features.itemsadder.SpawnerExtractorListener; -import fr.openmc.core.hooks.itemsadder.ItemsAdderHook; import fr.openmc.core.listeners.*; import fr.openmc.core.utils.nms.entity.EntityGlowNMS; -import org.bukkit.Bukkit; -import org.bukkit.Server; -import org.bukkit.event.Listener; -import org.bukkit.plugin.java.JavaPlugin; /** * Centralise l'enregistrement des listeners Bukkit du plugin. */ public class ListenersManager { /** - * Enregistre les listeners de base, puis ceux conditionnels (tests, hooks). + * Enregistre les listeners. */ public static void init() { + // () -> : nécessaire si y'a un package d'api externe (ex com.comphenix.protocol) registerEvents( - new OMCPlayerCacheListener(), - new HappyGhastListener(), - new SessionsListener(), - new JoinQuitMessageListener(), - new ClockInfos(), - new ChronometerListener(), - new ItemInteraction(), - new ChatInput(), - new SleepListener(), - new PlayerDeathListener(), - new AsyncChatListener(OMCPlugin.getInstance()), - new NoMoreRabbit(), - new ArmorListener(), - new EntityGlowNMS(), - new RegionTrackingListener() + OMCPlayerCacheListener::new, + HappyGhastListener::new, + SessionsListener::new, + JoinQuitMessageListener::new, + ClockInfos::new, + ChronometerListener::new, + ItemInteraction::new, + ChatInput::new, + SleepListener::new, + PlayerDeathListener::new, + () -> new AsyncChatListener(OMCPlugin.getInstance()), + NoMoreRabbit::new, + ArmorListener::new, + () -> new EntityGlowNMS(), + () -> new RegionTrackingListener(), + () -> new SpawnerExtractorListener(), + () -> new ItemsAddersListener() ); - - if (!OMCPlugin.isUnitTestVersion()) { - registerEvents( - new SpawnerExtractorListener() - ); - } - - if (ItemsAdderHook.isEnable()) { - registerEvents(new ItemsAddersListener()); - } } /** * Enregistre une liste de listeners sur le plugin courant. * - * @param args Listeners a enregistrer + * @param listeners Listeners a enregistrer */ - private static void registerEvents(Listener... args) { - Server server = Bukkit.getServer(); - JavaPlugin plugin = OMCPlugin.getInstance(); - for (Listener listener : args) { - server.getPluginManager().registerEvents(listener, plugin); + public static void registerEvents(ListenerFactory... listeners) { + for (ListenerFactory listenerFactory : listeners) { + listenerFactory.create(true); } } } diff --git a/src/main/java/fr/openmc/core/OMCPlugin.java b/src/main/java/fr/openmc/core/OMCPlugin.java index d543da093..efb97d041 100644 --- a/src/main/java/fr/openmc/core/OMCPlugin.java +++ b/src/main/java/fr/openmc/core/OMCPlugin.java @@ -11,6 +11,7 @@ import fr.openmc.core.bootstrap.integration.DatabaseManager; import fr.openmc.core.bootstrap.integration.ErrorReporter; import fr.openmc.core.bootstrap.integration.OMCLogger; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.commands.admin.freeze.FreezeManager; import fr.openmc.core.commands.utils.SpawnManager; import fr.openmc.core.features.adminshop.AdminShopManager; @@ -67,7 +68,6 @@ import org.bukkit.Particle; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; -import org.bukkit.event.Listener; import org.bukkit.plugin.java.JavaPlugin; import java.io.File; @@ -135,7 +135,7 @@ public class OMCPlugin extends JavaPlugin { ShopManager::new, HomeIconCacheManager::new, DimensionOpenerManager::new, - ElevatorManager::new + () -> new ElevatorManager() )); public static final List loadedFeature = new ArrayList<>(); @@ -269,10 +269,8 @@ public void onDisable() { * * @param listeners Listeners à enregistrer */ - public static void registerEvents(Listener... listeners) { - for (Listener listener : listeners) { - instance.getServer().getPluginManager().registerEvents(listener, instance); - } + public static void registerEvents(ListenerFactory... listeners) { + ListenersManager.registerEvents(listeners); } /** @@ -280,10 +278,8 @@ public static void registerEvents(Listener... listeners) { * * @param listeners Listeners à enregistrer */ - public static void registerEvents(Collection listeners) { - for (Listener listener : listeners) { - instance.getServer().getPluginManager().registerEvents(listener, instance); - } + public static void registerEvents(Collection listeners) { + registerEvents(listeners.toArray(new ListenerFactory[0])); } /** diff --git a/src/main/java/fr/openmc/core/OMCRegistry.java b/src/main/java/fr/openmc/core/OMCRegistry.java index 8739d01a9..04e1856bd 100644 --- a/src/main/java/fr/openmc/core/OMCRegistry.java +++ b/src/main/java/fr/openmc/core/OMCRegistry.java @@ -42,7 +42,7 @@ public final class OMCRegistry { RegistryLoadingType.AFTER_IA), new RegistryContext( () -> CUSTOM_AMBIENTS = new CustomAmbientRegistry(), - RegistryLoadingType.BOOTSTRAP, RegistryLoadingType.RUNTIME), + RegistryLoadingType.BOOTSTRAP, RegistryLoadingType.RUNTIME, RegistryLoadingType.NOT_LOADED_UNIT_TEST), new RegistryContext( () -> CUSTOM_LOOTBOXES = new CustomLootboxRegistry(), RegistryLoadingType.AFTER_IA), @@ -54,8 +54,8 @@ private OMCRegistry() {} public static void bootstrapAll(BootstrapContext context) { for (RegistryContext ctx : OMCRegistry.ALL) { - if (Arrays.stream(ctx.loadingTypes()) - .noneMatch(t -> t == RegistryLoadingType.BOOTSTRAP)) continue; + if (isTyped(ctx, RegistryLoadingType.NOT_LOADED_UNIT_TEST) && OMCPlugin.isUnitTestVersion()) continue; + if (isNotTyped(ctx, RegistryLoadingType.BOOTSTRAP)) continue; LifecycleRegistry r = load(ctx); try { @@ -70,8 +70,8 @@ public static void bootstrapAll(BootstrapContext context) { public static void initAll() { for (RegistryContext ctx : OMCRegistry.ALL) { - if (Arrays.stream(ctx.loadingTypes()) - .noneMatch(t -> t == RegistryLoadingType.RUNTIME)) continue; + if (isTyped(ctx, RegistryLoadingType.NOT_LOADED_UNIT_TEST) && OMCPlugin.isUnitTestVersion()) continue; + if (isNotTyped(ctx, RegistryLoadingType.RUNTIME)) continue; LifecycleRegistry r = load(ctx); @@ -85,8 +85,8 @@ public static void initAll() { public static void postInitAll() { for (RegistryContext ctx : OMCRegistry.ALL) { - if (Arrays.stream(ctx.loadingTypes()) - .noneMatch(t -> t == RegistryLoadingType.AFTER_IA)) continue; + if (isTyped(ctx, RegistryLoadingType.NOT_LOADED_UNIT_TEST) && OMCPlugin.isUnitTestVersion()) continue; + if (isNotTyped(ctx, RegistryLoadingType.AFTER_IA)) continue; LifecycleRegistry r = load(ctx); @@ -111,4 +111,12 @@ private static LifecycleRegistry load(RegistryContext ctx) { LOADED.add(registry); return registry; } + + private static boolean isNotTyped(RegistryContext ctx, RegistryLoadingType type) { + return Arrays.stream(ctx.loadingTypes()).noneMatch(t -> t == type); + } + + private static boolean isTyped(RegistryContext ctx, RegistryLoadingType type) { + return Arrays.stream(ctx.loadingTypes()).anyMatch(t -> t == type); + } } diff --git a/src/main/java/fr/openmc/core/bootstrap/features/Feature.java b/src/main/java/fr/openmc/core/bootstrap/features/Feature.java index 6c399b93b..34f7592b3 100644 --- a/src/main/java/fr/openmc/core/bootstrap/features/Feature.java +++ b/src/main/java/fr/openmc/core/bootstrap/features/Feature.java @@ -5,7 +5,7 @@ import fr.openmc.core.OMCPlugin; import fr.openmc.core.bootstrap.features.types.*; import fr.openmc.core.bootstrap.integration.OMCLogger; -import org.bukkit.event.Listener; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import java.sql.SQLException; @@ -21,7 +21,7 @@ public abstract class Feature { */ public final void startInit() { // Condition d'initialisation (si feature ne doit pas être lancée dans les tests ou qu'elle nécessite un hook) - if (this instanceof NotInUnitTest && OMCPlugin.isUnitTestVersion()) { + if (this instanceof NotLoadInUnitTest && OMCPlugin.isUnitTestVersion()) { OMCLogger.errorFormatted("Feature " + this.getClass().getSimpleName() + " non initialisée dans les Unit Tests"); return; } @@ -35,17 +35,7 @@ public final void startInit() { // Enregistre les listeners if (this instanceof HasListeners hasListeners) { - for (Listener listener : hasListeners.getListeners()) { - if (this instanceof NotInUnitTest && OMCPlugin.isUnitTestVersion()) { - OMCLogger.errorFormatted("Listener " + listener.getClass().getSimpleName() + " de Feature " + this.getClass().getSimpleName() + " non chargée dans les Unit Tests"); - continue; - } - - if (this instanceof LoadIfEnable loadIfEnable && !loadIfEnable.shouldLoad()) { - OMCLogger.errorFormatted("Listener " + listener.getClass().getSimpleName() + " de Feature " + this.getClass().getSimpleName() + " non initialisée car le hook associé n'est pas activé"); - continue; - } - + for (ListenerFactory listener : hasListeners.getListeners()) { OMCPlugin.registerEvents(listener); } } @@ -74,7 +64,7 @@ public final void startInit() { * @throws SQLException Si l'initialisation DB échoue */ public final void startDB(ConnectionSource connectionSource) throws SQLException { - if (this instanceof NotInUnitTest && OMCPlugin.isUnitTestVersion()) return; + if (this instanceof NotLoadInUnitTest && OMCPlugin.isUnitTestVersion()) return; if (this instanceof HasDatabase dbF) { dbF.initDB(connectionSource); } @@ -85,7 +75,7 @@ public final void startDB(ConnectionSource connectionSource) throws SQLException */ public final void startSave() { if (!initialize) return; - if (this instanceof NotInUnitTest && OMCPlugin.isUnitTestVersion()) return; + if (this instanceof NotLoadInUnitTest && OMCPlugin.isUnitTestVersion()) return; try { save(); diff --git a/src/main/java/fr/openmc/core/bootstrap/features/types/HasListeners.java b/src/main/java/fr/openmc/core/bootstrap/features/types/HasListeners.java index 2092b9527..fcd218cd8 100644 --- a/src/main/java/fr/openmc/core/bootstrap/features/types/HasListeners.java +++ b/src/main/java/fr/openmc/core/bootstrap/features/types/HasListeners.java @@ -1,6 +1,6 @@ package fr.openmc.core.bootstrap.features.types; -import org.bukkit.event.Listener; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import java.util.Set; @@ -11,6 +11,8 @@ public interface HasListeners { /** * Listeners à initialiser + * () -> : nécessaire si y'a un package d'api externe (ex com.comphenix.protocol) + * */ - Set getListeners(); + Set getListeners(); } diff --git a/src/main/java/fr/openmc/core/bootstrap/features/types/NotInUnitTest.java b/src/main/java/fr/openmc/core/bootstrap/features/types/NotLoadInUnitTest.java similarity index 77% rename from src/main/java/fr/openmc/core/bootstrap/features/types/NotInUnitTest.java rename to src/main/java/fr/openmc/core/bootstrap/features/types/NotLoadInUnitTest.java index b742763f6..a3024b276 100644 --- a/src/main/java/fr/openmc/core/bootstrap/features/types/NotInUnitTest.java +++ b/src/main/java/fr/openmc/core/bootstrap/features/types/NotLoadInUnitTest.java @@ -3,5 +3,5 @@ /** * Charge uniquement la feature ou le listener hors des tests unitaires */ -public interface NotInUnitTest {} +public interface NotLoadInUnitTest {} diff --git a/src/main/java/fr/openmc/core/bootstrap/hooks/Hooks.java b/src/main/java/fr/openmc/core/bootstrap/hooks/Hooks.java index bafabf0eb..9d99c88bf 100644 --- a/src/main/java/fr/openmc/core/bootstrap/hooks/Hooks.java +++ b/src/main/java/fr/openmc/core/bootstrap/hooks/Hooks.java @@ -3,7 +3,7 @@ import com.j256.ormlite.support.ConnectionSource; import fr.openmc.core.OMCPlugin; import fr.openmc.core.bootstrap.features.types.HasDatabase; -import fr.openmc.core.bootstrap.features.types.NotInUnitTest; +import fr.openmc.core.bootstrap.features.types.NotLoadInUnitTest; import fr.openmc.core.bootstrap.integration.OMCLogger; import org.bukkit.plugin.PluginManager; @@ -85,7 +85,7 @@ public void startSave() { * @throws SQLException Si l'initialisation DB échoue */ public final void startDB(ConnectionSource connectionSource) throws SQLException { - if (this instanceof NotInUnitTest && OMCPlugin.isUnitTestVersion()) return; + if (this instanceof NotLoadInUnitTest && OMCPlugin.isUnitTestVersion()) return; if (this instanceof HasDatabase dbHook) { dbHook.initDB(connectionSource); } diff --git a/src/main/java/fr/openmc/core/bootstrap/listeners/ListenerFactory.java b/src/main/java/fr/openmc/core/bootstrap/listeners/ListenerFactory.java new file mode 100644 index 000000000..1e3289822 --- /dev/null +++ b/src/main/java/fr/openmc/core/bootstrap/listeners/ListenerFactory.java @@ -0,0 +1,31 @@ +package fr.openmc.core.bootstrap.listeners; + +import fr.openmc.core.OMCPlugin; +import fr.openmc.core.bootstrap.integration.OMCLogger; +import org.bukkit.Bukkit; +import org.bukkit.Server; +import org.bukkit.event.Listener; +import org.bukkit.plugin.java.JavaPlugin; + +@FunctionalInterface +public interface ListenerFactory { + Listener create() throws NoClassDefFoundError; + + default Listener create(boolean register) { + Server server = Bukkit.getServer(); + JavaPlugin plugin = OMCPlugin.getInstance(); + Listener listener = null; + + try { + listener = this.create(); + if (listener != null && register) { + server.getPluginManager().registerEvents(listener, plugin); + } + } catch (NoClassDefFoundError e) { + if (listener == null) return null; + OMCLogger.error("Erreur lors de l'enregistrement du listener " + listener.getClass().getSimpleName()); + OMCLogger.error(e.getMessage()); + } + return listener; + } +} \ No newline at end of file diff --git a/src/main/java/fr/openmc/core/bootstrap/registries/RegistryLoadingType.java b/src/main/java/fr/openmc/core/bootstrap/registries/RegistryLoadingType.java index 2cbbe12a1..20f8dfd79 100644 --- a/src/main/java/fr/openmc/core/bootstrap/registries/RegistryLoadingType.java +++ b/src/main/java/fr/openmc/core/bootstrap/registries/RegistryLoadingType.java @@ -5,9 +5,11 @@ * - BOOTSTRAP, registre a charger avant le chargement du monde et des datapacks * - RUNTIME, registre a charger pendant le chargement du serveur * - AFTER_IA, registre à charger après l'initialisation complete d'ItemsAdder {@link dev.lone.itemsadder.api.Events.ItemsAdderLoadDataEvent} + * - NOT_LOADED_UNIT_TEST, registre non chargé pendant les tests unitaires */ public enum RegistryLoadingType { BOOTSTRAP, RUNTIME, - AFTER_IA + AFTER_IA, + NOT_LOADED_UNIT_TEST } diff --git a/src/main/java/fr/openmc/core/commands/admin/freeze/FreezeManager.java b/src/main/java/fr/openmc/core/commands/admin/freeze/FreezeManager.java index a726bbaf5..f96005122 100644 --- a/src/main/java/fr/openmc/core/commands/admin/freeze/FreezeManager.java +++ b/src/main/java/fr/openmc/core/commands/admin/freeze/FreezeManager.java @@ -3,6 +3,7 @@ import fr.openmc.core.bootstrap.features.Feature; import fr.openmc.core.bootstrap.features.types.HasCommands; import fr.openmc.core.bootstrap.features.types.HasListeners; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; @@ -12,7 +13,6 @@ import net.kyori.adventure.title.TitlePart; import org.bukkit.Location; import org.bukkit.entity.Player; -import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerQuitEvent; import java.util.HashSet; @@ -31,10 +31,8 @@ public Set getCommands() { } @Override - public Set getListeners() { - return Set.of( - new FreezeListener() - ); + public Set getListeners() { + return Set.of(FreezeListener::new); } /** diff --git a/src/main/java/fr/openmc/core/commands/utils/SpawnManager.java b/src/main/java/fr/openmc/core/commands/utils/SpawnManager.java index f7a59eacb..c65c872d1 100644 --- a/src/main/java/fr/openmc/core/commands/utils/SpawnManager.java +++ b/src/main/java/fr/openmc/core/commands/utils/SpawnManager.java @@ -5,13 +5,13 @@ import fr.openmc.core.bootstrap.features.types.HasCommands; import fr.openmc.core.bootstrap.features.types.HasListeners; import fr.openmc.core.bootstrap.integration.OMCLogger; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.listeners.RespawnListener; import lombok.Getter; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.event.Listener; import java.io.File; import java.io.IOException; @@ -38,10 +38,8 @@ public Set getCommands() { } @Override - public Set getListeners() { - return Set.of( - new RespawnListener() - ); + public Set getListeners() { + return Set.of(RespawnListener::new); } private static void loadSpawnConfig() { diff --git a/src/main/java/fr/openmc/core/features/animations/AnimationsManager.java b/src/main/java/fr/openmc/core/features/animations/AnimationsManager.java index a7f2a789c..5d6915919 100644 --- a/src/main/java/fr/openmc/core/features/animations/AnimationsManager.java +++ b/src/main/java/fr/openmc/core/features/animations/AnimationsManager.java @@ -10,13 +10,13 @@ import fr.openmc.core.bootstrap.features.types.HasCommands; import fr.openmc.core.bootstrap.features.types.HasListeners; import fr.openmc.core.bootstrap.features.types.LoadIfEnable; -import fr.openmc.core.bootstrap.features.types.NotInUnitTest; +import fr.openmc.core.bootstrap.features.types.NotLoadInUnitTest; import fr.openmc.core.bootstrap.integration.OMCLogger; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.features.animations.commands.DebugAnimationCommand; import fr.openmc.core.features.animations.listeners.EmoteListener; import fr.openmc.core.features.animations.listeners.PlayerFinishJoiningListener; import fr.openmc.core.hooks.itemsadder.ItemsAdderHook; -import org.bukkit.event.Listener; import org.bukkit.util.Vector; import java.io.File; @@ -29,7 +29,7 @@ import java.util.Set; @Credit(developers = {"iambibi_", "gab400"}, graphist = {"Tfloa"}) -public class AnimationsManager extends Feature implements NotInUnitTest, LoadIfEnable, HasListeners, HasCommands { +public class AnimationsManager extends Feature implements NotLoadInUnitTest, LoadIfEnable, HasListeners, HasCommands { @Override public void init() { @@ -48,11 +48,8 @@ public Set getCommands() { } @Override - public Set getListeners() { - return Set.of( - new EmoteListener(), - new PlayerFinishJoiningListener() - ); + public Set getListeners() { + return Set.of(EmoteListener::new, PlayerFinishJoiningListener::new); } @Override diff --git a/src/main/java/fr/openmc/core/features/animations/listeners/EmoteListener.java b/src/main/java/fr/openmc/core/features/animations/listeners/EmoteListener.java index f43e0bc34..923ea4044 100644 --- a/src/main/java/fr/openmc/core/features/animations/listeners/EmoteListener.java +++ b/src/main/java/fr/openmc/core/features/animations/listeners/EmoteListener.java @@ -6,7 +6,7 @@ import dev.lone.itemsadder.api.Events.PlayerEmoteEndEvent; import dev.lone.itemsadder.api.Events.PlayerEmotePlayEvent; import fr.openmc.core.OMCPlugin; -import fr.openmc.core.bootstrap.features.types.NotInUnitTest; +import fr.openmc.core.bootstrap.features.types.NotLoadInUnitTest; import fr.openmc.core.features.animations.Animation; import fr.openmc.core.features.animations.PlayerAnimationInfo; import fr.openmc.core.utils.EnumUtils; @@ -22,7 +22,7 @@ import java.util.HashMap; -public class EmoteListener implements Listener, NotInUnitTest { +public class EmoteListener implements Listener, NotLoadInUnitTest { public static final HashMap playingAnimations = new HashMap<>(); @EventHandler diff --git a/src/main/java/fr/openmc/core/features/animations/listeners/PlayerFinishJoiningListener.java b/src/main/java/fr/openmc/core/features/animations/listeners/PlayerFinishJoiningListener.java index e1d76aa6d..77ae6ea82 100644 --- a/src/main/java/fr/openmc/core/features/animations/listeners/PlayerFinishJoiningListener.java +++ b/src/main/java/fr/openmc/core/features/animations/listeners/PlayerFinishJoiningListener.java @@ -2,7 +2,7 @@ import dev.lone.itemsadder.api.CustomPlayer; import fr.openmc.core.OMCPlugin; -import fr.openmc.core.bootstrap.features.types.NotInUnitTest; +import fr.openmc.core.bootstrap.features.types.NotLoadInUnitTest; import fr.openmc.core.features.animations.Animation; import fr.openmc.core.features.animations.PlayerAnimationInfo; import fr.openmc.core.features.settings.PlayerSettingsManager; @@ -16,7 +16,7 @@ import static fr.openmc.core.features.animations.listeners.EmoteListener.playingAnimations; -public class PlayerFinishJoiningListener implements Listener, NotInUnitTest { +public class PlayerFinishJoiningListener implements Listener, NotLoadInUnitTest { @EventHandler public void onPlayerJoin(PlayerJoinEvent event) { Player player = event.getPlayer(); diff --git a/src/main/java/fr/openmc/core/features/chatanimations/ChatAnimationManager.java b/src/main/java/fr/openmc/core/features/chatanimations/ChatAnimationManager.java index 8c0e9e3e1..b29010cb1 100644 --- a/src/main/java/fr/openmc/core/features/chatanimations/ChatAnimationManager.java +++ b/src/main/java/fr/openmc/core/features/chatanimations/ChatAnimationManager.java @@ -6,6 +6,7 @@ import fr.openmc.core.bootstrap.features.annotations.Credit; import fr.openmc.core.bootstrap.features.types.HasListeners; import fr.openmc.core.bootstrap.features.types.LoadAfterItemsAdder; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.features.chatanimations.contents.challenge.ChallengeListener; import fr.openmc.core.features.chatanimations.contents.challenge.types.*; import fr.openmc.core.features.chatanimations.contents.quizz.Quizz; @@ -21,7 +22,6 @@ import org.bukkit.block.BlockType; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; -import org.bukkit.event.Listener; import org.bukkit.inventory.ItemStack; import org.bukkit.scheduler.BukkitTask; @@ -46,11 +46,8 @@ public class ChatAnimationManager extends Feature implements LoadAfterItemsAdder private static BukkitTask endAnimationTask; @Override - public Set getListeners() { - return Set.of( - new QuizzListener(), - new ChallengeListener() - ); + public Set getListeners() { + return Set.of(QuizzListener::new, ChallengeListener::new); } @Override diff --git a/src/main/java/fr/openmc/core/features/city/CityManager.java b/src/main/java/fr/openmc/core/features/city/CityManager.java index 1343e0287..7865dc04e 100644 --- a/src/main/java/fr/openmc/core/features/city/CityManager.java +++ b/src/main/java/fr/openmc/core/features/city/CityManager.java @@ -15,6 +15,7 @@ import fr.openmc.core.bootstrap.features.types.HasDatabase; import fr.openmc.core.bootstrap.features.types.HasListeners; import fr.openmc.core.bootstrap.features.types.LoadAfterItemsAdder; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.features.city.commands.*; import fr.openmc.core.features.city.events.CityDeleteEvent; import fr.openmc.core.features.city.listeners.CityChatListener; @@ -36,7 +37,6 @@ import org.bukkit.Bukkit; import org.bukkit.Chunk; import org.bukkit.entity.Player; -import org.bukkit.event.Listener; import org.bukkit.inventory.ItemStack; import javax.annotation.Nullable; @@ -81,9 +81,9 @@ public Set getCommands() { } @Override - public Set getListeners() { + public Set getListeners() { return Set.of( - new CityChatListener() + CityChatListener::new ); } diff --git a/src/main/java/fr/openmc/core/features/city/ProtectionsManager.java b/src/main/java/fr/openmc/core/features/city/ProtectionsManager.java index cee2c887e..7c26618a0 100644 --- a/src/main/java/fr/openmc/core/features/city/ProtectionsManager.java +++ b/src/main/java/fr/openmc/core/features/city/ProtectionsManager.java @@ -25,22 +25,22 @@ public class ProtectionsManager { public static void init() { OMCPlugin.registerEvents( - new BlockProtection(), - new BowProtection(), - new DamageProtection(), - new EntityProtection(), - new ExplodeProtection(), - new FireProtection(), - new FishProtection(), - new HangingProtection(), - new InteractProtection(), - new LeashProtection(), - new MountProtection(), - new PistonProtection(), - new PotionProtection(), - new TeleportProtection(), - new TramplingProtection(), - new VehicleProtection() + BlockProtection::new, + BowProtection::new, + DamageProtection::new, + EntityProtection::new, + ExplodeProtection::new, + FireProtection::new, + FishProtection::new, + HangingProtection::new, + InteractProtection::new, + LeashProtection::new, + MountProtection::new, + PistonProtection::new, + PotionProtection::new, + TeleportProtection::new, + TramplingProtection::new, + VehicleProtection::new ); } diff --git a/src/main/java/fr/openmc/core/features/city/sub/mascots/MascotsManager.java b/src/main/java/fr/openmc/core/features/city/sub/mascots/MascotsManager.java index cabeac608..270d0f781 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/mascots/MascotsManager.java +++ b/src/main/java/fr/openmc/core/features/city/sub/mascots/MascotsManager.java @@ -11,6 +11,7 @@ import fr.openmc.core.bootstrap.features.types.HasCommands; import fr.openmc.core.bootstrap.features.types.HasDatabase; import fr.openmc.core.bootstrap.features.types.HasListeners; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.features.city.City; import fr.openmc.core.features.city.CityManager; import fr.openmc.core.features.city.sub.mascots.commands.AdminMascotsCommands; @@ -34,7 +35,6 @@ import org.bukkit.entity.EntityType; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; -import org.bukkit.event.Listener; import org.bukkit.inventory.EntityEquipment; import org.bukkit.persistence.PersistentDataContainer; import org.bukkit.persistence.PersistentDataType; @@ -86,17 +86,17 @@ public Set getCommands() { } @Override - public Set getListeners() { + public Set getListeners() { return Set.of( - new MascotsInteractionListener(), - new MascotsDamageListener(), - new MascotsDeathListener(), - new MascotsSleepingListener(), - new MascotImmuneListener(), - new MascotsTargetListener(), - new MascotsRenameListener(), - new MascotsPotionListener(), - new MascotsProtectionsListener() + MascotsInteractionListener::new, + MascotsDamageListener::new, + MascotsDeathListener::new, + MascotsSleepingListener::new, + MascotImmuneListener::new, + MascotsTargetListener::new, + MascotsRenameListener::new, + MascotsPotionListener::new, + MascotsProtectionsListener::new ); } diff --git a/src/main/java/fr/openmc/core/features/city/sub/mascots/listeners/MascotsProtectionsListener.java b/src/main/java/fr/openmc/core/features/city/sub/mascots/listeners/MascotsProtectionsListener.java index d3e27975a..f4e7c551a 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/mascots/listeners/MascotsProtectionsListener.java +++ b/src/main/java/fr/openmc/core/features/city/sub/mascots/listeners/MascotsProtectionsListener.java @@ -1,7 +1,7 @@ package fr.openmc.core.features.city.sub.mascots.listeners; import dev.lone.itemsadder.api.Events.CustomBlockPlaceEvent; -import fr.openmc.core.bootstrap.features.types.NotInUnitTest; +import fr.openmc.core.bootstrap.features.types.NotLoadInUnitTest; import fr.openmc.core.features.city.sub.mascots.utils.MascotUtils; import io.papermc.paper.event.entity.EntityMoveEvent; import org.bukkit.Location; @@ -18,7 +18,7 @@ import java.util.Collection; -public class MascotsProtectionsListener implements Listener, NotInUnitTest { +public class MascotsProtectionsListener implements Listener, NotLoadInUnitTest { @EventHandler public void onBlockPlace(CustomBlockPlaceEvent event) { Block block = event.getBlock(); diff --git a/src/main/java/fr/openmc/core/features/city/sub/mayor/managers/MayorManager.java b/src/main/java/fr/openmc/core/features/city/sub/mayor/managers/MayorManager.java index 9077232c6..2791a88ba 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/mayor/managers/MayorManager.java +++ b/src/main/java/fr/openmc/core/features/city/sub/mayor/managers/MayorManager.java @@ -75,28 +75,28 @@ public static void init() { // LISTENERS new PhaseListener(OMCPlugin.getInstance()); OMCPlugin.registerEvents( - new JoinListener(), - new RagePerk(), - new MinerPerk(), - new MascotFriendlyPerk(), - new DemonFruitPerk(), - new CityHunterPerk(), - new AyweniterPerk(), - new GPSTrackerPerk(), - new SymbiosisPerk(), - new ImpotCollection(), - new AgriculturalEssorPerk(), - new MineralRushPerk(), - new MilitaryDissuasion(), - new IdyllicRain()); + JoinListener::new, + RagePerk::new, + MinerPerk::new, + MascotFriendlyPerk::new, + DemonFruitPerk::new, + CityHunterPerk::new, + AyweniterPerk::new, + GPSTrackerPerk::new, + SymbiosisPerk::new, + ImpotCollection::new, + AgriculturalEssorPerk::new, + MineralRushPerk::new, + MilitaryDissuasion::new, + IdyllicRain::new); if (ItemsAdderHook.isEnable()) { OMCPlugin.registerEvents( - new UrneListener()); + UrneListener::new); } if (FancyNpcsHook.isEnable()) { OMCPlugin.registerEvents( - new NPCManager()); + NPCManager::new); } CommandsManager.getHandler().register( diff --git a/src/main/java/fr/openmc/core/features/city/sub/milestone/CityMilestoneManager.java b/src/main/java/fr/openmc/core/features/city/sub/milestone/CityMilestoneManager.java index 6e54a25e2..6c68eb0c8 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/milestone/CityMilestoneManager.java +++ b/src/main/java/fr/openmc/core/features/city/sub/milestone/CityMilestoneManager.java @@ -15,9 +15,9 @@ public static void init() { ); OMCPlugin.registerEvents( - new CooldownEndListener(), - new CityRequirementListener(), - new MemberJoinListener() + CooldownEndListener::new, + CityRequirementListener::new, + MemberJoinListener::new ); } } diff --git a/src/main/java/fr/openmc/core/features/city/sub/notation/NotationManager.java b/src/main/java/fr/openmc/core/features/city/sub/notation/NotationManager.java index 44667d0d2..1cbea8fec 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/notation/NotationManager.java +++ b/src/main/java/fr/openmc/core/features/city/sub/notation/NotationManager.java @@ -87,7 +87,7 @@ public static void init() { new AdminNotationCommands() ); OMCPlugin.registerEvents( - new PlayerJoinListener() + PlayerJoinListener::new ); scheduleMidnightTask(); loadTop10Cities(); diff --git a/src/main/java/fr/openmc/core/features/city/sub/war/WarManager.java b/src/main/java/fr/openmc/core/features/city/sub/war/WarManager.java index c4cad7320..9c79f2939 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/war/WarManager.java +++ b/src/main/java/fr/openmc/core/features/city/sub/war/WarManager.java @@ -55,7 +55,7 @@ public static void init() { ); OMCPlugin.registerEvents( - new WarKillListener() + WarKillListener::new ); loadWarHistories(); diff --git a/src/main/java/fr/openmc/core/features/cube/multiblocks/MultiBlockManager.java b/src/main/java/fr/openmc/core/features/cube/multiblocks/MultiBlockManager.java index f8c98451d..1e18f78e2 100644 --- a/src/main/java/fr/openmc/core/features/cube/multiblocks/MultiBlockManager.java +++ b/src/main/java/fr/openmc/core/features/cube/multiblocks/MultiBlockManager.java @@ -5,8 +5,9 @@ import fr.openmc.core.bootstrap.features.types.HasCommands; import fr.openmc.core.bootstrap.features.types.HasListeners; import fr.openmc.core.bootstrap.features.types.LoadAfterItemsAdder; -import fr.openmc.core.bootstrap.features.types.NotInUnitTest; +import fr.openmc.core.bootstrap.features.types.NotLoadInUnitTest; import fr.openmc.core.bootstrap.integration.OMCLogger; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.features.cube.Cube; import fr.openmc.core.features.cube.commands.CubeCommands; import fr.openmc.core.features.cube.listeners.CubeListener; @@ -20,13 +21,12 @@ import org.bukkit.World; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.event.Listener; import java.io.File; import java.io.IOException; import java.util.*; -public class MultiBlockManager extends Feature implements LoadAfterItemsAdder, NotInUnitTest, HasListeners, HasCommands { +public class MultiBlockManager extends Feature implements LoadAfterItemsAdder, NotLoadInUnitTest, HasListeners, HasCommands { @Getter public static final List multiBlocks = new ArrayList<>(); private static FileConfiguration config = null; @@ -51,11 +51,11 @@ public Set getCommands() { } @Override - public Set getListeners() { + public Set getListeners() { return Set.of( - new CubeListener(), - new MultiBlocksListeners(), - new RepulseEffectListener() + CubeListener::new, + MultiBlocksListeners::new, + RepulseEffectListener::new ); } diff --git a/src/main/java/fr/openmc/core/features/dimopener/DimensionOpenerManager.java b/src/main/java/fr/openmc/core/features/dimopener/DimensionOpenerManager.java index a54316ba5..e927baf7c 100644 --- a/src/main/java/fr/openmc/core/features/dimopener/DimensionOpenerManager.java +++ b/src/main/java/fr/openmc/core/features/dimopener/DimensionOpenerManager.java @@ -9,6 +9,7 @@ import fr.openmc.core.bootstrap.features.types.HasListeners; import fr.openmc.core.bootstrap.features.types.LoadAfterItemsAdder; import fr.openmc.core.bootstrap.integration.OMCLogger; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.features.dimopener.commands.DimensionCommands; import fr.openmc.core.features.dimopener.data.DimensionData; import fr.openmc.core.features.dimopener.data.StepDimensionData; @@ -27,7 +28,6 @@ import org.bukkit.Material; import org.bukkit.WorldCreator; import org.bukkit.entity.Player; -import org.bukkit.event.Listener; import org.bukkit.inventory.ItemStack; import org.bukkit.scheduler.BukkitTask; import org.jetbrains.annotations.NotNull; @@ -377,9 +377,7 @@ public Set getCommands() { } @Override - public Set getListeners() { - return Set.of( - new DimensionAccessListener() - ); + public Set getListeners() { + return Set.of(DimensionAccessListener::new); } } diff --git a/src/main/java/fr/openmc/core/features/displays/TabList.java b/src/main/java/fr/openmc/core/features/displays/TabList.java index 05764e3d2..3fd9c67c4 100644 --- a/src/main/java/fr/openmc/core/features/displays/TabList.java +++ b/src/main/java/fr/openmc/core/features/displays/TabList.java @@ -11,7 +11,7 @@ import fr.openmc.core.OMCPlugin; import fr.openmc.core.bootstrap.features.Feature; import fr.openmc.core.bootstrap.features.types.LoadIfEnable; -import fr.openmc.core.bootstrap.features.types.NotInUnitTest; +import fr.openmc.core.bootstrap.features.types.NotLoadInUnitTest; import fr.openmc.core.features.dream.DreamUtils; import fr.openmc.core.hooks.ProtocolLibHook; import fr.openmc.core.hooks.itemsadder.ItemsAdderHook; @@ -29,7 +29,7 @@ import java.util.List; import java.util.UUID; -public class TabList extends Feature implements NotInUnitTest, LoadIfEnable { +public class TabList extends Feature implements NotLoadInUnitTest, LoadIfEnable { private static ProtocolManager protocolManager = null; @Override diff --git a/src/main/java/fr/openmc/core/features/displays/holograms/HologramLoader.java b/src/main/java/fr/openmc/core/features/displays/holograms/HologramLoader.java index fb557f3cb..e0b63fcdb 100644 --- a/src/main/java/fr/openmc/core/features/displays/holograms/HologramLoader.java +++ b/src/main/java/fr/openmc/core/features/displays/holograms/HologramLoader.java @@ -5,7 +5,7 @@ import fr.openmc.core.bootstrap.features.annotations.Credit; import fr.openmc.core.bootstrap.features.types.HasCommands; import fr.openmc.core.bootstrap.features.types.LoadAfterItemsAdder; -import fr.openmc.core.bootstrap.features.types.NotInUnitTest; +import fr.openmc.core.bootstrap.features.types.NotLoadInUnitTest; import fr.openmc.core.bootstrap.integration.OMCLogger; import fr.openmc.core.features.displays.holograms.commands.HologramCommand; import fr.openmc.core.features.milestones.tutorial.TutorialHologram; @@ -25,7 +25,7 @@ import java.util.Set; @Credit(developers = {"iambibi_", "miseur"}) -public class HologramLoader extends Feature implements NotInUnitTest, LoadAfterItemsAdder, HasCommands { +public class HologramLoader extends Feature implements NotLoadInUnitTest, LoadAfterItemsAdder, HasCommands { public static final HashMap displays = new HashMap<>(); private static BukkitTask taskTimer; diff --git a/src/main/java/fr/openmc/core/features/displays/scoreboards/ScoreboardManager.java b/src/main/java/fr/openmc/core/features/displays/scoreboards/ScoreboardManager.java index 56e67b58d..b62818f6c 100644 --- a/src/main/java/fr/openmc/core/features/displays/scoreboards/ScoreboardManager.java +++ b/src/main/java/fr/openmc/core/features/displays/scoreboards/ScoreboardManager.java @@ -7,7 +7,8 @@ import fr.openmc.core.bootstrap.features.Feature; import fr.openmc.core.bootstrap.features.types.HasListeners; import fr.openmc.core.bootstrap.features.types.LoadIfEnable; -import fr.openmc.core.bootstrap.features.types.NotInUnitTest; +import fr.openmc.core.bootstrap.features.types.NotLoadInUnitTest; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.features.displays.scoreboards.sb.CityWarScoreboard; import fr.openmc.core.features.displays.scoreboards.sb.MainScoreboard; import fr.openmc.core.features.displays.scoreboards.sb.RestartScoreboard; @@ -19,7 +20,7 @@ import java.util.*; -public class ScoreboardManager extends Feature implements Listener, NotInUnitTest, LoadIfEnable, HasListeners { +public class ScoreboardManager extends Feature implements Listener, NotLoadInUnitTest, LoadIfEnable, HasListeners { public static final ObjectCacheRepository boardCache = new ObjectCacheRepositoryImpl(); private static final List scoreboards = new ArrayList<>(); private static GlobalTeamManager globalTeamManager; @@ -47,10 +48,8 @@ public void init() { } @Override - public Set getListeners() { - return Set.of( - new ScoreboardListener() - ); + public Set getListeners() { + return Set.of(ScoreboardListener::new); } public static void updateAllBoards() { diff --git a/src/main/java/fr/openmc/core/features/dream/DreamManager.java b/src/main/java/fr/openmc/core/features/dream/DreamManager.java index f611361ca..965779310 100644 --- a/src/main/java/fr/openmc/core/features/dream/DreamManager.java +++ b/src/main/java/fr/openmc/core/features/dream/DreamManager.java @@ -10,7 +10,7 @@ import fr.openmc.core.bootstrap.features.types.HasDatabase; import fr.openmc.core.bootstrap.features.types.HasListeners; import fr.openmc.core.bootstrap.features.types.LoadAfterItemsAdder; -import fr.openmc.core.bootstrap.integration.OMCLogger; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.commands.utils.SpawnManager; import fr.openmc.core.features.city.City; import fr.openmc.core.features.city.CityManager; @@ -46,7 +46,6 @@ import org.bukkit.World; import org.bukkit.block.Biome; import org.bukkit.entity.Player; -import org.bukkit.event.Listener; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory; @@ -101,28 +100,28 @@ public Set getCommands() { // ** LISTENERS ** @Override - public Set getListeners() { + public Set getListeners() { return Set.of( - new PlayerChangeWorldListener(), - new PlayerJoinListener(), - new PlayerQuitListener(), - new PlayerDeathListener(), - new PlayerCommandListener(), - new PlayerDreamTimeEndListener(), - new PlayerSleepListener(), - new PlayerEnteredBiome(), - new PlayerObtainOrb(), - new PlayerDamageListener(), - new ReplaceBlockListener(), - new PlayerEatSomnifere(), - new CloudStructureDispenserListener(), - new CraftingConvertorListener(), - new DreamItemEquipListener(), - new SingularityCraftListener(), - new PlayerDreamStructureListener(), - new PlayerFoodChangeListener(), - new DreamLootListener(), - new PlayerPickupListener() + PlayerChangeWorldListener::new, + PlayerJoinListener::new, + PlayerQuitListener::new, + PlayerDeathListener::new, + PlayerCommandListener::new, + PlayerDreamTimeEndListener::new, + PlayerSleepListener::new, + PlayerEnteredBiome::new, + PlayerObtainOrb::new, + PlayerDamageListener::new, + ReplaceBlockListener::new, + PlayerEatSomnifere::new, + CloudStructureDispenserListener::new, + CraftingConvertorListener::new, + DreamItemEquipListener::new, + SingularityCraftListener::new, + PlayerDreamStructureListener::new, + PlayerFoodChangeListener::new, + DreamLootListener::new, + PlayerPickupListener::new ); } @@ -155,11 +154,11 @@ private static void loadAllPlayerSaveData() { try { savePlayerDao.delete(playerData); } catch (SQLException e) { - OMCLogger.error("Cannot load player save data", e); + fr.openmc.core.bootstrap.integration.OMCLogger.error("Cannot load player save data", e); } }); } catch (SQLException e) { - OMCLogger.error("Cannot load player save data", e); + fr.openmc.core.bootstrap.integration.OMCLogger.error("Cannot load player save data", e); } } @@ -168,7 +167,7 @@ public static void saveAllPlayerSaveData() { try { savePlayerDao.createOrUpdate(playerSave); } catch (SQLException e) { - OMCLogger.error("Cannot save player save data for player {}", uuid, e); + fr.openmc.core.bootstrap.integration.OMCLogger.error("Cannot save player save data for player {}", uuid, e); } }); } @@ -181,7 +180,7 @@ private static void loadAllDreamPlayerData() { cacheDreamPlayer.put(playerData.getPlayerUUID(), playerData) ); } catch (SQLException e) { - OMCLogger.error("Cannot load dream player data", e); + fr.openmc.core.bootstrap.integration.OMCLogger.error("Cannot load dream player data", e); } } @@ -190,7 +189,7 @@ public static void saveAllDreamPlayerData() { try { dreamPlayerDao.createOrUpdate(dbDreamPlayer); } catch (SQLException e) { - OMCLogger.error("Cannot save dream player data", e); + fr.openmc.core.bootstrap.integration.OMCLogger.error("Cannot save dream player data", e); } }); } @@ -209,7 +208,7 @@ public static void saveDreamPlayerData(DBDreamPlayer dbDreamPlayer) { } } catch (SQLException e) { - OMCLogger.error("Cannot save player save data", e); + fr.openmc.core.bootstrap.integration.OMCLogger.error("Cannot save player save data", e); } } @@ -260,7 +259,7 @@ public static void removeDreamPlayer(Player player, Location dreamLocation) { playerSaveData.remove(player.getUniqueId()); if (dreamPlayer == null) { - OMCLogger.warn("Cannot remove player {}({}) from Dream", player.getName(), player.getUniqueId()); + fr.openmc.core.bootstrap.integration.OMCLogger.warn("Cannot remove player {}({}) from Dream", player.getName(), player.getUniqueId()); return; } @@ -299,7 +298,7 @@ public static void preloadSavePlayer(Player player, Location dreamLocation) thro if (playerSave == null) { player.teleportAsync(SpawnManager.getSpawnLocation()); - OMCLogger.warn("Nothing to load from {}({})", player.getName(), player.getUniqueId()); + fr.openmc.core.bootstrap.integration.OMCLogger.warn("Nothing to load from {}({})", player.getName(), player.getUniqueId()); return; } PlayerInventory dreamInventory = player.getInventory(); @@ -353,7 +352,7 @@ public static void setMaxTime(Player player, long maxTime) { DreamManager.saveDreamPlayerData(dreamPlayer); cache = DreamManager.getCacheDreamPlayer(player); if (cache == null) { - OMCLogger.warn("player ({}) had no cache even after saving it. [DreamManager#setMaxTime]", player.getUniqueId()); + fr.openmc.core.bootstrap.integration.OMCLogger.warn("player ({}) had no cache even after saving it. [DreamManager#setMaxTime]", player.getUniqueId()); return; } } diff --git a/src/main/java/fr/openmc/core/features/dream/mecanism/altar/AltarManager.java b/src/main/java/fr/openmc/core/features/dream/mecanism/altar/AltarManager.java index 03427adde..9a48eef06 100644 --- a/src/main/java/fr/openmc/core/features/dream/mecanism/altar/AltarManager.java +++ b/src/main/java/fr/openmc/core/features/dream/mecanism/altar/AltarManager.java @@ -33,7 +33,7 @@ public class AltarManager { public static void init() { new AltarCheckTask().runTaskTimer(OMCPlugin.getInstance(), 0L, 40L); new AltarParticlesTask().runTaskTimer(OMCPlugin.getInstance(), 0L, 2L); - OMCPlugin.registerEvents(new AltarListener()); + OMCPlugin.registerEvents(AltarListener::new); } public static boolean hasItem(Location loc) { diff --git a/src/main/java/fr/openmc/core/features/dream/mecanism/blocksdrops/DreamBlocksDropsManager.java b/src/main/java/fr/openmc/core/features/dream/mecanism/blocksdrops/DreamBlocksDropsManager.java index 35ee802fc..8fc83fd86 100644 --- a/src/main/java/fr/openmc/core/features/dream/mecanism/blocksdrops/DreamBlocksDropsManager.java +++ b/src/main/java/fr/openmc/core/features/dream/mecanism/blocksdrops/DreamBlocksDropsManager.java @@ -13,7 +13,7 @@ public class DreamBlocksDropsManager { private final static HashMap customDrops = new HashMap<>(); public static void init() { - OMCPlugin.registerEvents(new ChangeBlockDropsListener()); + OMCPlugin.registerEvents(ChangeBlockDropsListener::new); registerCustomDrop(Material.SCULK, DreamItemRegistry.CORRUPTED_SCULK); registerCustomDrop(Material.PALE_OAK_WOOD, DreamItemRegistry.OLD_PALE_OAK_WOOD); diff --git a/src/main/java/fr/openmc/core/features/dream/mecanism/cloudfishing/CloudFishingManager.java b/src/main/java/fr/openmc/core/features/dream/mecanism/cloudfishing/CloudFishingManager.java index 4d17a794e..1bf647f79 100644 --- a/src/main/java/fr/openmc/core/features/dream/mecanism/cloudfishing/CloudFishingManager.java +++ b/src/main/java/fr/openmc/core/features/dream/mecanism/cloudfishing/CloudFishingManager.java @@ -27,7 +27,7 @@ public class CloudFishingManager { public static void init() { OMCPlugin.registerEvents( - new PlayerFishListener() + PlayerFishListener::new ); } diff --git a/src/main/java/fr/openmc/core/features/dream/mecanism/cold/ColdManager.java b/src/main/java/fr/openmc/core/features/dream/mecanism/cold/ColdManager.java index 8a27902d8..e0f06080c 100644 --- a/src/main/java/fr/openmc/core/features/dream/mecanism/cold/ColdManager.java +++ b/src/main/java/fr/openmc/core/features/dream/mecanism/cold/ColdManager.java @@ -34,7 +34,7 @@ public class ColdManager { public static void init() { OMCPlugin.registerEvents( - new ColdListener() + ColdListener::new ); } diff --git a/src/main/java/fr/openmc/core/features/dream/mecanism/metaldetector/MetalDetectorManager.java b/src/main/java/fr/openmc/core/features/dream/mecanism/metaldetector/MetalDetectorManager.java index 0e67fc13d..0e088ae9e 100644 --- a/src/main/java/fr/openmc/core/features/dream/mecanism/metaldetector/MetalDetectorManager.java +++ b/src/main/java/fr/openmc/core/features/dream/mecanism/metaldetector/MetalDetectorManager.java @@ -15,7 +15,7 @@ public class MetalDetectorManager { public static void init() { OMCPlugin.registerEvents( - new MetalDetectorListener() + MetalDetectorListener::new ); } } diff --git a/src/main/java/fr/openmc/core/features/dream/mecanism/sfx/ghost/DreamGhostManager.java b/src/main/java/fr/openmc/core/features/dream/mecanism/sfx/ghost/DreamGhostManager.java index ee0d834b3..819650f15 100644 --- a/src/main/java/fr/openmc/core/features/dream/mecanism/sfx/ghost/DreamGhostManager.java +++ b/src/main/java/fr/openmc/core/features/dream/mecanism/sfx/ghost/DreamGhostManager.java @@ -34,7 +34,7 @@ public class DreamGhostManager { public static void init() { OMCPlugin.registerEvents( - new DreamPlayerEnteredListener() + DreamPlayerEnteredListener::new ); } diff --git a/src/main/java/fr/openmc/core/features/dream/mecanism/tradernpc/GlaciteNpcManager.java b/src/main/java/fr/openmc/core/features/dream/mecanism/tradernpc/GlaciteNpcManager.java index 60a6a55ec..b91b89ef3 100644 --- a/src/main/java/fr/openmc/core/features/dream/mecanism/tradernpc/GlaciteNpcManager.java +++ b/src/main/java/fr/openmc/core/features/dream/mecanism/tradernpc/GlaciteNpcManager.java @@ -19,7 +19,7 @@ public class GlaciteNpcManager implements Listener { public static void init() { OMCPlugin.registerEvents( - new GlaciteTraderInteractListener() + GlaciteTraderInteractListener::new ); if (DreamDimensionManager.hasSeedChanged()) { OMCLogger.info("[GlaciteNpcManager] Seed changée, reset des trader glacite NPC !"); diff --git a/src/main/java/fr/openmc/core/features/dream/registries/DreamBlocksRegistry.java b/src/main/java/fr/openmc/core/features/dream/registries/DreamBlocksRegistry.java index 561330084..4ee1d5df6 100644 --- a/src/main/java/fr/openmc/core/features/dream/registries/DreamBlocksRegistry.java +++ b/src/main/java/fr/openmc/core/features/dream/registries/DreamBlocksRegistry.java @@ -31,9 +31,9 @@ public class DreamBlocksRegistry { public static void init() { OMCPlugin.registerEvents( - new DreamBlocksListeners(), - new CloudVault(), - new BossCloudSpawner() + DreamBlocksListeners::new, + CloudVault::new, + BossCloudSpawner::new ); ConfigurationSerialization.registerClass(DreamBlock.class); diff --git a/src/main/java/fr/openmc/core/features/dream/registries/DreamItemRegistry.java b/src/main/java/fr/openmc/core/features/dream/registries/DreamItemRegistry.java index 72aa61381..615651dba 100644 --- a/src/main/java/fr/openmc/core/features/dream/registries/DreamItemRegistry.java +++ b/src/main/java/fr/openmc/core/features/dream/registries/DreamItemRegistry.java @@ -142,8 +142,8 @@ public static void init() { ); OMCPlugin.registerEvents( - new DreamItemConvertorListener(), - new DreamItemDropsListener() + DreamItemConvertorListener::new, + DreamItemDropsListener::new ); } diff --git a/src/main/java/fr/openmc/core/features/dream/registries/DreamMobsRegistry.java b/src/main/java/fr/openmc/core/features/dream/registries/DreamMobsRegistry.java index e0e408ac9..1a5b7660a 100644 --- a/src/main/java/fr/openmc/core/features/dream/registries/DreamMobsRegistry.java +++ b/src/main/java/fr/openmc/core/features/dream/registries/DreamMobsRegistry.java @@ -71,10 +71,10 @@ private static CustomMobEntry create(CustomMobEntry entry) { } public static void init() { OMCPlugin.registerEvents( - new PlainsMobSpawningListener(), - new SoulForestMobSpawningListener(), - new MudBeachMobSpawningListener(), - new DreamMobDamageListener() + PlainsMobSpawningListener::new, + SoulForestMobSpawningListener::new, + MudBeachMobSpawningListener::new, + DreamMobDamageListener::new ); OMCRegistry.CUSTOM_MOBS.register(DREAM_MOB_REGISTRY); diff --git a/src/main/java/fr/openmc/core/features/events/contents/dailyevents/DailyEventsManager.java b/src/main/java/fr/openmc/core/features/events/contents/dailyevents/DailyEventsManager.java index 32c398862..a2c4e834e 100644 --- a/src/main/java/fr/openmc/core/features/events/contents/dailyevents/DailyEventsManager.java +++ b/src/main/java/fr/openmc/core/features/events/contents/dailyevents/DailyEventsManager.java @@ -7,12 +7,9 @@ import fr.openmc.core.OMCPlugin; import fr.openmc.core.bootstrap.features.Feature; import fr.openmc.core.bootstrap.features.annotations.Credit; -import fr.openmc.core.bootstrap.features.types.HasCommands; -import fr.openmc.core.bootstrap.features.types.HasDatabase; -import fr.openmc.core.bootstrap.features.types.HasListeners; -import fr.openmc.core.bootstrap.features.types.LoadAfterItemsAdder; import fr.openmc.core.bootstrap.features.types.*; import fr.openmc.core.bootstrap.integration.OMCLogger; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.features.events.contents.dailyevents.commands.DailyEventCommand; import fr.openmc.core.features.events.contents.dailyevents.contents.bloodynight.BloodyNightEvent; import fr.openmc.core.features.events.contents.dailyevents.contents.goldenharvest.GoldenHarvestEvent; @@ -25,7 +22,6 @@ import fr.openmc.core.features.events.contents.dailyevents.tasks.ShowBeginningEventTask; import fr.openmc.core.utils.RandomUtils; import fr.openmc.core.utils.text.DateUtils; -import org.bukkit.event.Listener; import org.bukkit.scheduler.BukkitTask; import java.sql.SQLException; @@ -90,9 +86,9 @@ public void initDB(ConnectionSource connectionSource) throws SQLException { } @Override - public Set getListeners() { - Set listeners = new HashSet<>(Set.of( - new DailyEventAmbientListeners() + public Set getListeners() { + Set listeners = new HashSet<>(Set.of( + DailyEventAmbientListeners::new )); for (DailyEvent event : EVENTS) { diff --git a/src/main/java/fr/openmc/core/features/events/contents/dailyevents/contents/bloodynight/BloodyNightManager.java b/src/main/java/fr/openmc/core/features/events/contents/dailyevents/contents/bloodynight/BloodyNightManager.java index 2f9eb8414..fcb3e8a7d 100644 --- a/src/main/java/fr/openmc/core/features/events/contents/dailyevents/contents/bloodynight/BloodyNightManager.java +++ b/src/main/java/fr/openmc/core/features/events/contents/dailyevents/contents/bloodynight/BloodyNightManager.java @@ -4,6 +4,7 @@ import fr.openmc.core.OMCRegistry; import fr.openmc.core.bootstrap.features.Feature; import fr.openmc.core.bootstrap.features.types.HasListeners; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.features.events.contents.dailyevents.contents.bloodynight.contents.mobs.bloodytypes.AncientMonster; import fr.openmc.core.features.events.contents.dailyevents.contents.bloodynight.contents.mobs.bloodytypes.CorruptedMonster; import fr.openmc.core.features.events.contents.dailyevents.contents.bloodynight.contents.mobs.bloodytypes.CursedMonster; @@ -17,7 +18,6 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Monster; -import org.bukkit.event.Listener; import org.bukkit.scheduler.BukkitTask; import java.util.Set; @@ -35,10 +35,8 @@ public class BloodyNightManager extends Feature implements HasListeners { private static long lastTime; @Override - public Set getListeners() { - return Set.of( - new MonsterSpawnListener() - ); + public Set getListeners() { + return Set.of(MonsterSpawnListener::new); } public static void start(BloodyNightEvent event) { diff --git a/src/main/java/fr/openmc/core/features/events/contents/dailyevents/contents/goldenharvest/GoldenHarvestManager.java b/src/main/java/fr/openmc/core/features/events/contents/dailyevents/contents/goldenharvest/GoldenHarvestManager.java index 34728d163..c5f909f38 100644 --- a/src/main/java/fr/openmc/core/features/events/contents/dailyevents/contents/goldenharvest/GoldenHarvestManager.java +++ b/src/main/java/fr/openmc/core/features/events/contents/dailyevents/contents/goldenharvest/GoldenHarvestManager.java @@ -4,6 +4,7 @@ import fr.openmc.core.OMCRegistry; import fr.openmc.core.bootstrap.features.Feature; import fr.openmc.core.bootstrap.features.types.HasListeners; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.features.events.contents.dailyevents.contents.goldenharvest.listeners.*; import fr.openmc.core.features.events.contents.dailyevents.contents.goldenharvest.obesecrops.ObeseCropsRegistry; import fr.openmc.core.hooks.itemsadder.behaviours.BehaviourUpBlock; @@ -12,7 +13,6 @@ import fr.openmc.core.registry.loottable.loots.ItemLoot; import org.bukkit.block.Block; import org.bukkit.block.BlockType; -import org.bukkit.event.Listener; import java.util.HashMap; import java.util.Map; @@ -40,13 +40,13 @@ public void save() { } @Override - public Set getListeners() { + public Set getListeners() { return Set.of( - new GoldenCropsListener(), - new ObeseCropsListener(), - new FixGoldenBlockListener(), - new PlantationLootListener(), - new PeeledObeseCropsListener() + GoldenCropsListener::new, + ObeseCropsListener::new, + FixGoldenBlockListener::new, + PlantationLootListener::new, + PeeledObeseCropsListener::new ); } diff --git a/src/main/java/fr/openmc/core/features/events/contents/dailyevents/contents/miraculousfishing/MiraculousFishingManager.java b/src/main/java/fr/openmc/core/features/events/contents/dailyevents/contents/miraculousfishing/MiraculousFishingManager.java index 4ffa61c50..2e8f656b5 100644 --- a/src/main/java/fr/openmc/core/features/events/contents/dailyevents/contents/miraculousfishing/MiraculousFishingManager.java +++ b/src/main/java/fr/openmc/core/features/events/contents/dailyevents/contents/miraculousfishing/MiraculousFishingManager.java @@ -3,6 +3,7 @@ import fr.openmc.core.OMCPlugin; import fr.openmc.core.bootstrap.features.Feature; import fr.openmc.core.bootstrap.features.types.HasListeners; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.features.events.contents.dailyevents.contents.miraculousfishing.listeners.EatKebabFermentedListener; import fr.openmc.core.features.events.contents.dailyevents.contents.miraculousfishing.listeners.PlayerFishListener; import fr.openmc.core.features.events.contents.dailyevents.contents.miraculousfishing.listeners.PlayerNotPickUpListener; @@ -17,7 +18,6 @@ import org.bukkit.entity.Item; import org.bukkit.entity.Mob; import org.bukkit.entity.Player; -import org.bukkit.event.Listener; import org.bukkit.inventory.ItemStack; import org.bukkit.persistence.PersistentDataType; import org.bukkit.util.Vector; @@ -29,11 +29,11 @@ public class MiraculousFishingManager extends Feature implements HasListeners { public static final NamespacedKey NOT_PICKUP_KEY = new NamespacedKey(OMCPlugin.getInstance(), "not_pickup"); @Override - public Set getListeners() { + public Set getListeners() { return Set.of( - new PlayerFishListener(), - new PlayerNotPickUpListener(), - new EatKebabFermentedListener() + PlayerFishListener::new, + PlayerNotPickUpListener::new, + EatKebabFermentedListener::new ); } diff --git a/src/main/java/fr/openmc/core/features/events/contents/halloween/managers/HalloweenManager.java b/src/main/java/fr/openmc/core/features/events/contents/halloween/managers/HalloweenManager.java index 8aa70af50..e83ff3419 100644 --- a/src/main/java/fr/openmc/core/features/events/contents/halloween/managers/HalloweenManager.java +++ b/src/main/java/fr/openmc/core/features/events/contents/halloween/managers/HalloweenManager.java @@ -14,6 +14,7 @@ import fr.openmc.core.bootstrap.features.types.HasDatabase; import fr.openmc.core.bootstrap.features.types.HasListeners; import fr.openmc.core.bootstrap.integration.OMCLogger; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.features.economy.EconomyManager; import fr.openmc.core.features.events.contents.halloween.commands.HalloweenCommands; import fr.openmc.core.features.events.contents.halloween.listeners.HalloweenNPCListener; @@ -38,7 +39,6 @@ import org.bukkit.OfflinePlayer; import org.bukkit.Registry; import org.bukkit.damage.DamageType; -import org.bukkit.event.Listener; import org.bukkit.inventory.ItemStack; import org.bukkit.scheduler.BukkitRunnable; @@ -62,10 +62,8 @@ public Set getCommands() { } @Override - public Set getListeners() { - return Set.of( - new HalloweenNPCListener() - ); + public Set getListeners() { + return Set.of(HalloweenNPCListener::new); } public static void depositPumpkins(UUID playerUUID, int amount) { diff --git a/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/managers/ContestManager.java b/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/managers/ContestManager.java index 5f68e104e..aa0cf0d28 100644 --- a/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/managers/ContestManager.java +++ b/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/managers/ContestManager.java @@ -87,7 +87,7 @@ public void init() { // ** LISTENERS ** if (ItemsAdderHook.isEnable()) { OMCPlugin.registerEvents( - new ContestIntractEvents() + ContestIntractEvents::new ); } diff --git a/src/main/java/fr/openmc/core/features/itemsadder/SpawnerExtractorListener.java b/src/main/java/fr/openmc/core/features/itemsadder/SpawnerExtractorListener.java index b7ee27146..eca7ced01 100644 --- a/src/main/java/fr/openmc/core/features/itemsadder/SpawnerExtractorListener.java +++ b/src/main/java/fr/openmc/core/features/itemsadder/SpawnerExtractorListener.java @@ -2,6 +2,7 @@ import dev.lone.itemsadder.api.CustomStack; import fr.openmc.core.OMCPlugin; +import fr.openmc.core.bootstrap.features.types.NotLoadInUnitTest; import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; import org.bukkit.Material; @@ -19,7 +20,7 @@ import java.util.concurrent.ThreadLocalRandom; -public class SpawnerExtractorListener implements Listener { +public class SpawnerExtractorListener implements Listener, NotLoadInUnitTest { private static final double FAILURE_CHANCE = 0.4; // 40% chance d’échec private static final NamespacedKey KEY_SPAWNER_MOB = new NamespacedKey(OMCPlugin.getInstance(), "spawner_extractor_mob_spawner"); diff --git a/src/main/java/fr/openmc/core/features/itemsadder/elevator/ElevatorManager.java b/src/main/java/fr/openmc/core/features/itemsadder/elevator/ElevatorManager.java index 684e291ca..6edee3a95 100644 --- a/src/main/java/fr/openmc/core/features/itemsadder/elevator/ElevatorManager.java +++ b/src/main/java/fr/openmc/core/features/itemsadder/elevator/ElevatorManager.java @@ -5,18 +5,20 @@ import fr.openmc.core.bootstrap.features.Feature; import fr.openmc.core.bootstrap.features.annotations.Credit; import fr.openmc.core.bootstrap.features.types.HasListeners; -import fr.openmc.core.utils.world.LocationUtils; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Tag; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.entity.Player; -import org.bukkit.event.Listener; import org.jetbrains.annotations.NotNull; import org.joml.Vector2i; -import java.util.*; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; @Credit(developers = {"Nocolm"}, graphist = {"Gexary"}) public class ElevatorManager extends Feature implements HasListeners { @@ -191,9 +193,7 @@ public static boolean isSafeGround(Location loc) { } @Override - public Set getListeners() { - return Set.of( - new ElevatorBlockListener() - ); + public Set getListeners() { + return Set.of(ElevatorBlockListener::new); } } diff --git a/src/main/java/fr/openmc/core/features/leaderboards/LeaderboardManager.java b/src/main/java/fr/openmc/core/features/leaderboards/LeaderboardManager.java index a259c1c37..54e4a796b 100644 --- a/src/main/java/fr/openmc/core/features/leaderboards/LeaderboardManager.java +++ b/src/main/java/fr/openmc/core/features/leaderboards/LeaderboardManager.java @@ -5,7 +5,7 @@ import fr.openmc.core.bootstrap.features.annotations.Credit; import fr.openmc.core.bootstrap.features.types.HasCommands; import fr.openmc.core.bootstrap.features.types.LoadAfterItemsAdder; -import fr.openmc.core.bootstrap.features.types.NotInUnitTest; +import fr.openmc.core.bootstrap.features.types.NotLoadInUnitTest; import fr.openmc.core.features.city.City; import fr.openmc.core.features.city.CityManager; import fr.openmc.core.features.economy.BankManager; @@ -41,7 +41,7 @@ import java.util.*; @Credit(developers = {"miseur"}) -public class LeaderboardManager extends Feature implements NotInUnitTest, LoadAfterItemsAdder, HasCommands { +public class LeaderboardManager extends Feature implements NotLoadInUnitTest, LoadAfterItemsAdder, HasCommands { @Getter private static final Map> githubContributorsMap = new TreeMap<>(); @Getter diff --git a/src/main/java/fr/openmc/core/features/mainmenu/MainMenu.java b/src/main/java/fr/openmc/core/features/mainmenu/MainMenu.java index a5983c947..203e42281 100644 --- a/src/main/java/fr/openmc/core/features/mainmenu/MainMenu.java +++ b/src/main/java/fr/openmc/core/features/mainmenu/MainMenu.java @@ -7,7 +7,7 @@ import fr.openmc.core.bootstrap.features.types.HasCommands; import fr.openmc.core.bootstrap.features.types.LoadAfterItemsAdder; import fr.openmc.core.bootstrap.features.types.LoadIfEnable; -import fr.openmc.core.bootstrap.features.types.NotInUnitTest; +import fr.openmc.core.bootstrap.features.types.NotLoadInUnitTest; import fr.openmc.core.features.mainmenu.commands.MainMenuCommand; import fr.openmc.core.features.mainmenu.listeners.MainMenuListener; import fr.openmc.core.features.mainmenu.menus.Page1; @@ -17,7 +17,7 @@ import java.util.Set; @Credit(developers = {"miseur"}, graphist = {"Tfloa"}) -public class MainMenu extends Feature implements NotInUnitTest, LoadAfterItemsAdder, LoadIfEnable, HasCommands { +public class MainMenu extends Feature implements NotLoadInUnitTest, LoadAfterItemsAdder, LoadIfEnable, HasCommands { @Override public void init() { new MainMenuListener(OMCPlugin.getInstance()); diff --git a/src/main/java/fr/openmc/core/features/milestones/MilestonesManager.java b/src/main/java/fr/openmc/core/features/milestones/MilestonesManager.java index 5989eb961..acc45ed05 100644 --- a/src/main/java/fr/openmc/core/features/milestones/MilestonesManager.java +++ b/src/main/java/fr/openmc/core/features/milestones/MilestonesManager.java @@ -12,6 +12,7 @@ import fr.openmc.core.bootstrap.features.types.HasListeners; import fr.openmc.core.bootstrap.features.types.LoadAfterItemsAdder; import fr.openmc.core.bootstrap.integration.OMCLogger; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.features.displays.bossbar.BossbarManager; import fr.openmc.core.features.milestones.bossbar.MilestoneBossBar; import fr.openmc.core.features.milestones.commands.MilestoneCommand; @@ -48,10 +49,8 @@ public Set getCommands() { } @Override - public Set getListeners() { - return Set.of( - new PlayerJoinListener() - ); + public Set getListeners() { + return Set.of(PlayerJoinListener::new); } @Override @@ -215,7 +214,7 @@ public static void registerMilestone(Milestone milestone) { public static void registerQuestMilestone(Milestone milestone) { for (Quest quest : milestone.getSteps()) { if (quest instanceof Listener listener) { - OMCPlugin.registerEvents(listener); + OMCPlugin.getInstance().getServer().getPluginManager().registerEvents(listener, OMCPlugin.getInstance()); } } } diff --git a/src/main/java/fr/openmc/core/features/profile/ProfileManager.java b/src/main/java/fr/openmc/core/features/profile/ProfileManager.java index 12534595e..d42c9b598 100644 --- a/src/main/java/fr/openmc/core/features/profile/ProfileManager.java +++ b/src/main/java/fr/openmc/core/features/profile/ProfileManager.java @@ -5,9 +5,9 @@ import fr.openmc.core.bootstrap.features.types.HasCommands; import fr.openmc.core.bootstrap.features.types.HasListeners; import fr.openmc.core.bootstrap.features.types.LoadAfterItemsAdder; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.features.profile.command.ProfileCommand; import fr.openmc.core.features.profile.listeners.ProfileInteractionListener; -import org.bukkit.event.Listener; import java.util.Set; @@ -21,9 +21,7 @@ public Set getCommands() { } @Override - public Set getListeners() { - return Set.of( - new ProfileInteractionListener() - ); + public Set getListeners() { + return Set.of(ProfileInteractionListener::new); } } diff --git a/src/main/java/fr/openmc/core/features/settings/PlayerSettingsManager.java b/src/main/java/fr/openmc/core/features/settings/PlayerSettingsManager.java index f5b5fe62e..8e803c61c 100644 --- a/src/main/java/fr/openmc/core/features/settings/PlayerSettingsManager.java +++ b/src/main/java/fr/openmc/core/features/settings/PlayerSettingsManager.java @@ -12,12 +12,12 @@ import fr.openmc.core.bootstrap.features.types.HasDatabase; import fr.openmc.core.bootstrap.features.types.HasListeners; import fr.openmc.core.bootstrap.integration.OMCLogger; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.features.settings.command.SettingsCommand; import fr.openmc.core.features.settings.listeners.PlayerSettingsListener; import fr.openmc.core.features.settings.models.PlayerSettingEntity; import lombok.Getter; import org.bukkit.entity.Player; -import org.bukkit.event.Listener; import java.sql.SQLException; import java.util.List; @@ -47,10 +47,8 @@ public Set getCommands() { } @Override - public Set getListeners() { - return Set.of( - new PlayerSettingsListener() - ); + public Set getListeners() { + return Set.of(PlayerSettingsListener::new); } @Override diff --git a/src/main/java/fr/openmc/core/features/shops/managers/ShopManager.java b/src/main/java/fr/openmc/core/features/shops/managers/ShopManager.java index d1e5c41f7..08639401d 100644 --- a/src/main/java/fr/openmc/core/features/shops/managers/ShopManager.java +++ b/src/main/java/fr/openmc/core/features/shops/managers/ShopManager.java @@ -9,6 +9,7 @@ import fr.openmc.core.bootstrap.features.types.HasListeners; import fr.openmc.core.bootstrap.features.types.LoadAfterItemsAdder; import fr.openmc.core.bootstrap.integration.OMCLogger; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.features.shops.ShopCommand; import fr.openmc.core.features.shops.ShopFurniture; import fr.openmc.core.features.shops.ShopListener; @@ -23,7 +24,6 @@ import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.entity.Player; -import org.bukkit.event.Listener; import java.sql.SQLException; import java.util.*; @@ -61,8 +61,8 @@ public Set getCommands() { } @Override - public Set getListeners() { - return Set.of(new ShopListener()); + public Set getListeners() { + return Set.of(ShopListener::new); } // LOADING diff --git a/src/main/java/fr/openmc/core/features/tickets/TicketListener.java b/src/main/java/fr/openmc/core/features/tickets/TicketListener.java index 3d88d06c7..758e759b2 100644 --- a/src/main/java/fr/openmc/core/features/tickets/TicketListener.java +++ b/src/main/java/fr/openmc/core/features/tickets/TicketListener.java @@ -4,7 +4,7 @@ import dev.lone.itemsadder.api.Events.FurnitureInteractEvent; import dev.lone.itemsadder.api.Events.FurniturePlacedEvent; import fr.openmc.core.OMCRegistry; -import fr.openmc.core.bootstrap.features.types.NotInUnitTest; +import fr.openmc.core.bootstrap.features.types.NotLoadInUnitTest; import fr.openmc.core.events.LootboxRewardEvent; import fr.openmc.core.features.displays.holograms.Hologram; import fr.openmc.core.features.displays.holograms.HologramLoader; @@ -27,7 +27,7 @@ import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; -public class TicketListener implements Listener, NotInUnitTest { +public class TicketListener implements Listener, NotLoadInUnitTest { private final Map machineHolograms = new ConcurrentHashMap<>(); diff --git a/src/main/java/fr/openmc/core/features/tickets/TicketManager.java b/src/main/java/fr/openmc/core/features/tickets/TicketManager.java index ee8612e62..5e2eab52b 100644 --- a/src/main/java/fr/openmc/core/features/tickets/TicketManager.java +++ b/src/main/java/fr/openmc/core/features/tickets/TicketManager.java @@ -8,9 +8,9 @@ import fr.openmc.core.bootstrap.features.annotations.Credit; import fr.openmc.core.bootstrap.features.types.HasListeners; import fr.openmc.core.bootstrap.integration.OMCLogger; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import lombok.Getter; import lombok.Setter; -import org.bukkit.event.Listener; import java.io.File; import java.io.FileReader; @@ -38,10 +38,8 @@ public void init() { } @Override - public Set getListeners() { - return Set.of( - new TicketListener() - ); + public Set getListeners() { + return Set.of(TicketListener::new); } /** diff --git a/src/main/java/fr/openmc/core/features/updates/UpdateManager.java b/src/main/java/fr/openmc/core/features/updates/UpdateManager.java index 63ee29113..cdc3d4686 100644 --- a/src/main/java/fr/openmc/core/features/updates/UpdateManager.java +++ b/src/main/java/fr/openmc/core/features/updates/UpdateManager.java @@ -4,6 +4,7 @@ import fr.openmc.core.bootstrap.features.Feature; import fr.openmc.core.bootstrap.features.types.HasCommands; import fr.openmc.core.bootstrap.features.types.HasListeners; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.utils.text.messages.TranslationManager; import lombok.Getter; import net.kyori.adventure.text.Component; @@ -12,7 +13,6 @@ import net.kyori.adventure.text.format.TextDecoration; import org.bukkit.Bukkit; import org.bukkit.entity.Player; -import org.bukkit.event.Listener; import org.bukkit.scheduler.BukkitRunnable; import java.util.Set; @@ -48,10 +48,8 @@ public Set getCommands() { } @Override - public Set getListeners() { - return Set.of( - new UpdateListener() - ); + public Set getListeners() { + return Set.of(UpdateListener::new); } public static void sendUpdateMessage(Player player) { diff --git a/src/main/java/fr/openmc/core/hooks/itemsadder/ItemsAdderHook.java b/src/main/java/fr/openmc/core/hooks/itemsadder/ItemsAdderHook.java index 51ff6334b..c252d7668 100644 --- a/src/main/java/fr/openmc/core/hooks/itemsadder/ItemsAdderHook.java +++ b/src/main/java/fr/openmc/core/hooks/itemsadder/ItemsAdderHook.java @@ -46,7 +46,7 @@ public void init() { api = ApiHook.super.api(); OMCPlugin.registerEvents( - new BehaviourUpBlock() + BehaviourUpBlock::new ); mergeResourcePack(Set.of("OpenMC/generated-rp-langs")); diff --git a/src/main/java/fr/openmc/core/listeners/ItemsAddersListener.java b/src/main/java/fr/openmc/core/listeners/ItemsAddersListener.java index 5b475f5fd..e5e7a7ef4 100644 --- a/src/main/java/fr/openmc/core/listeners/ItemsAddersListener.java +++ b/src/main/java/fr/openmc/core/listeners/ItemsAddersListener.java @@ -2,11 +2,13 @@ import dev.lone.itemsadder.api.Events.ItemsAdderLoadDataEvent; import fr.openmc.core.OMCPlugin; +import fr.openmc.core.bootstrap.features.types.LoadIfEnable; +import fr.openmc.core.hooks.itemsadder.ItemsAdderHook; import lombok.Setter; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -public class ItemsAddersListener implements Listener { +public class ItemsAddersListener implements Listener, LoadIfEnable { @Setter public static boolean isLoaded = false; diff --git a/src/main/java/fr/openmc/core/listeners/RegionTrackingListener.java b/src/main/java/fr/openmc/core/listeners/RegionTrackingListener.java index b92d7787c..a59e99dee 100644 --- a/src/main/java/fr/openmc/core/listeners/RegionTrackingListener.java +++ b/src/main/java/fr/openmc/core/listeners/RegionTrackingListener.java @@ -6,6 +6,7 @@ import com.sk89q.worldguard.protection.regions.ProtectedRegion; import com.sk89q.worldguard.protection.regions.RegionContainer; import com.sk89q.worldguard.protection.regions.RegionQuery; +import fr.openmc.core.bootstrap.features.types.NotLoadInUnitTest; import fr.openmc.core.events.RegionEnterEvent; import fr.openmc.core.events.RegionLeaveEvent; import org.bukkit.Bukkit; @@ -19,7 +20,7 @@ import java.util.*; -public class RegionTrackingListener implements Listener { +public class RegionTrackingListener implements Listener, NotLoadInUnitTest { private final Map> playerRegions = new HashMap<>(); @EventHandler(ignoreCancelled = true) diff --git a/src/main/java/fr/openmc/core/registry/ambient/CustomAmbientRegistry.java b/src/main/java/fr/openmc/core/registry/ambient/CustomAmbientRegistry.java index 02fbc3821..48b026fbc 100644 --- a/src/main/java/fr/openmc/core/registry/ambient/CustomAmbientRegistry.java +++ b/src/main/java/fr/openmc/core/registry/ambient/CustomAmbientRegistry.java @@ -4,6 +4,7 @@ import fr.openmc.api.datapacks.injectors.BiomesInjector; import fr.openmc.core.bootstrap.features.types.HasListeners; import fr.openmc.core.bootstrap.integration.OMCLogger; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.bootstrap.registries.KeyedRegistry; import fr.openmc.core.bootstrap.registries.Registry; import fr.openmc.core.features.events.contents.dailyevents.contents.bloodynight.contents.ambient.BloodyAmbient; @@ -20,7 +21,6 @@ import net.minecraft.server.MinecraftServer; import net.minecraft.world.level.biome.Biome; import org.bukkit.Bukkit; -import org.bukkit.event.Listener; import java.io.IOException; import java.util.Set; @@ -39,12 +39,12 @@ public class CustomAmbientRegistry extends Registry public final CustomAmbient BLESSED = register(new BlessedAmbient()); @Override - public Set getListeners() { + public Set getListeners() { return Set.of( - new CustomAmbientListener(), - new BiomesOnChunkLoad(), - new AmbientWeatherListener(), - new AmbientFixedTimeListener() + CustomAmbientListener::new, + () -> new BiomesOnChunkLoad(), + () -> new AmbientWeatherListener(), + () -> new AmbientFixedTimeListener() ); } diff --git a/src/main/java/fr/openmc/core/registry/ambient/listeners/AmbientFixedTimeListener.java b/src/main/java/fr/openmc/core/registry/ambient/listeners/AmbientFixedTimeListener.java index 35fae5e3e..144e81755 100644 --- a/src/main/java/fr/openmc/core/registry/ambient/listeners/AmbientFixedTimeListener.java +++ b/src/main/java/fr/openmc/core/registry/ambient/listeners/AmbientFixedTimeListener.java @@ -2,6 +2,7 @@ import fr.openmc.core.OMCPlugin; import fr.openmc.core.OMCRegistry; +import fr.openmc.core.bootstrap.features.types.NotLoadInUnitTest; import fr.openmc.core.events.RegionEnterEvent; import fr.openmc.core.events.RegionLeaveEvent; import fr.openmc.core.registry.ambient.CustomAmbient; @@ -14,7 +15,7 @@ import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.event.world.TimeSkipEvent; -public class AmbientFixedTimeListener implements Listener { +public class AmbientFixedTimeListener implements Listener, NotLoadInUnitTest { @EventHandler public void onPlayerKill(PlayerDeathEvent event) { Player player = event.getPlayer(); diff --git a/src/main/java/fr/openmc/core/registry/ambient/listeners/AmbientWeatherListener.java b/src/main/java/fr/openmc/core/registry/ambient/listeners/AmbientWeatherListener.java index 6f455fa49..2cf6e1467 100644 --- a/src/main/java/fr/openmc/core/registry/ambient/listeners/AmbientWeatherListener.java +++ b/src/main/java/fr/openmc/core/registry/ambient/listeners/AmbientWeatherListener.java @@ -2,6 +2,7 @@ import fr.openmc.core.OMCPlugin; import fr.openmc.core.OMCRegistry; +import fr.openmc.core.bootstrap.features.types.NotLoadInUnitTest; import fr.openmc.core.events.RegionEnterEvent; import fr.openmc.core.events.RegionLeaveEvent; import fr.openmc.core.registry.ambient.CustomAmbient; @@ -14,7 +15,7 @@ import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.event.weather.WeatherChangeEvent; -public class AmbientWeatherListener implements Listener { +public class AmbientWeatherListener implements Listener, NotLoadInUnitTest { @EventHandler public void onPlayerKill(PlayerDeathEvent event) { diff --git a/src/main/java/fr/openmc/core/registry/ambient/listeners/BiomesOnChunkLoad.java b/src/main/java/fr/openmc/core/registry/ambient/listeners/BiomesOnChunkLoad.java index da5876232..bdd0fef43 100644 --- a/src/main/java/fr/openmc/core/registry/ambient/listeners/BiomesOnChunkLoad.java +++ b/src/main/java/fr/openmc/core/registry/ambient/listeners/BiomesOnChunkLoad.java @@ -1,6 +1,7 @@ package fr.openmc.core.registry.ambient.listeners; import fr.openmc.core.OMCRegistry; +import fr.openmc.core.bootstrap.features.types.NotLoadInUnitTest; import fr.openmc.core.registry.ambient.CustomAmbient; import fr.openmc.core.utils.nms.PlayerBiomeNMS; import io.papermc.paper.event.packet.PlayerChunkLoadEvent; @@ -19,7 +20,7 @@ * - le joueur a une ambience * - et que l'ambience utilise un biome ou non */ -public class BiomesOnChunkLoad implements Listener { +public class BiomesOnChunkLoad implements Listener, NotLoadInUnitTest { @EventHandler public void onChunkLoad(PlayerChunkLoadEvent event) { diff --git a/src/main/java/fr/openmc/core/registry/enchantments/CustomEnchantmentRegistry.java b/src/main/java/fr/openmc/core/registry/enchantments/CustomEnchantmentRegistry.java index e5e8cfb2f..1b65943c4 100644 --- a/src/main/java/fr/openmc/core/registry/enchantments/CustomEnchantmentRegistry.java +++ b/src/main/java/fr/openmc/core/registry/enchantments/CustomEnchantmentRegistry.java @@ -70,7 +70,7 @@ public void postInit() { } if (e instanceof Listener listener) { - OMCPlugin.registerEvents(listener); + OMCPlugin.registerEvents(() -> listener); } } } diff --git a/src/main/java/fr/openmc/core/registry/items/CustomItemRegistry.java b/src/main/java/fr/openmc/core/registry/items/CustomItemRegistry.java index c4e1e4466..0ecf5cb5c 100644 --- a/src/main/java/fr/openmc/core/registry/items/CustomItemRegistry.java +++ b/src/main/java/fr/openmc/core/registry/items/CustomItemRegistry.java @@ -4,6 +4,7 @@ import dev.lone.itemsadder.api.CustomStack; import fr.openmc.core.CommandsManager; import fr.openmc.core.bootstrap.features.types.HasListeners; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.bootstrap.registries.KeyedRegistry; import fr.openmc.core.bootstrap.registries.Registry; import fr.openmc.core.features.bits.contents.items.KitchenBox; @@ -29,7 +30,6 @@ import org.bukkit.Material; import org.bukkit.NamespacedKey; import org.bukkit.block.Block; -import org.bukkit.event.Listener; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.persistence.PersistentDataType; @@ -235,7 +235,7 @@ public class CustomItemRegistry extends Registry public final CustomItem OFFICE_FURNITURE_V2_BOARD_1 = register("elitecreatures:office_furniture_v2_board_1", Material.PAPER); public final CustomItem OFFICE_FURNITURE_V2_BOARD_2 = register("elitecreatures:office_furniture_v2_board_2", Material.PAPER); public final CustomItem OFFICE_FURNITURE_V2_CHAIRCEO = register("elitecreatures:office_furniture_v2_chairceo", Material.PAPER); - public final CustomItem OFFICE_FURNITURE_V2_CHAIR = register("elitecreatures:office_furniture_v2_chair", Material.PAPER); + public final CustomItem OFFICE_FURNITURE_V2_CHAIR = register("elitecretures:office_furniture_v2_chair", Material.PAPER); public final CustomItem OFFICE_FURNITURE_V2_COMPUTER = register("elitecreatures:office_furniture_v2_computer", Material.PAPER); public final CustomItem OFFICE_FURNITURE_V2_CUPBOARD_1 = register("elitecreatures:office_furniture_v2_cupboard_1", Material.PAPER); public final CustomItem OFFICE_FURNITURE_V2_CUPBOARD_2 = register("elitecreatures:office_furniture_v2_cupboard_2", Material.PAPER); @@ -281,12 +281,12 @@ public class CustomItemRegistry extends Registry public final CustomItem MEDIEVAL_BOX = register(new MedievalBox("omc_bits:medieval_box")); @Override - public Set getListeners() { + public Set getListeners() { return Set.of( - new BlockBreakListener(), - new EquipableItemListener(), - new InteractListener(), - new BlockPlaceListener() + BlockBreakListener::new, + EquipableItemListener::new, + InteractListener::new, + BlockPlaceListener::new ); } diff --git a/src/main/java/fr/openmc/core/registry/lootboxes/CustomLootboxRegistry.java b/src/main/java/fr/openmc/core/registry/lootboxes/CustomLootboxRegistry.java index 02fef1778..f41a75b20 100644 --- a/src/main/java/fr/openmc/core/registry/lootboxes/CustomLootboxRegistry.java +++ b/src/main/java/fr/openmc/core/registry/lootboxes/CustomLootboxRegistry.java @@ -1,6 +1,7 @@ package fr.openmc.core.registry.lootboxes; import fr.openmc.core.bootstrap.features.types.HasListeners; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.bootstrap.registries.KeyedRegistry; import fr.openmc.core.bootstrap.registries.Registry; import fr.openmc.core.features.bits.contents.lootboxes.KitchenLootbox; @@ -13,7 +14,6 @@ import fr.openmc.core.features.events.contents.dailyevents.contents.miraculousfishing.contents.lootboxes.RareFishingTreasureLootbox; import fr.openmc.core.registry.lootboxes.contents.MachineBallLootbox; import fr.openmc.core.registry.lootboxes.listener.DesactivateFireworkDamageListener; -import org.bukkit.event.Listener; import java.util.Set; @@ -36,10 +36,8 @@ public class CustomLootboxRegistry extends Registry @Override - public Set getListeners() { - return Set.of( - new DesactivateFireworkDamageListener() - ); + public Set getListeners() { + return Set.of(DesactivateFireworkDamageListener::new); } @Override diff --git a/src/main/java/fr/openmc/core/registry/mobs/CustomMobRegistry.java b/src/main/java/fr/openmc/core/registry/mobs/CustomMobRegistry.java index 1db57f4d4..e829f95ff 100644 --- a/src/main/java/fr/openmc/core/registry/mobs/CustomMobRegistry.java +++ b/src/main/java/fr/openmc/core/registry/mobs/CustomMobRegistry.java @@ -2,6 +2,7 @@ import fr.openmc.core.OMCPlugin; import fr.openmc.core.bootstrap.features.types.HasListeners; +import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.bootstrap.registries.KeyedRegistry; import fr.openmc.core.bootstrap.registries.Registry; import fr.openmc.core.features.events.contents.dailyevents.contents.bloodynight.contents.mobs.bat.ExplosiveVampireBat; @@ -124,11 +125,11 @@ public class CustomMobRegistry extends Registry public final static Set HAS_BOSSBAR = new HashSet<>(); @Override - public Set getListeners() { + public Set getListeners() { return Set.of( - new CustomMobDeathListener(), - new CustomMobBossbarListener(), - new CustomMobLoadListener() + CustomMobDeathListener::new, + CustomMobBossbarListener::new, + CustomMobLoadListener::new ); } @@ -148,8 +149,9 @@ public String key(CustomMobEntry registryObject) { @Override public CustomMobEntry register(CustomMobEntry mob) { - if (mob.factory().apply(mob.id()) instanceof Listener listener) { - OMCPlugin.registerEvents(listener); + CustomMob customMob = mob.getMob(); + if (customMob instanceof Listener listener) { + OMCPlugin.getInstance().getServer().getPluginManager().registerEvents(listener, OMCPlugin.getInstance()); } return register(mob.id(), mob); } diff --git a/src/main/java/fr/openmc/core/utils/nms/entity/EntityGlowNMS.java b/src/main/java/fr/openmc/core/utils/nms/entity/EntityGlowNMS.java index 1baf276b4..67431b012 100644 --- a/src/main/java/fr/openmc/core/utils/nms/entity/EntityGlowNMS.java +++ b/src/main/java/fr/openmc/core/utils/nms/entity/EntityGlowNMS.java @@ -1,5 +1,6 @@ package fr.openmc.core.utils.nms.entity; +import fr.openmc.core.bootstrap.features.types.NotLoadInUnitTest; import net.minecraft.network.protocol.game.ClientboundSetPlayerTeamPacket; import net.minecraft.world.scores.PlayerTeam; import net.minecraft.world.scores.Scoreboard; @@ -18,7 +19,7 @@ import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; -public class EntityGlowNMS implements Listener { +public class EntityGlowNMS implements Listener, NotLoadInUnitTest { private static final Scoreboard NMS_SCOREBOARD = new Scoreboard(); private static final Map TEAM_MAP = new HashMap<>(); private static final Map entitiesGlowing = new ConcurrentHashMap<>(); From 30a73e914ac8cc254ef9ebf41abeb2ccd3dbc111 Mon Sep 17 00:00:00 2001 From: iambibi_ <89582596+iambibi@users.noreply.github.com> Date: Fri, 14 Aug 2026 14:43:34 +0200 Subject: [PATCH 3/7] review gab --- .../core/features/dream/DreamManager.java | 19 ++++++++++--------- .../registry/items/CustomItemRegistry.java | 2 +- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/main/java/fr/openmc/core/features/dream/DreamManager.java b/src/main/java/fr/openmc/core/features/dream/DreamManager.java index 965779310..4a51ea934 100644 --- a/src/main/java/fr/openmc/core/features/dream/DreamManager.java +++ b/src/main/java/fr/openmc/core/features/dream/DreamManager.java @@ -10,6 +10,7 @@ import fr.openmc.core.bootstrap.features.types.HasDatabase; import fr.openmc.core.bootstrap.features.types.HasListeners; import fr.openmc.core.bootstrap.features.types.LoadAfterItemsAdder; +import fr.openmc.core.bootstrap.integration.OMCLogger; import fr.openmc.core.bootstrap.listeners.ListenerFactory; import fr.openmc.core.commands.utils.SpawnManager; import fr.openmc.core.features.city.City; @@ -154,11 +155,11 @@ private static void loadAllPlayerSaveData() { try { savePlayerDao.delete(playerData); } catch (SQLException e) { - fr.openmc.core.bootstrap.integration.OMCLogger.error("Cannot load player save data", e); + OMCLogger.error("Cannot load player save data", e); } }); } catch (SQLException e) { - fr.openmc.core.bootstrap.integration.OMCLogger.error("Cannot load player save data", e); + OMCLogger.error("Cannot load player save data", e); } } @@ -167,7 +168,7 @@ public static void saveAllPlayerSaveData() { try { savePlayerDao.createOrUpdate(playerSave); } catch (SQLException e) { - fr.openmc.core.bootstrap.integration.OMCLogger.error("Cannot save player save data for player {}", uuid, e); + OMCLogger.error("Cannot save player save data for player {}", uuid, e); } }); } @@ -180,7 +181,7 @@ private static void loadAllDreamPlayerData() { cacheDreamPlayer.put(playerData.getPlayerUUID(), playerData) ); } catch (SQLException e) { - fr.openmc.core.bootstrap.integration.OMCLogger.error("Cannot load dream player data", e); + OMCLogger.error("Cannot load dream player data", e); } } @@ -189,7 +190,7 @@ public static void saveAllDreamPlayerData() { try { dreamPlayerDao.createOrUpdate(dbDreamPlayer); } catch (SQLException e) { - fr.openmc.core.bootstrap.integration.OMCLogger.error("Cannot save dream player data", e); + OMCLogger.error("Cannot save dream player data", e); } }); } @@ -208,7 +209,7 @@ public static void saveDreamPlayerData(DBDreamPlayer dbDreamPlayer) { } } catch (SQLException e) { - fr.openmc.core.bootstrap.integration.OMCLogger.error("Cannot save player save data", e); + OMCLogger.error("Cannot save player save data", e); } } @@ -259,7 +260,7 @@ public static void removeDreamPlayer(Player player, Location dreamLocation) { playerSaveData.remove(player.getUniqueId()); if (dreamPlayer == null) { - fr.openmc.core.bootstrap.integration.OMCLogger.warn("Cannot remove player {}({}) from Dream", player.getName(), player.getUniqueId()); + OMCLogger.warn("Cannot remove player {}({}) from Dream", player.getName(), player.getUniqueId()); return; } @@ -298,7 +299,7 @@ public static void preloadSavePlayer(Player player, Location dreamLocation) thro if (playerSave == null) { player.teleportAsync(SpawnManager.getSpawnLocation()); - fr.openmc.core.bootstrap.integration.OMCLogger.warn("Nothing to load from {}({})", player.getName(), player.getUniqueId()); + OMCLogger.warn("Nothing to load from {}({})", player.getName(), player.getUniqueId()); return; } PlayerInventory dreamInventory = player.getInventory(); @@ -352,7 +353,7 @@ public static void setMaxTime(Player player, long maxTime) { DreamManager.saveDreamPlayerData(dreamPlayer); cache = DreamManager.getCacheDreamPlayer(player); if (cache == null) { - fr.openmc.core.bootstrap.integration.OMCLogger.warn("player ({}) had no cache even after saving it. [DreamManager#setMaxTime]", player.getUniqueId()); + OMCLogger.warn("player ({}) had no cache even after saving it. [DreamManager#setMaxTime]", player.getUniqueId()); return; } } diff --git a/src/main/java/fr/openmc/core/registry/items/CustomItemRegistry.java b/src/main/java/fr/openmc/core/registry/items/CustomItemRegistry.java index 0ecf5cb5c..170fc5cd5 100644 --- a/src/main/java/fr/openmc/core/registry/items/CustomItemRegistry.java +++ b/src/main/java/fr/openmc/core/registry/items/CustomItemRegistry.java @@ -235,7 +235,7 @@ public class CustomItemRegistry extends Registry public final CustomItem OFFICE_FURNITURE_V2_BOARD_1 = register("elitecreatures:office_furniture_v2_board_1", Material.PAPER); public final CustomItem OFFICE_FURNITURE_V2_BOARD_2 = register("elitecreatures:office_furniture_v2_board_2", Material.PAPER); public final CustomItem OFFICE_FURNITURE_V2_CHAIRCEO = register("elitecreatures:office_furniture_v2_chairceo", Material.PAPER); - public final CustomItem OFFICE_FURNITURE_V2_CHAIR = register("elitecretures:office_furniture_v2_chair", Material.PAPER); + public final CustomItem OFFICE_FURNITURE_V2_CHAIR = register("elitecreatures:office_furniture_v2_chair", Material.PAPER); public final CustomItem OFFICE_FURNITURE_V2_COMPUTER = register("elitecreatures:office_furniture_v2_computer", Material.PAPER); public final CustomItem OFFICE_FURNITURE_V2_CUPBOARD_1 = register("elitecreatures:office_furniture_v2_cupboard_1", Material.PAPER); public final CustomItem OFFICE_FURNITURE_V2_CUPBOARD_2 = register("elitecreatures:office_furniture_v2_cupboard_2", Material.PAPER); From 4461cfaa08bd8627806ca5a7babfc80ee5ae2631 Mon Sep 17 00:00:00 2001 From: iambibi_ <89582596+iambibi@users.noreply.github.com> Date: Fri, 14 Aug 2026 15:06:54 +0200 Subject: [PATCH 4/7] fix: tests RandomUtils + discord and other --- .../bootstrap/features/DisableFeatureException.java | 10 ++++++++++ .../fr/openmc/core/bootstrap/features/Feature.java | 3 +++ .../openmc/core/features/toor/utils/RequestSigner.java | 8 +++++--- .../core/registry/enchantments/CustomEnchantment.java | 8 +++++++- src/main/java/fr/openmc/core/utils/RandomUtils.java | 6 ++---- src/test/resources/paper-plugin.yml | 1 + 6 files changed, 28 insertions(+), 8 deletions(-) create mode 100644 src/main/java/fr/openmc/core/bootstrap/features/DisableFeatureException.java diff --git a/src/main/java/fr/openmc/core/bootstrap/features/DisableFeatureException.java b/src/main/java/fr/openmc/core/bootstrap/features/DisableFeatureException.java new file mode 100644 index 000000000..5226504b5 --- /dev/null +++ b/src/main/java/fr/openmc/core/bootstrap/features/DisableFeatureException.java @@ -0,0 +1,10 @@ +package fr.openmc.core.bootstrap.features; + +public class DisableFeatureException extends RuntimeException { + public DisableFeatureException(String message) { + super(message); + } + public DisableFeatureException(String message, Throwable cause) { + super(message, cause); + } +} diff --git a/src/main/java/fr/openmc/core/bootstrap/features/Feature.java b/src/main/java/fr/openmc/core/bootstrap/features/Feature.java index 34f7592b3..eca286465 100644 --- a/src/main/java/fr/openmc/core/bootstrap/features/Feature.java +++ b/src/main/java/fr/openmc/core/bootstrap/features/Feature.java @@ -48,6 +48,9 @@ public final void startInit() { initialize = true; OMCLogger.successFormatted("Feature " + this.getClass().getSimpleName() + " initialisée correctement."); + } catch (DisableFeatureException e) { + OMCLogger.errorFormatted("Feature " + this.getClass().getSimpleName() + " non initialisée."); + OMCLogger.error(e.getMessage(), e); } catch (Exception e) { initialize = false; OMCLogger.errorFormatted("Feature " + this.getClass().getSimpleName() + " non initialisée."); diff --git a/src/main/java/fr/openmc/core/features/toor/utils/RequestSigner.java b/src/main/java/fr/openmc/core/features/toor/utils/RequestSigner.java index 50f53a9cc..66321fc19 100644 --- a/src/main/java/fr/openmc/core/features/toor/utils/RequestSigner.java +++ b/src/main/java/fr/openmc/core/features/toor/utils/RequestSigner.java @@ -1,5 +1,7 @@ package fr.openmc.core.features.toor.utils; +import fr.openmc.core.bootstrap.features.DisableFeatureException; + import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; @@ -26,9 +28,9 @@ public static void init(Path pemPath) { KeyFactory kf = KeyFactory.getInstance("Ed25519"); PRIVATE_KEY = kf.generatePrivate(new PKCS8EncodedKeySpec(keyBytes)); } catch (IOException e) { - throw new RuntimeException("Impossible de lire la cle privee a " + pemPath); + throw new DisableFeatureException("Impossible de lire la cle privee a " + pemPath); } catch (Exception e) { - throw new RuntimeException("Cle privee invalide", e); + throw new DisableFeatureException("Cle privee invalide", e); } } @@ -41,7 +43,7 @@ public static String sign(String method, String path, long timestamp, String bod sig.update(payload.getBytes(StandardCharsets.UTF_8)); return Base64.getEncoder().encodeToString(sig.sign()); } catch (Exception e) { - throw new RuntimeException("Erreur de signature", e); + throw new DisableFeatureException("Erreur de signature", e); } } } diff --git a/src/main/java/fr/openmc/core/registry/enchantments/CustomEnchantment.java b/src/main/java/fr/openmc/core/registry/enchantments/CustomEnchantment.java index 694e83e10..911a43420 100644 --- a/src/main/java/fr/openmc/core/registry/enchantments/CustomEnchantment.java +++ b/src/main/java/fr/openmc/core/registry/enchantments/CustomEnchantment.java @@ -1,5 +1,6 @@ package fr.openmc.core.registry.enchantments; +import fr.openmc.core.bootstrap.integration.OMCLogger; import fr.openmc.core.registry.items.CustomItem; import fr.openmc.core.utils.RandomUtils; import io.papermc.paper.registry.RegistryAccess; @@ -46,7 +47,12 @@ public ItemStack getVanilla() { .registryAccess() .getRegistry(RegistryKey.ENCHANTMENT); - Enchantment enchantment = enchantmentRegistry.getOrThrow(RegistryKey.ENCHANTMENT.typedKey(getKey())); + Enchantment enchantment = enchantmentRegistry.get(RegistryKey.ENCHANTMENT.typedKey(getKey())); + + if (enchantment == null) { + enchantment = RegistryAccess.registryAccess().getRegistry(RegistryKey.ENCHANTMENT).get(Key.key("minecraft:sharpness")); + OMCLogger.warnFormatted("CustomEnchantment " + getKey().asMinimalString() + " pas trouvé dans les registres, mis a minecraft:sharpness par défaut."); + } meta.addStoredEnchant(enchantment, level, false); bookEnchanted.setItemMeta(meta); diff --git a/src/main/java/fr/openmc/core/utils/RandomUtils.java b/src/main/java/fr/openmc/core/utils/RandomUtils.java index defaca97e..e2ef5c2f5 100644 --- a/src/main/java/fr/openmc/core/utils/RandomUtils.java +++ b/src/main/java/fr/openmc/core/utils/RandomUtils.java @@ -3,24 +3,22 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.Random; import java.util.concurrent.ThreadLocalRandom; public class RandomUtils { - private static final Random random = ThreadLocalRandom.current(); /** * Retourne un double aléatoire entre min et max. */ public static double randomBetween(double min, double max) { - return ThreadLocalRandom.current().nextDouble(min, max + 1); + return ThreadLocalRandom.current().nextDouble(min, max); } /** * Retourne un float aléatoire entre min et max. */ public static float randomBetween(float min, float max) { - return ThreadLocalRandom.current().nextFloat(min, max + 1); + return ThreadLocalRandom.current().nextFloat(min, max); } /** diff --git a/src/test/resources/paper-plugin.yml b/src/test/resources/paper-plugin.yml index 111de430c..710afafc2 100644 --- a/src/test/resources/paper-plugin.yml +++ b/src/test/resources/paper-plugin.yml @@ -1,5 +1,6 @@ name: OpenMC version: ${version} main: fr.openmc.core.OMCPlugin +bootstrapper: fr.openmc.core.OMCBootstrap api-version: '26.2' prefix: OMC From 12147c06d73917782bbbe06eb3ac19b58ec69cc5 Mon Sep 17 00:00:00 2001 From: iambibi_ <89582596+iambibi@users.noreply.github.com> Date: Fri, 14 Aug 2026 15:11:01 +0200 Subject: [PATCH 5/7] fix: tests RandomUtils (again) --- src/main/java/fr/openmc/core/utils/RandomUtils.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/fr/openmc/core/utils/RandomUtils.java b/src/main/java/fr/openmc/core/utils/RandomUtils.java index e2ef5c2f5..38107091f 100644 --- a/src/main/java/fr/openmc/core/utils/RandomUtils.java +++ b/src/main/java/fr/openmc/core/utils/RandomUtils.java @@ -11,13 +11,16 @@ public class RandomUtils { * Retourne un double aléatoire entre min et max. */ public static double randomBetween(double min, double max) { + if (min >= max) return min; return ThreadLocalRandom.current().nextDouble(min, max); } + /** * Retourne un float aléatoire entre min et max. */ public static float randomBetween(float min, float max) { + if (min >= max) return min; return ThreadLocalRandom.current().nextFloat(min, max); } From f2271f2e7eb16c92c3d297cbc070e62df2fab86c Mon Sep 17 00:00:00 2001 From: iambibi_ <89582596+iambibi@users.noreply.github.com> Date: Fri, 14 Aug 2026 15:12:21 +0200 Subject: [PATCH 6/7] fix: AncientVIllager --- .../miraculousfishing/contents/mobs/AncientVillager.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/fr/openmc/core/features/events/contents/dailyevents/contents/miraculousfishing/contents/mobs/AncientVillager.java b/src/main/java/fr/openmc/core/features/events/contents/dailyevents/contents/miraculousfishing/contents/mobs/AncientVillager.java index b14e27bc1..3143d681f 100644 --- a/src/main/java/fr/openmc/core/features/events/contents/dailyevents/contents/miraculousfishing/contents/mobs/AncientVillager.java +++ b/src/main/java/fr/openmc/core/features/events/contents/dailyevents/contents/miraculousfishing/contents/mobs/AncientVillager.java @@ -2,7 +2,6 @@ import fr.openmc.core.registry.loottable.loots.XpLoot; import fr.openmc.core.registry.mobs.CustomMob; -import fr.openmc.core.utils.RandomUtils; import fr.openmc.core.utils.text.messages.TranslationManager; import org.bukkit.Location; import org.bukkit.entity.Villager; @@ -17,7 +16,7 @@ public AncientVillager(String id) { ZombieVillager.class, 100, 67, - RandomUtils.randomBetween(0.1, 0.1), + 0.1, List.of( new XpLoot(100, 150, 0.5) ) From f2d97d199f6b9d90e6eec96dae04a32f81fdac6f Mon Sep 17 00:00:00 2001 From: iambibi_ <89582596+iambibi@users.noreply.github.com> Date: Fri, 14 Aug 2026 15:19:10 +0200 Subject: [PATCH 7/7] fix: InputUtilsTest --- src/main/java/fr/openmc/core/utils/text/InputUtils.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/fr/openmc/core/utils/text/InputUtils.java b/src/main/java/fr/openmc/core/utils/text/InputUtils.java index 09ecc072e..0ea922c62 100644 --- a/src/main/java/fr/openmc/core/utils/text/InputUtils.java +++ b/src/main/java/fr/openmc/core/utils/text/InputUtils.java @@ -3,6 +3,7 @@ import fr.openmc.core.features.city.City; import fr.openmc.core.features.city.CityManager; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.TextComponent; import org.bukkit.Bukkit; public class InputUtils { @@ -109,10 +110,16 @@ public static boolean isInputPlayer(String input) { } public static Component pluralize(Component word, int count) { + if (count > 1 && word instanceof TextComponent textComponent) { + return Component.text(textComponent.content() + "s", textComponent.style()); + } return word.append(Component.text((count > 1 ? "s" : ""))); } public static Component pluralize(Component word, long count) { + if (count > 1 && word instanceof TextComponent textComponent) { + return Component.text(textComponent.content() + "s", textComponent.style()); + } return word.append(Component.text((count > 1 ? "s" : ""))); } }