code: static void setBlockData(int chunkX, int chunkZ, String identifier, ByteBuf data)
  	{
  		HandlerInfo<?> handlerInfo = instance.handlerInfos.get(identifier);
  		if (handlerInfo == null)
  			return;
  
  		//MalisisCore.message("Received blockData (" + chunkX + "/" + chunkZ + ") for " + identifier);
  		Chunk chunk = Utils.getClientWorld().getChunkFromChunkCoords(chunkX, chunkZ);
  		ChunkData<?> chunkData = new ChunkData<>(handlerInfo).fromBytes(data);
  		datas.get().put(handlerInfo.identifier, chunk, chunkData);
  	}
docs: Called on the client when receiving the data from the server, either because client started to watch the chunk or server manually
  sent the data.
  
  @param chunkX the chunk X
  @param chunkZ the chunk Z
  @param identifier the identifier
  @param data the data