#include "stdafx.h" #include "net.minecraft.world.entity.player.h" #include "net.minecraft.world.entity.h" #include "net.minecraft.world.damagesource.h" #include "net.minecraft.network.packet.h" //EntityDamageSource::EntityDamageSource(const wstring &msgId, shared_ptr entity) : DamageSource(msgId) EntityDamageSource::EntityDamageSource(ChatPacket::EChatPacketMessage msgId, ChatPacket::EChatPacketMessage msgWithItemId, shared_ptr entity) : DamageSource(msgId, msgWithItemId) { this->entity = entity; } shared_ptr EntityDamageSource::getEntity() { return entity; } //wstring EntityDamageSource::getLocalizedDeathMessage(shared_ptr player) //{ // return L"death." + msgId + player->name + entity->getAName(); // //return I18n.get("death." + msgId, player.name, entity.getAName()); //} shared_ptr EntityDamageSource::getDeathMessagePacket(shared_ptr player) { shared_ptr held = (entity != NULL) && entity->instanceof(eTYPE_LIVINGENTITY) ? dynamic_pointer_cast(entity)->getCarriedItem() : nullptr; wstring additional = L""; if (entity->instanceof(eTYPE_SERVERPLAYER)) { additional = dynamic_pointer_cast(entity)->name; } else if (entity->instanceof(eTYPE_MOB)) { shared_ptr mob = dynamic_pointer_cast(entity); if (mob->hasCustomName()) { additional = mob->getCustomName(); } } if ( (held != NULL) && held->hasCustomHoverName()) { return shared_ptr( new ChatPacket(player->getNetworkName(), m_msgWithItemId, entity->GetType(), additional, held->getHoverName() ) ); } else { return shared_ptr( new ChatPacket(player->getNetworkName(), m_msgId, entity->GetType(), additional ) ); } } bool EntityDamageSource::scalesWithDifficulty() { return (entity != NULL) && entity->instanceof(eTYPE_LIVINGENTITY) && !entity->instanceof(eTYPE_PLAYER); } // 4J: Copy function DamageSource *EntityDamageSource::copy() { return new EntityDamageSource(*this); }