Jump to content

GUI mit Befehlen


Empfohlene Beiträge

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!

 

 

2021-08-27_11.09.24.png

2021-08-27_11.09.15.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...
B
B