ソースを参照

Disable message input if client does not have permission to send messages

ayn2op 2 年 前
コミット
f58423bdaf
1 ファイル変更13 行追加2 行削除
  1. 13 2
      cmd/guilds_tree.go

+ 13 - 2
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 {