getHealth() funktioniert nicht.

Dieses Thema im Forum "Programmierung" wurde erstellt von ReefCityCraft, 18. April 2014.

  1. ReefCityCraft
    Offline

    ReefCityCraft

    Registriert seit:
    30. Januar 2012
    Beiträge:
    19
    Hallo,
    ich habe ein kleines Problem, da es klein ist fasse ich mich auch ebenfalls kurz:
    Ich möchte die Gesundheit (Also die Herzen) eines Spielers ermitteln ("Player p" in diesem Fall). Dazu schaut die Funktion "getHealth()", also in meinem Fall "p.getHealth()" ganz nett aus. Allerdings sagt mir Eclipse:
    Aber was ist denn daran zweideutig?
    get --> ausgeben
    health - gesundheit
    getHealth() --> Gesundheit ausgeben

    Gibt es denn eine andere Methode, die Herzen des Spielers zu ermitteln?

    - - - Aktualisiert - - -

    Ok, chat hat geholfen, das muss aus eine Damageable ausgegeben werden.

    Danke!

    - - - Aktualisiert - - -

    Ok, chat hat geholfen, das muss aus eine Damageable ausgegeben werden.

    Danke!
     
    #1
  2. Paulomart
    Offline

    Paulomart

    Registriert seit:
    3. November 2013
    Beiträge:
    148
    Ort:
    C:/Eclipse/Workspace/
    Minecraft:
    Paulomart
    Wie ich grade im Chat gelesen habe, verwendest du jetzt folgendes:
    Code (Text):
    1.  
    2.  ((Damageable) p).getHealth();
    3.  
    Das muss man nicht machen, du musst einfach nur deine Imports richtig verwalten:

    Als erstes muss CraftBukkit importiert werden, danach Bukkit. Dadurch werden alle Sachen die in CraftBukkit defeniert sind von Bukkit überschreiben. Hintergrund der ganzen Sache ist, dass Entwickler eigentlich nur Bukkit als API benutzen sollen. Da man aber für einige (unschöne) Sachen CraftBukkit einfach braucht. Legt man es "darunter", dass heißt es hat eine niegriegere Priorität als Bukkit.

    In Eclipse z.B. macht man das so:

    1. CraftBukkit importieren.
    2. Bukkit importieren.

    Mit Maven:

    Code (Text):
    1.  
    2. <repositories>
    3.         <repository>
    4.             <id>bukkit-repo</id>
    5.             <url>http://repo.bukkit.org/content/groups/public</url>
    6.         </repository>
    7.     </repositories>
    8.     <dependencies>
    9.         <dependency>
    10.             <groupId>org.bukkit</groupId>
    11.             <artifactId>bukkit</artifactId>
    12.             <version>1.7.8-R0.1-SNAPSHOT</version>
    13.         </dependency>
    14.         <dependency>
    15.             <groupId>org.bukkit</groupId>
    16.             <artifactId>craftBukkit</artifactId>
    17.             <version>1.7.8-R0.1-SNAPSHOT</version>
    18.         </dependency>
    19.     </dependencies>
    20.  
     
    #2
  3. ZermenoHD
    Offline

    ZermenoHD

    Registriert seit:
    8. April 2014
    Beiträge:
    29
    Ich dachte mit CraftPlayer also:
    Code (Text):
    1. CraftPlayer cp = (CraftPlayer) p;
    Nutzt man doch jetzt für alles, oder? Für "SendMessage", "Teleport", "getHealth", "setHealth", ....
     
    #3
  4. Paulomart
    Offline

    Paulomart

    Registriert seit:
    3. November 2013
    Beiträge:
    148
    Ort:
    C:/Eclipse/Workspace/
    Minecraft:
    Paulomart
    Wo hast du den scheiß her?

    Es gibt nicht umsonst eine API (Bukkit) und eine IMPLEMENTIERUNG (CraftBukkit)! Wenn ein Plugin geschreiben werden soll, wird mit der API gearbeitet. Wenn ein Server gestartet wird, nutzt man die IMPLEMENTIERUNG von der API.

    Einfach:

    Code (Text):
    1.  
    2. player.senderMessage("ba");
    3.  
    Generell sollte man alle Typen mit Craft am Anfang vermeiden. z.B. CraftWorld, CraftInventory, CraftPlayer, CraftEntity, CraftServer etc..
     
    #4
  5. To_Bii
    Offline

    To_Bii

    Registriert seit:
    27. Januar 2014
    Beiträge:
    14
    Ausm Kopf sollte folgender Code funktionieren :D:
    Code (Text):
    1. Double LiveOfPlayer = player.getHealth();
    Musst natürlich irgendwoher deinen player bekommen ;)!
     
    #5