- 279
- 0
Код:
Encountered an unexpected exception
net.minecraft.util.ReportedException: Exception ticking world
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:698) ~[MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614) ~[MinecraftServer.class:?]
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118) ~[IntegratedServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752) [MinecraftServer$2.class:?]
Caused by: java.lang.NullPointerException
at ru.steevenrichard.lastdays.common.blocks.LDBlockParticles1.updateTick(LDBlockParticles1.java:96) ~[LDBlockParticles1.class:?]
at net.minecraft.world.WorldServer.func_147456_g(WorldServer.java:408) ~[WorldServer.class:?]
at net.minecraft.world.WorldServer.tick(WorldServer.java:191) ~[WorldServer.class:?]
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:692) ~[MinecraftServer.class:?]
... 4 more
Код:
public class LDBlockParticles1 extends LDBlock {
private LDPlayerHandler LDPlayerHandler;
public static EntityFX getParticle(String s, World w, double x, double y, double z)
{
EntityFX fx = null;
Minecraft mc = Minecraft.getMinecraft();
if(mc.gameSettings.fancyGraphics)
fx.renderDistanceWeight = 200D;
if(!mc.gameSettings.fancyGraphics)
fx.renderDistanceWeight = 200D;
if(fx != null)
mc.effectRenderer.addEffect(fx);
return fx;
}
LDPlayerHandler ldp = LDPlayerHandler;
protected LDBlockParticles1() {
super(Material.wood);
this.setStepSound(Block.soundTypeCloth);
this.setTickRandomly(true);
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int i) {
return null;
}
public void updateTick(World world, int x, int y, int z, Random rand) {
//Что бы не било каждый тик делаем рандом.
//Если рандомное число равно 1 - делаем то что нам надо.
if (rand.nextInt(2) == 1) {
//Изменять радиус под себя. 10 - 10 блоков.
int radius = 4;
//Получаем так сказать 'коробку', с первыми тремя координатами первой точки и со вторыми координатами второй точки.
AxisAlignedBB box = AxisAlignedBB.getBoundingBox(x - radius, y - radius, z - radius, x + radius, y + radius, z + radius);
//С помощью этой 'коробки' достаем всех EntityLiving в радиусе.
//Если хочешь чтоб реагировало только на игроков - меняй EntityLiving на EntityPlayer.
List<EntityPlayer> entityLivings = world.getEntitiesWithinAABB(EntityPlayer.class, box);
//Перебираем всех энтити и делаем то что нам надо.
for (EntityPlayer entity : entityLivings) {
//Атакуем энтити на пол сердечка. 1F - пол сердца.
//entity.attackEntityFrom(DamageSource.generic, 1F);
//Добавляем медлительность на 1 секунду 1 уровня.
//entity.addPotionEffect(new PotionEffect(LDPotion.radiationPo.getId(), 120, 1));
LDPlayerHandler.addRadiation(100);
}
}
}
@SideOnly(Side.CLIENT)
public void randomDisplayTick(World p_149734_1_, int centerX, int centerY, int centerZ, Random p_149734_5_) {}
public TileEntity createNewTileEntity(World arg0, int arg1) {
return new LDTileEntityBlockParticles1();
}
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconRegister) {
super.blockIcon = iconRegister.registerIcon("minecraft:reinforcing_material");
}
}
Если оставить entity.addPotionEffect(new PotionEffect(LDPotion.radiationPo.getId(), 120, 1)); вместо LDPlayerHandler.addRadiation(100); то будет крашить из-за зелья. В чем проблема?