From 87f67569d2089c898a9258ed9afd515943ae7a64 Mon Sep 17 00:00:00 2001 From: Dustin Pianalto Date: Mon, 6 Apr 2020 23:29:24 -0800 Subject: [PATCH] Test pointer panic --- command-manager.go | 2 +- utils.go | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/command-manager.go b/command-manager.go index 9f414f8..fb71e23 100644 --- a/command-manager.go +++ b/command-manager.go @@ -105,7 +105,7 @@ func (c *CommandManager) OnMessage(session *discordgo.Session, m *discordgo.Mess return } - if !CheckPermissions(session, *m.Member, *channel, command.RequiredPermissions) { + if !CheckPermissions(session, m.Author.ID, *channel, command.RequiredPermissions) { embed := &discordgo.MessageEmbed{ Title: "Insufficient Permissions", Description: "You don't have the correct permissions to run this command.", diff --git a/utils.go b/utils.go index d0a1fff..a932bdc 100644 --- a/utils.go +++ b/utils.go @@ -22,13 +22,13 @@ func GetDefaultStatusManager() StatusManager { } // CheckPermissions checks the channel and guild permissions to see if the member has the needed permissions -func CheckPermissions(session *discordgo.Session, member discordgo.Member, channel discordgo.Channel, perms Permission) bool { +func CheckPermissions(session *discordgo.Session, memberID string, channel discordgo.Channel, perms Permission) bool { if perms == 0 { return true // If no permissions are required then just return true } for _, overwrite := range channel.PermissionOverwrites { - if overwrite.ID == member.User.ID { + if overwrite.ID == memberID { if overwrite.Allow&int(perms) != 0 { return true // If the channel has an overwrite for the user then true } else if overwrite.Deny&int(perms) != 0 { @@ -37,6 +37,11 @@ func CheckPermissions(session *discordgo.Session, member discordgo.Member, chann } } + member, err := session.State.Member(channel.GuildID, memberID) + if err != nil { + fmt.Println(err) + return false + } for _, roleID := range member.Roles { role, err := session.State.Role(channel.GuildID, roleID) if err != nil {