ServerPlugin Stacken der Tränke beim droppen und beim aufnehmen

Dieses Thema im Forum "Programmierung" wurde erstellt von genexarbeiter, 8. Mai 2016.

  1. genexarbeiter
    Offline

    genexarbeiter

    Registriert seit:
    17. September 2012
    Beiträge:
    17
    Minecraft:
    genexarbeiter
    Hey Leute ich hab da mal eine Frage:

    hat einer von euch eine Ahnung wie ich es anstelle, dass Tränke gestackt gedroppt und gestackt ins Inventar aufgenommen werden. Denn sonst muss man alle Tränke einzeln aufnehmen und immer /stack eingeben. That sucks.

    Jemand ne Idee? :)
     
    #1
  2. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    295
    Ort:
    Bürostuhl
    Minecraft:
    GPSforLEGENDS
    Soll das ein fertiges plugin sein oder willst du es selbst schreiben?
     
    #2
  3. genexarbeiter
    Offline

    genexarbeiter

    Registriert seit:
    17. September 2012
    Beiträge:
    17
    Minecraft:
    genexarbeiter
    Ich will es selbst in mein System implementieren. Ich brauche nur die Funktionsweise mithilfe der BukkitAPI
     
    #3
  4. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    295
    Ort:
    Bürostuhl
    Minecraft:
    GPSforLEGENDS
    1: PlayerPickupItemEvent
    2: Ist es ein Trank?
    2.1: Hat der Spieler bereits diesen Trank im Inventar?
    2.2: Wenn ja dann dem Itemstack 1 Trank hinzufügen.
     
    #4
  5. genexarbeiter
    Offline

    genexarbeiter

    Registriert seit:
    17. September 2012
    Beiträge:
    17
    Minecraft:
    genexarbeiter
    oh Dankeschön :) Programmiere zwar schon ziemlich lange mit der Bukkit API aber darauf bin ich nicht gekommen... xD
     
    #5
  6. genexarbeiter
    Offline

    genexarbeiter

    Registriert seit:
    17. September 2012
    Beiträge:
    17
    Minecraft:
    genexarbeiter
    Ich bekomme es nicht hin, er Stackt jetzt zwar, nimmt aber nicht alle auf sondern immer nur einen, die anderen verschwinden
    Code (Text):
    1.     @EventHandler
    2.     public void onItemPickup(PlayerPickupItemEvent e) {
    3.         if(e.getItem().getItemStack().getType().equals(Material.POTION)) {
    4.             for(ItemStack is : e.getPlayer().getInventory().getContents()) {
    5.                 if(is != null) {
    6.                     if(is.getType() != Material.AIR) {
    7.                         if(is.isSimilar(e.getItem().getItemStack())) {
    8.                             is.setAmount(is.getAmount() + e.getItem().getItemStack().getAmount());
    9.                             is.setAmount(is.getAmount() + e.getRemaining());
    10.                             e.setCancelled(true);
    11.                             e.getItem().remove();
    12.                             return;
    13.                         }
    14.                     }
    15.                 }
    16.  
    17.             }
    18.    
    19.         }
    20.     }
     
    #6
  7. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    295
    Ort:
    Bürostuhl
    Minecraft:
    GPSforLEGENDS
    #7
    jensIO gefällt das.