• 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!

Eclipse: Item ausgabe funktioniert nicht richtig

Mrcookie008

Braumeister
Registriert
15 Dezember 2011
Beiträge
380
Diamanten
0
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:
	if (cmd.getName().equalsIgnoreCase("essen")) {
        if ((p.hasPermission("testplugin.essen")) && 
  	          (args.length == 0)) {
        p.sendMessage("§2Du hast dir ein Essenspack gegeben");
        p.getInventory().addItem(new ItemStack (322, 3));
        p.getInventory().addItem(new ItemStack (260, 5));
        p.getInventory().addItem(new ItemStack (357, 5));
        p.getInventory().addItem(new ItemStack (366, 3));
        p.getInventory().addItem(new ItemStack (354, 1));
		}
		if (args.length == 1) {
			Player p2 = getServer().getPlayer(args[0]);
	        p2.getInventory().addItem(new ItemStack (322, 3));
	        p2.getInventory().addItem(new ItemStack (260, 5));
	        p2.getInventory().addItem(new ItemStack (357, 5));
	        p2.getInventory().addItem(new ItemStack (366, 3));
	        p2.getInventory().addItem(new ItemStack (354, 1));
			p.sendMessage("§2Du hast dem Spieler " + ChatColor.GREEN + p2.getName() + "§2 ein Essenspack gegeben!");
			p2.sendMessage("§2Du hast von " + ChatColor.GREEN + p.getName() + " §2ein Essenspack erhalten!");
		}
		
	}


LG.
 

Gruenling

Kuhfänger
Registriert
29 Januar 2012
Beiträge
52
Diamanten
0
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:
if (cmd.getName().equalsIgnoreCase("essen")) 
{
        if (p.hasPermission("testplugin.essen"))
        {
                if(args.length == 1)
                {
                        Player p2 = getServer().getPlayer(args[0]);
                        p2.getInventory().addItem(new ItemStack (322, 3));
	                p2.getInventory().addItem(new ItemStack (260, 5));
	                p2.getInventory().addItem(new ItemStack (357, 5));
	                p2.getInventory().addItem(new ItemStack (366, 3));
	                p2.getInventory().addItem(new ItemStack (354, 1));
                        
			p2.sendMessage("§2Du hast von " + ChatColor.GREEN + p.getName() + " §2ein Essenspack erhalten!");
                        p.sendMessage("§2Du hast dem Spieler " + ChatColor.GREEN + p2.getName() + "§2 ein Essenspack gegeben!");
                }
                else if(args.length > 1)
                {
                        p.sendMessage("Ungueltiger Parameter!");
                }
                else
                {
                        p.getInventory().addItem(new ItemStack (322, 3));
                        p.getInventory().addItem(new ItemStack (260, 5));
                        p.getInventory().addItem(new ItemStack (357, 5));
                        p.getInventory().addItem(new ItemStack (366, 3));
                        p.getInventory().addItem(new ItemStack (354, 1));

                        p.sendMessage("§2Du hast dir ein Essenspack gegeben");
                }	
	}
}
 
Zuletzt bearbeitet:

Nexus15

Kuhfänger
Registriert
30 September 2012
Beiträge
89
Diamanten
0
Code:
@Override
    public boolean onCommand(CommandSender sender, Command cmd, String Label, String[] args) {
        if(cmd.getName().equalsIgnoreCase("Essen")) {
            Player p = (Player)sender;
            if(args.length == 0) {
                p.getInventory().addItem(new ItemStack (322, 3));
                p.getInventory().addItem(new ItemStack (260, 5));
                p.getInventory().addItem(new ItemStack (357, 5));
                p.getInventory().addItem(new ItemStack (366, 3));
                p.getInventory().addItem(new ItemStack (354, 1));
                p.updateInventory();
                return true;
            } else if (args.length > 1) {
                String n = args[2];
                Player t = Bukkit.getPlayer(n);
                t.getInventory().addItem(new ItemStack (322, 3));
                t.getInventory().addItem(new ItemStack (260, 5));
                t.getInventory().addItem(new ItemStack (357, 5));
                t.getInventory().addItem(new ItemStack (366, 3));
                t.getInventory().addItem(new ItemStack (354, 1));
                t.updateInventory();
                p.sendMessage(ChatColor.GOLD + "Du hast dem Spieler " + ChatColor.RED + n + ChatColor.GOLD + " einen Sack mit Essen geschenkt.");
                t.sendMessage(ChatColor.GOLD + "Du hast von dem Spieler " + ChatColor.RED + p.getName() + ChatColor.GOLD + " einen Sack mit Essen erhalten.");
                return true;
            }

        }
        return false;
        
    }

Hab es nicht getestet. :)
 
G

games6471

Guest
Fehler von Nexus:
Zu dem Befehl /Essen Notch
Code:
            } else if (args.length [COLOR="#FF0000"]>[/COLOR] 1) { [COLOR="#00FFFF"]//Warum nicht >= 1? Er muss doch nicht mehr als den Namen angeben.[/COLOR]
                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]
                Player t = Bukkit.getPlayer(n);
                t.getInventory().addItem(new ItemStack (322, 3));
                t.getInventory().addItem(new ItemStack (260, 5));
                t.getInventory().addItem(new ItemStack (357, 5));
                t.getInventory().addItem(new ItemStack (366, 3));
                t.getInventory().addItem(new ItemStack (354, 1));

Dies benötigst du gar nicht mehr
Code:
t.updateInventory();
 

MrFlieder

Braumeister
Registriert
30 Dezember 2011
Beiträge
332
Diamanten
0
Minecraft
MrFlieder
Code:
if(args.length > 0)
{
String player = "";    
if(args.length == 0)
{
player = sender.getName();
} else if(args.length == 1) { player = args[0];}
try
{
Player p = Bukkit.getPlayer(player);
p.getInventory().addItem(itemstack, amount);
} catch (Exception e) { sender.sendMessage("Der Spieler ist nicht online!");
}
 
Oben