public override void HandleMcpeLevelChunk(McpeLevelChunk message) { // TODO doesn't work anymore I guess if (Client.IsEmulator) { return; } if (message.cacheEnabled) { var hits = new ulong[message.blobHashes.Length]; for (int i = 0; i < message.blobHashes.Length; i++) { ulong hash = message.blobHashes[i]; hits[i] = hash; Log.Debug($"Got hashes for {message.chunkX}, {message.chunkZ}, {hash}"); } var status = McpeClientCacheBlobStatus.CreateObject(); status.hashHits = hits; Client.SendPacket(status); } else { Client.Chunks.GetOrAdd(new ChunkCoordinates(message.chunkX, message.chunkZ), coordinates => { Log.Debug($"Chunk X={message.chunkX}, Z={message.chunkZ}, size={message.chunkData.Length}, Count={Client.Chunks.Count}"); ChunkColumn chunk = null; try { chunk = ClientUtils.DecodeChunkColumn((int)message.subChunkCount, message.chunkData); if (chunk != null) { chunk.X = coordinates.X; chunk.Z = coordinates.Z; chunk.RecalcHeight(); Log.DebugFormat("Chunk X={0}, Z={1}", chunk.X, chunk.Z); foreach (KeyValuePair <BlockCoordinates, NbtCompound> blockEntity in chunk.BlockEntities) { Log.Debug($"Blockentity: {blockEntity.Value}"); } } } catch (Exception e) { Log.Error("Reading chunk", e); } return(chunk); }); } }
public virtual void HandleMcpeClientCacheBlobStatus(McpeClientCacheBlobStatus message) { }
public abstract void HandleMcpeClientCacheBlobStatus(McpeClientCacheBlobStatus message);
public override void HandleMcpeClientCacheBlobStatus(McpeClientCacheBlobStatus message) { }
public override void HandleMcpeClientCacheBlobStatus(McpeClientCacheBlobStatus message) { UnhandledPackage(message); }