Kleines Plugin problem

Dieses Thema im Forum "Programmierung" wurde erstellt von Baule16, 2. Januar 2013.

  1. Baule16
    Offline

    Baule16

    Registriert seit:
    10. Oktober 2012
    Beiträge:
    10
    Hallo liebe minecraft-server.eu Commnunity,

    Und zwar habe ich ein kleines Problem ...

    Ich programmier gerade ein kleines KitPvP Plugin das dem Spieler einfache Buffs geben soll ...
    Nur sollte der Spieler für einen Buff auch ein Diamanten im Inventar haben (Beispiel).

    Mein Problem ist folgendes:

    Es wird einfach immer die Effekte gegeben der Diamant zwar auch abgezogen nur wenn man jetzt keinen Diamant im Inventar hat wird der Effekt trotzdem ausgeführt. (Ich hoffe ihr versteht es wie ich es meine :D )


    Hier der relevante Code:

    http://pastebin.com/1LM1WuTk



    Ich bedanke mich schon einmal im Voraus.

    Lg
     
    #1
  2. Crafter6432
    Offline

    Crafter6432

    Registriert seit:
    22. Dezember 2011
    Beiträge:
    686
    Du prüfst gar nicht ob Dias vorhanden sind.
     
    #2
  3. Baule16
    Offline

    Baule16

    Registriert seit:
    10. Oktober 2012
    Beiträge:
    10
    Ok danke, das ist klar soweit ^^

    Nur wie stell ich das jetzt an? Gibt es da eine Methode in Bukkit oder if/else abfrage? Sorry bin noch nicht so lange im Coder Bereich tätig.

    Wäre nett wenn du ein Code Beispiel machen könntest :/
     
    #3
  4. Smuil
    Online

    Smuil

    if/else benutzen, den rest solltest du selber können oder du solltest java lernen ;)
     
    #4
  5. TimBone
    Online

    TimBone

    Du prüfst (if) ob der Spieler einen Diamanten im Inventar hat, wenn er einen hat kannst ihm dieser abgezogen werden und er wird unsterblich. Wenn er keinen Diamanten hat (else) wird ihm eine Fehlermeldung gesendet.

    http://jd.bukkit.org/doxygen/d3/dad/interfaceorg_1_1bukkit_1_1inventory_1_1Inventory.html
     
    #5
  6. herberti
    Online

    herberti

    So solltes es klappen ;D
    Code (Text):
    1.                   Player p = (Player) sender;
    2.           if(cmd.getName().equalsIgnoreCase("unsterblich")){
    3.                           if((args.length == 0) && p.getInventory().contains(Material.DIAMOND));
    4.                                
    5.                                 p.getInventory().removeItem(new ItemStack(264,1));
    6.                                 p.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 600, 10000));
    7.                                 p.addPotionEffect(new PotionEffect(PotionEffectType.FIRE_RESISTANCE, 600, 10000));
    8.                                 p.addPotionEffect(new PotionEffect(PotionEffectType.WATER_BREATHING, 600, 10000));
    9.                                 p.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, 600, 10000));
    10.                                 p.sendMessage(ChatColor.GREEN + "[KitPvP]" + ChatColor.GOLD + "Du bist nun für 30 Sekunden Unsterblich");
    11.                                
    12.                                 return true;
    13.                         }else{
    14.                                 p.sendMessage(ChatColor.GREEN+ "[KitPvP]" + ChatColor.GOLD + "Du besitzt keinen Diamanten");
    15.                        
    16.           }
    17.         return true;
    18.       }
    19. }
     
    #6
  7. Baule16
    Offline

    Baule16

    Registriert seit:
    10. Oktober 2012
    Beiträge:
    10
    Ne funkioniert leider auch nicht :/ aber danke für die Hilfe.
     
    #7
  8. herberti
    Online

    herberti

    Mein Fehler :p
    Hier der richtige sollte klappen:
    Code (Text):
    1.       public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
    2.                   Player p = (Player) sender;
    3.           if(cmd.getName().equalsIgnoreCase("unsterblich") && p.getInventory().contains(Material.DIAMOND)){
    4.                                 p.getInventory().removeItem(new ItemStack(264,1));
    5.                                 p.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 600, 10000));
    6.                                 p.addPotionEffect(new PotionEffect(PotionEffectType.FIRE_RESISTANCE, 600, 10000));
    7.                                 p.addPotionEffect(new PotionEffect(PotionEffectType.WATER_BREATHING, 600, 10000));
    8.                                 p.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, 600, 10000));
    9.                                 p.sendMessage(ChatColor.GREEN + "[KitPvP]" + ChatColor.GOLD + "Du bist nun für 30 Sekunden Unsterblich");
    10.                                
    11.                                 return true;
    12.                                                 }else{
    13.                                 p.sendMessage(ChatColor.GREEN+ "[KitPvP]" + ChatColor.GOLD + "Du besitzt keinen Diamanten");
    14.           }
    15.         return true;
    16.       }
    17. }
     
    #8
  9. Baule16
    Offline

    Baule16

    Registriert seit:
    10. Oktober 2012
    Beiträge:
    10
    Ja Danke herberti :D mir ist dein Fehler vor kurzem selbst aufgefallen.

    Danke nochmals <3
     
    #9