Spigot 1.16.5 Gui funzt einfach nicht was tun?
Hey ich habe dieses gui für mein plugin geschrieben an sich funktioniert der inventory teil aber das if statement will einfach nicht ich habe mehrere guis im plugin die genau gleich aufgebaut sind(den code auch schon einmal kopiert und in anderer funktion benutzt wo es ohne probleme fuktioniert hat. Es gibt keine Errors es öffnet sich einfach nicht.
@SuppressWarnings("unlikely-arg-type")
public void onClickKit(PlayerInteractEvent e) {
Player p = e.getPlayer();
try {
if (p.getInventory().getItemInMainHand().equals(Material.CHEST)) {
Inventory Stats = Bukkit.createInventory(null, InventoryType.DISPENSER, "§9§lKits");
(new Methods()).setPlaceholder(Stats);
ItemStack Item1 = new ItemStack(Material.SANDSTONE, 32);
ItemMeta meta1 = Item1.getItemMeta();
meta1.setDisplayName("§8➟ §6Sandstone");
List<String> lore1 = new ArrayList<String>();
lore1.add("You can run, but you can't hide...");
meta1.setLore(lore1);
Item1.setItemMeta(meta1);
ItemStack Item2 = new ItemStack(Material.BOW, 1);
ItemMeta meta2 = Item2.getItemMeta();
meta2.setDisplayName("§8➟ §2Sniper");
List<String> lore2 = new ArrayList<String>();
lore2.add("");
meta2.setLore(lore2);
meta2.addEnchant(Enchantment.ARROW_KNOCKBACK, 2, true);
Item2.setItemMeta(meta2);
ItemStack Item3 = new ItemStack(Material.SNOWBALL);
ItemMeta meta3 = Item3.getItemMeta();
meta3.setDisplayName("§8➟ §fSnowman");
List<String> lore3 = new ArrayList<String>();
lore3.add("§3Keep your Enemies on Distance.");
meta3.setLore(lore3);
Item3.setItemMeta(meta3);
Stats.setItem(0, Item1);
Stats.setItem(4, Item2);
Stats.setItem(8, Item3);
p.openInventory(Stats);
p.playSound(p.getLocation(), Sound.BLOCK_NOTE_BLOCK_BELL, 2.0F, 1.0F);
}
} catch (Exception exception) {
}
}
LG
3 Antworten
Ich weiß nun zwar auch nicht wo genau der Fehler liegt, aber
Damit du einen Fehlermeldung siehst musst du bei einem try{}catch(){} auch den Error Ausgeben.
exception.printStackTrace()
Auch solltest du im Optimal fall die try-catch nur über den Teil packen, der den Fehler verursachen kann, und falls es mehrere Teile gibt, mehrere try-catches machen und in der Konsole eine Zusatz Info Ausgeben wo der Fehler Auftritt.
Funktionierender Code ich habe vergessen .getType zu defienieren
public void onClickKit(PlayerInteractEvent e) {
Player p = e.getPlayer();
try {
if (p.getInventory().getItemInMainHand().getType().equals(Material.CHEST)) {
Inventory Kits = Bukkit.createInventory(null, InventoryType.DISPENSER, "§9§lKits");
(new Methods()).setPlaceholder(Kits);
ItemStack Item1 = new ItemStack(Material.SANDSTONE, 32);
ItemMeta meta1 = Item1.getItemMeta();
meta1.setDisplayName("§8➟ §6Sandstone");
List<String> lore1 = new ArrayList<String>();
lore1.add("You can run, but you can't hide...");
meta1.setLore(lore1);
Item1.setItemMeta(meta1);
ItemStack Item2 = new ItemStack(Material.BOW, 1);
ItemMeta meta2 = Item2.getItemMeta();
meta2.setDisplayName("§8➟ §2Sniper");
List<String> lore2 = new ArrayList<String>();
lore2.add("Agent 000");
meta2.setLore(lore2);
meta2.addEnchant(Enchantment.ARROW_KNOCKBACK, 2, true);
Item2.setItemMeta(meta2);
ItemStack Item3 = new ItemStack(Material.SNOWBALL);
ItemMeta meta3 = Item3.getItemMeta();
meta3.setDisplayName("§8➟ §fSnowman");
List<String> lore3 = new ArrayList<String>();
lore3.add("§3Keep your Enemies on Distance.");
meta3.setLore(lore3);
Item3.setItemMeta(meta3);
Kits.setItem(0, Item1);
Kits.setItem(4, Item2);
Kits.setItem(8, Item3);
p.openInventory(Kits);
p.playSound(p.getLocation(), Sound.BLOCK_NOTE_BLOCK_BELL, 2.0F, 1.0F);
}
} catch (Exception exception) {
System.out.println(pf + "§4Open Kit Menu §a@EventHandler:§4 3");
exception.printStackTrace();
}
}
ich kenne mich damit nicht direkt aus, gibt es vielleicht so einen Command, mit dem erst das ganze sichtbar gemacht wird? Wir in Javax.awt* ?
LG Thorax
ne einen command gibt es nicht. das event PlayerInteractEvent wieder immer beim interagieren mit einen item aus der hotbar ausgefüht. Immer wenn PlayerInteractEvent ausgeführt wird fragt mein plugin halt ob es eine kiste ist und wenn ja öffnet es ein gui