//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); } }
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]); } }
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); }
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); } }
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)); } }
//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); } }