src/main/java/de/mviper/adventskalender/AdventListener.java aktualisiert

This commit is contained in:
2025-12-21 19:28:48 +00:00
parent cbf23cb493
commit 664a18f83e

View File

@@ -1,58 +1,56 @@
package de.mviper.adventskalender; package de.mviper.adventskalender;
import org.bukkit.*; import org.bukkit.*;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.Month; import java.time.Month;
public class AdventListener implements Listener { public class AdventListener implements Listener {
@EventHandler @EventHandler
public void onInventoryClick(InventoryClickEvent event) { public void onInventoryClick(InventoryClickEvent event) {
// KORREKTUR: Wir verwenden den gleichen Schlüssel wie in der AdventInventory.java, String translatedTitle = LanguageManager.getString("gui.title");
// 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);
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();
if (!(event.getWhoClicked() instanceof Player)) return;
Player player = (Player) event.getWhoClicked(); int slot = event.getSlot();
if (slot < 0 || slot > 23) return;
int slot = event.getSlot();
if (slot < 0 || slot > 23) return; int day = slot + 1;
LocalDate today = LocalDate.now();
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 (today.getMonth() == Month.DECEMBER && today.getDayOfMonth() >= day && !CalendarData.hasClaimed(player, day)) { if (reward != null && reward.getType() != Material.AIR) {
ItemStack reward = AdventInventory.getRewardItem(day); if (player.getInventory().firstEmpty() == -1) {
if (reward != null && reward.getType() != Material.AIR) { player.getWorld().dropItemNaturally(player.getLocation(), reward);
if (player.getInventory().firstEmpty() == -1) { player.sendMessage(LanguageManager.getString("messages.inventory_full"));
player.getWorld().dropItemNaturally(player.getLocation(), reward); } else {
player.sendMessage(LanguageManager.getString("messages.inventory_full")); player.getInventory().addItem(reward);
} else { }
player.getInventory().addItem(reward); player.sendMessage(LanguageManager.getString("messages.reward_received").replace("%day%", String.valueOf(day)));
}
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);
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);
CalendarData.setClaimed(player, day); event.getInventory().setItem(slot, newItem);
ItemStack newItem = AdventInventory.getCalendarItem(player, day);
event.getInventory().setItem(slot, newItem); } else {
player.sendMessage(LanguageManager.getString("messages.day_not_available"));
} else { player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1.0f, 1.0f);
player.sendMessage(LanguageManager.getString("messages.day_not_available")); }
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1.0f, 1.0f); }
} }
}
}
} }