src/main/java/de/mviper/adventskalender/AdventInventory.java aktualisiert
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user