From f58423bdaf02e47d68ea4d645e54b0856aebbad9 Mon Sep 17 00:00:00 2001 From: ayn2op Date: Mon, 1 Apr 2024 03:47:14 +0530 Subject: [PATCH] Disable message input if client does not have permission to send messages --- cmd/guilds_tree.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/cmd/guilds_tree.go b/cmd/guilds_tree.go index 544ff11..15cac1c 100644 --- a/cmd/guilds_tree.go +++ b/cmd/guilds_tree.go @@ -198,10 +198,21 @@ func (gt *GuildsTree) onSelected(n *tview.TreeNode) { return } - mainFlex.messagesText.SetTitle(gt.channelToString(*c)) + clientID := discordState.Ready().User.ID + perms, err := discordState.Permissions(c.ID, clientID) + if err != nil { + log.Println(err) + return + } + if perms.Has(discord.PermissionSendMessages) { + app.SetFocus(mainFlex.messageInput) + } else { + mainFlex.messageInput.SetDisabled(true) + } + + mainFlex.messagesText.SetTitle(gt.channelToString(*c)) gt.selectedChannelID = ref - app.SetFocus(mainFlex.messageInput) case nil: // Direct messages cs, err := discordState.Cabinet.PrivateChannels() if err != nil {