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;
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<String> 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<String> 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<String> 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<Map<?, ?>> 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<String> 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<String> 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<String> 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<Map<?, ?>> 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;
}
}