Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- Minecraft Intranet
- Mainframe device
- --]]
- mcnet = mcnet or {}
- local device = mcnet.device or {}
- mcnet.device = device
- -- Load dependencies
- program.load("server", "forwarder")
- local Mainframe = common.newClass(
- device.Server, device.Forwarder,
- {
- -- Device
- deviceType = "mainframe",
- -- Server
- registerServantMessage = "registerRouter",
- registeredServantMessage = "registeredRouter",
- -- Mainframe
- servantType = "router",
- domain = "mainframe"
- }
- )
- device.Mainframe = Mainframe
- -- Constructor
- function Mainframe:init()
- device.Server.init(self)
- device.Forwarder.init(self)
- -- Address
- self.address = mcnet.address.new{
- localPart = self.deviceType,
- domainPart = self.domain
- }
- end
- function Mainframe:checkAddress(address)
- return address.domainPart == self.domain
- end
- function Mainframe:checkServant(deviceType, deviceAddress)
- return deviceType == self.servantType
- end
- function Mainframe:getServantName(servantAddress)
- return servantAddress.domainPart
- end
- function Mainframe:getReceivers(senderId, msg)
- -- Send to router by domain
- local receiverId = self.servants:get(msg.to.domainPart)
- return {receiverId}
- end
- function Mainframe:canForward(senderId, msg)
- if (not device.Forwarder.canForward(self, senderId, msg)) then
- return false
- end
- -- Ignore servant messages
- if (msg.type == self.registerServantMessage or msg.type == self.registeredServantMessage) then
- return false
- end
- return true
- end
Advertisement
Add Comment
Please, Sign In to add comment