early rapid development
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
package modules
|
||||
|
||||
import (
|
||||
"strom"
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/admin-else/strom"
|
||||
|
||||
"github.com/admin-else/queser"
|
||||
"github.com/admin-else/queser/generated/v1_21_8"
|
||||
@@ -12,6 +15,7 @@ type ConfigIgnorer struct {
|
||||
}
|
||||
|
||||
func (c *ConfigIgnorer) Default(event any) (err error) {
|
||||
fmt.Printf("%#v\n", event)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -29,6 +33,20 @@ func (c *ConfigIgnorer) OnFinish(packet v1_21_8.ConfigurationToClientPacketFinis
|
||||
return
|
||||
}
|
||||
|
||||
func (c *ConfigIgnorer) OnPing(packet v1_21_8.ConfigurationToClientPacketPing) (err error) {
|
||||
err = c.Send(v1_21_8.ConfigurationToServerPacketPong(packet))
|
||||
return
|
||||
}
|
||||
|
||||
func (c *ConfigIgnorer) OnKeepAlive(packet v1_21_8.ConfigurationToClientPacketKeepAlive) (err error) {
|
||||
err = c.Send(v1_21_8.ConfigurationToServerPacketKeepAlive(packet))
|
||||
return
|
||||
}
|
||||
|
||||
func IgnoreConfig(c *strom.Conn) (err error) {
|
||||
return c.Start(&ConfigIgnorer{c})
|
||||
err = c.Start(&ConfigIgnorer{c})
|
||||
if err != nil {
|
||||
err = errors.Join(err, errors.New("failed to ignore config"))
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
+15
-5
@@ -8,10 +8,13 @@ import (
|
||||
"crypto/sha1"
|
||||
"crypto/x509"
|
||||
"encoding/hex"
|
||||
"errors"
|
||||
"fmt"
|
||||
"net"
|
||||
"strconv"
|
||||
"strings"
|
||||
"strom"
|
||||
|
||||
"github.com/admin-else/strom"
|
||||
|
||||
"github.com/admin-else/queser"
|
||||
"github.com/admin-else/queser/data"
|
||||
@@ -35,18 +38,21 @@ func (s *LoginClient) OnCycle(_ strom.OnLoopCycle) (err error) {
|
||||
}
|
||||
|
||||
func (s *LoginClient) OnStart(_ strom.OnStart) (err error) {
|
||||
parts := strings.Split(s.RemoteAddr().String(), ":")
|
||||
host, portStr, err := net.SplitHostPort(s.RemoteAddr().String())
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
versionData, err := data.LookUpProtocolVersionByName(s.Version)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
port, err := strconv.Atoi(parts[1])
|
||||
port, err := strconv.Atoi(portStr)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
err = s.Send(v1_21_8.HandshakingToServerPacketSetProtocol{
|
||||
ProtocolVersion: queser.VarInt(versionData.Version),
|
||||
ServerHost: parts[0],
|
||||
ServerHost: host,
|
||||
ServerPort: uint16(port),
|
||||
NextState: queser.VarInt(queser.Login),
|
||||
})
|
||||
@@ -164,8 +170,12 @@ func (s *LoginClient) OnSuccess(success v1_21_8.LoginToClientPacketSuccess) (err
|
||||
}
|
||||
|
||||
func Login(c *strom.Conn, account strom.Account) (err error) {
|
||||
return c.Start(&LoginClient{
|
||||
err = c.Start(&LoginClient{
|
||||
Conn: c,
|
||||
Account: account,
|
||||
})
|
||||
if err != nil {
|
||||
err = errors.Join(err, errors.New("failed to login"))
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
+2
-1
@@ -4,7 +4,8 @@ import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
"strom"
|
||||
|
||||
"github.com/admin-else/strom"
|
||||
|
||||
"github.com/admin-else/queser"
|
||||
"github.com/admin-else/queser/data"
|
||||
|
||||
+16
-2
@@ -13,13 +13,13 @@ type OnceTask struct {
|
||||
Trigger time.Time
|
||||
}
|
||||
|
||||
type Ticker struct {
|
||||
type Timer struct {
|
||||
Once []OnceTask
|
||||
Interval []IntervalTask
|
||||
Active bool
|
||||
}
|
||||
|
||||
func (t *Ticker) Tick() (err error) {
|
||||
func (t *Timer) Tick() (err error) {
|
||||
if !t.Active {
|
||||
return
|
||||
}
|
||||
@@ -47,3 +47,17 @@ func (t *Ticker) Tick() (err error) {
|
||||
t.Once = triggerLater
|
||||
return
|
||||
}
|
||||
|
||||
func (t *Timer) Every(interval time.Duration, f func() error) {
|
||||
t.Interval = append(t.Interval, IntervalTask{
|
||||
F: f,
|
||||
Interval: interval,
|
||||
})
|
||||
}
|
||||
|
||||
func (t *Timer) In(interval time.Duration, f func() error) {
|
||||
t.Once = append(t.Once, OnceTask{
|
||||
F: f,
|
||||
Trigger: time.Now().Add(interval),
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user