Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- link = {}
- local links = {}
- local plinks = {}
- local rlinks = {}
- function link.help(topic)
- if topic == "request" then
- print("request(server, channel)")
- elseif topic == "accept" then
- print("accept(server, channel)")
- elseif topic == "break" then
- print("break()")
- else
- print("Commands: request, accept, stop. use help(\"command\") for ")
- end
- end
- function link.request(server_, channel)
- -- server, event, from, to, initiator
- server.sendEvent(server_, "linkr", target, channel, sender)
- plinks[target] = {server = server_, to = channel}
- print("Waiting for Other end to confirm...")
- end
- function link.accept(server_, channel_)
- local rl = rlinks[target]
- if rl and rl.server == server_ and rl.to == channel_ then
- server.sendEvent(server_, "linkc", target, channel_, sender)
- links[target] = rl
- rlinks[target] = nil
- print("Link etablished, run link.stop() to break it")
- end
- end
- function link.stop()
- local l = links[target]
- server.sendEvent(l.server, "breaklink", target, l.to, sender)
- links[target] = nil
- end
- function link.stats()
- local l = links[target]
- local pl = plinks[target]
- local rl = rlinks[target]
- if l then
- print("Currently linked to "..l.to.." on "..l.server)
- elseif pl then
- print("There is an outgoin unaccepted link request to "..pl.to.." on "..pl.server)
- elseif rl then
- print("There is an incoming unaccepted link request from "..rl.to.." on "..rl.server)
- else
- print("This channel is not linked currently")
- end
- end
- server.event.addListener("linkr", function(server_, from, to, who)
- if rlinks[to] then
- error("Target Channel already linked", 2)
- else
- rlinks[to] = {to = from, server = server_}
- printChan(to, "*** "..who.." on "..server_.." requested a link to "..from)
- end
- end)
- server.event.addListener("linkc", function(server_, to, from, who)
- print("Confirmed")
- links[from] = plinks[from]
- printChan(from, who.." confirmed the link with "..to.."@"..server_..". To stop it run link.stop()")
- end)
- server.event.addListener("breaklink", function(server_, to, from, who)
- links[from] = nil
- printChan(from, who.." broke the link to "..to.."@"..server_)
- end)
- server.event.addListener("linkmsg", function(server_, from, to, message)
- local l = links[to]
- if l and l.server == server_ and l.to == from then
- printChan(to, "[LINK] "..message)
- end
- end)
- event.addListener("chan_message", function(e)
- local l = links[e.channel]
- if l then
- server.sendEvent(l.server, "linkmsg", e.channel, l.to, "<"..e.prefix..e.sender.."> "..e.message)
- else
- ---print("Invalid link")
- end
- end)
- event.addListener("chan_join", function(e)
- local l = links[e.channel]
- if l then
- server.sendEvent(l.server, "linkmsg", e.channel, l.to, e.nick.." joined "..e.channel)
- else
- ---print("Invalid link")
- end
- end)
- event.addListener("chan_part", function(e)
- local l = links[e.channel]
- if l then
- server.sendEvent(l.server, "linkmsg", e.channel, l.to, e.nick.." left "..e.channel.." with the Message: "..e.message)
- else
- ---print("Invalid link")
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement