luxamy2 Posted November 13, 2021 Posted November 13, 2021 I have a TileEntity, with both getUpdatePacket() and onDataPacket() methods overridden. According to the Forge documentation: https://mcforge.readthedocs.io/en/latest/tileentities/tileentity/#synchronizing-on-block-update They should trigger whenever the block receives a block update, so I've used world.updateBlock(BlockPos pos, Block block) to trigger it, but it does not work. In fact they only trigger when I place the block down, but not when an adjacent block changed. here are the two methods: private BlockPos link = null; private boolean receiverIsPylon = false; @Nullable @Override public SUpdateTileEntityPacket getUpdatePacket(){ CompoundNBT tag = new CompoundNBT(); tag.putBoolean("receiverIsPylon", receiverIsPylon); if (link != null) { int pos[] = {link.getX(), link.getY(), link.getZ()}; tag.putIntArray("LinkedTo", pos); } System.out.print("Send Data\n"); return new SUpdateTileEntityPacket(getPos(), -1, tag); } @Override public void onDataPacket(NetworkManager net, SUpdateTileEntityPacke CompoundNBT tag = pkt.getNbtCompound(); receiverIsPylon = tag.getBoolean("receiverIsPylon"); if (tag.contains("LinkedTo")) { int pos[] = tag.getIntArray("LinkedTo"); link = new BlockPos(pos[0], pos[1], pos[2]); } System.out.print("Received Data\n"); } I cant find the World#sendBlockUpdated(BlockPos pos, BlockState oldState, BlockState newState, int flags) method from the documentation, but that's probably because I'm using different Mappings (mappings channel: 'snapshot', version: '20210309-1.16.5'). 'link' and 'receiverIsPylon' both get changed in my tick() method. Is there something else I need? Quote
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.