44 lines
1.5 KiB
Lua
44 lines
1.5 KiB
Lua
require("net")
|
|
require("net.aft")
|
|
net:registerModule("version",{1,0,0}) -- allows communication of versions for modules
|
|
net.version.HOSTS={
|
|
["Lua"]=1,
|
|
["LuaJIT"]=1,
|
|
["Love2d"]=2, -- Yes love2d uses luaJIT, but the filesystem works a bit differently
|
|
["Corona"]=3,
|
|
}
|
|
net.version.OS={
|
|
["Windows"]=1,
|
|
["Unix"]=2,
|
|
["RPI"]=3,
|
|
}
|
|
--net.version.EOL="\60\69\110\100\45\79\102\45\70\105\108\101\45\84\114\97\110\115\102\101\114\62"
|
|
net.OnServerCreated:connect(function(s)
|
|
s.OnDataRecieved(function(self,data,CID_OR_HANDLE,IP_OR_HANDLE,PORT_OR_IP)
|
|
local cmd,arg1,arg2=data:match("!version! ")
|
|
end,"version")
|
|
s.OnClientConnected(function(self,CID_OR_HANDLE,IP_OR_HANDLE,PORT_OR_IP)
|
|
multi:newFunction(function(func) -- anom func, allows for fancy multitasking
|
|
multi:newFunction(function(self)
|
|
local range=self:newRange()
|
|
for i in range(1,#self.loadedModules) do
|
|
local mod=self.loadedModules[i]
|
|
self:send(IP_OR_HANDLE,"!version! CHECK "..mod.." NIL",PORT_OR_IP) -- sends command to client to return the version of the module
|
|
end
|
|
end)()
|
|
func=nil -- we dont want 1000s+ of these anom functions lying around
|
|
end)()-- lets call the function
|
|
self:send(IP_OR_HANDLE,"!version! HOST NIL NIL",PORT_OR_IP)
|
|
end)
|
|
end)
|
|
net.OnClientCreated:connect(function(c)
|
|
c.OnDataRecieved(function(self,data)
|
|
local cmd,module,arg1=data:match("!version! (%S+) (%S+) (%S+)")
|
|
if cmd=="CHECK" then
|
|
self:send("!version! VER "..self.loadedModules[module].." "..net.getModuleVersion(module))
|
|
elseif cmd=="UPDATE" then
|
|
--
|
|
end
|
|
end,"version")
|
|
end)
|