This commit is contained in:
olebeck 2022-09-02 18:25:07 +02:00
parent c73b976246
commit 88be34091a
2 changed files with 16 additions and 3 deletions

View File

@ -12,11 +12,13 @@ import (
"github.com/df-mc/goleveldb/leveldb/opt"
"github.com/google/subcommands"
"github.com/jinzhu/copier"
"github.com/sirupsen/logrus"
)
type MergeCMD struct {
worlds []string
legacy bool
log *logrus.Logger
}
func (*MergeCMD) Name() string { return "merge" }
@ -25,11 +27,14 @@ func (*MergeCMD) Synopsis() string { return "merge 2 or more worlds" }
func (c *MergeCMD) SetFlags(f *flag.FlagSet) {
f.BoolVar(&c.legacy, "legacy", false, "if the worlds are before 1.18")
}
func (c *MergeCMD) Usage() string {
return c.Name() + ": " + c.Synopsis() + "\n"
}
func (c *MergeCMD) Execute(ctx context.Context, f *flag.FlagSet, _ ...interface{}) subcommands.ExitStatus {
c.log = logrus.New()
if f.NArg() == 0 {
fmt.Println("you need to specify 1 or more worlds")
return 1
@ -37,7 +42,7 @@ func (c *MergeCMD) Execute(ctx context.Context, f *flag.FlagSet, _ ...interface{
c.worlds = f.Args()
out_name := c.worlds[0] + "-merged"
prov_out, err := mcdb.New(out_name, opt.DefaultCompression)
prov_out, err := mcdb.New(c.log, out_name, opt.DefaultCompression)
if err != nil {
fmt.Fprintf(os.Stderr, "failed to open output %s\n", err)
}
@ -80,7 +85,8 @@ func (c *MergeCMD) Execute(ctx context.Context, f *flag.FlagSet, _ ...interface{
}
func (c *MergeCMD) merge_worlds(prov_out *mcdb.Provider, folder string, first bool) error {
prov_in, err := mcdb.New(folder, opt.DefaultCompression)
log := logrus.New()
prov_in, err := mcdb.New(log, folder, opt.DefaultCompression)
if err != nil {
return err
}

View File

@ -27,6 +27,7 @@ import (
"github.com/sandertv/gophertunnel/minecraft/protocol"
"github.com/sandertv/gophertunnel/minecraft/protocol/packet"
"github.com/sandertv/gophertunnel/minecraft/resource"
"github.com/sirupsen/logrus"
_ "github.com/df-mc/dragonfly/server/block" // to load blocks
)
@ -56,6 +57,8 @@ type WorldState struct {
ClientConn *minecraft.Conn
ServerConn *minecraft.Conn
log *logrus.Logger
// ui
ui MapUI
}
@ -138,6 +141,7 @@ type WorldCMD struct {
server_address string
packs bool
enableVoid bool
log *logrus.Logger
}
func (*WorldCMD) Name() string { return "worlds" }
@ -154,6 +158,8 @@ func (c *WorldCMD) Usage() string {
}
func (c *WorldCMD) Execute(ctx context.Context, f *flag.FlagSet, _ ...interface{}) subcommands.ExitStatus {
c.log = logrus.New()
server_address, hostname, err := server_input(c.server_address)
if err != nil {
fmt.Fprintln(os.Stderr, err)
@ -312,7 +318,7 @@ func (w *WorldState) SaveAndReset() {
os.RemoveAll(folder)
os.MkdirAll(folder, 0o777)
provider, err := mcdb.New(folder, opt.DefaultCompression)
provider, err := mcdb.New(w.log, folder, opt.DefaultCompression)
if err != nil {
log.Fatal(err)
}
@ -454,6 +460,7 @@ func (c *WorldCMD) handleConn(ctx context.Context, l *minecraft.Listener, cc, sc
w.ClientConn = cc
w.ServerConn = sc
w.voidgen = c.enableVoid
w.log = c.log
if c.packs {
fmt.Println("reformatting packs")