public bool Command(ThePalaceEntities dbContext, UInt32 UserID, UInt32 TargetID, params string[] args) { var sessionState = UserID != 0xFFFFFFFF ? SessionManager.sessionStates[UserID] : null; var xtlk = new MSG_XTALK(); var banrecs = dbContext.Bans.AsNoTracking() .ToList(); if (banrecs.Count > 0) { banrecs .ForEach(banrec => { var regRec = new RegistrationRec { counter = (UInt32)banrec.RegCtr, crc = (UInt32)banrec.RegCrc, puidCtr = (UInt32)banrec.Puidctr, puidCRC = (UInt32)banrec.Puidcrc, }; var regCode = Cipher.RegRectoSeed(regRec); var puidCode = Cipher.RegRectoSeed(regRec, true); xtlk.text = $"; {{{banrec.Ipaddress}}} {regCode} {puidCode}: {banrec.Note}"; if (UserID == 0xFFFFFFFF) { Logger.ConsoleLog(xtlk.text); } else { sessionState.Send(xtlk, EventTypes.MSG_XTALK, 0); } }); } else { xtlk.text = "There are currently no bans to list..."; if (UserID == 0xFFFFFFFF) { Logger.ConsoleLog(xtlk.text); } else { sessionState.Send(xtlk, EventTypes.MSG_XTALK, 0); } } return(true); }
public static string RegRectoSeed(RegistrationRec regRec, bool puid = false) { var seedCounter = (UInt32)0; if (puid) { seedCounter = regRec.puidCtr ^ regRec.puidCRC; } else { seedCounter = regRec.counter ^ RegConstants.MAGIC_LONG ^ regRec.crc; } return(SeedToWizKey(seedCounter, puid)); }
public void DeserializeJSON(string json) { var jsonResponse = (dynamic)JsonConvert.DeserializeObject <JObject>(json); reg = new RegistrationRec(); reg.crc = (UInt32)(Int32)jsonResponse.reg.crc; reg.counter = (UInt32)(Int32)jsonResponse.reg.counter; reg.userName = jsonResponse.reg.userName; reg.wizPassword = jsonResponse.reg.wizPassword ?? string.Empty; reg.auxFlags = jsonResponse.reg.auxFlags; reg.puidCtr = (UInt32)(Int32)jsonResponse.reg.puidCtr; reg.puidCRC = (UInt32)(Int32)jsonResponse.reg.puidCRC; reg.desiredRoom = jsonResponse.reg.desiredRoom; reg.reserved = jsonResponse.reg.reserved; reg.ulRequestedProtocolVersion = jsonResponse.reg.ulRequestedProtocolVersion; reg.ulUploadCaps = (UInt32)(Int32)jsonResponse.reg.ulUploadCaps; reg.ulDownloadCaps = (UInt32)(Int32)jsonResponse.reg.ulDownloadCaps; reg.ul2DEngineCaps = (UInt32)(Int32)jsonResponse.reg.ul2DEngineCaps; reg.ul2DGraphicsCaps = (UInt32)(Int32)jsonResponse.reg.ul2DGraphicsCaps; reg.ul3DEngineCaps = (UInt32)(Int32)jsonResponse.reg.ul3DEngineCaps; }
public void Deserialize(Packet packet) { reg = new RegistrationRec(); reg.crc = packet.ReadUInt32(); reg.counter = packet.ReadUInt32(); reg.userName = packet.ReadPString(32); reg.wizPassword = packet.ReadPString(32) ?? string.Empty; reg.auxFlags = packet.ReadSInt32(); reg.puidCtr = packet.ReadUInt32(); reg.puidCRC = packet.ReadUInt32(); reg.demoElapsed = packet.ReadUInt32(); reg.totalElapsed = packet.ReadUInt32(); reg.demoLimit = packet.ReadUInt32(); reg.desiredRoom = packet.ReadSInt16(); reg.reserved = packet.getData(6, 0, true).GetString(); reg.ulRequestedProtocolVersion = packet.ReadUInt32(); reg.ulUploadCaps = packet.ReadUInt32(); reg.ulDownloadCaps = packet.ReadUInt32(); reg.ul2DEngineCaps = packet.ReadUInt32(); reg.ul2DGraphicsCaps = packet.ReadUInt32(); reg.ul3DEngineCaps = packet.ReadUInt32(); }