Add affiliation medals

This commit is contained in:
2026-02-02 13:23:08 +00:00
parent 6cb8771994
commit 777df725b6
10 changed files with 117 additions and 13 deletions

82
main.go
View File

@@ -10,6 +10,7 @@ import (
"github.com/diamondburned/gotk4/pkg/gio/v2"
"github.com/diamondburned/gotk4/pkg/glib/v2"
"github.com/diamondburned/gotk4/pkg/gtk/v4"
"github.com/diamondburned/gotk4/pkg/gdkpixbuf/v2"
_ "github.com/kr/pretty"
"path/filepath"
@@ -23,6 +24,7 @@ import (
"encoding/xml"
"math/rand/v2"
"runtime"
"encoding/base64"
)
var loadedConfig lambdaConfig
@@ -55,6 +57,33 @@ var mucmembers sync.Map
// stores devices of users
var userdevices sync.Map
//go:embed debug.png
var defaultAvatarBytes []byte
var defaultAvatarB64 string = base64.StdEncoding.EncodeToString(defaultAvatarBytes)
//go:embed assets/owner.png
var ownerMedalBytes []byte
var ownerMedalB64 string = base64.StdEncoding.EncodeToString(ownerMedalBytes)
//go:embed assets/admin.png
var adminMedalBytes []byte
var adminMedalB64 string = base64.StdEncoding.EncodeToString(adminMedalBytes)
//go:embed assets/member.png
var memberMedalBytes []byte
var memberMedalB64 string = base64.StdEncoding.EncodeToString(memberMedalBytes)
//go:embed assets/noaffiliation.png
var noneMedalBytes []byte
var noneMedalB64 string = base64.StdEncoding.EncodeToString(noneMedalBytes)
//go:embed assets/outcast.png
var outcastMedalBytes []byte
var outcastMedalB64 string = base64.StdEncoding.EncodeToString(outcastMedalBytes)
var clientAssets map[string]gdk.Paintabler = make(map[string]gdk.Paintabler)
func init() {
go func() {
for fn := range uiQueue {
@@ -65,6 +94,54 @@ func init() {
time.Sleep(10 * time.Millisecond) // Small delay between updates
}
}()
loader := gdkpixbuf.NewPixbufLoader()
defaultAvatarData, _ := base64.StdEncoding.DecodeString(defaultAvatarB64)
loader.Write(defaultAvatarData)
loader.Close()
clientAssets["DefaultAvatar"] = gdk.NewTextureForPixbuf(loader.Pixbuf())
loader = gdkpixbuf.NewPixbufLoader()
ownerMedalData, _ := base64.StdEncoding.DecodeString(ownerMedalB64)
loader.Write(ownerMedalData)
loader.Close()
clientAssets["owner"] = gdk.NewTextureForPixbuf(loader.Pixbuf())
loader = gdkpixbuf.NewPixbufLoader()
adminMedalData, _ := base64.StdEncoding.DecodeString(adminMedalB64)
loader.Write(adminMedalData)
loader.Close()
clientAssets["admin"] = gdk.NewTextureForPixbuf(loader.Pixbuf())
loader = gdkpixbuf.NewPixbufLoader()
memberMedalData, _ := base64.StdEncoding.DecodeString(memberMedalB64)
loader.Write(memberMedalData)
loader.Close()
clientAssets["member"] = gdk.NewTextureForPixbuf(loader.Pixbuf())
loader = gdkpixbuf.NewPixbufLoader()
noneMedalData, _ := base64.StdEncoding.DecodeString(noneMedalB64)
loader.Write(noneMedalData)
loader.Close()
clientAssets["none"] = gdk.NewTextureForPixbuf(loader.Pixbuf())
loader = gdkpixbuf.NewPixbufLoader()
outcastMedalData, _ := base64.StdEncoding.DecodeString(outcastMedalB64)
loader.Write(outcastMedalData)
loader.Close()
clientAssets["outcast"] = gdk.NewTextureForPixbuf(loader.Pixbuf())
}
func main() {
@@ -85,7 +162,7 @@ func main() {
panic(err)
}
// Put 4 random characters in front of lambda
// Put 4 random characters at the end
chars := "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZλ"
str := ""
for range 4 {
@@ -334,7 +411,7 @@ func activate(app *gtk.Application) {
the_menu := gio.NewMenu()
fileMenu := gio.NewMenu()
fileMenu.Append("Join room", "app.join")
fileMenu.Append("Join MUC", "app.join")
fileMenu.Append("Start DM", "app.dm")
joinAction := gio.NewSimpleAction("join", nil)
@@ -369,6 +446,7 @@ func activate(app *gtk.Application) {
box.Append(btn)
win := gtk.NewWindow()
win.SetTitle("Join MUC")
win.SetDefaultSize(200, 200)
win.SetChild(box)