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