public static void finishRescue(EntityPlayer player) {
IHardcoreRevival revival = player.getCapability(CapabilityHardcoreRevival.REVIVAL_CAPABILITY, null);
if (revival != null) {
EntityPlayer target = revival.getRescueTarget();
if (target != null) {
MinecraftServer server = target.getServer();
if (server != null) {
BlockPos prevSpawnPos = target.getBedLocation(target.dimension);
boolean prevSpawnForced = target.isSpawnForced(target.dimension);
target.setSpawnPoint(target.getPosition(), true);
if (ModConfig.glowOnDeath) {
target.setGlowing(false);
}
EntityPlayerMP newPlayer = server.getPlayerList().recreatePlayerEntity((EntityPlayerMP) target, target.dimension, false);
((EntityPlayerMP) target).connection.player = newPlayer;
newPlayer.setHealth(1f);
newPlayer.getFoodStats().setFoodLevel(5);
newPlayer.addPotionEffect(new PotionEffect(MobEffects.HUNGER, 20 * 30));
newPlayer.addPotionEffect(new PotionEffect(MobEffects.WEAKNESS, 20 * 60));
newPlayer.inventory.copyInventory(target.inventory);
newPlayer.experienceLevel = target.experienceLevel;
newPlayer.experienceTotal = target.experienceTotal;
newPlayer.experience = target.experience;
newPlayer.extinguish();
newPlayer.setFlag(0, false); // burning flag
newPlayer.setScore(target.getScore());
newPlayer.setSpawnPoint(prevSpawnPos, prevSpawnForced);
NetworkHandler.instance.sendToAllAround(new MessageRevivalSuccess(newPlayer.getEntityId()), new NetworkRegistry.TargetPoint(newPlayer.dimension, newPlayer.posX, newPlayer.posY, newPlayer.posZ, 32));
}
}
}
}
RescueHandler.java 文件源码
java
阅读 20
收藏 0
点赞 0
评论 0
项目:HardcoreRevival
作者:
评论列表
文章目录