remove onstart handler thing in favor of the user doing that themselves

This commit is contained in:
adman
2026-03-20 22:10:40 +01:00
parent 33cec6ecc9
commit 254b75e76b
14 changed files with 110 additions and 343 deletions
+3 -8
View File
@@ -21,7 +21,7 @@ func (c *ConfigServer) Default(event event.Anything) (err error) {
return
}
func (c *ConfigServer) OnStart() (err error) {
func ServeConfig(c *proto.Conn) (err error) {
n, err := data.LoadRegistry(c.Version)
if err != nil {
return
@@ -64,7 +64,8 @@ func (c *ConfigServer) OnStart() (err error) {
return
}
err = c.Send(&v1_21_8.ConfigurationToClientPacketFinishConfiguration{})
return
cs := &ConfigServer{c}
return cs.Start()
}
func (c *ConfigServer) OnFinishConfiguration(_ *v1_21_8.ConfigurationToServerPacketFinishConfiguration) (err error) {
@@ -72,9 +73,3 @@ func (c *ConfigServer) OnFinishConfiguration(_ *v1_21_8.ConfigurationToServerPac
err = event.HandlerDoneErr{}
return
}
func ServeConfig(c *proto.Conn) (err error) {
cs := &ConfigServer{c}
err = cs.Start(cs)
return
}
+7 -13
View File
@@ -112,18 +112,6 @@ func (l *LoginServer) OnDefault(event event.Unhandled) (err error) {
return
}
func (l *LoginServer) OnStart() (err error) {
return
}
func (l *LoginServer) OnCycle(_ event.Tick) (err error) {
return
}
func (l *LoginServer) OnClose(_ event.Close) (err error) {
return
}
type LoginServerSetting func(*LoginServer)
func WithOtherAccount(a *api.Account) LoginServerSetting {
@@ -170,10 +158,16 @@ func WithCompatibleVersions(versions ...int32) LoginServerSetting {
func ServeLogin(c *proto.Conn, settings ...LoginServerSetting) (ret *LoginServer, err error) {
ret = &LoginServer{Conn: c}
ret.RegisterCritical(ret.OnDefault)
ret.RegisterUntilLatest(ret.OnHandshake)
ret.RegisterUntilLatest(ret.OnLoginStart)
ret.RegisterUntilLatest(ret.OnLoginAcknowledged)
ret.RegisterUntilLatest(ret.OnStatusRequest)
ret.RegisterUntilLatest(ret.OnStatusPing)
for _, s := range settings {
s(ret)
}
ret.CompressionThreshold = 256
err = ret.Start(ret)
err = ret.Start()
return
}
+4 -3
View File
@@ -5,7 +5,6 @@ import (
"log/slog"
"net"
"github.com/admin-else/strom/event"
"github.com/admin-else/strom/proto"
"github.com/admin-else/strom/proto_base"
"github.com/admin-else/strom/text"
@@ -23,7 +22,9 @@ func Servee(c net.Conn) (ret *proto.Conn) {
return
}
type Factory func(c *proto.Conn) (h event.Handler, err error)
type ConnAcceptor func(c net.Conn) (err error)
type Factory func(c *proto.Conn) (h ConnAcceptor, err error)
func ServeClient(cNet net.Conn, factory Factory) {
c := Servee(cNet)
@@ -32,7 +33,7 @@ func ServeClient(cNet net.Conn, factory Factory) {
if err != nil {
return
}
err = c.Start(h)
err = h(c)
if errors.Is(err, StatusServedErr) {
return
}
+3 -9
View File
@@ -48,14 +48,6 @@ type StatusServer struct {
Status string
}
func (p *StatusServer) OnStart() (err error) {
return
}
func (p *StatusServer) Default(_ any) (err error) {
return
}
func (p *StatusServer) OnStatusRequest(_ *v1_21_8.StatusToServerPacketPingStart) (err error) {
return p.Send(&v1_21_8.StatusToClientPacketServerInfo{Response: p.Status})
}
@@ -73,6 +65,8 @@ func ServeStatus(c *proto.Conn, s StatusResponse) (err error) {
Conn: c,
Status: string(status),
}
err = server.Start(server)
server.RegisterUntilLatest(server.OnStatusRequest)
server.RegisterUntilLatest(server.OnStatusPing)
err = server.Start()
return
}