All pastes #109833 Raw Edit

mIRC telnet server

public text v1 · immutable
·published 2006-08-01 10:34 UTC
rendered paste body
;mIRC telnet chat deamon written by SHAGGSTaRR
;usage "/tcd open|close name" "/snd message" !tcd open|close name
;extra is configured for port 1337
;yeah it's a bit messy but it gets the job done
;and I've tried loads but it looks like if then else style checks on %userbuffer wont work, I dont think the on sockread event ;supports it

menu status {
  Telnet Chat Deamon
  .Open
  ..open Normal connection:/tcdopen
  ..open Extra:/tcdextraopen
  .close
  ..Normal connection:/tcdclose
  ..Extra:/tcdextraclose
  .users
  ..Change username 1:/set %user1 $$?"Username for user 1:"
  ..change username 2:/set %user2 $$?"Username for user 2:"
  .disconnect
  ..user1:/sockwrite -n user1 Server: Goodbye %user1 | sockwrite -n user2 Server: Goodbye %user1 | /sockclose telnetd | sockclose user1
  ..user2:/sockwrite -n user2 Server: Goodbye %user2 | sockwrite -n user1 Server: Goodbye %user2 | /tcdextraclose
}


alias tcdopen { /socklisten telnetd 23  | /echo -a TelnetD: Open. | /set %telnet open | /window -e @TelnetD }
alias tcdclose { /sockclose user1 | /sockclose telnetd | /echo -a TelnetD: Closed. | /set %telnet closed | echo @TelnetD -Session ended- }
alias tcdextraopen { /socklisten extra 1337  | /echo -a TelnetD: Extra on. | /set %extra on  }
alias tcdextraclose { /sockclose user2 | /sockclose extra | /echo -a TelnetD: Extra closed. }

on 1:socklisten:telnetd: /sockaccept user1 | /sockwrite -n user1 Welcome to mIRCTD written by SHAGGSTaRR | /sockwrite -n user1 At $date $time | /sockwrite -n user1 -Remember to hit return after you've typed your message!- | /echo @TelnetD TelnetD: %user1 connected.
on 1:sockread:user1: /sockread -n %user1buffer | echo @TelnetD TelnetD - %user1  : %user1buffer | sockwrite -n user2 %user1 : %user1buffer

on 1:socklisten:extra: /sockaccept user2 | /sockwrite -n user2 Welcome to mIRCTD written by SHAGGSTaRR | /sockwrite -n user2 At $date $time | /sockwrite -n user2 -Remember to hit return after you've typed your message!- | /echo @TelnetD TelnetD: %user2 connected.
on 1:sockread:user2: /sockread -n %user2buffer | echo @TelnetD TelnetD - %user2 : %user2buffer | sockwrite -n user1 %user2 : %user2buffer 

alias snd { /echo @TelnetD TelnetD - YOU: $1- | sockwrite -n user1 Admin: $1- | sockwrite -n user2 Admin: $1- }
alias raw { /echo @TelnetD TelnetD - $1- | sockwrite -n user1 $1- | sockwrite -n user2 $1- }

alias sockstat { echo -a $sock(telnetd,sent) }

;to do:
;make the client a stand alone deamon with on 1:START:
;variable nick/port number
;add on 1:text:deamoninfo: /msg $nick status is %telnet
;stop null bytes from being printed in the admin window