From 99f7b012bfcc378db1adadb09fe95a1d8a7252b7 Mon Sep 17 00:00:00 2001 From: olebeck <31539311+olebeck@users.noreply.github.com> Date: Tue, 4 Apr 2023 20:06:05 +0200 Subject: [PATCH] add flags for inventory and entity --- .gitignore | 2 +- handlers/worlds/entity.go | 4 ++++ handlers/worlds/items.go | 4 ++++ handlers/worlds/world.go | 10 ++++++---- subcommands/world/world.go | 20 +++++++++++++------- 5 files changed, 28 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index bc108cf..b35ff22 100644 --- a/.gitignore +++ b/.gitignore @@ -28,7 +28,7 @@ keys.db packets.log.gpg customdata.json -/logs-to-map/ +/other-projects/ __pycache__/entityflags.cpython-310.pyc gathering.py *.ipynb diff --git a/handlers/worlds/entity.go b/handlers/worlds/entity.go index fad063d..fb823c1 100644 --- a/handlers/worlds/entity.go +++ b/handlers/worlds/entity.go @@ -217,6 +217,10 @@ func (s *entityState) ToServerEntity() serverEntity { } func (w *worldsHandler) ProcessEntityPackets(pk packet.Packet) packet.Packet { + if !w.settings.SaveEntities { + return pk + } + switch pk := pk.(type) { case *packet.AddActor: w.processAddActor(pk) diff --git a/handlers/worlds/items.go b/handlers/worlds/items.go index ca9f9cb..63adf24 100644 --- a/handlers/worlds/items.go +++ b/handlers/worlds/items.go @@ -18,6 +18,10 @@ type itemContainer struct { } func (w *worldsHandler) processItemPacketsServer(pk packet.Packet) packet.Packet { + if !w.settings.SaveInventories { + return pk + } + switch pk := pk.(type) { case *packet.ContainerOpen: // add to open containers diff --git a/handlers/worlds/world.go b/handlers/worlds/world.go index 895cdd9..af73781 100644 --- a/handlers/worlds/world.go +++ b/handlers/worlds/world.go @@ -42,10 +42,12 @@ type TPlayerPos struct { type WorldSettings struct { // settings - VoidGen bool - WithPacks bool - SaveImage bool - BlockUpdates bool + VoidGen bool + WithPacks bool + SaveImage bool + SaveEntities bool + SaveInventories bool + BlockUpdates bool } type worldState struct { diff --git a/subcommands/world/world.go b/subcommands/world/world.go index 33235d8..40b987b 100644 --- a/subcommands/world/world.go +++ b/subcommands/world/world.go @@ -15,10 +15,12 @@ func init() { } type WorldCMD struct { - ServerAddress string - Packs bool - EnableVoid bool - SaveImage bool + ServerAddress string + Packs bool + EnableVoid bool + SaveEntities bool + SaveInventories bool + SaveImage bool } func (*WorldCMD) Name() string { return "worlds" } @@ -29,6 +31,8 @@ func (c *WorldCMD) SetFlags(f *flag.FlagSet) { f.BoolVar(&c.Packs, "packs", false, locale.Loc("save_packs_with_world", nil)) f.BoolVar(&c.EnableVoid, "void", true, locale.Loc("enable_void", nil)) f.BoolVar(&c.SaveImage, "image", false, locale.Loc("save_image", nil)) + f.BoolVar(&c.SaveEntities, "save-entities", true, "Save Entities") + f.BoolVar(&c.SaveInventories, "save-inventories", true, "Save Inventories") } func (c *WorldCMD) Execute(ctx context.Context, ui utils.UI) error { @@ -44,9 +48,11 @@ func (c *WorldCMD) Execute(ctx context.Context, ui utils.UI) error { proxy.AlwaysGetPacks = true proxy.AddHandler(worlds.NewWorldsHandler(ctx, ui, worlds.WorldSettings{ - VoidGen: c.EnableVoid, - WithPacks: c.Packs, - SaveImage: c.SaveImage, + VoidGen: c.EnableVoid, + WithPacks: c.Packs, + SaveEntities: c.SaveEntities, + SaveInventories: c.SaveInventories, + SaveImage: c.SaveImage, })) ui.Message(messages.SetUIState(messages.UIStateConnect))