Merge status and query player data
This commit is contained in:
parent
2782ac52e6
commit
b72d026f52
@ -524,8 +524,8 @@ func BuildJavaResponse(host string, port uint16, status interface{}, query *resp
|
||||
}
|
||||
}
|
||||
|
||||
for _, playerName := range query.Players {
|
||||
parsedName, err := description.ParseFormatting(playerName)
|
||||
for _, username := range query.Players {
|
||||
parsedName, err := description.ParseFormatting(username)
|
||||
|
||||
if err == nil {
|
||||
result.Players.List = append(result.Players.List, Player{
|
||||
@ -559,6 +559,23 @@ func BuildJavaResponse(host string, port uint16, status interface{}, query *resp
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for _, username := range query.Players {
|
||||
if Contains(Map(result.Players.List, func(v Player) string { return v.NameRaw }), username) {
|
||||
continue
|
||||
}
|
||||
|
||||
parsedName, err := description.ParseFormatting(username)
|
||||
|
||||
if err == nil {
|
||||
result.Players.List = append(result.Players.List, Player{
|
||||
UUID: "",
|
||||
NameRaw: parsedName.Raw,
|
||||
NameClean: parsedName.Clean,
|
||||
NameHTML: parsedName.HTML,
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
|
||||
22
src/util.go
22
src/util.go
@ -255,3 +255,25 @@ func SHA256(input string) string {
|
||||
func PointerOf[T any](v T) *T {
|
||||
return &v
|
||||
}
|
||||
|
||||
// Contains returns true if the array contains the value.
|
||||
func Contains[T comparable](arr []T, v T) bool {
|
||||
for _, value := range arr {
|
||||
if value == v {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
// Map applies the provided map function to all of the values in the array and returns the result.
|
||||
func Map[I, O any](arr []I, f func(I) O) []O {
|
||||
result := make([]O, len(arr))
|
||||
|
||||
for i, v := range arr {
|
||||
result[i] = f(v)
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user