Files
HomesteadToGo/relay/commands/ping.go
2025-12-08 13:31:47 +01:00

49 lines
935 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 > 1500 {
lat = 1500
}
red := int((lat / 1500) * 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(),
)
}