remove onstart handler thing in favor of the user doing that themselves
This commit is contained in:
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user