void LoadGuildSettings() { Log.outInfo(LogFilter.ServerLoading, "Loading guild finder guild-related settings..."); // 0 1 2 3 4 5 6 7 SQLResult result = DB.Characters.Query("SELECT gfgs.guildId, gfgs.availability, gfgs.classRoles, gfgs.interests, gfgs.level, gfgs.listed, gfgs.comment, c.race " + "FROM guild_finder_guild_settings gfgs LEFT JOIN guild_member gm ON gm.guildid=gfgs.guildId LEFT JOIN characters c ON c.guid = gm.guid LIMIT 1"); if (result.IsEmpty()) { Log.outInfo(LogFilter.ServerLoading, "Loaded 0 guild finder guild-related settings. Table `guild_finder_guild_settings` is empty."); return; } uint count = 0; uint oldMSTime = Time.GetMSTime(); do { ObjectGuid guildId = ObjectGuid.Create(HighGuid.Guild, result.Read <ulong>(0)); byte availability = result.Read <byte>(1); byte classRoles = result.Read <byte>(2); byte interests = result.Read <byte>(3); byte level = result.Read <byte>(4); bool listed = (result.Read <byte>(5) != 0); string comment = result.Read <string>(6); uint guildTeam = TeamId.Alliance; ChrRacesRecord raceEntry = CliDB.ChrRacesStorage.LookupByKey(result.Read <byte>(7)); if (raceEntry != null) { if (raceEntry.Alliance == 1) { guildTeam = TeamId.Horde; } } LFGuildSettings settings = new LFGuildSettings(listed, guildTeam, guildId, classRoles, availability, interests, level, comment); _guildSettings[guildId] = settings; ++count; } while (result.NextRow()); Log.outInfo(LogFilter.ServerLoading, "Loaded {0} guild finder guild-related settings in {1} ms.", count, Time.GetMSTimeDiffToNow(oldMSTime)); }
public void SetGuildSettings(ObjectGuid guildGuid, LFGuildSettings settings) { _guildSettings[guildGuid] = settings; SQLTransaction trans = new SQLTransaction(); PreparedStatement stmt = DB.Characters.GetPreparedStatement(CharStatements.REP_GUILD_FINDER_GUILD_SETTINGS); stmt.AddValue(0, settings.GetGUID().GetCounter()); stmt.AddValue(1, settings.GetAvailability()); stmt.AddValue(2, settings.GetClassRoles()); stmt.AddValue(3, settings.GetInterests()); stmt.AddValue(4, settings.GetLevel()); stmt.AddValue(5, settings.IsListed()); stmt.AddValue(6, settings.GetComment()); trans.Append(stmt); DB.Characters.CommitTransaction(trans); }
public LFGuildSettings(LFGuildSettings settings) : base(settings) { _listed = settings.IsListed(); _team = settings.GetTeam(); }