Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- Minecraft Intranet
- Servant device
- --]]
- mcnet = mcnet or {}
- local device = mcnet.device or {}
- mcnet.device = device
- local Servant = common.newClass(device.Device, {
- registerServerMessage = nil,
- registeredServerMessage = nil,
- serverId = nil
- })
- device.Servant = Servant
- -- Constructor
- function Servant:init()
- device.Device.init(self)
- self:addMessageHandler{
- [self.registeredServerMessage] = self.handleRegisteredServer,
- deviceOn = self.handleRegisterServer,
- deviceDetect = self.handleRegisterServer,
- deviceOff = self.handleUnregisterServer
- }
- end
- -- Check if this servant is connected to a server
- function Servant:isConnected()
- return self.serverId ~= nil
- end
- -- Check if the given device is a server
- function Servant:checkServer(deviceType, deviceAddress)
- return true
- end
- function Servant:handleRegisteredServer(senderId, msg)
- if (self:checkAddress(msg.to)) then
- -- Registered
- self.serverId = senderId
- self.address = msg.to
- self:trigger("registeredServer")
- return true
- end
- return false
- end
- function Servant:handleRegisterServer(senderId, msg)
- if (self:checkServer(msg.device, msg.from)) then
- -- Register
- self:trigger("registerServer", senderId)
- self:send(senderId, mcnet.message.new{
- type = self.registerServerMessage
- })
- return true
- end
- return false
- end
- function Servant:handleUnregisterServer(senderId, msg)
- if (self.serverId == senderId) then
- -- Unregister
- self:trigger("unregisteredServer", self.serverId)
- self.serverId = nil
- return true
- end
- return false
- end
Advertisement
Add Comment
Please, Sign In to add comment