private void ProcessCache(MemoryStream stream, int userID) { Logger.WriteLine("New cache of size " + stream.Length + " received!"); stream.Position = 0; using (var bin = new BinaryReader(stream)) { var xfthMagic = 'X' << 0 | 'F' << 8 | 'T' << 16 | 'H' << 24; if (bin.ReadUInt32() != xfthMagic) { Logger.WriteLine("Invalid cache header!"); return; } var version = bin.ReadUInt32(); if (version != 7 && version != 8) { Logger.WriteLine("Unsupported DBCache version: " + version); return; } var build = bin.ReadUInt32(); Logger.WriteLine("Cache is for build " + build); // TODO: Check SHA to prevent malformed data being used var sha = bin.ReadBytes(32); stream.Position = 0; HotfixManager.AddCache(stream, build, userID); } dbcManager.ClearHotfixCache(); }
public string Get() { int count = dbdProvider.LoadDefinitions(); dbcManager.ClearCache(); dbcManager.ClearHotfixCache(); return("Reloaded " + count + " definitions and cleared DBC cache!"); }