Просмотр исходного кода

Colorize the name of the guild folder if it is valid

ayn2op 3 лет назад
Родитель
Сommit
892349545c
2 измененных файлов с 22 добавлено и 15 удалено
  1. 21 0
      guilds_tree.go
  2. 1 15
      state.go

+ 21 - 0
guilds_tree.go

@@ -1,11 +1,13 @@
 package main
 
 import (
+	"fmt"
 	"log"
 	"sort"
 	"strings"
 
 	"github.com/diamondburned/arikawa/v3/discord"
+	"github.com/diamondburned/arikawa/v3/gateway"
 	"github.com/gdamore/tcell/v2"
 	"github.com/rivo/tview"
 )
@@ -43,6 +45,25 @@ func newGuildsTree() *GuildsTree {
 	return gt
 }
 
+func (gt *GuildsTree) createGuildFolderNode(parent *tview.TreeNode, gf gateway.GuildFolder) {
+	var name string
+	if gf.Name != "" {
+		name = fmt.Sprintf("[%s]%s[-]", gf.Color.String(), gf.Name)
+	} else {
+		name = "Folder"
+	}
+
+	n := tview.NewTreeNode(name)
+	parent.AddChild(n)
+
+	for _, gid := range gf.GuildIDs {
+		if err := guildsTree.createGuildNodeFromID(n, gid); err != nil {
+			log.Println(err)
+			continue
+		}
+	}
+}
+
 func (gt *GuildsTree) createGuildNodeFromID(n *tview.TreeNode, gid discord.GuildID) error {
 	g, err := discordState.Cabinet.Guild(gid)
 	if err != nil {

+ 1 - 15
state.go

@@ -49,21 +49,7 @@ func (s *State) onReady(r *gateway.ReadyEvent) {
 				continue
 			}
 		} else {
-			name := gf.Name
-			if name == "" {
-				name = "Folder"
-			}
-
-			gfNode := tview.NewTreeNode(name)
-			guildsTree.root.AddChild(gfNode)
-
-			for _, gid := range gf.GuildIDs {
-				err := guildsTree.createGuildNodeFromID(gfNode, gid)
-				if err != nil {
-					log.Println(err)
-					continue
-				}
-			}
+			guildsTree.createGuildFolderNode(guildsTree.root, gf)
 		}
 	}