Пример #1
0
        //Assignst the starter rank
        public async Task <bool> Recruit(DiscordMember member)
        {
            try
            {
                await member.GrantRoleAsync(member.Guild.Roles.Where(x => x.Name == MilRanks.OrderBy(y => y.Number).First().RankName).FirstOrDefault());

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Пример #2
0
        public string GetNickWithoutRank(DiscordMember member)
        {
            string nick     = member.Nickname;
            var    rank     = MilRanks.Find(x => x.Abbreviation == nick.Split(" ")[0].Replace(".", ""));
            var    commRank = MilRanks.Find(x => x.Abbreviation == nick.Split(" ")[0].Replace(".", ""));

            if (rank == null && commRank == null)
            {
                return(nick);
            }
            else
            {
                return(nick.Split(" ")[1]);
            }
        }
Пример #3
0
        public Rank GetMatchingRank(DiscordMember member)
        {
            List <string> roleNamesForMember = new List <string>();

            foreach (var role in member.Roles)
            {
                roleNamesForMember.Add(role.Name);
            }
            //var roleNamesForMember = member.Roles.ToList();
            var matchingRole = MilRanks.Where(x => roleNamesForMember.Contains(x.RankName)).FirstOrDefault();

            if (matchingRole == null)
            {
                matchingRole = CommerceRanks.Where(x => roleNamesForMember.Contains(x.RankName)).FirstOrDefault();
            }

            return(matchingRole);
        }
Пример #4
0
 public string GetNickWithoutRank(string memberName)
 {
     try
     {
         var rank     = MilRanks.Find(x => x.Abbreviation == memberName.Split(" ")[0].Replace(".", ""));
         var commRank = MilRanks.Find(x => x.Abbreviation == memberName.Split(" ")[0].Replace(".", ""));
         if (rank == null && commRank == null)
         {
             return(memberName);
         }
         else
         {
             return(memberName.Split(" ")[1]);
         }
     }
     catch
     {
         return(memberName);
     }
 }
Пример #5
0
        public string GetUpdatedNickname(DiscordMember member, int advancement = 1)
        {
            string nick = member.Nickname;
            var    rank = MilRanks.Find(x => x.Abbreviation == nick.Split(" ")[0].Replace(".", ""));

            var commRank = CommerceRanks.Find(x => x.Abbreviation == nick.Split(" ")[0].Replace(".", ""));

            if (rank == null && commRank == null)
            {
                rank = GetMatchingRank(member);
                return($"{rank.Abbreviation}. {nick}");
            }
            else if (rank == null)
            {
                return(nick.Replace(commRank.Abbreviation, CommerceRanks.Find(x => x.Number == commRank.Number + advancement).Abbreviation));
            }
            else
            {
                return(nick.Replace(rank.Abbreviation, MilRanks.Find(x => x.Number == rank.Number + advancement).Abbreviation));
            }
        }
Пример #6
0
        //Demote a member
        public async Task <bool> Demote(DiscordMember member)
        {
            try
            {
                var currentRank = GetMatchingRank(member);
                var newRank     = MilRanks.Where(x => x.Number == currentRank.Number - 1).FirstOrDefault();
                if (newRank == null)
                {
                    newRank = CommerceRanks.Where(x => x.Number == currentRank.Number - 1).FirstOrDefault();
                }

                await member.RevokeRoleAsync(member.Guild.Roles.Where(x => x.Name == currentRank.RankName).FirstOrDefault());

                await member.GrantRoleAsync(member.Guild.Roles.Where(x => x.Name == newRank.RankName).FirstOrDefault());

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }