• 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!

Spigot Block Lokalisierung + Casting block als Chest

B

BrutalVerzockt

Guest
Hallo Minecraft-Server.EU-ler,
ich brauche eure Hilfe um meinen Code weiterzuverwenden,
ich code derzeitig an einem Chest-Shop-System und versuche aus einer Kiste die einen Block weit weg ist das Inventar
aufzurufen und eine Vorschleife zu erstellen und mit dem ersten Item, dass sich in dieser Kiste befindet auszugeben und den Type als dritte Zeile vom Schild zu setzen.

Mein Code für den SignListener:
               try {
                    int i = Integer.parseInt(e.getLine(1));
                    if (i >= 1) { // Anzahl
                        int i2 = Integer.parseInt(e.getLine(2));
                        if (i2 >= 0) { //Preis
                            if (e.getLine(3).equalsIgnoreCase("?")) {
                                e.getPlayer().sendMessage(Strings.prefix + "Du hast §aerfolgreich §7ein Verkaufsschuld erstellt");
                                e.setLine(0, "§7Verkaufe§8§l:");
                                e.setLine(1, i + " Mal");
                                e.setLine(2, "§6" + i2 + "$");

                                if(e.getBlock().getLocation().subtract(0, 0, 1).getBlock().getType().equals(Material.CHEST)) {
                                    Chest chest = (Chest) e.getBlock().getLocation().subtract(0, 0, 1).getBlock();
                                    for (ItemStack is : chest.getInventory()) {
                                        if (is.getType() != Material.AIR) {
                                            int i3 = chest.getInventory().first(is);
                                            ItemStack is1 = chest.getInventory().getItem(i3);
                                            e.setLine(3, is1.getType().toString());
                                        }
                                    }
                                } else
                                    e.getPlayer().sendMessage("TREST");
                            }
                        } else
                            e.getPlayer().sendMessage(Strings.prefix + "Die §aZahl §7in §2Zeile 3 §7muss §e0 §7und oder §emehr §7sein");
                    } else
                        e.getPlayer().sendMessage(Strings.prefix + "Die §aZahl §7in §2Zeile 2 §7muss §e1 §7und oder §emehr §7sein");
                } catch (NumberFormatException e1) {
                    e.getPlayer().sendMessage(Strings.prefix + "Die angegebenen Zahlen sind §4§n§lungültig");
                }

Ich weiß, dass sich der Code nicht ganz an den Conventions orientiert, aber es ist auch nicht für die Veröffentlichung geplant. Ich danke schonmal allen für eure Beiträge und hoffe, dass ich auch etwas aus diesem Thread mitnehmen kann
 
B

BrutalVerzockt

Guest
Okay, das Casten hat funktioniert, aber jetzt habe ich das Problem, dass an meiner For-Schleife etwas nicht ganz stimmt.
Die For-Schleife er gibt mir die zweite Zeile als Fehler aus:
for (ItemStack is : chest.getInventory()) {
                                        if (is.getType() != Material.AIR) {
                                            int i3 = chest.getInventory().first(is);
                                            ItemStack is1 = chest.getInventory().getItem(i3);
                                            e.setLine(3, is1.getType().toString());
                                        }
                                    }
 
Oben