Advertisement
Stiepen

Channel Linking Script

Feb 11th, 2013
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.12 KB | None | 0 0
  1. link = {}
  2. local links = {}
  3. local plinks = {}
  4. local rlinks = {}
  5.  
  6. function link.help(topic)
  7.   if topic == "request" then
  8.     print("request(server, channel)")
  9.   elseif topic == "accept" then
  10.     print("accept(server, channel)")
  11.   elseif topic == "break" then
  12.     print("break()")
  13.   else
  14.     print("Commands: request, accept, stop. use help(\"command\") for ")
  15.   end
  16. end
  17.  
  18. function link.request(server_, channel)
  19.   -- server, event, from, to, initiator
  20.   server.sendEvent(server_, "linkr", target, channel, sender)
  21.   plinks[target] = {server = server_, to = channel}
  22.   print("Waiting for Other end to confirm...")
  23. end
  24.  
  25. function link.accept(server_, channel_)
  26.   local rl = rlinks[target]
  27.   if rl and rl.server == server_ and rl.to == channel_ then
  28.     server.sendEvent(server_, "linkc", target, channel_, sender)
  29.     links[target] = rl
  30.     rlinks[target] = nil
  31.     print("Link etablished, run link.stop() to break it")
  32.   end
  33. end
  34.  
  35. function link.stop()
  36.   local l = links[target]
  37.   server.sendEvent(l.server, "breaklink", target, l.to, sender)
  38.   links[target] = nil
  39. end
  40.  
  41. function link.stats()
  42.   local l = links[target]
  43.   local pl = plinks[target]
  44.   local rl = rlinks[target]
  45.   if l then
  46.     print("Currently linked to "..l.to.." on "..l.server)
  47.   elseif pl then
  48.     print("There is an outgoin unaccepted link request to "..pl.to.." on "..pl.server)
  49.   elseif rl then
  50.     print("There is an incoming unaccepted link request from "..rl.to.." on "..rl.server)
  51.   else
  52.     print("This channel is not linked currently")
  53.   end
  54. end
  55.  
  56. server.event.addListener("linkr", function(server_, from, to, who)
  57.   if rlinks[to] then
  58.     error("Target Channel already linked", 2)
  59.   else
  60.     rlinks[to] = {to = from, server = server_}
  61.     printChan(to, "*** "..who.." on "..server_.." requested a link to "..from)
  62.   end
  63. end)
  64.  
  65. server.event.addListener("linkc", function(server_, to, from, who)
  66.   print("Confirmed")
  67.   links[from] = plinks[from]
  68.   printChan(from, who.." confirmed the link with "..to.."@"..server_..". To stop it run link.stop()")
  69. end)
  70.  
  71. server.event.addListener("breaklink", function(server_, to, from, who)
  72.   links[from] = nil
  73.   printChan(from, who.." broke the link to "..to.."@"..server_)
  74. end)
  75.  
  76. server.event.addListener("linkmsg", function(server_, from, to, message)
  77.   local l = links[to]
  78.   if l and l.server == server_ and l.to == from then
  79.     printChan(to, "[LINK] "..message)
  80.   end
  81. end)
  82.  
  83. event.addListener("chan_message", function(e)
  84.   local l = links[e.channel]
  85.   if l then
  86.     server.sendEvent(l.server, "linkmsg", e.channel, l.to, "<"..e.prefix..e.sender.."> "..e.message)
  87.   else
  88.     ---print("Invalid link")
  89.   end
  90. end)
  91.  
  92. event.addListener("chan_join", function(e)
  93.   local l = links[e.channel]
  94.   if l then
  95.     server.sendEvent(l.server, "linkmsg", e.channel, l.to, e.nick.." joined "..e.channel)
  96.   else
  97.     ---print("Invalid link")
  98.   end
  99. end)
  100.  
  101. event.addListener("chan_part", function(e)
  102.   local l = links[e.channel]
  103.   if l then
  104.     server.sendEvent(l.server, "linkmsg", e.channel, l.to, e.nick.." left "..e.channel.." with the Message: "..e.message)
  105.   else
  106.     ---print("Invalid link")
  107.   end
  108. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement