public AccessDeniedPreconditionResult(RoleLevel userRole, RoleMatchType matchType, RoleLevel requiredRole) : base(CommandError.UnmetPrecondition, "Access Denied") { UserRole = userRole; MatchType = matchType; RequiredRole = requiredRole; }
private void checkedListBoxControl1_ItemCheck(object sender, DevExpress.XtraEditors.Controls.ItemCheckEventArgs e) { CheckedListBoxItem currItem = (CheckedListBoxItem)checkedListBoxControl1.GetItem(e.Index); 职务等级 职务等级 = (职务等级)currItem.Value; string rolename = this.CurrentRole.Name; //如果选中 if (e.State == CheckState.Checked) { RoleLevel rLevel = RoleLevel.GetRoleLevel(rolename, CurrentCompany.公司编码, 职务等级.编码); if (rLevel == null) { rLevel = new RoleLevel(); rLevel.角色 = rolename; rLevel.公司编码 = CurrentCompany.公司编码; rLevel.职务等级 = 职务等级.编码; rLevel.Save(); } } //如果没有选中 if (e.State == CheckState.Unchecked) { RoleLevel rLevel = RoleLevel.GetRoleLevel(rolename, CurrentCompany.公司编码, 职务等级.编码); if (rLevel != null) { rLevel.Delete(); } } }
public void Deserialize(Serialization.IO.CompactReader reader) { this.RoleName = reader.ReadObject() as string; this.RoleType = (RoleType)reader.ReadObject(); this.RoleLevel = (RoleLevel)reader.ReadObject(); this.Permissions = reader.ReadObject() as List <Permission>; }
public void ReadConfig() { if (isLoadFinish == false) { return; } isLoadFinish = false; lock (LockObject) { GameSystem.Instance.readConfigCnt += 1; } Debug.Log("Config reading " + name); string text = ResourceLoadManager.Instance.GetConfigText(name); if (text == null) { Debug.LogError("LoadConfig failed: " + name); return; } RoleLevelDatas.Clear(); //读取以及处理XML文本的类 XmlDocument xmlDoc = CommonFunction.LoadXmlConfig(GlobalConst.DIR_XML_ROLELEVEL, text); //解析xml的过程 XmlNodeList nodelist = xmlDoc.SelectSingleNode("Data").ChildNodes; foreach (XmlElement xe in nodelist) { XmlNode comment = xe.SelectSingleNode(GlobalConst.CONFIG_SWITCH_COLUMN); if (comment != null && comment.InnerText == GlobalConst.CONFIG_SWITCH) { continue; } RoleLevel role_level = new RoleLevel(); foreach (XmlElement xel in xe) { if (xel.Name == "Level") { uint.TryParse(xel.InnerText, out role_level.level); } else if (xel.Name == "Exp") { uint.TryParse(xel.InnerText, out role_level.exp); } else if (xel.Name == "factor") { float.TryParse(xel.InnerText, out role_level.factor); } else if (xel.Name.Contains("passive_skill_limit")) { uint skill_limit; uint.TryParse(xel.InnerText, out skill_limit); role_level.skill_limit.Add(skill_limit); } } if (!RoleLevelDatas.ContainsKey(role_level.level)) { RoleLevelDatas.Add(role_level.level, role_level); } } }
public LlectroBotRole(RoleLevel level, IRole role) { Level = level; RoleId = role.Id; Name = role.Name; Value = role; }
public AccessDeniedPreconditionResult(RoleLevel UserRole, RoleMatchType Match, RoleLevel Required) : base(CommandError.UnmetPrecondition, "Access Denied") { this.UserRole = UserRole; this.MatchType = Match; this.RequiredRole = Required; }
private void btnAdd_Click(object sender, EventArgs e) { RoleLevel imp = new RoleLevel(); imp.标识 = Guid.NewGuid(); impowerList.Add(imp); gridControl1.RefreshDataSource(); gridView1.FocusedRowHandle = gridView1.RowCount - 1; }
public static bool HasRoleLevel(RoleLevel roleLevel) { if (Identity == null) { return(false); } return(Identity.Roles.Any(m => m.RoleLevel == roleLevel)); }
/// <summary> /// Returns the next higher role, then the role specified. Used for demoting members. /// </summary> /// <param name="Role"></param> /// <returns></returns> public static RoleLevel?GetDemoteRole(this RoleLevel Role, IDictionary <RoleLevel, IRole> Map) { return(Map //Order by highest value first. .OrderByDescending(o => (int)o.Key) //Find the first value, less then the specified value. .FirstOrDefault(o => (int)o.Key < (int)Role) //Select the role .Key); }
public CreateRoleRequest() : base() { Name = string.Empty; RoleLevel = RoleLevel.NULL; if (Paginator == null) { Paginator = new Paginator(); } }
/// <summary> /// Returns the next higher role, then the role specified. Used for promoting members. /// </summary> /// <param name="Role"></param> /// <returns></returns> public static RoleLevel?GetPromoteRole(this RoleLevel Role, IDictionary <RoleLevel, IRole> Map) { return(Map //Exclude ServerAdmin and higher roles. .Where(o => (int)o.Key < (int)RoleLevel.ServerAdmin) //Order by lowest value first. .OrderBy(o => (int)o.Key) //return the first role higher then the specified role. .FirstOrDefault(o => (int)o.Key > (int)Role) //Select the promoted role .Key); }
private bool Matches(RoleLevel role) { return(MatchType switch { RoleMatchType.LessThanOrequal => role <= Level, RoleMatchType.LessThan => role <Level, RoleMatchType.Equal => role == Level, RoleMatchType.GreaterThan => role> Level, RoleMatchType.GreaterThanOrEqual => role >= Level, RoleMatchType.NotEqualTo => role != Level, _ => false, });
public bool hasPermission(RoleLevel role) { switch (matchType) { case RoleMatchType.EQUALS: if (role == requiredRole) { return(true); } return(false); case RoleMatchType.GREATER_THEN: if (role > requiredRole) { return(true); } return(false); case RoleMatchType.GREATER_THEN_OR_EQUAL: if (role >= requiredRole) { return(true); } return(false); case RoleMatchType.LESS_THEN: if (role < requiredRole) { return(true); } return(false); case RoleMatchType.LESS_THEN_OR_EQUAL: if (role <= requiredRole) { return(true); } return(false); case RoleMatchType.NOT_EQUAL: if (role != requiredRole) { return(true); } return(false); default: throw new ArgumentOutOfRangeException("Unknown match type encountered."); } }
private void InitListBox() { if (this.CurrentRole != null) { if (checkedListBoxControl1.Items.Count == 0) { //初始化职务等级列表 职务等级 管培生, 副总经理以上; 管培生.编码 = "管培生"; 管培生.称 = "管培生"; 副总经理以上.编码 = "副总经理以上"; 副总经理以上.称 = "副总经理以上"; List <职务等级> lvlList = new List <职务等级>(); lvlList.Add(管培生); lvlList.Add(副总经理以上); foreach (DictionaryEntry entry in PsHelper.GetSupvLvls()) { 职务等级 lvl = new 职务等级 { 编码 = (string)entry.Value, 称 = (string)entry.Key }; lvlList.Add(lvl); } lvlList = lvlList.OrderBy(a => a.编码).ToList(); foreach (职务等级 lvl in lvlList) { CheckedListBoxItem item = new CheckedListBoxItem(lvl, false); checkedListBoxControl1.Items.Add(item); } } checkedListBoxControl1.BeginUpdate(); if (CurrentCompany != null) { List <RoleLevel> groups = RoleLevel.GetRoleLevels(this.CurrentRole.Name).FindAll(a => a.公司编码 == CurrentCompany.公司编码); foreach (CheckedListBoxItem item in checkedListBoxControl1.Items) { 职务等级 grade = (职务等级)item.Value; bool isChecked = groups.Find(a => a.职务等级 == grade.编码) != null; item.CheckState = isChecked ? CheckState.Checked : CheckState.Unchecked; } } checkedListBoxControl1.EndUpdate(); } }
public void SetGuildRole(RoleLevel level, IRole GuildRole) { //Remove the specified role type. if (GuildRole == null) { this.Roles.RemoveAll(o => o.Level == level); return; } if (this.Roles.FirstOrDefault(o => o.Level == level).IsNotNull(out var r)) { r.Set(GuildRole); } else { this.Roles.Add(new Models.GuildRole(level, GuildRole)); } }
private void SaveGuildRole(RoleLevel roleLevel) { var existingRole = LlectroBotContext.GuildConfiguration.Roles.FirstOrDefault( r => r.Level == roleLevel); if (existingRole != null) { existingRole.Value = InputRoleCard.Result; } else { var role = new LlectroBotRole(roleLevel, InputRoleCard.Result); LlectroBotContext.GuildConfiguration.Roles.Add(role); LlectroBotContext.BotConfiguration.Save(); } InputRoleCard = null; }
public override int GetHashCode() { int hash = 1; if (StringId.Length != 0) { hash ^= StringId.GetHashCode(); } if (RoleLevel != 0) { hash ^= RoleLevel.GetHashCode(); } if (FinishDungeonId != 0) { hash ^= FinishDungeonId.GetHashCode(); } return(hash); }
private void btnDelete_Click(object sender, EventArgs e) { ColumnView colView = (ColumnView)gridControl1.MainView; if (colView != null) { if (MessageBox.Show("确实删除当前记录吗?", "删除提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2, 0, false) == DialogResult.Yes) { RoleLevel currentSalaryLevel = (RoleLevel)colView.GetFocusedRow(); if (currentSalaryLevel != null) { impowerList.Remove(currentSalaryLevel); currentSalaryLevel.Delete(); gridControl1.RefreshDataSource(); MessageBox.Show("删除成功。", "删除提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } }
private void Init() { //初始化公司列表 repositoryItemCompany.Items.Clear(); foreach (CompanyInfo c in CompanyInfo.GetAll()) { ImageComboBoxItem item = new ImageComboBoxItem(c.公司简称, c.公司编码); repositoryItemCompany.Items.Add(item); } //初始化职务等级列表 repositoryItemGrade.Items.Clear(); repositoryItemGrade.Items.Add(new ImageComboBoxItem("管培生", "管培生")); repositoryItemGrade.Items.Add(new ImageComboBoxItem("副总经理以上", "副总经理以上")); List <职务等级> lvlList = new List <职务等级>(); foreach (DictionaryEntry entry in PsHelper.GetSupvLvls()) { 职务等级 lvl = new 职务等级 { 编码 = (string)entry.Value, 称 = (string)entry.Key }; lvlList.Add(lvl); } lvlList = lvlList.OrderBy(a => a.编码).ToList(); foreach (职务等级 lvl in lvlList) { ImageComboBoxItem item = new ImageComboBoxItem(lvl.称, lvl.编码); repositoryItemGrade.Items.Add(item); } //初始化角色列表 List <Role> allRoles = Role.GetAll(); foreach (Role role in allRoles) { repositoryItemRole.Items.Add(role.Name); } //只显示当前薪等表里的权限,历史记录隐藏 impowerList.Clear(); foreach (RoleLevel rg in RoleLevel.GetAll()) { impowerList.Add(rg); } gridControl1.DataSource = impowerList; }
public override async Task <PreconditionResult> CheckPermissionsAsync(ICommandContext context, CommandInfo command, IServiceProvider services) { //If this a custom guild command context, get the config from the context. if (context is GuildCommandContext gcc) { RoleLevel role = gcc.GuildUser.GetRole(gcc.cfg); if (hasPermission(role)) { return(PreconditionResult.FromSuccess()); } return(new AccessDeniedPreconditionResult(role, matchType, requiredRole)); } else { await Task.FromResult(true); throw new InvalidOperationException($"{nameof(RoleLevelAttribute)} is only valid on type {nameof(GuildCommandContext)}"); } }
public IRole GetGuildRole(RoleLevel level) { return(Roles .FirstOrDefault(o => o.Level == level) ?.Value); }
public RequireRoleAttribute(RoleLevel level, RoleMatchType matchType) { Level = level; MatchType = matchType; }
private static async Task AllowUserProcess(DiscordClient Bot, GuildMemberAddEventArgs MemberObjects, GetLanguage Get_Language, AllowUsers DBAllowUserID) { if (Database.DatabaseMethods.RolesMethods.RoleFind(MemberObjects.Guild.Id, DBAllowUserID.RoleNum, out Roles DBRoleRoleNum)) { DiscordRole GuildRole = MemberObjects.Guild.GetRole(DBRoleRoleNum.Uuid); ulong Guild_ChannelID = Database.DatabaseMethods.GuildConfigMethods.LogChannelFind(MemberObjects.Guild.Id); if (Guild_ChannelID != 0) { DiscordChannel GuildLogChannel = MemberObjects.Guild.GetChannel(Guild_ChannelID); DiscordEmbed LogChannelEmbed = new DiscordEmbedBuilder() .WithTitle(Get_Language.Language_Data.JoinPass) .WithDescription( string.Format( Get_Language.Language_Data.UserDescription, MemberObjects.Member.Username + "#" + MemberObjects.Member.Discriminator, MemberObjects.Member.Id, GuildRole.Name ) ) .WithColor(new DiscordColor(0x00B06B)) .WithTimestamp(DateTime.Now) .WithFooter( string.Format("{0} Bot", Bot.CurrentUser.Username) ) .WithAuthor(Get_Language.Language_Data.AccessPermission); await GuildLogChannel.SendMessageAsync(LogChannelEmbed); } else { Log.Warning("Could not send from log channel"); } RoleLevel DBRoleLevel = Enum.Parse <RoleLevel>(DBRoleRoleNum.RoleLevel); bool GuildLeaveBan = Database.DatabaseMethods.GuildConfigMethods.LeaveBanFind(MemberObjects.Guild.Id); if (GuildLeaveBan) { if (DBRoleLevel == RoleLevel.Public) { await MemberObjects.Member.GrantRoleAsync(GuildRole); DiscordEmbed WelcomeEmbed = new DiscordEmbedBuilder() .WithTitle(string.Format(Get_Language.Language_Data.WelcomeEmbedTitle, MemberObjects.Guild.Name, GuildRole.Name)) .AddField( Get_Language.Language_Data.DMEmbed_Public1, Get_Language.Language_Data.DMEmbed_Public2 ) .AddField( Get_Language.Language_Data.DMEmbed_Public3, Get_Language.Language_Data.DMEmbed_Public4 ) .AddField( Get_Language.Language_Data.DMEmbed_LeaveBan1, string.Format(Get_Language.Language_Data.DMEmbed_LeaveBan2, GuildRole.Name) ) .WithColor(new DiscordColor(0x00B06B)) .WithTimestamp(DateTime.Now) .WithFooter( string.Format("{0} Bot", Bot.CurrentUser.Username) ); await MemberObjects.Member.SendMessageAsync(WelcomeEmbed); } else if (DBRoleLevel == RoleLevel.Moderator) { await MemberObjects.Member.GrantRoleAsync(GuildRole); DiscordEmbed WelcomeEmbed = new DiscordEmbedBuilder() .WithTitle(string.Format(Get_Language.Language_Data.WelcomeEmbedTitle, MemberObjects.Guild.Name, GuildRole.Name)) .AddField( Get_Language.Language_Data.DMEmbed_Moderator1, Get_Language.Language_Data.DMEmbed_Moderator2 ) .AddField( Get_Language.Language_Data.DMEmbed_Moderator3, string.Format(Get_Language.Language_Data.DMEmbed_Moderator4, Bot.CurrentUser.Username) ) .AddField( Get_Language.Language_Data.DMEmbed_Moderator5, Get_Language.Language_Data.DMEmbed_Moderator6 ) .AddField( Get_Language.Language_Data.DMEmbed_LeaveBan1, string.Format(Get_Language.Language_Data.DMEmbed_LeaveBan2, GuildRole.Name) ) .WithColor(new DiscordColor(0x00B06B)) .WithTimestamp(DateTime.Now) .WithFooter( string.Format("{0} Bot", Bot.CurrentUser.Username) ); await MemberObjects.Member.SendMessageAsync(WelcomeEmbed); } } else { if (DBRoleLevel == RoleLevel.Public) { await MemberObjects.Member.GrantRoleAsync(GuildRole); DiscordEmbed WelcomeEmbed = new DiscordEmbedBuilder() .WithTitle(string.Format(Get_Language.Language_Data.WelcomeEmbedTitle, MemberObjects.Guild.Name, GuildRole.Name)) .AddField( Get_Language.Language_Data.DMEmbed_Public1, Get_Language.Language_Data.DMEmbed_Public2 ) .AddField( Get_Language.Language_Data.DMEmbed_Public3, Get_Language.Language_Data.DMEmbed_Public4 ) .WithColor(new DiscordColor(0x00B06B)) .WithTimestamp(DateTime.Now) .WithFooter( string.Format("{0} Bot", Bot.CurrentUser.Username) ); await MemberObjects.Member.SendMessageAsync(WelcomeEmbed); } else if (DBRoleLevel == RoleLevel.Moderator) { await MemberObjects.Member.GrantRoleAsync(GuildRole); DiscordEmbed WelcomeEmbed = new DiscordEmbedBuilder() .WithTitle(string.Format(Get_Language.Language_Data.WelcomeEmbedTitle, MemberObjects.Guild.Name, GuildRole.Name)) .AddField( Get_Language.Language_Data.DMEmbed_Moderator1, Get_Language.Language_Data.DMEmbed_Moderator2 ) .AddField( Get_Language.Language_Data.DMEmbed_Moderator3, string.Format(Get_Language.Language_Data.DMEmbed_Moderator4, Bot.CurrentUser.Username) ) .AddField( Get_Language.Language_Data.DMEmbed_Moderator5, Get_Language.Language_Data.DMEmbed_Moderator6 ) .WithColor(new DiscordColor(0x00B06B)) .WithTimestamp(DateTime.Now) .WithFooter( string.Format("{0} Bot", Bot.CurrentUser.Username) ); await MemberObjects.Member.SendMessageAsync(WelcomeEmbed); } } Log.Debug($"{MemberObjects.Member.Username + "#" + MemberObjects.Member.Discriminator} is allowed join"); } else { await MemberObjects.Member.SendMessageAsync(Get_Language.Language_Data.RoleNumNullMessage); } }
public Role(int id, string name, RoleLevel roleLevel) { Id = id; Name = name; RoleLevel = roleLevel; }
internal override async Task Execute(CommandObjects CommandObject) { try { string[] msgs = CommandObject.CommandArgs.Remove(0); if (msgs.Length == 0) { await CommandObject.Message.Channel.SendMessageAsync(CommandObject.Language.EmptyText); return; } if (string.IsNullOrWhiteSpace(msgs[0])) { await CommandObject.Message.Channel.SendMessageAsync(CommandObject.Language.EmptyId); return; } if (!ulong.TryParse(msgs[0], out ulong msgs_ID)) { await CommandObject.Message.Channel.SendMessageAsync(CommandObject.Language.IdCouldntParse); return; } if (string.IsNullOrWhiteSpace(msgs[1])) { await CommandObject.Message.Channel.SendMessageAsync(CommandObject.Language.EmptyRoleNumber); return; } if (!uint.TryParse(msgs[1], out uint msgs_RoleNum)) { await CommandObject.Message.Channel.SendMessageAsync(CommandObject.Language.RoleNumberNotNumber); return; } if (!Database.DatabaseMethods.AllowUsersMethods.AllowUserFind(CommandObject.Guild.Id, msgs_ID, out AllowUsers DBAllowUsersID)) { await CommandObject.Message.Channel.SendMessageAsync(CommandObject.Language.IdNotRegisted); return; } if (!Database.DatabaseMethods.RolesMethods.RoleFind(CommandObject.Guild.Id, msgs_RoleNum, out Roles DBRolesNum)) { await CommandObject.Message.Channel.SendMessageAsync(CommandObject.Language.RoleNumberNotFound); return; } if (!Database.DatabaseMethods.RolesMethods.RoleFind(CommandObject.Guild.Id, DBAllowUsersID.RoleNum, out Roles DBBeforeRolesNum)) { await CommandObject.Message.Channel.SendMessageAsync(CommandObject.Language.BeforeRoleNotFound); return; } DBAllowUsersID.RoleNum = msgs_RoleNum; Database.DatabaseMethods.AllowUsersMethods.AllowUserUpdate(DBAllowUsersID); DiscordMember GuildMember = await CommandObject.Guild.GetMemberAsync(msgs_ID); DiscordRole GuildAfterRole = CommandObject.Guild.GetRole(DBRolesNum.Uuid); await GuildMember.GrantRoleAsync(GuildAfterRole); DiscordRole GuildBeforeRole = CommandObject.Guild.GetRole(DBBeforeRolesNum.Uuid); await GuildMember.RevokeRoleAsync(GuildBeforeRole); string ResultText = string.Format(CommandObject.Language.DBUserChangeRoleSuccess, GuildMember.Username + "#" + GuildMember.Discriminator, GuildBeforeRole.Name, GuildAfterRole.Name); await CommandObject.Message.Channel.SendMessageAsync(ResultText); RoleLevel DBRoleLevel = Enum.Parse <RoleLevel>(DBRolesNum.RoleLevel); bool GuildLeaveBan = Database.DatabaseMethods.GuildConfigMethods.LeaveBanFind(CommandObject.Guild.Id); if (GuildLeaveBan) { if (DBRoleLevel == RoleLevel.Public) { DiscordEmbed WelcomeEmbed = new DiscordEmbedBuilder() .WithTitle(string.Format(CommandObject.Language.DBUserChangeRoleEmbedTitle, GuildAfterRole.Name)) .AddField( CommandObject.Language.DMEmbed_Public1, CommandObject.Language.DMEmbed_Public2 ) .AddField( CommandObject.Language.DMEmbed_Public3, CommandObject.Language.DMEmbed_Public4 ) .AddField( CommandObject.Language.DMEmbed_LeaveBan1, string.Format(CommandObject.Language.DMEmbed_LeaveBan2, GuildAfterRole.Name) ) .WithColor(new DiscordColor(0x00B06B)) .WithFooter( string.Format("{0} Bot", CommandObject.Client.CurrentUser.Username) ); await GuildMember.SendMessageAsync(WelcomeEmbed); return; } else if (DBRoleLevel == RoleLevel.Moderator) { DiscordEmbed WelcomeEmbed = new DiscordEmbedBuilder() .WithTitle(string.Format(CommandObject.Language.DBUserChangeRoleEmbedTitle, GuildAfterRole.Name)) .AddField( CommandObject.Language.DMEmbed_Moderator1, CommandObject.Language.DMEmbed_Moderator2 ) .AddField( CommandObject.Language.DMEmbed_Moderator3, string.Format(CommandObject.Language.DMEmbed_Moderator4, CommandObject.Client.CurrentUser.Username) ) .AddField( CommandObject.Language.DMEmbed_Moderator5, CommandObject.Language.DMEmbed_Moderator6 ) .AddField( CommandObject.Language.DMEmbed_LeaveBan1, string.Format(CommandObject.Language.DMEmbed_LeaveBan2, GuildAfterRole.Name) ) .WithColor(new DiscordColor(0x00B06B)) .WithFooter( string.Format("{0} Bot", CommandObject.Client.CurrentUser.Username) ); await GuildMember.SendMessageAsync(WelcomeEmbed); return; } } else { if (DBRoleLevel == RoleLevel.Public) { DiscordEmbed WelcomeEmbed = new DiscordEmbedBuilder() .WithTitle(string.Format(CommandObject.Language.DBUserChangeRoleEmbedTitle, GuildAfterRole.Name)) .AddField( CommandObject.Language.DMEmbed_Public1, CommandObject.Language.DMEmbed_Public2 ) .AddField( CommandObject.Language.DMEmbed_Public3, CommandObject.Language.DMEmbed_Public4 ) .WithColor(new DiscordColor(0x00B06B)) .WithFooter( string.Format("{0} Bot", CommandObject.Client.CurrentUser.Username) ); await GuildMember.SendMessageAsync(WelcomeEmbed); return; } else if (DBRoleLevel == RoleLevel.Moderator) { DiscordEmbed WelcomeEmbed = new DiscordEmbedBuilder() .WithTitle(string.Format(CommandObject.Language.DBUserChangeRoleEmbedTitle, GuildAfterRole.Name)) .AddField( CommandObject.Language.DMEmbed_Moderator1, CommandObject.Language.DMEmbed_Moderator2 ) .AddField( CommandObject.Language.DMEmbed_Moderator3, string.Format(CommandObject.Language.DMEmbed_Moderator4, CommandObject.Client.CurrentUser.Username) ) .AddField( CommandObject.Language.DMEmbed_Moderator5, CommandObject.Language.DMEmbed_Moderator6 ) .WithColor(new DiscordColor(0x00B06B)) .WithFooter( string.Format("{0} Bot", CommandObject.Client.CurrentUser.Username) ); await GuildMember.SendMessageAsync(WelcomeEmbed); return; } } } catch (IndexOutOfRangeException) { await CommandObject.Message.Channel.SendMessageAsync(CommandObject.Language.TypingMissed); return; } }
public async Task <object> GetAvaiableRolesForUserCreation(RoleLevel request) { var models = await _roleService.GetAvaiableRolesForUserCreation(request.Level); return(models); }
public IRole GetGuildRole(RoleLevel level) => this.Roles.FirstOrDefault(o => o.Level == level)?.Value;
private async Task SetRole(SocketGuildUser User, IDictionary <RoleLevel, IRole> RoleMap, RoleLevel DesiredRole, StringBuilder sb) { var ToAdd = RoleMap //Find all roles less then or equal to current role. .Where(o => o.Key <= DesiredRole) //Filter by roles the user does not have. .Where(o => !User.Roles.Any(z => z.Id == o.Value.Id)) //Select the Role .Select(o => o.Value); var ToRemove = RoleMap //Find all roles greater then current role. .Where(o => o.Key > DesiredRole) //Filter by roles the user does have. .Where(o => User.Roles.Any(z => z.Id == o.Value.Id)) //Select the Role .Select(o => o.Value); //Make a formatted message return. sb.AppendLine($"Setting {User.Mention} to role {DesiredRole.ToString()}"); foreach (var remove in ToRemove) { sb.AppendLine($"\tRemoved Role {remove.Mention}"); } foreach (var add in ToAdd) { sb.AppendLine($"\tAdded Role {add.Mention}"); } //Remove applicable roles if (ToRemove.Count() > 0) { await User.RemoveRolesAsync(ToRemove); } //Add applicable roles if (ToAdd.Count() > 0) { await User.AddRolesAsync(ToAdd); } }
public WebsiteRole(string name, string description, RoleLevel roleLevel) { Name = name; Description = description; RoleLevel = roleLevel; }
internal override async Task Execute(CommandObjects CommandObject) { await CommandObject.Channel.SendMessageAsync(string.Format(CommandObject.Language.DMMention, CommandObject.Member.Mention)); string GuildPrefix = Database.DatabaseMethods.GuildConfigMethods.PrefixFind(CommandObject.Guild.Id); if (GuildPrefix == null) { GuildPrefix = CommandConfig.Prefix; } DiscordEmbedBuilder PublicEmbed = new DiscordEmbedBuilder(); DiscordEmbedBuilder ModeratorEmbed = new DiscordEmbedBuilder(); DiscordEmbedBuilder BotownerEmbed = new DiscordEmbedBuilder(); foreach (CommandInfo Command_Info in CommandInfo.GetCommandInfo()) { if (Command_Info.Command_Attribute.CommandName == null) { continue; } switch (Command_Info.Command_Attribute.CommandRoleLevel) { case RoleLevel.Public: PublicEmbed.AddField( Command_Info.Command.Description[CommandObject.LanguageType], string.Format($"`{Command_Info.Command.Usage[CommandObject.LanguageType]}`", GuildPrefix) ); break; case RoleLevel.Moderator: ModeratorEmbed.AddField( Command_Info.Command.Description[CommandObject.LanguageType], string.Format($"`{Command_Info.Command.Usage[CommandObject.LanguageType]}`", GuildPrefix) ); break; case RoleLevel.Owner: BotownerEmbed.AddField( Command_Info.Command.Description[CommandObject.LanguageType], string.Format($"`{Command_Info.Command.Usage[CommandObject.LanguageType]}`", CommandConfig.Prefix) ); break; default: break; } } PublicEmbed .WithTitle(CommandObject.Language.HelpPublicCommand) .WithDescription(string.Format(CommandObject.Language.HelpCommandPrefix, GuildPrefix)) .WithColor(new DiscordColor(0x00B06B)) .WithTimestamp(DateTime.Now) .WithFooter(string.Format("{0} Bot", CommandObject.Client.CurrentUser.Username)); await CommandObject.Member.SendMessageAsync(PublicEmbed); RoleLevel DBRoleLevel = CommandObject.Message.Author.Id == CommandObject.Guild.Owner.Id || CommandObject.Message.Author.Id == ClientConfig.BotownerId ? RoleLevel.Moderator : Database.DatabaseMethods.AllowUsersMethods.AllowUserFind(CommandObject.Guild.Id, CommandObject.Message.Author.Id, out AllowUsers DBAllowUsersID) && Database.DatabaseMethods.RolesMethods.RoleFind(CommandObject.Guild.Id, DBAllowUsersID.RoleNum, out Roles DBRolesNum) ? (RoleLevel)Enum.Parse(typeof(RoleLevel), DBRolesNum.RoleLevel) : RoleLevel.Public; if (DBRoleLevel == RoleLevel.Moderator) // CommandObject.Message.Author.Id == CommandObject.Guild.Owner.Id { ModeratorEmbed .WithTitle(CommandObject.Language.HelpModeratorCommand) .WithDescription(string.Format(CommandObject.Language.HelpCommandPrefix, GuildPrefix)) .AddField( CommandObject.Language.HelpConfigArgs, "`" + "whitelist" + " | " + "leaveban" + " | " + "publicprefix" + " | " + "moderatorprefix" + " | " + "logchannel" + " | " + "language" + " | " + "level" + "`" ) .WithColor(new DiscordColor(0xF6AA00)) .WithTimestamp(DateTime.Now) .WithFooter(string.Format("{0} Bot", CommandObject.Client.CurrentUser.Username)); await CommandObject.Member.SendMessageAsync(ModeratorEmbed); } if (CommandObject.Message.Author.Id == ClientConfig.BotownerId) { BotownerEmbed .WithTitle("Botowner Commands") .WithDescription(string.Format("Prefix is {0}", CommandConfig.Prefix)) .WithColor(new DiscordColor(0x1971FF)) .WithTimestamp(DateTime.Now) .WithFooter(string.Format("{0} Bot", CommandObject.Client.CurrentUser.Username)); await CommandObject.Member.SendMessageAsync(BotownerEmbed); } }