Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 public LFGuildSettings(LFGuildSettings settings)
     : base(settings)
 {
     _listed = settings.IsListed();
     _team   = settings.GetTeam();
 }