]> git.lizzy.rs Git - hydra-dragonfire.git/blobdiff - hydra.go
Expose supported serialize and proto versions to Lua
[hydra-dragonfire.git] / hydra.go
index 5deb1d4a2e4c10118316cc4821e9f26ce15f74bf..3bc74142505f96249bdc611eef3afc930253f2cb 100644 (file)
--- a/hydra.go
+++ b/hydra.go
@@ -2,7 +2,7 @@ package main
 
 import (
        _ "embed"
-       "github.com/dragonfireclient/hydra-dragonfire/tolua"
+       "github.com/dragonfireclient/hydra-dragonfire/convert"
        "github.com/yuin/gopher-lua"
        "os"
        "os/signal"
@@ -13,6 +13,9 @@ import (
 var lastTime = time.Now()
 var canceled = false
 
+var serializeVer uint8 = 28
+var protoVer uint16 = 39
+
 //go:embed builtin/luax/init.lua
 var builtinLuaX string
 
@@ -22,10 +25,14 @@ var builtinVector string
 //go:embed builtin/escapes.lua
 var builtinEscapes string
 
+//go:embed builtin/client.lua
+var builtinClient string
+
 var builtinFiles = []string{
        builtinLuaX,
        builtinVector,
        builtinEscapes,
+       builtinClient,
 }
 
 var hydraFuncs = map[string]lua.LGFunction{
@@ -59,7 +66,7 @@ func l_poll(l *lua.LState) int {
        } else {
                l.Push(client.userdata)
        }
-       l.Push(tolua.Pkt(l, pkt))
+       l.Push(convert.PushPkt(l, pkt))
        l.Push(lua.LBool(timeout))
        return 3
 }
@@ -93,6 +100,8 @@ func main() {
 
        hydra := l.SetFuncs(l.NewTable(), hydraFuncs)
        l.SetField(hydra, "BS", lua.LNumber(10.0))
+       l.SetField(hydra, "serialize_ver", lua.LNumber(serializeVer))
+       l.SetField(hydra, "proto_ver", lua.LNumber(protoVer))
        l.SetGlobal("hydra", hydra)
 
        l.SetField(l.NewTypeMetatable("hydra.auth"), "__index", l.SetFuncs(l.NewTable(), authFuncs))