Plugin 2 Inventare problem

03/22/2014 15:56 .cryptex#1
Hey Community,

ich habe eine kleine Frage zu Bukkit. Ich habe ein Lobby Plugin geschrieben,
und in diesem sind 2 Inventare drinnen, das erste Inventar öffnet sich mit dem
Command "Achiv" und das zweite mit "Teleport". Das
Achiv klappt, aber das Teleport nicht, kann mir da jmd
behilflich sein?

Danke im voraus an alle die Helfen.

mfg Scarpex
03/22/2014 16:26 .Atommoehre™#2
Poste doch einfach mal den Teil des Scriptes.
vllt können die User dann weiterhelfen.
03/22/2014 16:39 .cryptex#3
Okey,

hier ist mal der Hauptteil der 2 Inventare :

PHP Code:
    @EventHandler
    
public boolean onCommand(CommandSender senderCommand cmdString labelString[] args) {
        
        
Player p = (Player)sender;
        
        if(
cmd.getName().equalsIgnoreCase("achiv")) {
            
            
inv p.getPlayer().getServer().createInventory(null9"Lobby Achivements");
            
            
ItemStack nix = new ItemStack(Material.ENDER_PORTAL);
            
ItemMeta nixmeta nix.getItemMeta();
            
nixmeta.setDisplayName("§5???");
            
nix.setItemMeta(nixmeta);
            
            
inv.setItem(0nix);
            
inv.setItem(1nix);
            
inv.setItem(2nix);
            
inv.setItem(3nix);
            
inv.setItem(4nix);
            
inv.setItem(5nix);
            
inv.setItem(6nix);
            
inv.setItem(7nix);
            
inv.setItem(8nix);
            
            
p.getPlayer().openInventory(inv);
            
            return 
true;
        }
        
    return 
false;    
    }
        
    
    @
EventHandler
    
public boolean onCommand1(CommandSender senderCommand cmdString labelString[] args) {
        
        
Player p = (Player)sender;
        
        if(
cmd.getName().equalsIgnoreCase("teleport")) {
            
            
inv p.getPlayer().getServer().createInventory(null9"Teleporter");
            
            
ItemStack nix = new ItemStack(Material.STAINED_GLASS_PANE,1, (short15);
            
ItemMeta nixmeta nix.getItemMeta();
            
nixmeta.setDisplayName(" ");
            
nix.setItemMeta(nixmeta);
            
            
ItemStack spawn = new ItemStack(Material.SUGAR);
            
ItemMeta spawnmeta spawn.getItemMeta();
            
spawnmeta.setDisplayName("§bSpawn");
            
this.lore.clear();
            
this.lore.add("§fKeine Lust zu laufen?");
            
this.lore.add("§fKlick mich!");
            
spawnmeta.setLore(this.lore);
            
spawn.setItemMeta(spawnmeta);
            
            
ItemStack cod = new ItemStack(Material.SKULL_ITEM,1,(short3);
            
ItemMeta codmeta cod.getItemMeta();
            
codmeta.setDisplayName("§cCall of Duty");
            
this.lore.clear();
            
this.lore.add("§fSei ein Held und Kämpfe");
            
this.lore.add("§ffür die Sicherheit des Servers!");
            
codmeta.setLore(this.lore);
            
cod.setItemMeta(codmeta);
            
            
ItemStack games = new ItemStack(Material.STICK);
            
ItemMeta gamesmeta games.getItemMeta();
            
gamesmeta.setDisplayName("§6Games");
            
this.lore.clear();
            
this.lore.add("§fSpiele alleine oder mit");
            
this.lore.add("§fFreunden verschiedene Games!");
            
gamesmeta.setLore(this.lore);
            
games.setItemMeta(codmeta);
            
            
ItemStack sb = new ItemStack(Material.GRASS);
            
ItemMeta sbmeta sb.getItemMeta();
            
sbmeta.setDisplayName("§9Sky Block");
            
this.lore.clear();
            
this.lore.add("§fBekomme deine eigene Insel");
            
this.lore.add("§fund spiele dort alleine oder");
            
this.lore.add("mit Freunden!");
            
            
ItemStack coming = new ItemStack(Material.ENDER_PORTAL);
            
ItemMeta comingmeta coming.getItemMeta();
            
comingmeta.setDisplayName("§5Coming soon ...");
            
coming.setItemMeta(comingmeta);
            
            
            
inv.setItem(0nix);
            
inv.setItem(1cod);
            
inv.setItem(2sb);
            
inv.setItem(3nix);
            
inv.setItem(4spawn);
            
inv.setItem(5nix);
            
inv.setItem(6coming);
            
inv.setItem(7games);
            
inv.setItem(8nix);
            
            
p.getPlayer().openInventory(inv);
            
            return 
true;
            
        }
        return 
false;
    }
    
    @
EventHandler(priority EventPriority.MONITOR)
    public 
void onMove(InventoryClickEvent e){
        
e.setCancelled(true);
        
e.setCursor(new ItemStack(Material.AIR));
        
    }

03/22/2014 17:03 Floppy012#4
Der Fehler liegt in onCommand1 Du musst nicht jedes mal einen neue Commandfunktion machen. Du kannst einfach den teleport command mit in onCommand rein packen und @EventHanlder über einem onCommand wird ebenfalls nicht benötigt.

Code:
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        
         Player p = null;
         if(sender instanceof Player){
             p = (Player)sender;
         }
        
        if(cmd.getName().equalsIgnoreCase("achiv") && p != null) {
            
            inv = p.getPlayer().getServer().createInventory(null, 9, "Lobby Achivements");
            
            ItemStack nix = new ItemStack(Material.ENDER_PORTAL);
            ItemMeta nixmeta = nix.getItemMeta();
            nixmeta.setDisplayName("§5???");
            nix.setItemMeta(nixmeta);
            
            inv.setItem(0, nix);
            inv.setItem(1, nix);
            inv.setItem(2, nix);
            inv.setItem(3, nix);
            inv.setItem(4, nix);
            inv.setItem(5, nix);
            inv.setItem(6, nix);
            inv.setItem(7, nix);
            inv.setItem(8, nix);
            
            p.getPlayer().openInventory(inv);
            
            return true;
        }

        if(cmd.getName().equalsIgnoreCase("teleport") && p != null) {
            
            inv = p.getPlayer().getServer().createInventory(null, 9, "Teleporter");
            
            ItemStack nix = new ItemStack(Material.STAINED_GLASS_PANE,1, (short) 15);
            ItemMeta nixmeta = nix.getItemMeta();
            nixmeta.setDisplayName(" ");
            nix.setItemMeta(nixmeta);
            
            ItemStack spawn = new ItemStack(Material.SUGAR);
            ItemMeta spawnmeta = spawn.getItemMeta();
            spawnmeta.setDisplayName("§bSpawn");
            this.lore.clear();
            this.lore.add("§fKeine Lust zu laufen?");
            this.lore.add("§fKlick mich!");
            spawnmeta.setLore(this.lore);
            spawn.setItemMeta(spawnmeta);
            
            ItemStack cod = new ItemStack(Material.SKULL_ITEM,1,(short) 3);
            ItemMeta codmeta = cod.getItemMeta();
            codmeta.setDisplayName("§cCall of Duty");
            this.lore.clear();
            this.lore.add("§fSei ein Held und Kämpfe");
            this.lore.add("§ffür die Sicherheit des Servers!");
            codmeta.setLore(this.lore);
            cod.setItemMeta(codmeta);
            
            ItemStack games = new ItemStack(Material.STICK);
            ItemMeta gamesmeta = games.getItemMeta();
            gamesmeta.setDisplayName("§6Games");
            this.lore.clear();
            this.lore.add("§fSpiele alleine oder mit");
            this.lore.add("§fFreunden verschiedene Games!");
            gamesmeta.setLore(this.lore);
            games.setItemMeta(codmeta);
            
            ItemStack sb = new ItemStack(Material.GRASS);
            ItemMeta sbmeta = sb.getItemMeta();
            sbmeta.setDisplayName("§9Sky Block");
            this.lore.clear();
            this.lore.add("§fBekomme deine eigene Insel");
            this.lore.add("§fund spiele dort alleine oder");
            this.lore.add("mit Freunden!");
            
            ItemStack coming = new ItemStack(Material.ENDER_PORTAL);
            ItemMeta comingmeta = coming.getItemMeta();
            comingmeta.setDisplayName("§5Coming soon ...");
            coming.setItemMeta(comingmeta);
            
            
            inv.setItem(0, nix);
            inv.setItem(1, cod);
            inv.setItem(2, sb);
            inv.setItem(3, nix);
            inv.setItem(4, spawn);
            inv.setItem(5, nix);
            inv.setItem(6, coming);
            inv.setItem(7, games);
            inv.setItem(8, nix);
            
            p.getPlayer().openInventory(inv);
            
            return true;
            
        }
        
    return false;    
    }
        

    
    @EventHandler(priority = EventPriority.MONITOR)
    public void onMove(InventoryClickEvent e){
        e.setCancelled(true);
        e.setCursor(new ItemStack(Material.AIR));
        
    }
}
Hier der Code. Habs nicht getestet. Ich habe ebenfalls noch die beiden Befehle so umgeschrieben, dass sie nur von Spielern ausgeführ werden können, da wenn du es von der Konsole ausführst ne menge Fehler bekommst.

Mit freundlichen Grüßen

Floppy012
03/22/2014 17:05 .cryptex#5
Werde ich mal testen!

€: Danke es klappt.