@Override public void onEntityCollidedWithBlock(@Nonnull World world, @Nonnull BlockPos pos, @Nonnull IBlockState state, @Nonnull Entity entity) { if (!world.isRemote && entity instanceof EntityPlayerMP) { long time = entity.world.getTotalWorldTime(); EntityPlayerMP player = (EntityPlayerMP) entity; if (time % FluidConfig.nutrientFoodBoostDelay.get() == 0 && player.getEntityData().getLong("eioLastFoodBoost") != time) { player.getFoodStats().addStats(1, 0.1f); player.getEntityData().setLong("eioLastFoodBoost", time); } } super.onEntityCollidedWithBlock(world, pos, state, entity); }
@Override public void updateInPedestal(@Nonnull World world, @Nonnull BlockPos pos) { if (!world.isRemote && ProjectEConfig.pedestalCooldown.bodyPedCooldown != -1) { TileEntity te = world.getTileEntity(pos); if(!(te instanceof DMPedestalTile)) { return; } DMPedestalTile tile = (DMPedestalTile) te; if (tile.getActivityCooldown() == 0) { List<EntityPlayerMP> players = world.getEntitiesWithinAABB(EntityPlayerMP.class, tile.getEffectBounds()); for (EntityPlayerMP player : players) { if (player.getFoodStats().needFood()) { world.playSound(null, player.posX, player.posY, player.posZ, PESounds.HEAL, SoundCategory.PLAYERS, 1.0F, 1.0F); player.getFoodStats().addStats(1, 1); // 1/2 shank } } tile.setActivityCooldown(ProjectEConfig.pedestalCooldown.bodyPedCooldown); } else { tile.decrementActivityCooldown(); } } }
@Override public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException { EntityPlayerMP player = CommandUtils.getSelfOrOther(sender, args, 0, FTBUtilitiesPermissions.HEAL_OTHER).getCommandPlayer(sender); player.setHealth(player.getMaxHealth()); player.getFoodStats().addStats(40, 40F); player.extinguish(); } }
player.heal(1.0F); // 1/2 heart if (player.getFoodStats().needFood()) player.getFoodStats().addStats(1, 1); // 1/2 shank
player.connection.sendPacket(new SPacketUpdateHealth(player.getHealth(), player.getFoodStats().getFoodLevel(), player.getFoodStats().getSaturationLevel()));
private void takeHunger() { float hungerMod = ((float) serverInstance.getConfigurationSettings().getHungerMultiplier()) * 0.025F; FoodStats s = player.getFoodStats(); NBTTagCompound nbt = new NBTTagCompound(); s.writeNBT(nbt); int foodLevel = nbt.getInteger("foodLevel"); int foodTimer = nbt.getInteger("foodTickTimer"); float foodSaturationLevel = nbt.getFloat("foodSaturationLevel"); float foodExhaustionLevel = nbt.getFloat("foodExhaustionLevel"); float newExhaustion = (foodExhaustionLevel + hungerMod) % 4; float newSaturation = foodSaturationLevel - (float)((int)((foodExhaustionLevel + hungerMod) / 4)); int newFoodLevel = foodLevel; if(newSaturation < 0) { newFoodLevel += newSaturation; newSaturation = 0; } nbt.setInteger("foodLevel", newFoodLevel); nbt.setInteger("foodTickTimer", foodTimer); nbt.setFloat("foodSaturationLevel", newSaturation); nbt.setFloat("foodExhaustionLevel", newExhaustion); s.readNBT(nbt); }
player.setPositionAndUpdate(spawn.getX(), spawn.getY(), spawn.getZ()); player.world.updateEntityWithOptionalForce(player, false); player.connection.sendPacket(new SPacketUpdateHealth(player.getHealth(), player.getFoodStats().getFoodLevel(), player.getFoodStats().getSaturationLevel()));
player.connection.sendPacket(new SPacketUpdateHealth(player.getHealth(), player.getFoodStats().getFoodLevel(), player.getFoodStats().getSaturationLevel()));
FoodStats food = player.getFoodStats(); if(food.getFoodLevel() < MIN_HUNGER) { this.finished = true;