Update from Git Manager GUI
This commit is contained in:
@@ -1,12 +1,18 @@
|
||||
package de.nexuslobby.modules;
|
||||
|
||||
import de.nexuslobby.NexusLobby;
|
||||
import de.nexuslobby.api.Module;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.block.Action;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
public class ItemsModule implements Module, Listener {
|
||||
|
||||
@@ -17,14 +23,97 @@ public class ItemsModule implements Module, Listener {
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
Bukkit.getPluginManager().registerEvents(this, Bukkit.getPluginManager().getPlugin("NexusLobby"));
|
||||
Bukkit.getPluginManager().registerEvents(this, NexusLobby.getInstance());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onJoin(PlayerJoinEvent event) {
|
||||
event.getPlayer().getInventory().addItem(new ItemStack(Material.COMPASS));
|
||||
Bukkit.getScheduler().runTaskLater(NexusLobby.getInstance(), () -> {
|
||||
giveLobbyItems(event.getPlayer());
|
||||
}, 2L);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onInteract(PlayerInteractEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
ItemStack item = event.getItem();
|
||||
|
||||
if (item == null || item.getType() == Material.AIR) return;
|
||||
if (!item.hasItemMeta() || !item.getItemMeta().hasDisplayName()) return;
|
||||
|
||||
if (event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK) {
|
||||
FileConfiguration config = NexusLobby.getInstance().getConfig();
|
||||
String displayName = item.getItemMeta().getDisplayName();
|
||||
|
||||
// 1. Baumodus Logik
|
||||
String buildName = colorize(config.getString("items.lobby-tools.build-toggle.displayname", "&aBaumodus"));
|
||||
if (displayName.equals(buildName)) {
|
||||
player.performCommand("build");
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
|
||||
// 2. Gadget GUI Logik
|
||||
String gadgetName = colorize(config.getString("items.lobby-tools.gadget.displayname", "&bGadgets"));
|
||||
if (displayName.equals(gadgetName)) {
|
||||
// Öffnet die GUI aus dem GadgetModule
|
||||
NexusLobby.getInstance().getGadgetModule().openGUI(player);
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
|
||||
// 3. Kompass / Teleporter Logik (optional, falls du den Befehl schon hast)
|
||||
String compassName = colorize(config.getString("items.lobby-tools.compass.displayname", "&eTeleporter"));
|
||||
if (displayName.equals(compassName)) {
|
||||
// Hier könnte z.B. player.performCommand("cp"); stehen
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void giveLobbyItems(Player player) {
|
||||
player.getInventory().clear();
|
||||
FileConfiguration config = NexusLobby.getInstance().getConfig();
|
||||
|
||||
// 1. Kompass (Slot 4)
|
||||
if (config.getBoolean("items.lobby-tools.compass.enabled", true)) {
|
||||
int slot = config.getInt("items.lobby-tools.compass.slot", 4);
|
||||
String name = config.getString("items.lobby-tools.compass.displayname", "&eTeleporter");
|
||||
player.getInventory().setItem(slot, createItem(Material.COMPASS, name));
|
||||
}
|
||||
|
||||
// 2. Baumodus (Slot 0)
|
||||
if (player.isOp() || player.hasPermission("nexuslobby.build")) {
|
||||
if (config.getBoolean("items.lobby-tools.build-toggle.enabled", true)) {
|
||||
int slot = config.getInt("items.lobby-tools.build-toggle.slot", 0);
|
||||
String name = config.getString("items.lobby-tools.build-toggle.displayname", "&aBaumodus");
|
||||
player.getInventory().setItem(slot, createItem(Material.REDSTONE_TORCH, name));
|
||||
}
|
||||
}
|
||||
|
||||
// 3. Gadgets (Slot 8)
|
||||
if (config.getBoolean("items.lobby-tools.gadget.enabled", true)) { // Auf true gesetzt, damit es erscheint
|
||||
int slot = config.getInt("items.lobby-tools.gadget.slot", 8);
|
||||
String name = config.getString("items.lobby-tools.gadget.displayname", "&bGadgets");
|
||||
player.getInventory().setItem(slot, createItem(Material.CHEST, name));
|
||||
}
|
||||
|
||||
player.updateInventory();
|
||||
}
|
||||
|
||||
private ItemStack createItem(Material mat, String name) {
|
||||
ItemStack item = new ItemStack(mat);
|
||||
ItemMeta meta = item.getItemMeta();
|
||||
if (meta != null) {
|
||||
meta.setDisplayName(colorize(name));
|
||||
item.setItemMeta(meta);
|
||||
}
|
||||
return item;
|
||||
}
|
||||
|
||||
private String colorize(String s) {
|
||||
return (s == null) ? "" : s.replace("&", "§");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisable() {}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user