Frage zum Inventar - Replace

  • Hallo!
    Ich habe eine Frage, da ich gerade ein HubSystem programmiere und ich einen Fehler nicht beheben kann.
    Ich möchte in dem Navigator alle nicht besetzen Felder (wo Luft ist), durch ein bestimmtes Item (in der Config einstellbar) ersetzen.
    Deshalb habe ich eine For-Schleife benuzt, die jedoch nicht funktioniert. Bitte um Hilfe.

    Hier ist der Quellcode:

    Java
    1. for(int i = 0; i < inv.getSize(); i++) {
    2. if(inv.getItem(i).getType().equals(Material.AIR))
    3. inv.setItem(i, item);
    4. }

    LG Hafralu

  • Nope geht leider nicht... Habe etwas anderes ausprobiert.

    Dies ist zwar umständlich, aber funktioniert. Es placed überall das Item hin welches ich möchte.
    Doch wenn ich den restlichen code hinzufüge klappt es eig. perfekt, bis darauf dass es den 1. Slot (Java: 0).
    In diesem erscheint kein Item... Hier der Code:

    Davor geht alles und wenn ich den code ab 28 einfüge füllt es Slot null nicht mehr.
    Bitte um Hilfe!

    LG Hafralu

  • Das ist nicht nur umständlich sondern auch sehr groß geraten.
    Schreib die For-Schleife nochmal auf und arbeite mit sogenannten Debug-Nachrichten, d.h. gebe an verschiedenen Stellen einfach messages in der Konsole aus, z.B. den Namen + i in der for-Schleife. Sollte bei der 0 nicht air stehe, hast du den Fehler gefunden.

    Liebe Grüße, Pixel

    -> Ich bin euch immer ein Pixel vorraus! smile.png
    -> Ohne mich würdet ihr Minecraft nicht spielen können tongue.png


    Der Pixelige-YouTube-Kanal: BestPixelHD - YouTube
    Der Pixelige-Twitch-Kanal: Twitch

  • Schon einmal probiert, die if -abfrage weg zu lassen? denn eig. sollte die for-Schleife so funktionieren.
    Wenn es ohne der Abrgafrage funktioniert, weißt du, dass es an deiner Abfrage liegt.

    Liebe Grüße, Pixel

    -> Ich bin euch immer ein Pixel vorraus! smile.png
    -> Ohne mich würdet ihr Minecraft nicht spielen können tongue.png


    Der Pixelige-YouTube-Kanal: BestPixelHD - YouTube
    Der Pixelige-Twitch-Kanal: Twitch

  • Es liegt an der Abfrage. Ohne geht es, aber das erklärt noch immer nicht, warum dieses Problem existiert.

    Dies ist zwar umständlich, aber funktioniert. Es placed überall das Item hin welches ich möchte.
    Doch wenn ich den restlichen code hinzufüge klappt es eig. perfekt, bis darauf dass es den 1. Slot (Java: 0).
    In diesem erscheint kein Item... Hier der Code:

    Davor geht alles und wenn ich den code ab 1 einfüge füllt es Slot null nicht mehr.
    Bitte um Hilfe!

    LG Hafralu

    2018-01-01_17.42.45.png Es ergibt einfach keinen Sinn :/

  • Code
    1. for(int i = 0; i < inv.getSize(); i++) { inv.setItem(i, item);}

    So sollte eig. deine For-Schleife funktionieren .

    Und bei dem 0 Problem:
    Bekommst du hier vllt eine 1 statt eine 0?

    Code
    1. main.cfg.getInt("Warps.1.Slot")

    Liebe Grüße, Pixel

    -> Ich bin euch immer ein Pixel vorraus! smile.png
    -> Ohne mich würdet ihr Minecraft nicht spielen können tongue.png


    Der Pixelige-YouTube-Kanal: BestPixelHD - YouTube
    Der Pixelige-Twitch-Kanal: Twitch

  • Die Schleife funktioniert jetzt einwandfrei, aber sie replaced halt die 0 nur wenn der untere code weg ist.
    Der einzige Wert der dem unterem Code entnommen werden kann ist dieser:

    Java
    1. inv.setItem(main.cfg.getInt("Hubpoint.Slot"), spawn);

    Die anderen Werte sind garnicht eingetragen. Das Spawn Item wird ja auch einwandfrei eingefügt (siehe Bild, Netherstern).
    Das erklärt das mit dem Fehler irgenwie nicht :/. Soll ich versuchen die Slots so zu translaten, dass 1 = 0 ist und 27 = 26?
    LG

  • Aber wenn du diese Methode verwendest

    Code
    1. main.cfg.getInt("Warps.1.Slot")

    bekommst du einen Integer. (und einem steck, der dazu gehört) .Welcher ist denn momentan eingespeichert? Überschreibt er vllt im deinem Inventar die Stelle 0 und deswegen ist dort kein Item und bei den anderen schon?

    Liebe Grüße, Pixel

    -> Ich bin euch immer ein Pixel vorraus! smile.png
    -> Ohne mich würdet ihr Minecraft nicht spielen können tongue.png


    Der Pixelige-YouTube-Kanal: BestPixelHD - YouTube
    Der Pixelige-Twitch-Kanal: Twitch