Fix death messages

This commit is contained in:
Draycia 2020-05-03 06:00:53 -07:00
parent ad4193d934
commit 1b5bf59c26
3 changed files with 11 additions and 8 deletions

View File

@ -1,5 +1,6 @@
package net.minestom.server.entity; package net.minestom.server.entity;
import net.kyori.text.Component;
import net.kyori.text.TextComponent; import net.kyori.text.TextComponent;
import net.minestom.server.MinecraftServer; import net.minestom.server.MinecraftServer;
import net.minestom.server.bossbar.BossBar; import net.minestom.server.bossbar.BossBar;
@ -247,7 +248,7 @@ public class Player extends LivingEntity {
public void kill() { public void kill() {
if (!isDead()) { if (!isDead()) {
// send death message to player // send death message to player
TextComponent deathMessage; Component deathMessage;
if (lastDamageSource != null) { if (lastDamageSource != null) {
deathMessage = lastDamageSource.buildDeathScreenMessage(this); deathMessage = lastDamageSource.buildDeathScreenMessage(this);
} else { // may happen if killed by the server without applying damage } else { // may happen if killed by the server without applying damage
@ -257,7 +258,7 @@ public class Player extends LivingEntity {
playerConnection.sendPacket(deathPacket); playerConnection.sendPacket(deathPacket);
// send death message to chat // send death message to chat
TextComponent chatMessage; Component chatMessage;
if (lastDamageSource != null) { if (lastDamageSource != null) {
chatMessage = lastDamageSource.buildChatMessage(this); chatMessage = lastDamageSource.buildChatMessage(this);
} else { // may happen if killed by the server without applying damage } else { // may happen if killed by the server without applying damage
@ -404,7 +405,7 @@ public class Player extends LivingEntity {
sendMessage(Chat.fromLegacyText(message, colorChar)); sendMessage(Chat.fromLegacyText(message, colorChar));
} }
public void sendMessage(TextComponent textObject) { public void sendMessage(Component textObject) {
sendMessageJson(Chat.toJsonString(textObject)); sendMessageJson(Chat.toJsonString(textObject));
} }

View File

@ -1,5 +1,6 @@
package net.minestom.server.entity.damage; package net.minestom.server.entity.damage;
import net.kyori.text.Component;
import net.kyori.text.TextComponent; import net.kyori.text.TextComponent;
import net.kyori.text.TranslatableComponent; import net.kyori.text.TranslatableComponent;
import net.minestom.server.entity.Entity; import net.minestom.server.entity.Entity;
@ -26,15 +27,15 @@ public class DamageType {
return new EntityProjectileDamage(shooter, projectile); return new EntityProjectileDamage(shooter, projectile);
} }
public TextComponent buildChatMessage(Player killed) { public Component buildChatMessage(Player killed) {
return TextComponent.builder().append(TranslatableComponent.of("death."+identifier)).append(killed.getUsername()).build(); return TranslatableComponent.of("death."+identifier, TextComponent.of(killed.getUsername()));
} }
public static DamageType fromPlayer(Player player) { public static DamageType fromPlayer(Player player) {
return new EntityDamage(player); return new EntityDamage(player);
} }
public TextComponent buildDeathScreenMessage(Player killed) { public Component buildDeathScreenMessage(Player killed) {
return buildChatMessage(killed); return buildChatMessage(killed);
} }
} }

View File

@ -1,5 +1,6 @@
package net.minestom.server.network.packet.server.play; package net.minestom.server.network.packet.server.play;
import net.kyori.text.Component;
import net.kyori.text.TextComponent; import net.kyori.text.TextComponent;
import net.minestom.server.chat.Chat; import net.minestom.server.chat.Chat;
import net.minestom.server.entity.Entity; import net.minestom.server.entity.Entity;
@ -20,7 +21,7 @@ public class CombatEventPacket implements ServerPacket {
private int duration; private int duration;
private int opponent; private int opponent;
private int playerID; private int playerID;
private TextComponent deathMessage; private Component deathMessage;
private CombatEventPacket() {} private CombatEventPacket() {}
@ -38,7 +39,7 @@ public class CombatEventPacket implements ServerPacket {
return packet; return packet;
} }
public static CombatEventPacket death(Player player, Optional<Entity> killer, TextComponent message) { public static CombatEventPacket death(Player player, Optional<Entity> killer, Component message) {
CombatEventPacket packet = new CombatEventPacket(); CombatEventPacket packet = new CombatEventPacket();
packet.type = EventType.DEATH; packet.type = EventType.DEATH;
packet.playerID = player.getEntityId(); packet.playerID = player.getEntityId();