Posted November 10, 20213 yr The idea is that a block has a radius, within which if a player appears, then an effect must be applied on it until he goes back outside this radius. Something like a beacon from the usual minecraft. I tried in a block class to do it this way: @Override public void tick(BlockState p_225534_1_, ServerWorld world, BlockPos pos, Random p_225534_4_) { super.tick(p_225534_1_, world, pos, p_225534_4_); int radius = 10; List<Entity> ent = world.getEntities(EntityType.PLAYER.create(world), new AxisAlignedBB(pos.getX() - radius, pos.getY() - radius, pos.getZ() - radius, pos.getX() + radius, pos.getY() + radius, pos.getZ() + radius)); for (Entity n : ent) { if (n instanceof PlayerEntity) { PlayerEntity pl = (PlayerEntity) n; pl.addEffect(new EffectInstance(Effects.BLINDNESS, 150)); } } } But for some reason the "tick" function is called only when a random tick hits this block. In fact, I need to call this function all the time, but I cannot implement it. Thank you in advance
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.