ServerPlugin Problem beim Löschen/Abziehen von Items im Invetar

Dieses Thema im Forum "Programmierung" wurde erstellt von Basti07711, 29. April 2015.

  1. Basti07711
    Offline

    Basti07711 Ehem. Teammitglied

    Registriert seit:
    2. August 2012
    Beiträge:
    714
    Ort:
    Hinter dir
    Minecraft:
    Basti07711
    Hi leute,
    ich programmiere schon seit langem an einem großen Plugin, aber jetzt bin ich auf etwas gestoßen, was ich einfach nicht gelöst bekomme...
    Das Abziehen der Items, bzw. das Löschen dieser funktioniert nicht.
    Ich nutze die neuste Spigot 1.8.3, wo ja schon einiges gefixt wurde.

    Hier der Code
    Code (Text):
    1. if(e.getPlayer().getInventory().getItemInHand().getAmount() == 1){
    2.                                                                                                                 e.getPlayer().getInventory().getItemInHand().setType(Material.AIR);
    3.                                                                                                                 e.getPlayer().updateInventory();
    4.                                                                                                             }else{
    5.                                                                                                                 int a = e.getPlayer().getInventory().getItemInHand().getAmount();
    6.                                                                                                                 int an = a-1;
    7.                                                                                                                
    8.                                                                                                                 e.getPlayer().getInventory().getItemInHand().setAmount(an);
    9.                                                                                                                 e.getPlayer().updateInventory();
    10.                                                                                                             }

    Wo liegt der Fehler? Was mache ich falsch? Ich bedanke mich schonmal im Vorraus für Antworten.
     
    #1
  2. [Dev] iTzSasukeHDxLP
    Offline

    [Dev] iTzSasukeHDxLP Ehem. Teammitglied

    Registriert seit:
    5. Januar 2014
    Beiträge:
    938
  3. combo
    Offline

    combo

    Registriert seit:
    16. Juli 2012
    Beiträge:
    160
    Minecraft:
    combo5
    Probier mal
    Code (Text):
    1.  
    2. e.getPlayer().getInventory().remove(e.getPlayer().getItemInHand);
    3.  
    EDIT: Shizune war schneller =)
     
    #3
    Basti07711 gefällt das.
  4. Heldin
    Offline

    Heldin

    Registriert seit:
    22. April 2015
    Beiträge:
    42
    • Item aus Inventar "holen" und abspeichern.
    • Anzahl eins runter setzen.
    • Item ins Inventar tun. setItemInHand ()
    Bin leider nur mit Handy on. Daher kein Code.
     
    #4
    Basti07711 gefällt das.
  5. Basti07711
    Offline

    Basti07711 Ehem. Teammitglied

    Registriert seit:
    2. August 2012
    Beiträge:
    714
    Ort:
    Hinter dir
    Minecraft:
    Basti07711
    Das löst ja schonmal fast die ersten paar Zeilen. Ich habe es wie folgt gelöst:
    Code (Text):
    1. e.getPlayer().getInventory().clear(e.getPlayer().getInventory().getHeldItemSlot());
    Sonst löscht es alle Items die genauso sind wie dieses.
    Jedoch klappt der 2. Abschnitt noch nicht.

    ------EDIT-----
    Die Antwort von Heldin hat funktioniert. Vielen Dank :D
     
    #5
  6. [Dev] iTzSasukeHDxLP
    Offline

    [Dev] iTzSasukeHDxLP Ehem. Teammitglied

    Registriert seit:
    5. Januar 2014
    Beiträge:
    938
    Machs halt mehrere Male mit einer Schleife, oder mach es wie ich es beschrieben habe und entferne nen ItemStack mit der exakten Anzahl.
     
    #6