src/main/java/me/viper/teamplugin/gui/TeamGUI.java aktualisiert
This commit is contained in:
@@ -11,15 +11,15 @@ import org.bukkit.configuration.file.FileConfiguration;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.SkullMeta;
|
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
import org.bukkit.inventory.meta.SkullMeta;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class TeamGUI {
|
public class TeamGUI {
|
||||||
|
|
||||||
// rows mapping: we will place ranks on rows 1..4 (slots 9-17, 18-26, 27-35, 36-44)
|
// Zeilenpositionen für Ränge
|
||||||
private static final int[] rows = {1, 2, 3, 4};
|
private static final int[] rows = {1, 2, 3, 4};
|
||||||
|
|
||||||
public static void openTeamGUI(Player player) {
|
public static void openTeamGUI(Player player) {
|
||||||
@@ -30,7 +30,7 @@ public class TeamGUI {
|
|||||||
String title = Utils.color(cfg.getString("gui.title", "&8» &bTeam Übersicht"));
|
String title = Utils.color(cfg.getString("gui.title", "&8» &bTeam Übersicht"));
|
||||||
Inventory inv = Bukkit.createInventory(null, size, title);
|
Inventory inv = Bukkit.createInventory(null, size, title);
|
||||||
|
|
||||||
// background filler
|
// Hintergrund-Glas setzen
|
||||||
Material bgMat = Material.valueOf(cfg.getString("gui.background", "GRAY_STAINED_GLASS_PANE"));
|
Material bgMat = Material.valueOf(cfg.getString("gui.background", "GRAY_STAINED_GLASS_PANE"));
|
||||||
ItemStack filler = new ItemStack(bgMat);
|
ItemStack filler = new ItemStack(bgMat);
|
||||||
ItemMeta fm = filler.getItemMeta();
|
ItemMeta fm = filler.getItemMeta();
|
||||||
@@ -49,7 +49,6 @@ public class TeamGUI {
|
|||||||
int rowStart = rows[i] * 9;
|
int rowStart = rows[i] * 9;
|
||||||
int count = Math.min(members.size(), 9);
|
int count = Math.min(members.size(), 9);
|
||||||
if (count == 0) {
|
if (count == 0) {
|
||||||
// show placeholder in middle
|
|
||||||
ItemStack empty = createInfoItem("§7Kein/e " + rank, List.of("§7Keine Mitglieder"));
|
ItemStack empty = createInfoItem("§7Kein/e " + rank, List.of("§7Keine Mitglieder"));
|
||||||
inv.setItem(rowStart + 4, empty);
|
inv.setItem(rowStart + 4, empty);
|
||||||
continue;
|
continue;
|
||||||
@@ -77,23 +76,33 @@ public class TeamGUI {
|
|||||||
OfflinePlayer off = Bukkit.getOfflinePlayer(name);
|
OfflinePlayer off = Bukkit.getOfflinePlayer(name);
|
||||||
meta.setOwningPlayer(off);
|
meta.setOwningPlayer(off);
|
||||||
|
|
||||||
// rank display & prefix aus config
|
// Rank aus config
|
||||||
String rankDisplay = cfg.getString("rank-settings." + rank + ".display", rank);
|
String rankDisplay = cfg.getString("rank-settings." + rank + ".display", rank);
|
||||||
String rankPrefix = cfg.getString("rank-settings." + rank + ".prefix", "");
|
String rankPrefix = cfg.getString("rank-settings." + rank + ".prefix", "");
|
||||||
|
|
||||||
// Anzeige-Name: optional Prefix (farbcodes erlauben) + Spielername (in blau)
|
// Name + Prefix
|
||||||
String displayName = (rankPrefix == null ? "" : rankPrefix + " ") + "&b" + name;
|
String displayName = (rankPrefix == null ? "" : rankPrefix + " ") + "&b" + name;
|
||||||
meta.setDisplayName(Utils.color(displayName.trim()));
|
meta.setDisplayName(Utils.color(displayName.trim()));
|
||||||
|
|
||||||
List<String> lore = new ArrayList<>();
|
List<String> lore = new ArrayList<>();
|
||||||
// Rang-Zeile (farbig, aus config display nutzen)
|
|
||||||
|
// Rang
|
||||||
String rankLine = Utils.replace(LangManager.get("tooltip_rank"), "%rank%", rankDisplay);
|
String rankLine = Utils.replace(LangManager.get("tooltip_rank"), "%rank%", rankDisplay);
|
||||||
lore.add(Utils.color(rankLine));
|
lore.add(Utils.color(rankLine));
|
||||||
|
|
||||||
// Join-Datum falls vorhanden
|
// Online-/Offline-Status aus config
|
||||||
|
String statusOnline = cfg.getString("status.online", "&a🟢 Online");
|
||||||
|
String statusOffline = cfg.getString("status.offline", "&c🔴 Offline");
|
||||||
|
boolean isOnline = off.isOnline();
|
||||||
|
String statusLine = isOnline ? statusOnline : statusOffline;
|
||||||
|
lore.add(Utils.color("&7Status: " + statusLine));
|
||||||
|
|
||||||
|
// Join-Datum, falls vorhanden
|
||||||
String iso = DataManager.getData().getString("JoinDates." + name, "");
|
String iso = DataManager.getData().getString("JoinDates." + name, "");
|
||||||
|
if (iso != null && !iso.isEmpty()) {
|
||||||
String joinLine = Utils.replace(LangManager.get("tooltip_joined"), "%joindate%", Utils.prettifyIso(iso));
|
String joinLine = Utils.replace(LangManager.get("tooltip_joined"), "%joindate%", Utils.prettifyIso(iso));
|
||||||
lore.add(Utils.color(joinLine));
|
lore.add(Utils.color(joinLine));
|
||||||
|
}
|
||||||
|
|
||||||
meta.setLore(lore);
|
meta.setLore(lore);
|
||||||
skull.setItemMeta(meta);
|
skull.setItemMeta(meta);
|
||||||
@@ -112,10 +121,6 @@ public class TeamGUI {
|
|||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Liefert den (ungefärbten) GUI-Titel aus der config (z.B. "&8» &bTeam Übersicht").
|
|
||||||
* Listener sollte Utils.color(...) darauf anwenden bevor er mit e.getView().getTitle() vergleicht.
|
|
||||||
*/
|
|
||||||
public static String getGuiTitle() {
|
public static String getGuiTitle() {
|
||||||
return Main.getInstance().getConfig().getString("gui.title", "&8» &bTeam Übersicht");
|
return Main.getInstance().getConfig().getString("gui.title", "&8» &bTeam Übersicht");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user