예제 #1
0
        /* fill config with data from record */
        void LoadGuild(GuildsConfig config)
        {
            /* get aliases of guild and single config entry */
            SocketGuild   guild = _client.GetGuild(config.GuildID);
            IConfigMember con   = _config[guild.Id];

            /* load prefix from db record */
            con.Prefix = config.Prefix;
            /* find actuall channels from ids in db and load into config */
            con.GeneralChannel       = guild.GetTextChannel(config.GeneralChannel);
            con.AnnouncementsChannel = guild.GetTextChannel(config.AnnouncementsChannel);
            con.BotLogChannel        = guild.GetTextChannel(config.BotLogChannel);
            con.LogChannel           = guild.GetTextChannel(config.LogChannel);
        }
예제 #2
0
        public void SaveGuildConfig(ulong guildId)
        {
            using (var db = new SQLiteDBContext()){
                /* Get aliases to guild db entry and config entry */
                var guildRecord = db.GuildConfigs.Find(guildId);
                if (guildRecord == null)
                {
                    guildRecord = new GuildsConfig {
                        GuildID              = guildId,
                        Prefix               = "/",
                        GeneralChannel       = 0,
                        AnnouncementsChannel = 0,
                        BotLogChannel        = 0,
                        LogChannel           = 0
                    };
                    db.GuildConfigs.Add(guildRecord);
                    db.SaveChanges();
                    guildRecord = db.GuildConfigs.Find(guildId);
                }
                var config = _config[guildId];

                /* Save guildId */
                guildRecord.GuildID = guildId;

                /* Save prefix in db */
                guildRecord.Prefix = config.Prefix;

                ///////////////////////
                SocketTextChannel channel;
                /* Save id of general channel or set it to 0 if it's not configured */
                channel = config.GeneralChannel;
                if (channel == null)
                {
                    guildRecord.GeneralChannel = 0;
                }
                else
                {
                    guildRecord.GeneralChannel = channel.Id;
                }
                /* announcemets channel */
                channel = config.AnnouncementsChannel;
                if (channel == null)
                {
                    guildRecord.AnnouncementsChannel = 0;
                }
                else
                {
                    guildRecord.AnnouncementsChannel = channel.Id;
                }
                /* bot log channel */
                channel = config.BotLogChannel;
                if (channel == null)
                {
                    guildRecord.BotLogChannel = 0;
                }
                else
                {
                    guildRecord.BotLogChannel = channel.Id;
                }
                /* log channel */
                channel = config.LogChannel;
                if (channel == null)
                {
                    guildRecord.LogChannel = 0;
                }
                else
                {
                    guildRecord.LogChannel = channel.Id;
                }
                /* Save changes in db file */
                db.GuildConfigs.Update(guildRecord);
                db.SaveChanges();
            }
        }