Пример #1
0
        private bool AddUser(string raidId, User user, string role, Constants.Availability availability, out string resultMessage)
        {
            if (!Raids.ContainsKey(raidId))
            {
                resultMessage = "raid not found";
                return(false);
            }
            Raid raid = Raids[raidId];

            if (!raid.CheckRoleAvailability(user.DiscordId, role, availability, out resultMessage))
            {
                return(false);
            }

            if (availability.Equals(Constants.Availability.Flex))
            {
                raid.FlexRoles.Add(user);
            }
            else
            {
                raid.Users.Add(user.DiscordId, user);
            }
            SaveRaids();
            resultMessage = "Added to raid roster";
            return(true);
        }
Пример #2
0
        //case insensitive
        protected override async Task ProcessUncanceledMessage(string message)
        {
            switch (_state)
            {
            case State.role:
                if (_raid.CheckRoleAvailability(_user.Id, message, _availability, out string resultMessage))
                {
                    _role = message;

                    if (_userService.GetAccounts(_raid.GuildId, _user.Id, _raid.AccountType).Count() > 1)
                    {
                        await UserExtensions.SendMessageAsync(_user, CreateAccountSelectionMessage());

                        _state = State.account;
                    }
                    else
                    {
                        _usedAccount = _userService.GetAccounts(_raid.GuildId, _user.Id, _raid.AccountType).FirstOrDefault().AccountName;
                        AddUser();
                    }
                }
                else
                {
                    resultMessage += $"\n\n{CreateSignUpMessage(_raid)}";
                    await UserExtensions.SendMessageAsync(_user, resultMessage);
                }
                break;

            case State.account:
                if (int.TryParse(message, out int i) && _userService.GetAccounts(_raid.GuildId, _user.Id, _raid.AccountType).Count >= i && i > 0)
                {
                    _usedAccount = _userService.GetAccounts(_raid.GuildId, _user.Id, _raid.AccountType)[i - 1].AccountName;
                    AddUser();
                }
                else
                {
                    await UserExtensions.SendMessageAsync(_user, "Invalid numer, please select the account index.");
                }
                break;
            }
        }