public static async Task <DiscordUser> GetUserFromDiscord(DSharpPlus.EventArgs.MessageCreateEventArgs e, ArkServer server = null) { //Check if this user has roles. DiscordUserPermissionLevel perm = DiscordUserPermissionLevel.anyone; if (server != null) { //Fetch their permission level. var guild = e.Guild; if (guild != null) { var member = await guild.GetMemberAsync(e.Author.Id); CheckIfUserHasRoles(member, server.adminRoleId, server.userRoleId, out bool isAdmin, out bool isUser); if (isUser) { perm = DiscordUserPermissionLevel.user; } if (isAdmin) { perm = DiscordUserPermissionLevel.admin; } } } //Check if this user owns the bot. if (e.Author.Id == Program.ownerId) { perm = DiscordUserPermissionLevel.owner; } return(new DiscordUser(e.Author.Username, e.Author.Id, perm)); }
//Collection of tools public static bool CompareAuth(DiscordUserPermissionLevel user, DiscordUserPermissionLevel source) { //Returns true/false if the user meets the permission requirements. int userInt = (int)user; int sourceInt = (int)source; return(userInt >= sourceInt); }
public DiscordUser(string _username, ulong _id, DiscordUserPermissionLevel _perm) { //Main constructor //First, load all of the info we can from the disk if we exist. string path = Program.savePath + "users\\" + _id.ToString(); if (File.Exists(path)) { string raw = File.ReadAllText(path); DiscordUser u = (DiscordUser)Tools.DeserializeObject(raw, typeof(DiscordUser)); //Exchange values this.arkLinkedSteamName = u.arkLinkedSteamName; this.arkLinkedUsername = u.arkLinkedUsername; this.isArkLinked = u.isArkLinked; this.arkPoints = u.arkPoints; } username = _username; id = _id; permissionLevel = _perm; }
public static bool TryParsePermLevel(string msg, out DiscordUserPermissionLevel output) { output = DiscordUserPermissionLevel.none; return(Enum.TryParse <DiscordUserPermissionLevel>(msg.ToLower(), out output)); }