This commit is contained in:
Tnze
2021-06-20 13:02:02 +08:00
parent 47ebfc3c27
commit 53f9414707

View File

@ -150,22 +150,25 @@ func (c *Client) join(d *net.Dialer, addr string) error {
if err := p.Scan(&msgid, &channel, &data); err != nil { if err := p.Scan(&msgid, &channel, &data); err != nil {
return LoginErr{"Login Plugin", err} return LoginErr{"Login Plugin", err}
} }
if handler, ok := c.LoginPlugin[string(channel)]; ok {
respdata, err := handler([]byte(data)) handler, ok := c.LoginPlugin[string(channel)]
if ok {
data, err = handler(data)
if err != nil { if err != nil {
return LoginErr{"Login Plugin", err} return LoginErr{"Login Plugin", err}
} }
if err := c.Conn.WritePacket(pk.Marshal(packetid.LoginPluginResponse, msgid, pk.Boolean(true), pk.ByteArray(respdata))); err != nil {
return LoginErr{"login Plugin", err}
} }
} else {
if err := c.Conn.WritePacket(pk.Marshal(packetid.LoginPluginResponse, msgid, pk.Boolean(false))); err != nil { if err := c.Conn.WritePacket(pk.Marshal(
packetid.LoginPluginResponse,
msgid, pk.Boolean(ok),
pk.Opt{Has: ok, Field: data},
)); err != nil {
return LoginErr{"login Plugin", err} return LoginErr{"login Plugin", err}
} }
} }
} }
} }
}
type LoginErr struct { type LoginErr struct {
Stage string Stage string