Merge branch 'master' into 1.19.63

dont delete entities
This commit is contained in:
olebeck 2023-03-19 01:10:36 +01:00
commit 83a38c57cc
4 changed files with 16 additions and 8 deletions

2
go.mod
View File

@ -6,7 +6,7 @@ go 1.20
replace github.com/sandertv/gophertunnel => github.com/olebeck/gophertunnel v1.27.4-4
//replace github.com/df-mc/dragonfly => ./dragonfly
replace github.com/df-mc/dragonfly => github.com/olebeck/dragonfly v0.9.3-3
replace github.com/df-mc/dragonfly => github.com/olebeck/dragonfly v0.9.3-5
require (
gioui.org v0.0.0-20221219171716-c455f0f342ef

4
go.sum
View File

@ -77,8 +77,8 @@ github.com/muhammadmuzzammil1998/jsonc v1.0.0 h1:8o5gBQn4ZA3NBA9DlTujCj2a4w0tqWr
github.com/muhammadmuzzammil1998/jsonc v1.0.0/go.mod h1:saF2fIVw4banK0H4+/EuqfFLpRnoy5S+ECwTOCcRcSU=
github.com/nicksnyder/go-i18n/v2 v2.2.1 h1:aOzRCdwsJuoExfZhoiXHy4bjruwCMdt5otbYojM/PaA=
github.com/nicksnyder/go-i18n/v2 v2.2.1/go.mod h1:fF2++lPHlo+/kPaj3nB0uxtPwzlPm+BlgwGX7MkeGj0=
github.com/olebeck/dragonfly v0.9.3-3 h1:sv4TJjdgFoCBRMd5mS0g5NyPeMsVfUifhxIlJPTj6xg=
github.com/olebeck/dragonfly v0.9.3-3/go.mod h1:ODAzVcmM7KvKgPB89hoYndQiVVgTm9FlDXUko1H3YVs=
github.com/olebeck/dragonfly v0.9.3-5 h1:8MUpzKz1UZ0K+DJrywBV6C/ydGMggTxGg1n9VFAZPpI=
github.com/olebeck/dragonfly v0.9.3-5/go.mod h1:ODAzVcmM7KvKgPB89hoYndQiVVgTm9FlDXUko1H3YVs=
github.com/olebeck/gophertunnel v1.27.4-4 h1:ZzmZquRW0WdoH/smsOk91O+40dotn7574bID+BkHbuk=
github.com/olebeck/gophertunnel v1.27.4-4/go.mod h1:ekREo7U9TPHh86kbuPMaWA93NMyWsfVvP/iNT3XhAb8=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=

View File

@ -44,10 +44,6 @@ func (t serverEntityType) EncodeNBT(e world.Entity) map[string]any {
return t.NBT
}
func (t serverEntityType) UniqueID() int64 {
return t.NBT["UniqueID"].(int64)
}
type serverEntity struct {
world.Entity
EntityType serverEntityType
@ -138,7 +134,6 @@ func (w *WorldState) ProcessEntityPackets(pk packet.Packet) packet.Packet {
case *packet.AddActor:
w.processAddActor(pk)
case *packet.RemoveActor:
delete(w.entities, uint64(pk.EntityUniqueID))
case *packet.SetActorData:
e, ok := w.entities[pk.EntityRuntimeID]
if ok {

View File

@ -48,6 +48,7 @@ type WorldState struct {
bp *behaviourpack.BehaviourPack
// save state
ChunkRadius int
chunks map[protocol.ChunkPos]*chunk.Chunk
blockNBT map[protocol.SubChunkPos][]map[string]any
openItemContainers map[byte]*itemContainer
@ -167,6 +168,11 @@ func (c *WorldCMD) Execute(ctx context.Context, ui utils.UI) error {
pk = w.processMapPacketsClient(pk, &forward)
} else {
// from server
switch pk := pk.(type) {
case *packet.ChunkRadiusUpdated:
w.ChunkRadius = int(pk.ChunkRadius)
pk.ChunkRadius = 80
}
pk = w.processItemPacketsServer(pk)
pk = w.ProcessChunkPackets(pk)
pk = w.ProcessEntityPackets(pk)
@ -499,6 +505,8 @@ func (w *WorldState) SaveAndReset() {
f.Close()
}
time.Sleep(1 * time.Second)
// zip it
filename := folder + ".mcworld"
if err := utils.ZipFolder(filename, folder); err != nil {
@ -517,6 +525,7 @@ func (w *WorldState) OnConnect(proxy *utils.ProxyContext, err error) bool {
}
w.proxy = proxy
gd := w.proxy.Server.GameData()
w.ChunkRadius = int(gd.ChunkRadius)
world.InsertCustomItems(gd.Items)
@ -594,5 +603,9 @@ func (w *WorldState) OnConnect(proxy *utils.ProxyContext, err error) bool {
},
})
if w.proxy.Client != nil {
w.proxy.Client.WritePacket(&packet.ChunkRadiusUpdated{ChunkRadius: 80})
}
return true
}