update deps, poll realms on startup
This commit is contained in:
parent
fcb862b4c3
commit
9ef5a7b803
|
@ -37,6 +37,7 @@ jobs:
|
|||
id: get-latest-tag
|
||||
|
||||
- uses: "marvinpinto/action-automatic-releases@latest"
|
||||
if: startsWith(github.ref, 'refs/tags/v')
|
||||
with:
|
||||
repo_token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
automatic_release_tag: ${{ steps.get-latest-tag.outputs.tag }}
|
||||
|
@ -46,6 +47,7 @@ jobs:
|
|||
dist/*
|
||||
|
||||
- uses: "marvinpinto/action-automatic-releases@latest"
|
||||
if: "!(startsWith(github.ref, 'refs/tags/v'))"
|
||||
with:
|
||||
repo_token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
automatic_release_tag: latest
|
||||
|
|
2
go.mod
2
go.mod
|
@ -18,7 +18,7 @@ require (
|
|||
|
||||
//replace github.com/df-mc/dragonfly => ./dragonfly
|
||||
|
||||
replace github.com/sandertv/gophertunnel => github.com/olebeck/gophertunnel v1.24.6
|
||||
replace github.com/sandertv/gophertunnel => github.com/olebeck/gophertunnel v1.24.7
|
||||
|
||||
replace github.com/df-mc/dragonfly => github.com/olebeck/dragonfly v0.8.2-5
|
||||
|
||||
|
|
2
go.sum
2
go.sum
|
@ -41,6 +41,8 @@ github.com/olebeck/dragonfly v0.8.2-5 h1:0G9dhTQ1Oae1KnmgRjNeqYPQ/PsLFGwMWtQYAJk
|
|||
github.com/olebeck/dragonfly v0.8.2-5/go.mod h1:xgpCDhHoP03RygPaTrzzDwsSTcEZhxNPMV3CAxETj+I=
|
||||
github.com/olebeck/gophertunnel v1.24.6 h1:Mnpzk9e+eMdfx/wbEsmwQabEbalNzFRu+3iMEBzaVSg=
|
||||
github.com/olebeck/gophertunnel v1.24.6/go.mod h1:dMOw79FHxr2azEqiGH20AwdljisAN1kqwu5SjPBnZ5k=
|
||||
github.com/olebeck/gophertunnel v1.24.7 h1:EMYLDMxGxzPtoI/Y77KHPcfelkGS+QcjdtStGIqtYFE=
|
||||
github.com/olebeck/gophertunnel v1.24.7/go.mod h1:dMOw79FHxr2azEqiGH20AwdljisAN1kqwu5SjPBnZ5k=
|
||||
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs=
|
||||
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
package main
|
||||
|
||||
func (w *WorldState) getPacks() (packs map[string]*resource.Pack, err error) {
|
||||
for _, pack := range w.ServerConn.ResourcePacks() {
|
||||
packs[pack.Name()] = pack
|
||||
}
|
||||
packs = make(map[string]*resource.Pack)
|
||||
for _, pack := range w.ServerConn.ResourcePacks() {
|
||||
packs[pack.Name()] = pack
|
||||
}
|
||||
return
|
||||
}
|
||||
|
|
52
realms.go
52
realms.go
|
@ -9,6 +9,7 @@ import (
|
|||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/google/subcommands"
|
||||
)
|
||||
|
@ -46,27 +47,36 @@ func realms_get(path string) ([]byte, error) {
|
|||
}
|
||||
|
||||
func (realm *Realm) Address() (string, error) {
|
||||
if G_debug {
|
||||
fmt.Printf("realm.Address()\n")
|
||||
}
|
||||
|
||||
body, err := realms_get(fmt.Sprintf("worlds/%d/join", realm.Id))
|
||||
if err != nil {
|
||||
if strings.Contains(err.Error(), "503") {
|
||||
return "", fmt.Errorf("realm is starting")
|
||||
var body []byte
|
||||
var err error
|
||||
ticker := time.NewTicker(time.Second * 3)
|
||||
defer ticker.Stop()
|
||||
i := 0
|
||||
for range ticker.C {
|
||||
i++
|
||||
body, err = realms_get(fmt.Sprintf("worlds/%d/join", realm.Id))
|
||||
if err != nil {
|
||||
if err.Error() == "HTTP 503" {
|
||||
fmt.Printf("Waiting for the realm to start... %d\033[K\r", i)
|
||||
continue
|
||||
}
|
||||
return "", err
|
||||
}
|
||||
return "", err
|
||||
println()
|
||||
|
||||
var data struct {
|
||||
Address string `json:"address"`
|
||||
PendingUpdate bool `json:"pendingUpdate"`
|
||||
}
|
||||
if err := json.Unmarshal(body, &data); err != nil {
|
||||
return "", err
|
||||
}
|
||||
return data.Address, nil
|
||||
}
|
||||
var data struct {
|
||||
Address string `json:"address"`
|
||||
PendingUpdate bool `json:"pendingUpdate"`
|
||||
}
|
||||
if err := json.Unmarshal(body, &data); err != nil {
|
||||
return "", err
|
||||
}
|
||||
return data.Address, nil
|
||||
panic("unreachable")
|
||||
}
|
||||
|
||||
// get_realms lists all realms the user has access to
|
||||
func get_realms() ([]Realm, error) {
|
||||
data, err := realms_get("worlds")
|
||||
if err != nil {
|
||||
|
@ -83,8 +93,7 @@ func get_realms() ([]Realm, error) {
|
|||
return realms.Servers, nil
|
||||
}
|
||||
|
||||
func get_realm(realm_name, id string) (string, string, error) {
|
||||
// returns: name, address, err
|
||||
func get_realm(realm_name, id string) (name string, address string, err error) {
|
||||
realms, err := get_realms()
|
||||
if err != nil {
|
||||
return "", "", err
|
||||
|
@ -94,11 +103,12 @@ func get_realm(realm_name, id string) (string, string, error) {
|
|||
if id != "" && id != fmt.Sprint(id) {
|
||||
continue
|
||||
}
|
||||
address, err := realm.Address()
|
||||
name = realm.Name
|
||||
address, err = realm.Address()
|
||||
if err != nil {
|
||||
return "", "", err
|
||||
}
|
||||
return realm.Name, address, nil
|
||||
return
|
||||
}
|
||||
}
|
||||
return "", "", fmt.Errorf("realm not found")
|
||||
|
|
5
world.go
5
world.go
|
@ -150,9 +150,7 @@ func (w *WorldState) ProcessLevelChunk(pk *packet.LevelChunk) {
|
|||
}
|
||||
if blockNBTs != nil {
|
||||
w.blockNBT[protocol.SubChunkPos{
|
||||
pk.Position.X(),
|
||||
0,
|
||||
pk.Position.Z(),
|
||||
pk.Position.X(), 0, pk.Position.Z(),
|
||||
}] = blockNBTs
|
||||
}
|
||||
|
||||
|
@ -210,7 +208,6 @@ func (w *WorldState) ProcessSubChunk(pk *packet.SubChunk) {
|
|||
fmt.Print(err)
|
||||
}
|
||||
if blockNBT != nil {
|
||||
fmt.Printf("%+v\n", blockNBT)
|
||||
w.blockNBT[pos3] = blockNBT
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue