]> git.lizzy.rs Git - hydra-dragonfire.git/blobdiff - pkts.go
Allow multiple clients to share a map
[hydra-dragonfire.git] / pkts.go
diff --git a/pkts.go b/pkts.go
deleted file mode 100644 (file)
index e34f3b8..0000000
--- a/pkts.go
+++ /dev/null
@@ -1,99 +0,0 @@
-package main
-
-import (
-       "github.com/anon55555/mt"
-       "github.com/dragonfireclient/hydra-dragonfire/convert"
-       "github.com/yuin/gopher-lua"
-       "sync"
-)
-
-type Pkts struct {
-       client     *Client
-       mu         sync.Mutex
-       wildcard   bool
-       subscribed map[string]struct{}
-       userdata   *lua.LUserData
-}
-
-var pktsFuncs = map[string]lua.LGFunction{
-       "subscribe":   l_pkts_subscribe,
-       "unsubscribe": l_pkts_unsubscribe,
-       "wildcard":    l_pkts_wildcard,
-}
-
-type EventPkt struct {
-       pktType string
-       pktData *mt.Pkt
-}
-
-func (evt EventPkt) handle(l *lua.LState, val lua.LValue) {
-       l.SetField(val, "type", lua.LString("pkt"))
-       l.SetField(val, "pkt_type", lua.LString(evt.pktType))
-       l.SetField(val, "pkt_data", convert.PushPkt(l, evt.pktData))
-}
-
-func getPkts(l *lua.LState) *Pkts {
-       return l.CheckUserData(1).Value.(*Pkts)
-}
-
-func (pkts *Pkts) create(client *Client, l *lua.LState) {
-       pkts.client = client
-       pkts.wildcard = false
-       pkts.subscribed = map[string]struct{}{}
-       pkts.userdata = l.NewUserData()
-       pkts.userdata.Value = pkts
-       l.SetMetatable(pkts.userdata, l.GetTypeMetatable("hydra.pkts"))
-}
-
-func (pkts *Pkts) push() lua.LValue {
-       return pkts.userdata
-}
-
-func (pkts *Pkts) connect() {
-}
-
-func (pkts *Pkts) process(pkt *mt.Pkt) {
-       pktType := string(convert.PushPktType(pkt))
-
-       pkts.mu.Lock()
-       _, subscribed := pkts.subscribed[pktType]
-       pkts.mu.Unlock()
-
-       if subscribed || pkts.wildcard {
-               pkts.client.queue <- EventPkt{pktType: pktType, pktData: pkt}
-       }
-}
-
-func l_pkts_subscribe(l *lua.LState) int {
-       pkts := getPkts(l)
-       n := l.GetTop()
-
-       pkts.mu.Lock()
-       defer pkts.mu.Unlock()
-
-       for i := 2; i <= n; i++ {
-               pkts.subscribed[l.CheckString(i)] = struct{}{}
-       }
-
-       return 0
-}
-
-func l_pkts_unsubscribe(l *lua.LState) int {
-       pkts := getPkts(l)
-       n := l.GetTop()
-
-       pkts.mu.Lock()
-       defer pkts.mu.Unlock()
-
-       for i := 2; i <= n; i++ {
-               delete(pkts.subscribed, l.CheckString(i))
-       }
-
-       return 0
-}
-
-func l_pkts_wildcard(l *lua.LState) int {
-       pkts := getPkts(l)
-       pkts.wildcard = l.ToBool(2)
-       return 0
-}