#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" //IndirectEntityDamageSource::IndirectEntityDamageSource(const wstring &msgId, std::shared_ptr entity, std::shared_ptr owner) : EntityDamageSource(msgId, entity) IndirectEntityDamageSource::IndirectEntityDamageSource(ChatPacket::EChatPacketMessage msgId, std::shared_ptr entity, std::shared_ptr owner) : EntityDamageSource(msgId, entity) { this->owner = owner; } // 4J Stu - Brought forward from 1.2.3 to fix #46422 std::shared_ptr IndirectEntityDamageSource::getDirectEntity() { return entity; } std::shared_ptr IndirectEntityDamageSource::getEntity() { return owner; } //wstring IndirectEntityDamageSource::getLocalizedDeathMessage(std::shared_ptr player) //{ // return L"death." + msgId + player->name + owner->getAName(); // //return I18n.get("death." + msgId, player.name, owner.getAName()); //} std::shared_ptr IndirectEntityDamageSource::getDeathMessagePacket(std::shared_ptr player) { wstring additional = L""; int type; if(owner != NULL) { type = owner->GetType(); if(type == eTYPE_SERVERPLAYER) { std::shared_ptr sourcePlayer = std::dynamic_pointer_cast(owner); if(sourcePlayer != NULL) additional = sourcePlayer->name; } } else { type = entity->GetType(); } return std::shared_ptr( new ChatPacket(player->name, m_msgId, type, additional ) ); }