Пример #1
0
        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));
        }
Пример #2
0
        //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);
        }
Пример #3
0
        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;
        }
Пример #4
0
 public static bool TryParsePermLevel(string msg, out DiscordUserPermissionLevel output)
 {
     output = DiscordUserPermissionLevel.none;
     return(Enum.TryParse <DiscordUserPermissionLevel>(msg.ToLower(), out output));
 }