From cbf23cb493e9fab3d7de9c5c81435065081e3dda Mon Sep 17 00:00:00 2001 From: M_Viper Date: Sun, 21 Dec 2025 19:28:18 +0000 Subject: [PATCH] src/main/java/de/mviper/adventskalender/AdventInventory.java aktualisiert --- .../adventskalender/AdventInventory.java | 236 +++++++++--------- 1 file changed, 117 insertions(+), 119 deletions(-) diff --git a/src/main/java/de/mviper/adventskalender/AdventInventory.java b/src/main/java/de/mviper/adventskalender/AdventInventory.java index 2952571..5d16492 100644 --- a/src/main/java/de/mviper/adventskalender/AdventInventory.java +++ b/src/main/java/de/mviper/adventskalender/AdventInventory.java @@ -1,120 +1,118 @@ -package de.mviper.adventskalender; - -import org.bukkit.Bukkit; -import org.bukkit.Material; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.ItemFlag; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; - -import java.time.LocalDate; -import java.time.Month; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -public class AdventInventory { - - public static void openCalendar(org.bukkit.entity.Player player) { - // KORREKTUR: Wir lesen den Titel direkt aus der Sprachdatei. - // Der Pfad "gui.title" entspricht der Struktur in deiner messages_de.yml - String title = LanguageManager.getString("gui.title"); - Inventory inv = Bukkit.createInventory(null, 54, title); - - for (int i = 0; i < 24; i++) { - int day = i + 1; - ItemStack item = getCalendarItem(player, day); - inv.setItem(i, item); - } - - ItemStack filler = new ItemStack(Material.GRAY_STAINED_GLASS_PANE); - ItemMeta fillerMeta = filler.getItemMeta(); - fillerMeta.setDisplayName(" "); - filler.setItemMeta(fillerMeta); - for (int i = 24; i < 54; i++) { - inv.setItem(i, filler); - } - - player.openInventory(inv); - } - - public static ItemStack getCalendarItem(org.bukkit.entity.Player player, int day) { - LocalDate today = LocalDate.now(); - String prefix = LanguageManager.getString("prefix"); - - if (today.getMonth() != Month.DECEMBER || today.getDayOfMonth() < day) { - ItemStack item = new ItemStack(Material.BARRIER); - ItemMeta meta = item.getItemMeta(); - meta.setDisplayName(prefix + "§cTag " + day); - List lore = new ArrayList<>(); - lore.add(prefix + "§7Noch nicht verfügbar."); - lore.add(prefix + "§7Komme am " + day + ". Dezember wieder."); - meta.setLore(lore); - item.setItemMeta(meta); - return item; - } - - if (CalendarData.hasClaimed(player, day)) { - ItemStack item = new ItemStack(Material.GREEN_STAINED_GLASS_PANE); - ItemMeta meta = item.getItemMeta(); - meta.setDisplayName(prefix + "§aTag " + day + " - Geöffnet"); - List lore = new ArrayList<>(); - lore.add(prefix + LanguageManager.getString("messages.day_already_claimed")); - meta.setLore(lore); - item.setItemMeta(meta); - return item; - } - - ItemStack item = new ItemStack(Material.CHEST); - ItemMeta meta = item.getItemMeta(); - meta.setDisplayName(prefix + "§eTag " + day + " - Noch zu holen!"); - List lore = new ArrayList<>(); - lore.add(prefix + "§7Klicke, um dein Geschenk zu erhalten."); - meta.setLore(lore); - item.setItemMeta(meta); - return item; - } - - public static ItemStack getRewardItem(int day) { - String path = "rewards." + day; - if (!Adventskalender.getInstance().getConfig().contains(path)) { - return new ItemStack(Material.AIR); - } - - String materialName = Adventskalender.getInstance().getConfig().getString(path + ".material"); - int amount = Adventskalender.getInstance().getConfig().getInt(path + ".amount"); - String key = Adventskalender.getInstance().getConfig().getString(path + ".key"); - - Material material = Material.getMaterial(materialName); - if (material == null) { - Adventskalender.getInstance().getLogger().warning("Material '" + materialName + "' für Tag " + day + " nicht gefunden!"); - return new ItemStack(Material.BARRIER); - } - - ItemStack item = new ItemStack(material, amount); - ItemMeta meta = item.getItemMeta(); - - String namePath = key + ".name"; - String lorePath = key + ".lore"; - - meta.setDisplayName(LanguageManager.getString(namePath)); - meta.setLore(LanguageManager.getStringList(lorePath)); - - List> enchantmentList = Adventskalender.getInstance().getConfig().getMapList(path + ".enchantments"); - if (enchantmentList != null) { - for (Map enchantmentMap : enchantmentList) { - String enchantName = (String) enchantmentMap.get("type"); - int level = (int) enchantmentMap.get("level"); - Enchantment enchantment = Enchantment.getByName(enchantName); - if (enchantment != null) { - meta.addEnchant(enchantment, level, true); - } - } - } - - meta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES); - item.setItemMeta(meta); - return item; - } +package de.mviper.adventskalender; + +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemFlag; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import java.time.LocalDate; +import java.time.Month; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public class AdventInventory { + + public static void openCalendar(org.bukkit.entity.Player player) { + String title = LanguageManager.getString("gui.title"); + Inventory inv = Bukkit.createInventory(null, 54, title); + + for (int i = 0; i < 24; i++) { + int day = i + 1; + ItemStack item = getCalendarItem(player, day); + inv.setItem(i, item); + } + + ItemStack filler = new ItemStack(Material.GRAY_STAINED_GLASS_PANE); + ItemMeta fillerMeta = filler.getItemMeta(); + fillerMeta.setDisplayName(" "); + filler.setItemMeta(fillerMeta); + for (int i = 24; i < 54; i++) { + inv.setItem(i, filler); + } + + player.openInventory(inv); + } + + public static ItemStack getCalendarItem(org.bukkit.entity.Player player, int day) { + LocalDate today = LocalDate.now(); + String prefix = LanguageManager.getString("prefix"); + + if (today.getMonth() != Month.DECEMBER || today.getDayOfMonth() < day) { + ItemStack item = new ItemStack(Material.BARRIER); + ItemMeta meta = item.getItemMeta(); + meta.setDisplayName(prefix + "§cTag " + day); + List lore = new ArrayList<>(); + lore.add(prefix + "§7Noch nicht verfügbar."); + lore.add(prefix + "§7Komme am " + day + ". Dezember wieder."); + meta.setLore(lore); + item.setItemMeta(meta); + return item; + } + + if (CalendarData.hasClaimed(player, day)) { + ItemStack item = new ItemStack(Material.GREEN_STAINED_GLASS_PANE); + ItemMeta meta = item.getItemMeta(); + meta.setDisplayName(prefix + "§aTag " + day + " - Geöffnet"); + List lore = new ArrayList<>(); + lore.add(prefix + LanguageManager.getString("messages.day_already_claimed")); + meta.setLore(lore); + item.setItemMeta(meta); + return item; + } + + ItemStack item = new ItemStack(Material.CHEST); + ItemMeta meta = item.getItemMeta(); + meta.setDisplayName(prefix + "§eTag " + day + " - Noch zu holen!"); + List lore = new ArrayList<>(); + lore.add(prefix + "§7Klicke, um dein Geschenk zu erhalten."); + meta.setLore(lore); + item.setItemMeta(meta); + return item; + } + + public static ItemStack getRewardItem(int day) { + String path = "rewards." + day; + if (!Adventskalender.getInstance().getConfig().contains(path)) { + return new ItemStack(Material.AIR); + } + + String materialName = Adventskalender.getInstance().getConfig().getString(path + ".material"); + int amount = Adventskalender.getInstance().getConfig().getInt(path + ".amount"); + String key = Adventskalender.getInstance().getConfig().getString(path + ".key"); + + Material material = Material.getMaterial(materialName); + if (material == null) { + Adventskalender.getInstance().getLogger().warning("Material '" + materialName + "' für Tag " + day + " nicht gefunden!"); + return new ItemStack(Material.BARRIER); + } + + ItemStack item = new ItemStack(material, amount); + ItemMeta meta = item.getItemMeta(); + + String namePath = key + ".name"; + String lorePath = key + ".lore"; + + meta.setDisplayName(LanguageManager.getString(namePath)); + meta.setLore(LanguageManager.getStringList(lorePath)); + + List> enchantmentList = Adventskalender.getInstance().getConfig().getMapList(path + ".enchantments"); + if (enchantmentList != null) { + for (Map enchantmentMap : enchantmentList) { + String enchantName = (String) enchantmentMap.get("type"); + int level = (int) enchantmentMap.get("level"); + Enchantment enchantment = Enchantment.getByName(enchantName); + if (enchantment != null) { + meta.addEnchant(enchantment, level, true); + } + } + } + + meta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES); + item.setItemMeta(meta); + return item; + } } \ No newline at end of file