https://www.gommehd.net/threads/sammelthread-coding-tutorials.138345/#post-795003https://github.com/dmulloy2/ProtocolLib/commit/0d4071f11ec9660a15604dbe6bf4ed37093342fa
MUSS ich das eingeben, damit es funktioniert?
Bin ein API-Noob![]()
https://www.gommehd.net/threads/sammelthread-coding-tutorials.138345/#post-795003https://github.com/dmulloy2/ProtocolLib/commit/0d4071f11ec9660a15604dbe6bf4ed37093342fa
MUSS ich das eingeben, damit es funktioniert?
Bin ein API-Noob![]()
Mal hoffen, dass ich ein Video finde
DamageCause abfragen.Nächstes Problem, das TNT wird zwar in die Höhe geschossen, es werden jedoch keine Particle ausgespuckt... Woran kann das liegen?
Edit:
Wie kann ich den Blockschaden ausschalten und den PlayerDamage anlassen?
Beim PlayerDeathEvent kannst du, wenn du geprüft hast ob der LastDamageCause ENTITYATTACK ist, die Methode getKiller benutzen. Um aber auch bei anderen LastDamageCauses den Killer zu bestimmen (z.B. falls jemand bei einem Kampf durch Lava stirbt) musst du beim EntityDamageByEntityEvent falls beide Entitys Spieler sind in einer HashMap dem angegriffenen Spieler den Angreifer zuordnen. Gleichzeitig musst du eine syncDelayedTask starten welche nach z.B. 10 Sekunden den Eintrag in der HashMap löscht. Beim Tod eines Spielers fragst du nun falls der LastDamageCause nicht ENTITYATTACK ist ab, ob dem Opfer in der HashMap ein Angreifer zugeordnet ist. Wenn ja gibst du diesem dann volles LebenWill, wenn ein Spieler jemanden getötet hat, demjenigen der getötet HAT, volle Herzen geben. Wie frage ich ab, ob ein Spieler jemanden gekillt hat?
Geht nicht auchNein.
if(p.getLastDamageCause().getCause() == EntityDamageEvent.DamageCause.ENTITY_ATTACK) {
//code
}
//edit: Auch am Handy.