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