Jump to content

World#isBlockLoaded Attempted to load class net/minecraft/client/multiplayer/WorldClient for invalid side SERVER


Recommended Posts

Posted

I'm having an issue where my (client-only) packet handler is failing on the server.  I've narrowed it down to the world.isBlockLoaded if statement, but I can't figure out why this is an issue or what to do about it.

CHANNEL.registerMessage(PacketSyncEnergyNetwork.Handler.class, PacketSyncEnergyNetwork.class, id++, Side.CLIENT);
  public static class Handler implements IMessageHandler<PacketSyncEnergyNetwork, IMessage> {
    @Nullable
    @Override
    public IMessage onMessage(final PacketSyncEnergyNetwork message, final MessageContext ctx) {
      Minecraft.getMinecraft().addScheduledTask(() -> {
        for(final Long2FloatMap.Entry entry : message.state.entries()) {
          final long serialized = entry.getLongKey();
          final float energy = entry.getFloatValue();

          final BlockPos pos = BlockPosUtils.getBlockPosFromSerialized(serialized);

          final World world = Minecraft.getMinecraft().world;

          if(world.isBlockLoaded(pos)) {
            //
          }
        }
      });

      return null;
    }
  }

 

Posted

I figured that was probably the case, but I have another handler that does this... shouldn't it fail too, since it's accessing the client's world in the same way?

  public static class Handler implements IMessageHandler<PacketUpdateHeatNeighbours, IMessage> {
    @Override
    @Nullable
    public IMessage onMessage(final PacketUpdateHeatNeighbours packet, final MessageContext ctx) {
      Minecraft.getMinecraft().addScheduledTask(() -> {
        final TileEntity te = Minecraft.getMinecraft().world.getTileEntity(packet.entityPos);

        if(!(te instanceof HeatSinker)) {
          return;
        }

        ((HeatSinker)te).updateSink(packet.updatePos);
      });

      return null;
    }
  }

 

Posted (edited)

It's referencing client-only classes, but still loads and functions properly on the server.  Shouldn't it throw a similar exception to my first post when it tries to load those classes?

Edited by Corey

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.