From 664a18f83ebd72f9b15e0c627b10eafefa18c8ad Mon Sep 17 00:00:00 2001 From: M_Viper Date: Sun, 21 Dec 2025 19:28:48 +0000 Subject: [PATCH] src/main/java/de/mviper/adventskalender/AdventListener.java aktualisiert --- .../adventskalender/AdventListener.java | 112 +++++++++--------- 1 file changed, 55 insertions(+), 57 deletions(-) diff --git a/src/main/java/de/mviper/adventskalender/AdventListener.java b/src/main/java/de/mviper/adventskalender/AdventListener.java index 8fe552a..54b6918 100644 --- a/src/main/java/de/mviper/adventskalender/AdventListener.java +++ b/src/main/java/de/mviper/adventskalender/AdventListener.java @@ -1,58 +1,56 @@ -package de.mviper.adventskalender; - -import org.bukkit.*; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; - -import java.time.LocalDate; -import java.time.Month; - -public class AdventListener implements Listener { - - @EventHandler - public void onInventoryClick(InventoryClickEvent event) { - // KORREKTUR: Wir verwenden den gleichen Schlüssel wie in der AdventInventory.java, - // um den Titel zu laden. So sind beide Titel identisch. - String translatedTitle = LanguageManager.getString("gui.title"); - - if (event.getView().getTitle().equals(translatedTitle)) { - event.setCancelled(true); // Diese Zeile wird jetzt wieder ausgeführt! - - if (!(event.getWhoClicked() instanceof Player)) return; - Player player = (Player) event.getWhoClicked(); - - int slot = event.getSlot(); - if (slot < 0 || slot > 23) return; - - int day = slot + 1; - LocalDate today = LocalDate.now(); - - if (today.getMonth() == Month.DECEMBER && today.getDayOfMonth() >= day && !CalendarData.hasClaimed(player, day)) { - ItemStack reward = AdventInventory.getRewardItem(day); - if (reward != null && reward.getType() != Material.AIR) { - if (player.getInventory().firstEmpty() == -1) { - player.getWorld().dropItemNaturally(player.getLocation(), reward); - player.sendMessage(LanguageManager.getString("messages.inventory_full")); - } else { - player.getInventory().addItem(reward); - } - player.sendMessage(LanguageManager.getString("messages.reward_received").replace("%day%", String.valueOf(day))); - - player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 1.0f, 1.0f); - player.spawnParticle(Particle.VILLAGER_HAPPY, player.getLocation().add(0, 1, 0), 20, 0.5, 0.5, 0.5, 0); - } - - CalendarData.setClaimed(player, day); - ItemStack newItem = AdventInventory.getCalendarItem(player, day); - event.getInventory().setItem(slot, newItem); - - } else { - player.sendMessage(LanguageManager.getString("messages.day_not_available")); - player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1.0f, 1.0f); - } - } - } +package de.mviper.adventskalender; + +import org.bukkit.*; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.inventory.ItemStack; + +import java.time.LocalDate; +import java.time.Month; + +public class AdventListener implements Listener { + + @EventHandler + public void onInventoryClick(InventoryClickEvent event) { + String translatedTitle = LanguageManager.getString("gui.title"); + + if (event.getView().getTitle().equals(translatedTitle)) { + event.setCancelled(true); + + if (!(event.getWhoClicked() instanceof Player)) return; + Player player = (Player) event.getWhoClicked(); + + int slot = event.getSlot(); + if (slot < 0 || slot > 23) return; + + int day = slot + 1; + LocalDate today = LocalDate.now(); + + if (today.getMonth() == Month.DECEMBER && today.getDayOfMonth() >= day && !CalendarData.hasClaimed(player, day)) { + ItemStack reward = AdventInventory.getRewardItem(day); + if (reward != null && reward.getType() != Material.AIR) { + if (player.getInventory().firstEmpty() == -1) { + player.getWorld().dropItemNaturally(player.getLocation(), reward); + player.sendMessage(LanguageManager.getString("messages.inventory_full")); + } else { + player.getInventory().addItem(reward); + } + player.sendMessage(LanguageManager.getString("messages.reward_received").replace("%day%", String.valueOf(day))); + + player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 1.0f, 1.0f); + player.spawnParticle(Particle.VILLAGER_HAPPY, player.getLocation().add(0, 1, 0), 20, 0.5, 0.5, 0.5, 0); + } + + CalendarData.setClaimed(player, day); + ItemStack newItem = AdventInventory.getCalendarItem(player, day); + event.getInventory().setItem(slot, newItem); + + } else { + player.sendMessage(LanguageManager.getString("messages.day_not_available")); + player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1.0f, 1.0f); + } + } + } } \ No newline at end of file