private static void HandleTexture(byte fromClient, Packet packet, int serverPacketId, string texName) { int texLength = packet.ReadInt(); byte[] texBytes = packet.ReadBytes(texLength); Player player = Server.clients[fromClient].player; player.texBytes[texName] = texBytes; player.texHashes[texName] = texBytes.Hash(); ServerSend.SendTexture(fromClient, texBytes, serverPacketId); }
public static void HandleTextureRequest(byte fromClient, Packet packet) { if (!ServerSettings.CustomKnightIntegration) { return; } byte[] hash = packet.ReadBytes(20); Player player = Server.clients[fromClient].player; if (!player.textureHashes.Contains(hash)) { player.textureHashes.Add(hash); } if (MultiplayerServer.textureCache.ContainsKey(hash)) { byte[] texture = File.ReadAllBytes(MultiplayerServer.textureCache[hash]); ServerSend.SendTexture(fromClient, hash, texture); } }
private static void HandleTextureUpToDate(byte fromClient, Packet packet, int serverPacketId, string texName) { byte[] texBytes = Server.clients[fromClient].player.texBytes[texName]; ServerSend.SendTexture(fromClient, texBytes, serverPacketId); }