2 Commits
3 changed files with 23 additions and 2 deletions
+16 -1
View File
@@ -1,6 +1,7 @@
package main package main
import ( import (
"debug/buildinfo"
"errors" "errors"
"fmt" "fmt"
"log/slog" "log/slog"
@@ -18,12 +19,26 @@ import (
var ExpectedASubcommandErr = errors.New("expected a subcommand") var ExpectedASubcommandErr = errors.New("expected a subcommand")
var UnknownSubcommandErr = errors.New("unknown subcommand try 'strom help' for a list of subcommands") var UnknownSubcommandErr = errors.New("unknown subcommand try 'strom help' for a list of subcommands")
func Version(args []string) (err error) {
selfPath, err := os.Executable()
if err != nil {
return
}
info, err := buildinfo.ReadFile(selfPath)
if err != nil {
return
}
fmt.Println("strom cli ", info.Main.Version, " (", info.Main.Sum, ")")
return
}
var subcommands = map[string]func(args []string) error{ var subcommands = map[string]func(args []string) error{
"offline-uuid": offline_uuid.Run, "offline-uuid": offline_uuid.Run,
"print-nbt": print_nbt.Run, "print-nbt": print_nbt.Run,
"status": status.Run, "status": status.Run,
"packet-spy": packet_inspector.Run, "packet-spy": packet_inspector.Run,
"api": api.Run, "api": api.Run,
"version": Version,
} }
func Help(args []string) (err error) { func Help(args []string) (err error) {
@@ -39,7 +54,7 @@ func mainE() (err error) {
// Debug stuff // Debug stuff
slog.SetLogLoggerLevel(slog.LevelDebug) slog.SetLogLoggerLevel(slog.LevelDebug)
//args = []string{"TEST", "packet-spy"} //args = []string{"TEST", "version"}
if len(args) < 2 { if len(args) < 2 {
err = ExpectedASubcommandErr err = ExpectedASubcommandErr
+1 -1
View File
@@ -102,7 +102,7 @@ func Run(args []string) (err error) {
return return
} }
} }
_, err = server.ServeLogin(serveeConn, server.WithOtherAccount(acc), server.WithStatus(StatusResponse)) _, err = server.ServeLogin(serveeConn, server.WithOtherAccount(acc), server.WithStatus(StatusResponse), server.WithoutOnlineMode())
if err != nil { if err != nil {
return return
} }
+6
View File
@@ -235,6 +235,12 @@ func WithCompatibleVersions(versions ...int32) LoginServerSetting {
} }
} }
func WithoutOnlineMode() LoginServerSetting {
return func(s *LoginServer) {
s.OnlineMode = false
}
}
func ServeLogin(c *proto.Conn, settings ...LoginServerSetting) (ret *LoginServer, err error) { func ServeLogin(c *proto.Conn, settings ...LoginServerSetting) (ret *LoginServer, err error) {
ret = &LoginServer{Conn: c} ret = &LoginServer{Conn: c}
ret.OnlineMode = true ret.OnlineMode = true