public async Task ChangeOwnerCommand([Remainder] SocketGuildUser u = null)
        {
            u = u ?? (SocketGuildUser)Context.User;

            var whitelist = _db.GetCollection <WhitelistUser>(Defined.WHITELIST_TABLE_NAME).FindAll();

            if (whitelist.FirstOrDefault(x => x.IsOwner) == null)
            {
                var tUser = whitelist.FirstOrDefault(x => x.Id == u.Id);
                if (tUser == null)
                {
                    tUser = new WhitelistUser(u.Id, true);
                    _db.GetCollection <WhitelistUser>(Defined.WHITELIST_TABLE_NAME).Insert(tUser);
                }
                else
                {
                    tUser.IsOwner = true;
                    _db.GetCollection <WhitelistUser>(Defined.WHITELIST_TABLE_NAME).Update(tUser);
                }
            }
            else if (whitelist.FirstOrDefault(x => x.IsOwner).Id == Context.User.Id)
            {
                if (u.Id != Context.User.Id)
                {
                    var currUser = whitelist.FirstOrDefault(x => x.Id == Context.User.Id);
                    currUser.IsOwner = false;

                    var tUser = whitelist.FirstOrDefault(x => x.Id == u.Id);
                    if (tUser == null)
                    {
                        tUser = new WhitelistUser(u.Id, true);
                        _db.GetCollection <WhitelistUser>(Defined.WHITELIST_TABLE_NAME).Insert(tUser);
                    }
                    else
                    {
                        tUser.IsOwner = true;
                        _db.GetCollection <WhitelistUser>(Defined.WHITELIST_TABLE_NAME).Update(tUser);
                    }

                    _db.GetCollection <WhitelistUser>(Defined.WHITELIST_TABLE_NAME).Update(currUser);
                }
                Defined.BuildSuccessMessage(_eBuilder, Context, $"Successfully changed the Owner of {_config.Bot_Name}");
            }
            else
            {
                Defined.BuildErrorMessage(_eBuilder, Context, ErrorTypes.E410, null, "change the Owner");
            }
            await ReplyAsync(embed : _eBuilder.Build());
        }
Example #2
0
        private async Task Whitelist(TwitchMessage twitchMessage)
        {
            var wluser = new WhitelistUser
            {
                TwitchId = twitchMessage.ChatMessage.UserId,
                Name     = twitchMessage.Author,
                Channel  = twitchMessage.Channel
            };

            if (await _context.WhitelistUsers.AnyAsync(u => u.Channel.Equals(twitchMessage.Channel) &&
                                                       u.TwitchId.Equals(twitchMessage.ChatMessage.UserId)))
            {
                return;
            }

            await _context.WhitelistUsers.AddAsync(wluser);

            await _context.SaveChangesAsync();

            _whitelistedUsers.Add(wluser);
        }