Merge status and query player data (#7)
This commit is contained in:
@@ -524,8 +524,8 @@ func BuildJavaResponse(host string, port uint16, status interface{}, query *resp
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, playerName := range query.Players {
|
for _, username := range query.Players {
|
||||||
parsedName, err := description.ParseFormatting(playerName)
|
parsedName, err := description.ParseFormatting(username)
|
||||||
|
|
||||||
if err == nil {
|
if err == nil {
|
||||||
result.Players.List = append(result.Players.List, Player{
|
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
|
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 {
|
func PointerOf[T any](v T) *T {
|
||||||
return &v
|
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
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user