Hey,
ich arbeite zur Zeit an einem PvP Plugin und ich mache grade das Größte Teil vom Plugin und zwar den Shop Ich sende euch mal die EventHandler die ich habe:
Das mit dem Random Teleport müsst ihr nicht beachten. Der Fehler ist wenn ich Rechtsklick auf ein Schild mache mit dem Item Shop Öffnet sich der Shop und die Items aber wenn ich auf eines der Items klicke passiert nichts auser wenn ich auf Diamant Schwert klicke dann schließt sich das Fenster wieder...
Wo liegt der Fehler und Schudldigung wenn es so unübersichtlist ist ich wusste keine andere Möglichkeit es kleiner zu machen und die Item Meta in eine andere Klasse zu machen...wenn einer da och eine Idee hat kann er mich anschreiben.
ich arbeite zur Zeit an einem PvP Plugin und ich mache grade das Größte Teil vom Plugin und zwar den Shop Ich sende euch mal die EventHandler die ich habe:
Code:
@EventHandler
public void onSignKlick(PlayerInteractEvent event) {
if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
Player p = event.getPlayer();
BlockState bs = event.getClickedBlock().getState();
if (bs instanceof Sign) {
Sign sign = (Sign) bs;
if(sign.getLine(1).equalsIgnoreCase("Item Shop")){
Inventory inv = Bukkit.createInventory(null, 9, "PvP - ItemShop");
p.openInventory(inv);
//Shop Items
ItemStack schwert = new ItemStack(Material.DIAMOND_SWORD, 1);
ItemMeta schwertMeta = schwert.getItemMeta();
schwertMeta.setDisplayName(ChatColor.AQUA + "Schwerter");
schwert.setItemMeta(schwertMeta);
//Leder Rüstung
ItemStack leather = new ItemStack(Material.LEATHER_CHESTPLATE, 1);
ItemMeta lederMeta = leather.getItemMeta();
lederMeta.setDisplayName(ChatColor.BOLD + "Leder Rüstung");
leather.setItemMeta(lederMeta);
//Ketten Rüstung
ItemStack chain = new ItemStack(Material.CHAINMAIL_CHESTPLATE, 1);
ItemMeta kettenMeta = chain.getItemMeta();
kettenMeta.setDisplayName(ChatColor.BOLD + "Ketten Rüstung");
chain.setItemMeta(kettenMeta);
//Eisen Rüstung
ItemStack iron = new ItemStack(Material.IRON_CHESTPLATE, 1);
ItemMeta ironMeta = iron.getItemMeta();
ironMeta.setDisplayName(ChatColor.BOLD + "Eisen Rüstung");
iron.setItemMeta(ironMeta);
//Portions
ItemStack potion = new ItemStack(Material.POTION, 1);
ItemMeta potionMeta = potion.getItemMeta();
potionMeta.setDisplayName(ChatColor.DARK_PURPLE + "Tränke");
potion.setItemMeta(potionMeta);
//Items in den Inventory:
inv.setItem(1, schwert);
inv.setItem(2, leather);
inv.setItem(3, chain);
inv.setItem(4, iron);
inv.setItem(5, potion);
p.openInventory(inv);
}
if(sign.getLine(1).equalsIgnoreCase("Random Teleport")){
World welt = p.getWorld();
Location loc1 = new Location(welt, -156, 66, 441);
Location loc2 = new Location(welt, -156, 66, 442);
Location loc3 = new Location(welt, -156, 66, 443);
Location loc4 = new Location(welt, -156, 66, 444);
Random rnd = new Random();
int zufallszahl = rnd.nextInt(3);
Location loc = null;
switch(zufallszahl){
case 0:
loc = loc1;
break;
case 1:
loc = loc2;
break;
case 2:
loc = loc3;
break;
case 3:
loc = loc4;
}
p.teleport(loc);
}
}
}
}
@EventHandler
public void onInventory(InventoryClickEvent e) {
Player p = (Player)e.getWhoClicked();
Inventory schwerter = Bukkit.createInventory(null, 9 , "PvP - Schwerter");
Inventory leder = Bukkit.createInventory(null, 9, "PvP - Leder Rüstung");
Inventory ketten = Bukkit.createInventory(null, 9, "PvP - Ketten Rüstung");
Inventory eisen = Bukkit.createInventory(null, 9, "PvP - Eisen Rüsung");
Inventory trank = Bukkit.createInventory(null, 9, "PvP - Tränke");
if(e.getInventory().getName().equalsIgnoreCase("PvP - ItemShop")) {
//Haupt Shop
if(e.getCurrentItem().getType() == Material.DIAMOND_SWORD) {
p.openInventory(schwerter);
p.closeInventory(p.get);
} else if(e.getCurrentItem().getType() == Material.LEATHER_CHESTPLATE) {
p.openInventory(leder);
} else if(e.getCurrentItem().getType() == Material.CHAINMAIL_CHESTPLATE) {
p.openInventory(ketten);
} else if(e.getCurrentItem().getType() == Material.IRON_CHESTPLATE) {
p.openInventory(eisen);
} else if(e.getCurrentItem().getType() == Material.POTION) {
p.openInventory(trank);
}
//Schwerter Shop
schwerter.setItem(2, new ItemStack(Material.WOOD_SWORD));
schwerter.setItem(3, new ItemStack(Material.GOLD_SWORD));
schwerter.setItem(4, new ItemStack(Material.STONE_SWORD));
schwerter.setItem(5, new ItemStack(Material.IRON_SWORD));
schwerter.setItem(5, new ItemStack(Material.IRON_SWORD,1));
schwerter.setItem(6, new ItemStack(Material.DIAMOND_SWORD,1));
schwerter.setItem(7, new ItemStack(Material.DIAMOND_SWORD));
//Leder Shop
leder.setItem(2, new ItemStack(Material.LEATHER_HELMET));
leder.setItem(3, new ItemStack(Material.LEATHER_CHESTPLATE));
leder.setItem(4, new ItemStack(Material.LEATHER_LEGGINGS));
leder.setItem(5, new ItemStack(Material.LEATHER_BOOTS));
//Ketten Shop
ketten.setItem(2, new ItemStack(Material.CHAINMAIL_HELMET));
ketten.setItem(3, new ItemStack(Material.CHAINMAIL_CHESTPLATE));
ketten.setItem(4, new ItemStack(Material.CHAINMAIL_LEGGINGS));
ketten.setItem(5, new ItemStack(Material.CHAINMAIL_BOOTS));
//Eisen Shop
eisen.setItem(2, new ItemStack(Material.IRON_HELMET));
eisen.setItem(3, new ItemStack(Material.IRON_CHESTPLATE));
eisen.setItem(4, new ItemStack(Material.IRON_LEGGINGS));
eisen.setItem(5, new ItemStack(Material.IRON_BOOTS));
//Potion Shop
trank.setItem(2, new ItemStack(373,(short) 16385));
trank.setItem(3, new ItemStack(373,(short) 16389));
trank.setItem(4, new ItemStack(373,(short) 16458));
trank.setItem(5, new ItemStack(373,(short) 8201));
trank.setItem(6, new ItemStack(373,(short) 16396));
}
p.closeInventory();
}
}
Wo liegt der Fehler und Schudldigung wenn es so unübersichtlist ist ich wusste keine andere Möglichkeit es kleiner zu machen und die Item Meta in eine andere Klasse zu machen...wenn einer da och eine Idee hat kann er mich anschreiben.