Compare commits
2 Commits
a58d2323e0
...
2bd8370170
Author | SHA1 | Date |
---|---|---|
Hri7566 | 2bd8370170 | |
Hri7566 | 1cdf7e2a28 |
21
client.go
21
client.go
|
@ -1,4 +1,4 @@
|
|||
package mppclient
|
||||
package mppclientgo
|
||||
|
||||
import (
|
||||
"log"
|
||||
|
@ -9,7 +9,8 @@ import (
|
|||
)
|
||||
|
||||
type Client struct {
|
||||
Ws *websocket.Conn
|
||||
Ws *websocket.Conn
|
||||
started bool
|
||||
|
||||
Uri string
|
||||
Token string
|
||||
|
@ -84,15 +85,29 @@ func (c *Client) IsConnecting() bool {
|
|||
}
|
||||
|
||||
func (c *Client) Start() {
|
||||
// TODO
|
||||
if c.started {
|
||||
return
|
||||
}
|
||||
|
||||
c.started = true
|
||||
c.connect()
|
||||
}
|
||||
|
||||
func (c *Client) Stop() {
|
||||
if !c.started {
|
||||
return
|
||||
}
|
||||
|
||||
c.started = false
|
||||
c.Ws.Close()
|
||||
}
|
||||
|
||||
func (c *Client) connect() {
|
||||
// TODO
|
||||
|
||||
if c.Ws == nil {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
func (c *Client) bindEventListners() {
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
package events
|
||||
|
||||
type EventCallback func(args ...any)
|
||||
|
||||
type Event struct {
|
||||
Evtn string
|
||||
Callback EventCallback
|
||||
Once bool
|
||||
}
|
||||
|
||||
type EventEmitter struct {
|
||||
Events map[string][]Event
|
||||
}
|
||||
|
||||
func NewEventEmitter() EventEmitter {
|
||||
return EventEmitter{
|
||||
Events: map[string][]Event{},
|
||||
}
|
||||
}
|
||||
|
||||
func (evt *EventEmitter) On(evtn string, callback EventCallback) {
|
||||
if evt.Events[evtn] == nil {
|
||||
evt.Events[evtn] = []Event{}
|
||||
}
|
||||
|
||||
evt.Events[evtn] = append(evt.Events[evtn], Event{
|
||||
Evtn: evtn,
|
||||
Callback: callback,
|
||||
Once: false,
|
||||
})
|
||||
}
|
||||
|
||||
func (evt *EventEmitter) Emit(evtn string, args ...any) {
|
||||
if evt.Events[evtn] == nil {
|
||||
return
|
||||
}
|
||||
|
||||
for _, e := range evt.Events[evtn] {
|
||||
if e.Callback != nil {
|
||||
e.Callback(args...)
|
||||
}
|
||||
}
|
||||
}
|
|
@ -13,8 +13,8 @@ type MppTimeMessage struct {
|
|||
|
||||
type HiMppMessage struct {
|
||||
MppTimeMessage
|
||||
User MppUser `json:"u"`
|
||||
Motd string `json:"motd"`
|
||||
User User `json:"u"`
|
||||
Motd string `json:"motd"`
|
||||
}
|
||||
|
||||
type NoteQuotaMppMessage struct {
|
||||
|
@ -26,8 +26,8 @@ type NoteQuotaMppMessage struct {
|
|||
|
||||
type ChatMppMessage struct {
|
||||
MppTimeMessage
|
||||
Message string `json:"a"`
|
||||
Part MppParticipant `json:"p"`
|
||||
Message string `json:"a"`
|
||||
Part Participant `json:"p"`
|
||||
}
|
||||
|
||||
type TimeMppMessage struct {
|
||||
|
@ -37,6 +37,6 @@ type TimeMppMessage struct {
|
|||
|
||||
type ChannelMppMessage struct {
|
||||
MppMessage
|
||||
Channel MppChannel `json:"ch"`
|
||||
Participants []MppParticipant `json:"ppl"`
|
||||
Channel Channel `json:"ch"`
|
||||
Participants []Participant `json:"ppl"`
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package mppclient
|
||||
package mppclientgo
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
@ -11,10 +11,10 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/Hri7566/mpp-client-go/events"
|
||||
"github.com/Hri7566/mpp-client-go/mpp"
|
||||
|
||||
"github.com/gorilla/websocket"
|
||||
"github.com/joho/godotenv"
|
||||
v8 "rogchap.com/v8go"
|
||||
)
|
||||
|
||||
|
@ -24,20 +24,32 @@ var token string
|
|||
var ctx *v8.Context
|
||||
|
||||
func main() {
|
||||
ctx = v8.NewContext()
|
||||
evt := events.NewEventEmitter()
|
||||
|
||||
helpCommands = commands
|
||||
flag.Parse()
|
||||
log.SetFlags(0)
|
||||
|
||||
err := godotenv.Load()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
log := func(args ...any) {
|
||||
fmt.Println(args[0])
|
||||
}
|
||||
|
||||
token = os.Getenv("MPPNET_TOKEN")
|
||||
evt.On("log", log)
|
||||
|
||||
StartSocket(addr)
|
||||
evt.Emit("log", "hello, world")
|
||||
|
||||
/*
|
||||
ctx = v8.NewContext()
|
||||
|
||||
helpCommands = commands
|
||||
flag.Parse()
|
||||
log.SetFlags(0)
|
||||
|
||||
err := godotenv.Load()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
token = os.Getenv("MPPNET_TOKEN")
|
||||
|
||||
StartSocket(addr)
|
||||
*/
|
||||
}
|
||||
|
||||
func StartSocket(address *string) {
|
||||
|
|
Loading…
Reference in New Issue