• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

ItemStack von Lachs?

JOO200

Braumeister
Registriert
18 Dezember 2016
Beiträge
442
Diamanten
228
Das müsste über die Durability-Option eines ItemStacks gehen. Der Code ist zwar ungetestet, müsste aber funktionieren. Wenn du ein Inventar ausließt oder ähnliches, dann vergess nicht, dass ItemStack auf "null" zu überprüfen.
Javascript:
ItemStack is = new ItemStack(Material.RAW_FISH);
        is.setDurability((short)1);
       
        if(is.getType() == Material.RAW_FISH && is.getDurability() == 1) {
            System.out.println("Lachs gefunden.");
        }
 

gmb32

Kuhfänger
Registriert
17 Juni 2014
Beiträge
84
Diamanten
0
craftbukkit 1.8.8
Code:
Javascript:
@EventHandler
    public void onClick(InventoryClickEvent e) {
        try {
            Player player = (Player) e.getWhoClicked();
            int price = Integer.valueOf(e.getCurrentItem().getItemMeta().getLore().get(0).replace("§e", "").replace("$", ""));
            e.setCancelled(true);
        if(e.getInventory().getName().equals("§9Fischer Shop")) {
            e.setCancelled(true);
            if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Roher Lachs")) {
                if(econ.has(player, 7)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
            }
          
          
          
        }
        if(e.getInventory().getName().equals("§9Fleischer Shop")) {
      
            e.setCancelled(true);
            if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Rohes Hühnchen")) {
                if(econ.has(player, 5)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            } else if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Rohes Hammelfleisch")) {
                if(econ.has(player, 5)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            } else if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Rohes Schwein")) {
                if(econ.has(player, 5)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            } else if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Rohes Rind")) {
                if(econ.has(player, 5)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            }else if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Rohes Kanninchen")) {
                if(econ.has(player, 5)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            }
          
          
          
          
          
        }
        if(e.getInventory().getName().equals("§9Bäcker Shop")) {
            e.setCancelled(true);
            if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Brot")) {
                if(econ.has(player, 5)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            }else if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Keks")) {
                if(econ.has(player, price)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            } else if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Kuchen")) {
                if(econ.has(player, price)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            } else if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Kürbiskuchen")) {
                if(econ.has(player, price)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            }
          
          
        }
        if(e.getInventory().getName().equals("§9Schmieden Shop")) {
            e.setCancelled(true);
            if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Lederkappe")) {
                if(econ.has(player, price)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            } else if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Lederbrustpanzer")) {
                if(econ.has(player, price)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            } else if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Lederhose")) {
                if(econ.has(player, price)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            } else if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Lederschuhe")) {
                if(econ.has(player, price)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            } else if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Kettenhelm")) {
                if(econ.has(player, price)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            } else if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Kettenbrustpanzer")) {
                if(econ.has(player, price)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            } else if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Kettenhose")) {
                if(econ.has(player, price)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            }  else if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Kettenschuhe")) {
                if(econ.has(player, price)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            } else if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Eisenhelm")) {
                if(econ.has(player, price)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            } else if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Eisenbrustpanzer")) {
                if(econ.has(player, price)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            } else if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Eisenhose")) {
                if(econ.has(player, price)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            } else if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Eisenschuhe")) {
                if(econ.has(player, price)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            } else if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Steinschwert")) {
                if(econ.has(player, price)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            } else if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Eisenschwert")) {
                if(econ.has(player, price)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            } else if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Goldschwert")) {
                if(econ.has(player, price)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            } else if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§7Diamantschwert")) {
                if(econ.has(player, price)) {
                    player.getInventory().addItem(e.getCurrentItem());
                    econ.withdrawPlayer(player, price);
                    player.closeInventory();
                    player.sendMessage("§7[§???§7] Dir wurden "+price +" Dukaten abgezogen!");
                } else {
                    player.sendMessage("§7[§???§7] §cDu hast nicht genügend Geld!");
                }
              
            }
          
          
          
        }


        } catch (NullPointerException e2) {
          
        }
      
    }

Javascript:
public void openFisherShop(Player player) {
        Inventory inventory = Bukkit.createInventory(null, 9*5, "§9Fischer Shop");

        ItemStack item = new ItemStack(Material.RAW_FISH);
        item.setDurability((short)1);
        ItemMeta meta = item.getItemMeta();
        meta.setDisplayName("§7Roher Lachs");
        meta.setLore(Arrays.asList("§e7$"));;
        item.setItemMeta(meta);
        ///
        ItemStack item2= new ItemStack(Material.RAW_FISH);
        item2.setDurability((short)2);
        ItemMeta meta2 = item2.getItemMeta();
        meta2.setDisplayName("§7Roher Clownfisch");
        meta2.setLore(Arrays.asList("§e7$"));;
        item2.setItemMeta(meta2);
        ///
        ItemStack item3= new ItemStack(Material.RAW_FISH);
        item3.setDurability((short)3);
        ItemMeta meta3 = item3.getItemMeta();
        meta3.setDisplayName("§7Roher Kugelfisch");
        meta3.setLore(Arrays.asList("§e10$"));;
        item3.setItemMeta(meta3);
        ///
       
       
        inventory.setItem(23, item3);
        inventory.setItem(21, item2);
        inventory.setItem(20, item);
        player.openInventory(inventory);
    }
 

BlackHole

Workaholic
Registriert
1 Juli 2012
Beiträge
752
Diamanten
0
Minecraft
BlackHole
Vermutlich wirst du da später einmal über eine Config-Datei einrichtbar machen? Ich frage mich aber, warum den Preis der Gegenstände zuerst recht umständlich aus der ersten Lore-Zeile nimmst, dann aber die einzelnen Gegenstände direkt im Code abfragst und dort auch das Konto des Spielers nicht mit dem ermittelten Preis abfragst, sondern mit festen Werten? (Z.B. Zeile 10)
Ändere es also z.B. so ab, dass bei einem ermittelten Preis nur noch abgefragt wird, ob es ein gültiges Inventar ist.

Jedenfalls sollte es für Spieler im Überlebensmodus problemlos funktionieren. Im Code fehlen allerdings ein paar Null-Prüfungen. Es könnte also zu Exceptions kommen. Außerdem können Spieler Gegenstände aus ihrem Inventar in das virtuelle Inventar verschieben.
 
Oben