private void handleIncomingPacket(UserThread sender, Packet packet) { int newOffset; if (packet.PacketType == NetConstants.PacketTypes.UserRegister) { var registerString = PacketHelper.GetStringFromBytes(packet.DataBytes, 0, out newOffset); if (registerString == NetConstants.UserRegisterString && !sender.IsRegistered) { var name = PacketHelper.GetStringFromBytes(packet.DataBytes, newOffset, out newOffset); sender.Username = name; sender.IsRegistered = true; var joinPacket = PacketHelper.CreateUserJoinedPacket(sender); sendPacketToAllClientsExcept(joinPacket, sender.UserGuid, true); var clientsPacket = PacketHelper.CreateUsersAlreadyHerePacket(AllRegisteredClients); //Send info of all clients already in lobby to new client sendPacketToClient(clientsPacket, sender); } } if (packet.PacketType == NetConstants.PacketTypes.UserLeft) { var leftPacket = PacketHelper.CreateUserLeftPacket(sender); sendPacketToAllClientsExcept(leftPacket, sender.UserGuid, true); } if (packet.PacketType == NetConstants.PacketTypes.MemoryData && sender.IsRegistered) { //Add the clients Guid in front of the data var newData = PacketHelper.ConcatBytes(sender.UserGuid.ToByteArray(), packet.DataBytes); var newPacket = new Packet(NetConstants.PacketTypes.MemoryData, newData); sendPacketToAllClientsExcept(newPacket, sender.UserGuid, true); } if (packet.PacketType == NetConstants.PacketTypes.UserChat) { var text = PacketHelper.GetStringFromBytes(packet.DataBytes, 0, out newOffset); var chatPacket = PacketHelper.CreateServerToUserChatMessage(sender, text); sendPacketToAllClients(chatPacket, true); } }
public byte[] GetBytes() { return(PacketHelper.ConcatBytes(UserGuid.ToByteArray(), PacketHelper.GetStringBytes(Username))); }