Eclipse: Item ausgabe funktioniert nicht richtig

Dieses Thema im Forum "Server Plugins" wurde erstellt von Mrcookie008, 11. März 2013.

  1. Mrcookie008
    Offline

    Mrcookie008

    Registriert seit:
    15. Dezember 2011
    Beiträge:
    380
    Ort:
    /home
    Minecraft:
    xCookieZz oder Mrcookie008 (Beides Premium)
    Hallo,
    Wenn ich mir selbst "Essen" mit dem Befehl /Essen gebe funktioniert alles,
    nun wenn ich z.B /Essen Notch eingeben würde, bekäme Notch und ich das Essen bzw. die Items.. dabei sollte sie nur er bekommen..

    Was ich nun will ist einfach dass wenn man /Essen eingibt man selbst die angegeben items bekommt (Funkioniert) und bei /Essen <Name> nur der Angegebene spieler die items bekommt.. :3

    Code (Text):
    1.     if (cmd.getName().equalsIgnoreCase("essen")) {
    2.         if ((p.hasPermission("testplugin.essen")) &&
    3.               (args.length == 0)) {
    4.         p.sendMessage("§2Du hast dir ein Essenspack gegeben");
    5.         p.getInventory().addItem(new ItemStack (322, 3));
    6.         p.getInventory().addItem(new ItemStack (260, 5));
    7.         p.getInventory().addItem(new ItemStack (357, 5));
    8.         p.getInventory().addItem(new ItemStack (366, 3));
    9.         p.getInventory().addItem(new ItemStack (354, 1));
    10.         }
    11.         if (args.length == 1) {
    12.             Player p2 = getServer().getPlayer(args[0]);
    13.             p2.getInventory().addItem(new ItemStack (322, 3));
    14.             p2.getInventory().addItem(new ItemStack (260, 5));
    15.             p2.getInventory().addItem(new ItemStack (357, 5));
    16.             p2.getInventory().addItem(new ItemStack (366, 3));
    17.             p2.getInventory().addItem(new ItemStack (354, 1));
    18.             p.sendMessage("§2Du hast dem Spieler " + ChatColor.GREEN + p2.getName() + "§2 ein Essenspack gegeben!");
    19.             p2.sendMessage("§2Du hast von " + ChatColor.GREEN + p.getName() + " §2ein Essenspack erhalten!");
    20.         }
    21.        
    22.     }

    LG.
     
    #1
  2. Gruenling
    Offline

    Gruenling

    Registriert seit:
    29. Januar 2012
    Beiträge:
    52
    Ort:
    Schweiz
    Minecraft:
    gruenling
    Ja von der Code Logik her gibst du dir ja immer Essen bzw. dem der den Command ausführt.
    Überprüfe erst ob ein Parameter vorhanden ist und wenn ja gibst du dem das Essen und sonst dir.

    Hoffe das ist verständlich ausgedrückt :p

    Grüsse
    Gruenling

    // Ne warte ich labber müll xD

    Versuche mal das hier:

    Code (Text):
    1.  
    2. if (cmd.getName().equalsIgnoreCase("essen"))
    3. {
    4.         if (p.hasPermission("testplugin.essen"))
    5.         {
    6.                 if(args.length == 1)
    7.                 {
    8.                         Player p2 = getServer().getPlayer(args[0]);
    9.                         p2.getInventory().addItem(new ItemStack (322, 3));
    10.                     p2.getInventory().addItem(new ItemStack (260, 5));
    11.                     p2.getInventory().addItem(new ItemStack (357, 5));
    12.                     p2.getInventory().addItem(new ItemStack (366, 3));
    13.                     p2.getInventory().addItem(new ItemStack (354, 1));
    14.                        
    15.             p2.sendMessage("§2Du hast von " + ChatColor.GREEN + p.getName() + " §2ein Essenspack erhalten!");
    16.                         p.sendMessage("§2Du hast dem Spieler " + ChatColor.GREEN + p2.getName() + "§2 ein Essenspack gegeben!");
    17.                 }
    18.                 else if(args.length > 1)
    19.                 {
    20.                         p.sendMessage("Ungueltiger Parameter!");
    21.                 }
    22.                 else
    23.                 {
    24.                         p.getInventory().addItem(new ItemStack (322, 3));
    25.                         p.getInventory().addItem(new ItemStack (260, 5));
    26.                         p.getInventory().addItem(new ItemStack (357, 5));
    27.                         p.getInventory().addItem(new ItemStack (366, 3));
    28.                         p.getInventory().addItem(new ItemStack (354, 1));
    29.  
    30.                         p.sendMessage("§2Du hast dir ein Essenspack gegeben");
    31.                 }  
    32.     }
    33. }
    34.  
     
    #2
  3. Nexus15
    Offline

    Nexus15

    Registriert seit:
    30. September 2012
    Beiträge:
    91
    Code (Text):
    1. @Override
    2.     public boolean onCommand(CommandSender sender, Command cmd, String Label, String[] args) {
    3.         if(cmd.getName().equalsIgnoreCase("Essen")) {
    4.             Player p = (Player)sender;
    5.             if(args.length == 0) {
    6.                 p.getInventory().addItem(new ItemStack (322, 3));
    7.                 p.getInventory().addItem(new ItemStack (260, 5));
    8.                 p.getInventory().addItem(new ItemStack (357, 5));
    9.                 p.getInventory().addItem(new ItemStack (366, 3));
    10.                 p.getInventory().addItem(new ItemStack (354, 1));
    11.                 p.updateInventory();
    12.                 return true;
    13.             } else if (args.length > 1) {
    14.                 String n = args[2];
    15.                 Player t = Bukkit.getPlayer(n);
    16.                 t.getInventory().addItem(new ItemStack (322, 3));
    17.                 t.getInventory().addItem(new ItemStack (260, 5));
    18.                 t.getInventory().addItem(new ItemStack (357, 5));
    19.                 t.getInventory().addItem(new ItemStack (366, 3));
    20.                 t.getInventory().addItem(new ItemStack (354, 1));
    21.                 t.updateInventory();
    22.                 p.sendMessage(ChatColor.GOLD + "Du hast dem Spieler " + ChatColor.RED + n + ChatColor.GOLD + " einen Sack mit Essen geschenkt.");
    23.                 t.sendMessage(ChatColor.GOLD + "Du hast von dem Spieler " + ChatColor.RED + p.getName() + ChatColor.GOLD + " einen Sack mit Essen erhalten.");
    24.                 return true;
    25.             }
    26.  
    27.         }
    28.         return false;
    29.        
    30.     }
    Hab es nicht getestet. :)
     
    #3
  4. ChristianG
    Online

    ChristianG

    Sonst hilft es auch oft mehr als nur ein Snippet zu posten....
     
    #4
  5. games6471
    Online

    games6471

    Fehler von Nexus:
    Zu dem Befehl /Essen Notch
    Code (Text):
    1.  
    2.             } else if (args.length [COLOR="#FF0000"]>[/COLOR] 1) { [COLOR="#00FFFF"]//Warum nicht >= 1? Er muss doch nicht mehr als den Namen angeben.[/COLOR]
    3.                 String n = args[[COLOR="#FF0000"]2[/COLOR]]; [COLOR="#00FFFF"]//Warum rufst du erst 3. Stelle auf? Es muss 0 sein. Du rufst ja den Namen auf.[/COLOR]
    4.                 Player t = Bukkit.getPlayer(n);
    5.                 t.getInventory().addItem(new ItemStack (322, 3));
    6.                 t.getInventory().addItem(new ItemStack (260, 5));
    7.                 t.getInventory().addItem(new ItemStack (357, 5));
    8.                 t.getInventory().addItem(new ItemStack (366, 3));
    9.                 t.getInventory().addItem(new ItemStack (354, 1));
    Dies benötigst du gar nicht mehr
    Code (Text):
    1. t.updateInventory();
     
    #5
  6. MrFlieder
    Offline

    MrFlieder

    Registriert seit:
    30. Dezember 2011
    Beiträge:
    333
    Ort:
    Österreich
    Minecraft:
    MrFlieder
    Code (Text):
    1.  
    2. if(args.length > 0)
    3. {
    4. String player = "";    
    5. if(args.length == 0)
    6. {
    7. player = sender.getName();
    8. } else if(args.length == 1) { player = args[0];}
    9. try
    10. {
    11. Player p = Bukkit.getPlayer(player);
    12. p.getInventory().addItem(itemstack, amount);
    13. } catch (Exception e) { sender.sendMessage("Der Spieler ist nicht online!");
    14. }
    15.  
     
    #6