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

Bukkit 1.6 - getHealth()

delta242

Kuhfänger
Registriert
28 Mai 2012
Beiträge
90
Diamanten
0
Hey,

da das System der Health anzeige ja mit der 1.6 geändert wurde, wird das Leben in Bukkit jetzt in double angegeben.
Das beudeutet, dass die Methode player.getHealth() jetzt einen double und keinen Integer zurück gibt. Was dieser jedoch aussagt, ist mir nicht klar, da ich folgenden Fehler habe:

player.getHealth() liefert einen Error und dazu (in Eclipse) diesen Text:
The method getHealth() is ambiguous for the type Player
Gleiche Fehler sind auch bei: setHealth() und damage()

Ja, super die alte getHealth Methode wurde überschrieben und durch die neue erstetzt, doch wenn man die neue nicht aufrufen kann ists auch nicht so knorke...
Jemand ne Idee wie man das fixen könnte? Oder hat es vielleicht schon jemand gelöst?
Aber ich denke mal, wir mussen auf ein Bukkit Update warten, sodass das ganze gefixt wird.

Grüße
delta242
 

Ven3no

Minecrafter
Registriert
3 Juli 2013
Beiträge
2
Diamanten
0
Minecraft
Ven3no
Hey ich hab's so gelöst:

PHP:
((Damageable) player).getHealth()

Oder auch so:

PHP:
((CraftPlayer) player).getHandle().getHealth()

Den Fehler, der in Eclipse auftaucht, kann ich mit auch nicht erklären.
Aber ich hoffe ich konnte hiermit helfen.

Mfg
 
C

ChunkNorris

Guest
Geht bei mir ohne Probleme....
Code:
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    if (command.getName().equalsIgnoreCase("lala")) {
        if (sender instanceof Player ) {
            Player player = (Player) sender;
            player.sendMessage(String.valueOf(player.getHealth()));
        }


        return true;
    }
    return false;
}

API-Version: 1.6.1-R0.1-SNAPSHOT
 

delta242

Kuhfänger
Registriert
28 Mai 2012
Beiträge
90
Diamanten
0
Bei mir nicht, selbst mit der neusten Dev Build von Bukkit.
Fehler:
Code:
Caused by: java.lang.Error: Unresolved compilation problems: 
    The method getHealth() is ambiguous for the type Player
    The method getHealth() is ambiguous for the type Player
Aber mit ((CraftPlayer)player).getHealth() funktioniert es.
 

G3R_Bukkit

Minecrafter
Registriert
13 August 2012
Beiträge
12
Diamanten
0
Minecraft
G3R_Bukkit
Health

Hey. Bei mir funktioniert die "health" Methode immernoch. Vielleicht kannst du mit meinem Code etwas anfangen...

Code:
if (cmd.getName().equalsIgnoreCase("heal"))
        {
            if (p.hasPermission("PLUGINNAME.heal")) 
            {

                if (args.length > 1) 
                {
                    p.sendMessage(ChatColor.RED + " You invited too many players!");
                    return false;
                }

                if (args.length == 0) 
                {

                    p.sendMessage(ChatColor.GREEN + " get well!");
                    float health = p.getHealth();
                    p.sendMessage(" your health: " + health);
                    p.setHealth(20);
                    return true;
                }

                if (args.length == 1) 
                {
                    try
                    {
                        p.sendMessage(ChatColor.GREEN + " Lokalize player...");
                        Player target = (Player) this.getServer().getPlayer( args[0]);
                        
                        if (target.isOnline())
                        {
                            p.sendMessage(ChatColor.YELLOW + args[0] + ChatColor.GREEN + " is online and has been healed.");
                            target.getHealth();
                            target.setHealth(20);
                            target.sendMessage(ChatColor.GREEN + "You have been healed.");
                        } else {
                            throw new NullPointerException();
                        }

                    } catch (NullPointerException e) {
                        p.sendMessage(ChatColor.YELLOW + args[0] + ChatColor.RED + " is offline. Discontinuation.");
                        return false;
                    }
                } else {
                    return false;
                }
            }
        }
 
Oben