From 5565301f11b6e5709ed2b40cf656971c35c12565 Mon Sep 17 00:00:00 2001 From: olebeck <31539311+olebeck@users.noreply.github.com> Date: Mon, 6 Mar 2023 17:55:36 +0100 Subject: [PATCH] fix accidental includes, some settings not showing --- .gitattributes | 2 +- build.py | 16 +++--- cmd/bedrocktool/main.go | 8 --- overlay.json | 5 -- subcommands/chat_log.go | 15 ------ subcommands/resourcepack-d.go | 49 +++++++++++++++++++ subcommands/resourcepack-d/resourcepack-d.go | Bin 0 -> 5403 bytes subcommands/resourcepack-stub.go | 36 ++++++++++++++ ui/gui/gui.go | 16 +++++- utils/realms.go | 9 ---- utils/resourcepack-ace.go | Bin 7032 -> 0 bytes utils/utils.go | 18 +++++++ 12 files changed, 125 insertions(+), 49 deletions(-) delete mode 100644 overlay.json create mode 100644 subcommands/resourcepack-d.go create mode 100644 subcommands/resourcepack-d/resourcepack-d.go create mode 100644 subcommands/resourcepack-stub.go delete mode 100644 utils/resourcepack-ace.go diff --git a/.gitattributes b/.gitattributes index 4754b74..c63c54e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1 @@ -utils/resourcepack-ace.go filter=git-crypt diff=git-crypt \ No newline at end of file +subcommands/resourcepack-d/resourcepack-d.go filter=git-crypt diff=git-crypt \ No newline at end of file diff --git a/build.py b/build.py index a09229d..fc70b05 100644 --- a/build.py +++ b/build.py @@ -12,8 +12,8 @@ VER = VER_RE.match(TAG).group(1) CI = not not os.getenv("GITLAB_CI") -with open("./utils/resourcepack-ace.go", "rb") as f: - PACK_SUPPORT = f.read(7) == b"package" +with open("./subcommands/resourcepack-d/resourcepack-d.go", "rb") as f: + PACK_SUPPORT = f.read(100).count(b"package ") > 0 print(f"Pack Support: {PACK_SUPPORT}") @@ -21,7 +21,7 @@ LDFLAGS = f"-s -w -X github.com/bedrock-tool/bedrocktool/utils.Version={TAG}" PLATFORMS = [ ("windows", ["386", "amd64"], ".exe"), - ("linux", ["386", "amd64", "arm", "arm64"], ""), + ("linux", ["386", "amd64", "arm64"], ""), #("darwin", ["amd64", "arm64"], ""), ("android", ["arm64"], ".apk") ] @@ -60,21 +60,19 @@ for (platform_name, archs, ext) in PLATFORMS: SUB1 = '-gui' if GUI else '' name = f"{NAME}{SUB1}" + tags = [] env = ["GOVCS=*:off"] - GOFLAGS = [] if not PACK_SUPPORT: - GOFLAGS.append("-overlay=overlay.json") + tags.append("nopacks") if GUI: - if len(GOFLAGS): - env.append(f"GOFLAGS={' '.join(GOFLAGS)}") args = [ "fyne-cross", platform_name, "-app-version", VER, "-arch", ",".join(archs), "-ldflags", LDFLAGS + f" -X github.com/bedrock-tool/bedrocktool/utils.CmdName=bedrocktool-gui", "-name", name, - "-tags", "gui", + "-tags", ",".join(["gui"] + tags), "-debug" ] for e in env: @@ -96,10 +94,10 @@ for (platform_name, archs, ext) in PLATFORMS: "go", "build", "-ldflags", LDFLAGS, "-trimpath", + "-tags", ",".join(tags), "-v", "-o", out_path, ] - args.extend(GOFLAGS) args.append("./cmd/bedrocktool") print(args) out = subprocess.run(args) diff --git a/cmd/bedrocktool/main.go b/cmd/bedrocktool/main.go index e064495..760b3d8 100644 --- a/cmd/bedrocktool/main.go +++ b/cmd/bedrocktool/main.go @@ -232,14 +232,6 @@ func (c *CreateCustomDataCMD) Execute(_ context.Context, f *flag.FlagSet, _ ...i return 0 } -func (c *TransCMD) MainWindow() error { - return nil -} - -func (c *CreateCustomDataCMD) MainWindow() error { - return nil -} - func init() { utils.RegisterCommand(&TransCMD{}) utils.RegisterCommand(&CreateCustomDataCMD{}) diff --git a/overlay.json b/overlay.json deleted file mode 100644 index c139207..0000000 --- a/overlay.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "Replace": { - "utils/resourcepack-ace.go": "utils/dummy" - } -} \ No newline at end of file diff --git a/subcommands/chat_log.go b/subcommands/chat_log.go index 65a8e4f..1a284e6 100644 --- a/subcommands/chat_log.go +++ b/subcommands/chat_log.go @@ -7,8 +7,6 @@ import ( "os" "time" - "fyne.io/fyne/v2/data/binding" - "fyne.io/fyne/v2/widget" "github.com/bedrock-tool/bedrocktool/locale" "github.com/bedrock-tool/bedrocktool/utils" @@ -30,19 +28,6 @@ func (c *ChatLogCMD) SetFlags(f *flag.FlagSet) { f.BoolVar(&c.Verbose, "v", false, "verbose") } -func (c *ChatLogCMD) SettingsUI() *widget.Form { - return widget.NewForm( - widget.NewFormItem( - "serverAddress", widget.NewEntryWithData(binding.BindString(&c.ServerAddress)), - ), widget.NewFormItem( - "", widget.NewCheckWithData("verbose", binding.BindBool(&c.Verbose)), - ), - ) -} -func (c *ChatLogCMD) MainWindow() error { - return nil -} - func (c *ChatLogCMD) Usage() string { return c.Name() + ": " + c.Synopsis() + "\n" + locale.Loc("server_address_help", nil) } diff --git a/subcommands/resourcepack-d.go b/subcommands/resourcepack-d.go new file mode 100644 index 0000000..8b3f00d --- /dev/null +++ b/subcommands/resourcepack-d.go @@ -0,0 +1,49 @@ +//go:build !nopacks + +package subcommands + +import ( + "context" + "flag" + + "github.com/bedrock-tool/bedrocktool/locale" + resourcepackd "github.com/bedrock-tool/bedrocktool/subcommands/resourcepack-d" + "github.com/bedrock-tool/bedrocktool/utils" + "github.com/google/subcommands" + "github.com/sirupsen/logrus" +) + +// decrypt using cfb with segmentsize = 1 + +type ResourcePackCMD struct { + ServerAddress string + SaveEncrypted bool + OnlyKeys bool +} + +func (*ResourcePackCMD) Name() string { return "packs" } +func (*ResourcePackCMD) Synopsis() string { return locale.Loc("pack_synopsis", nil) } + +func (c *ResourcePackCMD) SetFlags(f *flag.FlagSet) { + f.StringVar(&c.ServerAddress, "address", "", locale.Loc("remote_address", nil)) + f.BoolVar(&c.SaveEncrypted, "save-encrypted", false, locale.Loc("save_encrypted", nil)) + f.BoolVar(&c.OnlyKeys, "only-keys", false, locale.Loc("only_keys", nil)) +} + +func (c *ResourcePackCMD) Usage() string { + return c.Name() + ": " + c.Synopsis() + "\n" + locale.Loc("server_address_help", nil) +} + +func (c *ResourcePackCMD) Execute(ctx context.Context, f *flag.FlagSet, _ ...interface{}) subcommands.ExitStatus { + err := resourcepackd.Execute_cmd(ctx, c.ServerAddress, c.OnlyKeys, c.SaveEncrypted) + if err != nil { + logrus.Error(err) + return 1 + } + return 0 +} + +func init() { + utils.RegisterCommand(&ResourcePackCMD{}) + +} diff --git a/subcommands/resourcepack-d/resourcepack-d.go b/subcommands/resourcepack-d/resourcepack-d.go new file mode 100644 index 0000000000000000000000000000000000000000..674462cb7f3a4a3a417f2319d03f413228a2a1f8 GIT binary patch literal 5403 zcmV+$73AswM@dveQdv+`0Apy3J?Gu_3-Su%mh6QmV3iQiT{w}Mi+lF(GmesMFoTEN zY#1CoW!rIklw3*Xo(Yj~6Cs95&LqqQi6hoY2Zptg0v%1jo}=zFt^f(#LVwc@1k+++ z@7Yd3I=m{j50fADA-%uETCZo2iNIx4Fkk^0fV^Ly+ronXH~xDCy^XB+lj{<4O=;31e<D>qIxI_s0ELk__$q!YEy}yFtUe$| zV?U9F`N13Ug0@)B#rzC8$Xm3PrX}h?-#Mg z3486IkV58JC?sw}^YSw8(L*HAbjWER@G1uq0R_)XR&Wy(z`GK>QX-L6j(x5oHvuCGl;u|P*Am}{oc4*rTbg`9j z&#y|{qvQQ!Ca35lWS(5rj!bSV051kxh)vdsLYO6H(`FaW(=F#}^$QG}p02PkJ zSMkKUBn@L!O`ydF3bpV3N(qpAAupKt81mAD&_UiV5qs1=$bkmLeVNkG%EM|8&$-7q zlJsjcq3^lI|+Q}F-*RURmFPzDa{nYmt))|d@dwlU|e8swui(}F| zp#B9QB<10d)FK3xv`=UsKRIZ)&g@cPmEyq+fhqTM_?OGoG7SAJixZeZIoDv#-F^YITDMac4yVzAl}o%S8_?@D@Qp{B>c(k+UJ&bMa+3SNQwv{#Z9w6@V?C+A-wUTLWzHKt8Gkfo5k z5$_=iethPD7Dpp?I2YRAGZ@j6O%XVu|HYe~+~f%LW=F>uK?%SE3u)R?QWh%VtJWrb zLQrLNz=$nb5?iH2d86UXs)(0<5CbYAfbz2Swi55(ydps$!R%cTSet>j$t&d0VtdoVUEl$;QvN{-iSxt{|GpMV;&q^F3x2y9`oTXnG8|2?qKO%g#fuGDVCWv3n} zm&5kZ@nYxzB_YM3ioeZvn6=)Pd%3j$Cxl=vDp3`qT9fyZ3qTA0z7kK{z^IMK7ZyE^ zWFxpAbpc=L(+;5r=FFzw1>Bsjh)>vG#@iG5Cakql1%xx1lg;T9hv|qXIi;@d)-cOn zb+gBrFmDWoPp|H!u`Qs}k!^jeP`2cbCgph}$FT^9=G=SsPxr}|;rhI)9mtrL}Hy$Z9N#}=6LW5^T&Sbq?FN&o#riW(GRqN~{s;(6=SiDjVw-A>; z-=lKuTELzdr-6`yZ<9>ywA{K8fRa<4(pPb;$%TcU8nYky35;-*OVeSWM08`&iwVjP zQc~6nW#|XXyVm7Yg?jhMy?rHBMfe}utm`rXxNiH$dUoSW+58al^R8P;nY*I?&Fx9; z0;{;wE9;niB(D)?wo0+Ht<24~-_ftPb5P9F)v?dM4*PyOx93c=+!!;z&}VcJn$vI4 zwjSUhAIlK5*g~h|mMH7c>wY#!6S2>g%*c(Qn=>V@q&~}(y_?GSuDv%OAM1JB*$?mdizqPr*O`B zq!b40{2N6cNYlnlBvQ3$0$z)RUW}pU?@P!8X@fBz((LYEt?N?+$B6Z+p30I&2hY@nzIW`dVJ)^JNl3X$26Y841aOeg6Dm0AT^NRrulOww zo9VX(A!Y8YS;hDo%e|2)RGkbZ5s9Y zMqf!TK?bjC_;|ArRVRWDpcs!c)8@3L-PZK7RPup0+O?_GCLY^O2Ddrg65R03fJP?f z3jJb*lXq>h-}+50kYLuwQ6^Xg1$xj+nNbt}CN>4F&SkMd#AfySBt0SQ0s>oUI;{#= z4jys#4nX=h#c$4S4&{#BRhISuSUQK8z+8xr5lh+w?!d#M3SSi9kW{|EZ|=#I&(y^C z=USVjRM9l}B(W2b?j-_Hl2- zu1Sk+C{=173V4-JUV4YVp^2)o9`8~q2}MD0CU4LYSFh2;p=1{ox2Xsb?eF{Xt}9-Z4&*fRxONE^Z) zs2^Wg`WAcmmQCJ#Uor3y^3t=5ZPnOSx+a=LdxX!Pm2=h*4EYp%7$3602*k?BYiOHF zk-MvVVGn79wr415)8%lg;@pAj>&?^P;NDX&BM|~hw1#zZOhg{vK^y-qyq7-E%3Uxu zvbcBhyD&>0(r{2vJ)XmShJjML@q{~df03E47+K;X&h3Fx-IWqu*I>F9RcUC6UIw7^ z@+$U;59uMTYGX8MN`~Pe*tF-Ya-+Vi&3^7w*vEoDwDoSEM;J@^d zxn~Q<5hISM{b+$}jXkxil&*thvMjB+q#F&x;76mtLLFE|zTq5hC5~O(|u$>e$x|4ws?EyapBRC)yyXz?%0i|>zUb(;#Ne3cCN+D@(&QX5F zPxCCRm2((e(Z0M3>{o}@Y}Wn;2%{r?nw05x8aiZL0~ckE2b)f4443MQy?-?7kbC<> z82$?!Ve@~Aj`T&y$h!pei($}6AnEI(ctojmzfjCKiE_elLwP?qvQmU%mddi_-Y$=a zJ9Oj_nY=t^Y^L92ihc+gLqin<^uC1-J8Wu3*nRfez}##c>`BQ_xmCihQ1PqZI|8`} zb96tFqg2;OpooVZy5F;leGt>w7kdY%yEV#z8e`Q+Dec zKyi>&_(H$gMKgg}%;Ybq-$x^PmJ+H9w|hpiI~on=kdbQQKt(ZM3_RU(G9WcBZRQdo z`pT{1MmYzg5TJV>Ss3^)L?Gn0EW2g*jW_O_VYdMi7A>5S6>(b%DNw{In@a61fhQ6< zX@+=aS>L2HnPC7+`Jtxel5@fNU>)^Cgt+8F ziyDK{HE%VrpQ_)8a~~9Cnw^*Q7h8eR+Dwp!91R$o*FFflKaB{fN-8A2^ZEu0a!u$tDyvcrkOqKQ zY?O9UpB@uI%yZ%1%tWuW62?lwa_*|2t=CAtGux+}ykC)}f^sS$6&_wV{cz{O^?dAh zWtKSki>!s0qZbf-YFG+~l{~q4S0$;OeFNG~{G|NSY=*Z=L@$9K`3z#`GP-Zw`{fw0 zMc9LskWAQKL;?K@eMdjA?R)yJXGBy>%zXCQdk^vq|7I`sH*nE_!4Iagu1@EU09<%3 z%?=x9wI8#7_RyYXc%^wC)ulAQgNNVOy~q)y$^XAz)7taC3<0UKjb+|IFqvx9Y4F(c zSRB_w^BE$<)H&Vt#~a_H0zC`m#L+Pz?YRICP8j`mRp(YtUhXL{)n)CO*j9^#5=z&F zS^mHt1BbIE+b|e8WbsKVSJG_xeJ%QIwwV;OE2J%ac95 zDsQ#;Tq#A%O^8G8O*y$JjUZvdx?V3O!M8wT!*1t#BZ8#+Nq%OoUxtD9e!jo}j>HYz zEX%IcP>al}n!hL5!esuU^56yXW<|jJvzdgh9TO?XG;vKKjWP68+rXgMYE7$-%$%E; zZs6{go2k!E5SgDCj@YV9fB~}bYg&?w9+M9y8gOD~bk_gCgZNGqpI~?44Q%fH;JUNI zKXf?1;xOjvbfta>IP!_*_!LXxb1>d1_OuKh*~ z*P~Diufp03o|p{`(P;7>a@1ufvZQxjxc_$GIPW|N@X)Gckc2eIl3`rI=jyaHS|L%R zUd^%0ru}jDw()(m$xzr1g9ORqV7lgd&i8sy+yQX$6+$;oUxUn)+*n)T2KqNV#K*GI F)`=5=jIRIy literal 0 HcmV?d00001 diff --git a/subcommands/resourcepack-stub.go b/subcommands/resourcepack-stub.go new file mode 100644 index 0000000..893b6a8 --- /dev/null +++ b/subcommands/resourcepack-stub.go @@ -0,0 +1,36 @@ +//go:build nopacks + +package subcommands + +import ( + "context" + "flag" + + "github.com/bedrock-tool/bedrocktool/utils" + "github.com/google/subcommands" + "github.com/sirupsen/logrus" +) + +type ResourcePackCMD struct { + ServerAddress string + SaveEncrypted bool + OnlyKeys bool +} + +func (*ResourcePackCMD) Name() string { return "packs" } +func (*ResourcePackCMD) Synopsis() string { return "NOT COMPILED" } + +func (c *ResourcePackCMD) SetFlags(f *flag.FlagSet) {} + +func (c *ResourcePackCMD) Usage() string { + return c.Name() + ": " + c.Synopsis() +} + +func (c *ResourcePackCMD) Execute(ctx context.Context, f *flag.FlagSet, _ ...interface{}) subcommands.ExitStatus { + logrus.Error("not compiled") + return 1 +} + +func init() { + utils.RegisterCommand(&ResourcePackCMD{}) +} diff --git a/ui/gui/gui.go b/ui/gui/gui.go index 1937569..6dc3ad2 100644 --- a/ui/gui/gui.go +++ b/ui/gui/gui.go @@ -1,4 +1,4 @@ -//go:build gui || android +//go:build gui || android || true package gui @@ -16,7 +16,7 @@ import ( ) var settings = map[string]func(utils.Command) *widget.Form{ - "world": func(cc utils.Command) *widget.Form { + "worlds": func(cc utils.Command) *widget.Form { c := cc.(*world.WorldCMD) return widget.NewForm( widget.NewFormItem( @@ -71,6 +71,18 @@ var settings = map[string]func(utils.Command) *widget.Form{ ), ) }, + "packs": func(cc utils.Command) *widget.Form { + c := cc.(*subcommands.ResourcePackCMD) + return widget.NewForm( + widget.NewFormItem( + "serverAddress", widget.NewEntryWithData(binding.BindString(&c.ServerAddress)), + ), widget.NewFormItem( + "", widget.NewCheckWithData("saveEncrypted", binding.BindBool(&c.SaveEncrypted)), + ), widget.NewFormItem( + "", widget.NewCheckWithData("only-keys", binding.BindBool(&c.OnlyKeys)), + ), + ) + }, } type GUI struct { diff --git a/utils/realms.go b/utils/realms.go index 7deb883..6021899 100644 --- a/utils/realms.go +++ b/utils/realms.go @@ -6,7 +6,6 @@ import ( "fmt" "strings" - "fyne.io/fyne/v2/widget" "github.com/bedrock-tool/bedrocktool/locale" "github.com/google/subcommands" "github.com/sirupsen/logrus" @@ -40,14 +39,6 @@ func (*RealmListCMD) Synopsis() string { return locale.Loc("list_realms_synopsis func (c *RealmListCMD) SetFlags(f *flag.FlagSet) {} -func (c *RealmListCMD) SettingsUI() *widget.Form { - return nil -} - -func (c *RealmListCMD) MainWindow() error { - return nil -} - func (c *RealmListCMD) Usage() string { return c.Name() + ": " + c.Synopsis() + "\n" } diff --git a/utils/resourcepack-ace.go b/utils/resourcepack-ace.go deleted file mode 100644 index 9960ac9e0abc84431c1ecbab23a7625aa42c10a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7032 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 WP*<-BSR^~$?tl}S2M6ZZ6RG+{Kbq_S diff --git a/utils/utils.go b/utils/utils.go index 0574d97..e32aac1 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -4,6 +4,7 @@ package utils import ( "bytes" "context" + "crypto/aes" "crypto/sha256" "encoding/json" "errors" @@ -177,3 +178,20 @@ func WriteManifest(manifest *resource.Manifest, fpath string) error { } return nil } + +func CfbDecrypt(data []byte, key []byte) ([]byte, error) { + cipher, err := aes.NewCipher([]byte(key)) + if err != nil { + return nil, err + } + + shiftRegister := append(key[:16], data...) + iv := make([]byte, 16) + off := 0 + for ; off < len(data); off += 1 { + cipher.Encrypt(iv, shiftRegister) + data[off] ^= iv[0] + shiftRegister = shiftRegister[1:] + } + return data, nil +}