ServerPlugin GUI Items Stacken verhindern

Dieses Thema im Forum "Programmierung" wurde erstellt von Disk, 30. Oktober 2014.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Disk
    Offline

    Disk

    Registriert seit:
    20. September 2014
    Beiträge:
    29
    Hey liebe Community,
    ich bin gerade dabei, ein Plugin zu schreiben. Dabei arbeite ich mit einer GUI also ein "externes Inventar". Nun meine Frage, wie verhindere ich, dass sich in diesen Inventar zwei gleiche aufeinanderfolgende Items nichts stacken. Also wenn in den Inventar z.B. nur weiße Wolle vorkommen soll, dann sind am Ende 9 weiße Wolle aufeinmal gestackt, ich möchte aber dass sich die 9 Wolle auf alle Felder verteilen.

    Ich hoffe ihr könnt mir helfen :)

    LG Disk
     
    #1
  2. MiCrJonas
    Offline

    MiCrJonas

    Registriert seit:
    29. Oktober 2012
    Beiträge:
    1.069
    #2
  3. Disk
    Offline

    Disk

    Registriert seit:
    20. September 2014
    Beiträge:
    29
    #3
  4. MiCrJonas
    Offline

    MiCrJonas

    Registriert seit:
    29. Oktober 2012
    Beiträge:
    1.069
    Code (Text):
    1. inventory.setItem(4, new ItemStack(Material.WOOL, 1, DyeColor.LIME.getData())); // 4, weil der 5. Index 4 ist. 0 Ist der 1. Index
     
    #4
  5. Disk
    Offline

    Disk

    Registriert seit:
    20. September 2014
    Beiträge:
    29
    erkennt er bei mir nicht, liegt glaube ich daran, da ich es bisjetzt anders gemacht habe
    also ich habe es so gemacht: Soweit geht es auch, nur das es eben weiße Wolle ist, und es sich eben immer stackt:

    Code (Text):
    1. inv.addItem(new ItemStack(Material.WOOL, 1));
     
    #5
  6. MiCrJonas
    Offline

    MiCrJonas

    Registriert seit:
    29. Oktober 2012
    Beiträge:
    1.069
    Was erkennt wer nicht? Hast du DyeColor importiert?
     
    #6
  7. Disk
    Offline

    Disk

    Registriert seit:
    20. September 2014
    Beiträge:
    29
    Ja, hab ich importiert.
    Er gibt immer Fehler, da deine Variante anders ist als meine, also ich benutze ja inv.addItem und du inventory.set wie muss ich es dann ändern, dass es mit inv.addItem Funktioniert? Also das der code mit inv.addItem anfängt
     
    #7
  8. MiCrJonas
    Offline

    MiCrJonas

    Registriert seit:
    29. Oktober 2012
    Beiträge:
    1.069
    Ersetze bei meinem Code das "inventory." durch "inv.".
     
    #8
  9. Disk
    Offline

    Disk

    Registriert seit:
    20. September 2014
    Beiträge:
    29
    dann unterstreicht er das "set" bei "inv.set" und es kommt der Fehler:
    The method set(int, ItemStack) is undefined for the type Inventory
     
    #9
  10. MiCrJonas
    Offline

    MiCrJonas

    Registriert seit:
    29. Oktober 2012
    Beiträge:
    1.069
    "setItem", statt "set".
     
    #10
  11. Disk
    Offline

    Disk

    Registriert seit:
    20. September 2014
    Beiträge:
    29
    ok, vielen Dank funktioniert.
    Noch eine Frage wie kann ich dazu dann noch den Namen und die Itemlore ändern? (ambesten wieder mit Beispiel)
    So schaut der Code jetzt aus:
    Code (Text):
    1.     inv.setItem(4, new ItemStack(Material.WOOL, 1, DyeColor.LIME.getData()));
     
    #11
  12. MiCrJonas
    Offline

    MiCrJonas

    Registriert seit:
    29. Oktober 2012
    Beiträge:
    1.069
  13. Disk
    Offline

    Disk

    Registriert seit:
    20. September 2014
    Beiträge:
    29
    Ich wollte das ganze jetzt mit Schwarzen Glasscheiben machen also:
    Code (Text):
    1. inv.setItem(0, new ItemStack(Material.STAINED_GLASS_PANE, 1, DyeColor.BLACK.getData()));
    Dann kommt aber immer ein Error mit "Could not pass event InventoryClickEvent to..."
    Und ich kann die Items aus den Inventar nehmen also aus der GUI
     
    #13
  14. Das Forum ist für ernste Hilfestellungen, nicht um sich alles zusammenzukopieren.
     
    #14
Status des Themas:
Es sind keine weiteren Antworten möglich.