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