Fryzek Posted April 14, 2023 Share Posted April 14, 2023 I need to create an invisible barrier on my server through which the player will be able to pass freely but monsters can't, I figured I'd do it with a block created in mcraft but I was able to create only an invisible block through which you can pass or not, but everyone or no one can pass through, I need division players yes mobs no In mcreator I created something like this package net.mcreator.test.block; import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.pathfinder.BlockPathTypes; import net.minecraft.world.level.material.Material; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.item.ItemStack; import net.minecraft.world.entity.Mob; import net.minecraft.core.BlockPos; import java.util.List; import java.util.Collections; public class NiewidzialnyblokBlock extends Block { public NiewidzialnyblokBlock() { super(BlockBehaviour.Properties.of(Material.GLASS).sound(SoundType.GRAVEL).strength(1f, 10f).noCollission().noOcclusion().isRedstoneConductor((bs, br, bp) -> false)); } @Override public boolean propagatesSkylightDown(BlockState state, BlockGetter reader, BlockPos pos) { return true; } @Override public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) { return 0; } @Override public VoxelShape getVisualShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) { return Shapes.empty(); } @Override public BlockPathTypes getBlockPathType(BlockState state, BlockGetter world, BlockPos pos, Mob entity) { return BlockPathTypes.BLOCKED; } @Override public List<ItemStack> getDrops(BlockState state, LootContext.Builder builder) { List<ItemStack> dropsOriginal = super.getDrops(state, builder); if (!dropsOriginal.isEmpty()) return dropsOriginal; return Collections.singletonList(new ItemStack(this, 1)); } } responsible for collisions or lack thereof .noCollision() parameter, how to split it between players and mobs? if you have any other idea how to create a barrier that lets players through and mobs don't, you can write below Quote Link to comment Share on other sites More sharing options...
Hipposgrumm Posted April 14, 2023 Share Posted April 14, 2023 See how Dark Utils does it. Quote I'm not good at modding, but at least I can read a crash report (well enough). That's something, right? Link to comment Share on other sites More sharing options...
Recommended Posts
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.