basic setup, /ping added

This commit is contained in:
2025-11-30 10:58:16 +01:00
parent 781a499a6c
commit e045d0d01f
9 changed files with 296 additions and 0 deletions

47
relay/commands/ping.go Normal file
View File

@@ -0,0 +1,47 @@
package commands
import (
"fmt"
"time"
"github.com/disgoorg/disgo/discord"
"github.com/disgoorg/disgo/handler"
)
func PingHandler(e *handler.CommandEvent) error {
now := time.Now()
latency := now.Sub(e.CreatedAt())
msLatency := latency.Milliseconds()
if msLatency < 0 {
msLatency = -msLatency
}
// Gateway latency
var gwMs int64
if gw := e.Client().Gateway(); gw != nil {
gwMs = gw.Latency().Milliseconds()
} else {
gwMs = 0
}
lat := float64(msLatency)
if lat > 5000 {
lat = 5000
}
red := int((lat / 5000) * 255)
green := 255 - red
color := (red << 16) | (green << 8)
embed := discord.NewEmbedBuilder().
SetTitle("🏓 Pong!").
AddField("Interaction latency", fmt.Sprintf("%d ms", msLatency), true).
AddField("Gateway latency", fmt.Sprintf("%d ms", gwMs), true).
SetColor(color).
Build()
return e.CreateMessage(discord.NewMessageCreateBuilder().
SetEmbeds(embed).
Build(),
)
}