Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- Minecraft Intranet
- Server device
- --]]
- mcnet = mcnet or {}
- local device = mcnet.device or {}
- mcnet.device = device
- local Server = common.newClass(device.Device, {
- registerServantMessage = nil,
- registeredServantMessage = nil,
- servants = nil
- })
- device.Server = Server
- -- Constructor
- function Server:init()
- device.Device.init(self)
- self.servants = mcnet.names.new()
- self:addMessageHandler{
- [self.registerServantMessage] = self.handleRegisterServant,
- deviceOff = self.handleUnregisterServant
- }
- end
- -- Check if the given device is a servant
- function Server:checkServant(deviceType, deviceAddress)
- return true
- end
- -- Get the name of the given servant
- function Server:getServantName(servantAddress)
- return ""
- end
- function Server:handleRegisterServant(senderId, msg)
- -- Register servant
- local servantName = self:getServantName(msg.from)
- self.servants:register(servantName, senderId)
- self:trigger("registeredServant", senderId, servantName)
- -- Reply
- self:send(senderId, mcnet.message.new{
- to = msg.from,
- type = self.registeredServantMessage
- })
- return true
- end
- function Server:handleUnregisterServant(senderId, msg)
- if (self:checkServant(msg.device, msg.from)) then
- -- Unregister servant
- local servantName = self.servants:getName(senderId)
- if (servantName ~= nil) then
- self.servants:unregister(servantName)
- self:trigger("unregisteredServant", senderId, servantName)
- end
- return true
- end
- return false
- end
Advertisement
Add Comment
Please, Sign In to add comment