diff --git a/src/main/java/fr/openmc/core/features/dream/listeners/dream/PlayerSleepListener.java b/src/main/java/fr/openmc/core/features/dream/listeners/dream/PlayerSleepListener.java index 2961a1bec..c3a2a52c0 100644 --- a/src/main/java/fr/openmc/core/features/dream/listeners/dream/PlayerSleepListener.java +++ b/src/main/java/fr/openmc/core/features/dream/listeners/dream/PlayerSleepListener.java @@ -49,7 +49,6 @@ public void onPlayerSleep(PlayerBedEnterEvent event) { @EventHandler public void onNightSkip(TimeSkipEvent event) { - for (UUID uuid : playersDreaming) { Player player = Bukkit.getPlayer(uuid); if (player == null) continue; @@ -65,6 +64,6 @@ public void run() { } }.runTaskLater(OMCPlugin.getInstance(), 20L * 5); } - if (event.getSkipReason() == TimeSkipEvent.SkipReason.NIGHT_SKIP) playersDreaming.clear(); + playersDreaming.clear(); } } diff --git a/src/main/java/fr/openmc/core/features/dream/models/registry/DreamEnchantment.java b/src/main/java/fr/openmc/core/features/dream/models/registry/DreamEnchantment.java index e5dd7c7ae..1f40d8410 100644 --- a/src/main/java/fr/openmc/core/features/dream/models/registry/DreamEnchantment.java +++ b/src/main/java/fr/openmc/core/features/dream/models/registry/DreamEnchantment.java @@ -35,7 +35,7 @@ public abstract class DreamEnchantment { public abstract EnchantmentRegistryEntry.EnchantmentCost getMaximalmCost(); public DreamItem getEnchantedBookItem(int level) { - return new DreamItem(getKey().asMinimalString()) { + return new DreamItem(getKey().asMinimalString() + level) { @Override public ItemStack getVanilla() { return getEnchantedBook(level); @@ -64,9 +64,7 @@ private ItemStack getEnchantedBook(int level) { .registryAccess() .getRegistry(RegistryKey.ENCHANTMENT); - Enchantment enchantment = enchantmentRegistry.getOrThrow( - RegistryKey.ENCHANTMENT.typedKey(getKey()) - ); + Enchantment enchantment = enchantmentRegistry.getOrThrow(RegistryKey.ENCHANTMENT.typedKey(getKey())); meta.addStoredEnchant(enchantment, level, false); bookEnchanted.setItemMeta(meta); diff --git a/src/main/java/fr/openmc/core/features/dream/registries/DreamEnchantementRegistry.java b/src/main/java/fr/openmc/core/features/dream/registries/DreamEnchantementRegistry.java index 2258beb42..30fbcd312 100644 --- a/src/main/java/fr/openmc/core/features/dream/registries/DreamEnchantementRegistry.java +++ b/src/main/java/fr/openmc/core/features/dream/registries/DreamEnchantementRegistry.java @@ -61,6 +61,12 @@ public static void init() { dreamEnchantments.put(key, dreamEnchant); enchantments.put(key, enchantment); + for (int level = 1; level <= dreamEnchant.getMaxLevel(); level++) + DreamItemRegistry.register( + key.asMinimalString() + level, + dreamEnchant.getEnchantedBookItem(level) + ); + if (dreamEnchant instanceof Listener listener) { OMCPlugin.registerEvents(listener); } 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 f4f5ec9bc..0ad1cb986 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 @@ -128,6 +128,9 @@ public static void init() { registerDreamItem(new MeteoWand("omc_dream:meteo_wand")); registerDreamItem(new MetalDetector("omc_dream:metal_detector")); + // # ENCHANTEMENTS + + CommandsManager.getHandler().register( new DreamItemCommand() );