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

This commit is contained in:
2025-12-21 19:28:18 +00:00
parent edd422bc01
commit cbf23cb493

View File

@@ -1,120 +1,118 @@
package de.mviper.adventskalender; package de.mviper.adventskalender;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment; import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.Inventory; import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.ItemMeta;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.Month; import java.time.Month;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
public class AdventInventory { public class AdventInventory {
public static void openCalendar(org.bukkit.entity.Player player) { public static void openCalendar(org.bukkit.entity.Player player) {
// KORREKTUR: Wir lesen den Titel direkt aus der Sprachdatei. String title = LanguageManager.getString("gui.title");
// Der Pfad "gui.title" entspricht der Struktur in deiner messages_de.yml Inventory inv = Bukkit.createInventory(null, 54, title);
String title = LanguageManager.getString("gui.title");
Inventory inv = Bukkit.createInventory(null, 54, title); for (int i = 0; i < 24; i++) {
int day = i + 1;
for (int i = 0; i < 24; i++) { ItemStack item = getCalendarItem(player, day);
int day = i + 1; inv.setItem(i, item);
ItemStack item = getCalendarItem(player, day); }
inv.setItem(i, item);
} ItemStack filler = new ItemStack(Material.GRAY_STAINED_GLASS_PANE);
ItemMeta fillerMeta = filler.getItemMeta();
ItemStack filler = new ItemStack(Material.GRAY_STAINED_GLASS_PANE); fillerMeta.setDisplayName(" ");
ItemMeta fillerMeta = filler.getItemMeta(); filler.setItemMeta(fillerMeta);
fillerMeta.setDisplayName(" "); for (int i = 24; i < 54; i++) {
filler.setItemMeta(fillerMeta); inv.setItem(i, filler);
for (int i = 24; i < 54; i++) { }
inv.setItem(i, filler);
} player.openInventory(inv);
}
player.openInventory(inv);
} public static ItemStack getCalendarItem(org.bukkit.entity.Player player, int day) {
LocalDate today = LocalDate.now();
public static ItemStack getCalendarItem(org.bukkit.entity.Player player, int day) { String prefix = LanguageManager.getString("prefix");
LocalDate today = LocalDate.now();
String prefix = LanguageManager.getString("prefix"); if (today.getMonth() != Month.DECEMBER || today.getDayOfMonth() < day) {
ItemStack item = new ItemStack(Material.BARRIER);
if (today.getMonth() != Month.DECEMBER || today.getDayOfMonth() < day) { ItemMeta meta = item.getItemMeta();
ItemStack item = new ItemStack(Material.BARRIER); meta.setDisplayName(prefix + "§cTag " + day);
ItemMeta meta = item.getItemMeta(); List<String> lore = new ArrayList<>();
meta.setDisplayName(prefix + "§cTag " + day); lore.add(prefix + "§7Noch nicht verfügbar.");
List<String> lore = new ArrayList<>(); lore.add(prefix + "§7Komme am " + day + ". Dezember wieder.");
lore.add(prefix + "§7Noch nicht verfügbar."); meta.setLore(lore);
lore.add(prefix + "§7Komme am " + day + ". Dezember wieder."); item.setItemMeta(meta);
meta.setLore(lore); return item;
item.setItemMeta(meta); }
return item;
} if (CalendarData.hasClaimed(player, day)) {
ItemStack item = new ItemStack(Material.GREEN_STAINED_GLASS_PANE);
if (CalendarData.hasClaimed(player, day)) { ItemMeta meta = item.getItemMeta();
ItemStack item = new ItemStack(Material.GREEN_STAINED_GLASS_PANE); meta.setDisplayName(prefix + "§aTag " + day + " - Geöffnet");
ItemMeta meta = item.getItemMeta(); List<String> lore = new ArrayList<>();
meta.setDisplayName(prefix + "§aTag " + day + " - Geöffnet"); lore.add(prefix + LanguageManager.getString("messages.day_already_claimed"));
List<String> lore = new ArrayList<>(); meta.setLore(lore);
lore.add(prefix + LanguageManager.getString("messages.day_already_claimed")); item.setItemMeta(meta);
meta.setLore(lore); return item;
item.setItemMeta(meta); }
return item;
} ItemStack item = new ItemStack(Material.CHEST);
ItemMeta meta = item.getItemMeta();
ItemStack item = new ItemStack(Material.CHEST); meta.setDisplayName(prefix + "§eTag " + day + " - Noch zu holen!");
ItemMeta meta = item.getItemMeta(); List<String> lore = new ArrayList<>();
meta.setDisplayName(prefix + "§eTag " + day + " - Noch zu holen!"); lore.add(prefix + "§7Klicke, um dein Geschenk zu erhalten.");
List<String> lore = new ArrayList<>(); meta.setLore(lore);
lore.add(prefix + "§7Klicke, um dein Geschenk zu erhalten."); item.setItemMeta(meta);
meta.setLore(lore); return item;
item.setItemMeta(meta); }
return item;
} public static ItemStack getRewardItem(int day) {
String path = "rewards." + day;
public static ItemStack getRewardItem(int day) { if (!Adventskalender.getInstance().getConfig().contains(path)) {
String path = "rewards." + day; return new ItemStack(Material.AIR);
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 materialName = Adventskalender.getInstance().getConfig().getString(path + ".material"); String key = Adventskalender.getInstance().getConfig().getString(path + ".key");
int amount = Adventskalender.getInstance().getConfig().getInt(path + ".amount");
String key = Adventskalender.getInstance().getConfig().getString(path + ".key"); Material material = Material.getMaterial(materialName);
if (material == null) {
Material material = Material.getMaterial(materialName); Adventskalender.getInstance().getLogger().warning("Material '" + materialName + "' für Tag " + day + " nicht gefunden!");
if (material == null) { return new ItemStack(Material.BARRIER);
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();
ItemStack item = new ItemStack(material, amount);
ItemMeta meta = item.getItemMeta(); String namePath = key + ".name";
String lorePath = key + ".lore";
String namePath = key + ".name";
String lorePath = key + ".lore"; meta.setDisplayName(LanguageManager.getString(namePath));
meta.setLore(LanguageManager.getStringList(lorePath));
meta.setDisplayName(LanguageManager.getString(namePath));
meta.setLore(LanguageManager.getStringList(lorePath)); List<Map<?, ?>> enchantmentList = Adventskalender.getInstance().getConfig().getMapList(path + ".enchantments");
if (enchantmentList != null) {
List<Map<?, ?>> enchantmentList = Adventskalender.getInstance().getConfig().getMapList(path + ".enchantments"); for (Map<?, ?> enchantmentMap : enchantmentList) {
if (enchantmentList != null) { String enchantName = (String) enchantmentMap.get("type");
for (Map<?, ?> enchantmentMap : enchantmentList) { int level = (int) enchantmentMap.get("level");
String enchantName = (String) enchantmentMap.get("type"); Enchantment enchantment = Enchantment.getByName(enchantName);
int level = (int) enchantmentMap.get("level"); if (enchantment != null) {
Enchantment enchantment = Enchantment.getByName(enchantName); meta.addEnchant(enchantment, level, true);
if (enchantment != null) { }
meta.addEnchant(enchantment, level, true); }
} }
}
} meta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
item.setItemMeta(meta);
meta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES); return item;
item.setItemMeta(meta); }
return item;
}
} }