Files
HomesteadToGo/relay/commands/ping.go
2025-11-30 10:58:16 +01:00

48 lines
930 B
Go

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(),
)
}