Nikolaus Janele Geschrieben 27. August 2021 Share Geschrieben 27. August 2021 Hallihallo liebe Community!😄 Ich programmiere derzeit ein Serversystem (or at least I try) und komme da bei einer Sache nicht wirklich weiter. Wie man in den Screenshots sieht gibt es den Tracker. Er soll fürs Erste ein Inventar öffnen, soweit so gut. Dort befindet sich ein Skull und wenn man den drückt soll ein Befehl ausgeführt werden. Ich komm Einfach nicht auf die Lösung, bin auch noch recht neu in diesem Gebiet also habt bitte Nachsicht mit mir! Code: (Bei copy & paste wird alles rot irgendwie...In meinem Code ist das nicht der Fall) ----------------------------------------------------------------------------------------------- package tv.nuphonics.serversystem.commands; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Material; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import tv.nuphonics.serversystem.Serversystem; public class AdminCommand implements CommandExecutor { boolean mode= false; @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if(sender.hasPermission("sesy.adminmode")){ if(sender instanceof Player){ //Items ItemStack tracker = new ItemStack(Material.NAME_TAG); ItemMeta im1 = tracker.getItemMeta(); im1.setDisplayName(Serversystem.getPrefixAT() + ChatColor.GREEN + "Tracker"); tracker.setItemMeta(im1); ItemStack totem = new ItemStack((Material.TOTEM_OF_UNDYING)); ItemMeta im2 = totem.getItemMeta(); im2.setDisplayName(Serversystem.getPrefixAT() + ChatColor.AQUA + "Abwehrtotem"); totem.setItemMeta(im2); ItemStack control = new ItemStack((Material.BLAZE_ROD)); ItemMeta im3 = control.getItemMeta(); im3.setDisplayName(Serversystem.getPrefixAT() + ChatColor.RED + "Analyse-Set"); control.setItemMeta(im3); if(mode){ Player player = (Player)sender; sender.sendMessage(Serversystem.getPrefixAT() + ChatColor.RED + "Adminmodus deaktiviert!"); player.setGameMode(GameMode.SURVIVAL); mode = false; player.getInventory().removeItem(tracker); player.getInventory().removeItem(control); player.getInventory().removeItem(totem); } else { Player player = (Player)sender; sender.sendMessage(Serversystem.getPrefixAT() + ChatColor.RED + "Adminmodus aktiviert!"); player.setGameMode(GameMode.CREATIVE); mode = true; player.getInventory().addItem(tracker); player.getInventory().addItem(control); player.getInventory().addItem(totem); } } else { sender.sendMessage(ChatColor.RED + "Nur ein Spieler kann diesen Befehl ausführen!"); } } else if (sender.isOp()){ sender.sendMessage(Serversystem.getPrefix() + ChatColor.RED + "Anscheinend bist du kein Admin!"); } else { sender.sendMessage(Serversystem.getPrefix() + ChatColor.RED + "Du hast kein Recht diesen Command zu benutzen!"); } return false; } } package tv.nuphonics.serversystem.listeners; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Material; import org.bukkit.entity.Item; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import tv.nuphonics.serversystem.Serversystem; import tv.nuphonics.serversystem.util.ItemBuilder; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; public class Adminlistener implements Listener { @EventHandler public void onInteract(PlayerInteractEvent e) { HashMap<Integer, ItemStack> integerItemStackHashMap = new HashMap<>(); integerItemStackHashMap.put(1, new ItemBuilder(Material.PLAYER_HEAD).setDisplayname("test1").build()); integerItemStackHashMap.put(10, new ItemBuilder(Material.GREEN_DYE).setDisplayname("test2").build()); integerItemStackHashMap.put(19, new ItemBuilder(Material.GREEN_DYE).setDisplayname("test3").build()); HashMap<Integer, ItemStack> integerItemStackHashMap1 = new HashMap<>(); if (e.getItem() != null) { if (e.getItem().getItemMeta().getDisplayName().equals(Serversystem.getPrefixAT() + ChatColor.GREEN + "Tracker")) { Inventory inventory = Bukkit.createInventory(null, 3 * 9, ChatColor.GREEN + "Spieler"); for (Map.Entry<Integer, ItemStack> integerItemStackEntry : integerItemStackHashMap.entrySet()) { inventory.setItem(integerItemStackEntry.getKey(), integerItemStackEntry.getValue()); } e.getPlayer().openInventory(inventory); } } } @EventHandler public void onInventoryClick(InventoryClickEvent e) { Player player=(Player)e.getWhoClicked(); if (e.getCurrentItem() == null) { return; } if (e.getView().getTitle().equals(Serversystem.getPrefixAT() + ChatColor.GREEN + "Tracker")) { e.setCancelled(true); if(e.getCurrentItem().getItemMeta().getDisplayName().equals("test1")){ if(e.getWhoClicked().equals(player)){ if(player.hasPermission("sesy.adminmode")){ player.setGameMode(GameMode.CREATIVE); player.sendMessage("Erfolg!"); } } } } } } /* Player player = event.getPlayer(); ItemStack tracker = new ItemStack(Material.NAME_TAG); ItemMeta im = tracker.getItemMeta(); im.setDisplayName(Serversystem.getPrefixAT() + ChatColor.GREEN + "Tracker"); tracker.setItemMeta(im); event.getPlayer().getInventory().setItem(4, tracker); */ Danke schonmal im Vorhinein! Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden