1. Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

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. Werbung
    Online

    Werbung

  3. Crafter6432
    Offline

    Crafter6432

    Registriert seit:
    22. Dezember 2011
    Beiträge:
    682
    Du prüfst gar nicht ob Dias vorhanden sind.
     
    #2
  4. 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
  5. Smuil
    Offline

    Smuil

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

    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
  7. herberti
    Offline

    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
  8. Baule16
    Offline

    Baule16

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

    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
  10. 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