Jump to content

Recommended Posts

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 to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...
B