• 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

Baule16

Minecrafter
Registriert
10 Oktober 2012
Beiträge
10
Diamanten
0
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
 

Baule16

Minecrafter
Registriert
10 Oktober 2012
Beiträge
10
Diamanten
0
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 :/
 
T

TimBone

Guest
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
 
Zuletzt bearbeitet von einem Moderator:
H

herberti

Guest
So solltes es klappen ;D
Code:
                  Player p = (Player) sender;
          if(cmd.getName().equalsIgnoreCase("unsterblich")){
                          if((args.length == 0) && p.getInventory().contains(Material.DIAMOND));
                               
                                p.getInventory().removeItem(new ItemStack(264,1));
                                p.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 600, 10000));
                                p.addPotionEffect(new PotionEffect(PotionEffectType.FIRE_RESISTANCE, 600, 10000));
                                p.addPotionEffect(new PotionEffect(PotionEffectType.WATER_BREATHING, 600, 10000));
                                p.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, 600, 10000));
                                p.sendMessage(ChatColor.GREEN + "[KitPvP]" + ChatColor.GOLD + "Du bist nun für 30 Sekunden Unsterblich");
                               
                                return true;
                        }else{
                                p.sendMessage(ChatColor.GREEN+ "[KitPvP]" + ChatColor.GOLD + "Du besitzt keinen Diamanten");
                        
          }
        return true;
      }
}
 
H

herberti

Guest
Mein Fehler :p
Hier der richtige sollte klappen:
Code:
      public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
                  Player p = (Player) sender;
          if(cmd.getName().equalsIgnoreCase("unsterblich") && p.getInventory().contains(Material.DIAMOND)){
                                p.getInventory().removeItem(new ItemStack(264,1));
                                p.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 600, 10000));
                                p.addPotionEffect(new PotionEffect(PotionEffectType.FIRE_RESISTANCE, 600, 10000));
                                p.addPotionEffect(new PotionEffect(PotionEffectType.WATER_BREATHING, 600, 10000));
                                p.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, 600, 10000));
                                p.sendMessage(ChatColor.GREEN + "[KitPvP]" + ChatColor.GOLD + "Du bist nun für 30 Sekunden Unsterblich");
                               
                                return true;
                                                }else{
                                p.sendMessage(ChatColor.GREEN+ "[KitPvP]" + ChatColor.GOLD + "Du besitzt keinen Diamanten");
          }
        return true;
      }
}
 
Oben