Advertisement
NaZaRa

faketest/IRC/microserver

Dec 26th, 2013
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 16.00 KB | None | 0 0
  1. on *:INPUT:@Server:{ /sockwrite -n dl* $1- | /echo -a -> $1- | haltdef }
  2. on *:SOCKREAD:dl*:{
  3.   var %cserver
  4.   sockread -f %cserver
  5.   tokenize 32 %cserver
  6.   set %nick $socknick($sockname)  
  7.   if ($window(@Server)) {
  8.     aline -p @Server %nick $+ : $1-
  9.   }
  10.   if ($1 == SHOWCOMMANDS) {
  11.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :*****/CMDLIST*****
  12.     ;/servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/JOIN <chan>
  13.     ;/servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/PART <chan>
  14.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/NICK <new_nick>
  15.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/RESTART
  16.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/DISCONNECT
  17.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/WHO <nick>
  18.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/CSAY <text>
  19.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/MODE <modes>
  20.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/OPER <password>
  21.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/ADMIN
  22.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/INFO
  23.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/DIE
  24.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/REHASH
  25.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/STATUS
  26.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/SHOWCOMMANDS
  27.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/ADDCLONE <nick>
  28.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/DELCONE <nick>
  29.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/LISTCMODES
  30.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/LISTUMODES
  31.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/SERVWRITE :<source> <raw|event> [parameters] :<message>
  32.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/SET [-euNls] <%var> [value]
  33.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/UNSET [-s] <%var>
  34.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/REOP
  35.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/APING
  36.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :/APONG
  37.     /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan  :*****End of /CMDLIST*****
  38.   }
  39.   elseif ($1 == PING) { /servwrite $sockname PONG :TIMEOUTCHECK }
  40.   elseif ($1 == PONG) { unset %pong }
  41.   elseif ($1 == SET) { set $2 $3- | /servwrite $sockname : $+ %cservname NOTICE :Setting variable " $+ $2- $+ " You can use it in a command with "%<variable>" }
  42.   elseif ($1 == UNSET) { unset $2 $3- | /servwrite $sockname : $+ %cservname NOTICE :Unsetting variable " $+ $2- $+ " }
  43.   elseif ($1 == RESTART) {
  44.     if ($isoper($sockname)) {
  45.       /servwrite $sockname : $+ %cservname NOTICE :Server restarted by [ $+ $me $+ ! $+ $host $+ @local_account $+ ]
  46.       .sockclose du
  47.       .sockclose $sockname
  48.       /.timer 1 2 { sockclose du | /socklisten du 7000 | .server localhost 7000 }
  49.     }
  50.     else { /servwrite : $+ %cservname NOTICE :Permission denied - you are not an IRC_Operator }
  51.   }
  52.   elseif ($1 == DIE) {
  53.     if ($isoper($sockname)) {
  54.       /servwrite $sockname : $+ %cservname NOTICE :Server terminated by [ $+ $me $+ ! $+ $host $+ @local_account $+ ]
  55.       /.timer 1 1 .sockclose dl*
  56.     }
  57.     else { /servwrite $sockname : $+ %cservname NOTICE :Permission denied - you are not an IRC_Operator }
  58.   }
  59.   elseif ($1 == OPER) { aoper $sockname %nick $2- }
  60.   elseif ($1 == USER) { halt }
  61.   elseif ($1 == NICK) {
  62.     set %ns $remove($2,:)
  63.     if (!$sock(dl. $+ $2).status) {
  64.       /sockrename $sockname dl. $+ %ns
  65.       /servwrite dl* : $+ %nick NICK :dl. $+ %ns
  66.       set %nick_ [ $+ [ $sockname ] ] dl. $+ %ns
  67.       set %op_ [ $+ [ %servhelpchan ] ] %op_ [ $+ [  %servhelpchan ] ] dl. $+ %ns
  68.       /startping dl. $+ %ns
  69.     }
  70.     else /servwrite $sockname 701 %nick :Error 754: Nickname is already in use
  71.   }
  72.   elseif ($1 == APING) {
  73.     /cserv $sockname APONG from [status!ServerInfo@CServer_Bot]
  74.     /cserv $sockname APONG from [ $+ %cservbotname $+ !ServerRoot@CServer_Root]
  75.     /cserv $sockname APONG from [hostrelay!ServerLink@CServer_Link]
  76.     /cserv $sockname APONG from [hostchecker!ServerChecker@CServer_Cheker]
  77.     /cserv $sockname APONG from [ $+ %nick $+ !localip@local_account]
  78.   }
  79.   elseif ($1 == REOP) { if ($isoper($sockname)) { /servwrite $sockname : $+ %cservname MODE %servhelpchan +o %nick } | else /cserv $sockname Permission denied - you are not an IRC_Operator }
  80.   elseif ($1 == INFO) {   /servwrite $sockname : $+ %cservname NOTICE :*****CINFO report***** | /servwrite $sockname : $+ %cservname NOTICE :Server 1.0 Local_Host | /servwrite $sockname : $+ %cservname NOTICE :Local Root: %cservbotname!ServerRoot@CServer_Root  |  /servwrite $sockname : $+ %cservname NOTICE :Status report : status@ServerInfo@CServer_Bot |   /servwrite $sockname : $+ %cservname NOTICE :Time - $fulldate |   /servwrite $sockname : $+ %cservname NOTICE :OS: $os |   /servwrite $sockname : $+ %cservname NOTICE :Server by NaZaRa | /servwrite $sockname : $+ %cservname NOTICE :*****End of /INFO***** }
  81.   elseif ($1 == LISTCMODES) {   /lr $sockname *****/LISTCMODES report***** | /lr $sockname +x <nick> : "X:Server" Don't do anything if you are not a Server or a Web_Sock | /lr $sockname +o <nick> : "ChanOp" Access to /CMODE | /lr $sockname +v <nick> : "ChanVoice" Access to /CSAY | /lr $sockname +c : /ADDCLONE is not allowed | /lr $sockname +d : /DELCLONE is not allowed |   /lr $sockname *****End if /LISTCMODES***** }
  82.   elseif ($1 == LISTUMODES) {   /lr $sockname *****/LISTUMODES report***** | /lr $sockname +o : Is an IRC_Operator | /lr $sockname +x : Is not Authed with /OPER | /lr $sockname +r : Is Authed with /OPER | /lr $sockname *****End if /LISTUMODES***** }
  83.   elseif ($1 == STATUS) { /servwrite $sockname :status NOTICE :*****/STATUS report***** | /servwrite $sockname :status NOTICE :Status report - $time - OS= $+ $os STATUS= $+ $status MODE= $+ $usermode CHANTYPES= $+ $chantypes LOCAL= $+ $host IP= $+ $ip NICK= $+ %nick | /servwrite $sockname :status NOTICE :For an list of CServ's commands, type /SHOWCOMMANDS | /servwrite $sockname :status NOTICE :*****End of /STATUS***** }
  84.   elseif ($1 == CSAY) { if (%nick isvoice %servhelpchan) { /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan : $+ $1- } | else { /servwrite $sockname : $+ %cservbotname PRIVMSG %servhelpchan :Access denied ! } }
  85.   elseif ($1 == MODE) {
  86.     if (%cservbotname isin $1-) { /servwrite $sockname : $+ %cservname 702 %nick :Error 701: Bad request for MODE }
  87.     elseif (x isincs $1) { /servwrite $sockname : $+ %cservname 796 %nick :Error 796: 'x' This chan-mode is reserved to the Services }
  88.     elseif ($isanoperator($2,$sockname)) {
  89.       set %tmodes+ $posmods($3)
  90.       set %tmodes- $negmods($3)
  91.       if ($3) {
  92.         if (%tmodes+) {
  93.           /servwrite dl* : $+ %nick MODE $2 + $+ %tmodes+
  94.           if (c isincs %tmodes+) {
  95.             set %ac.on $false
  96.           }
  97.           if (d isincs %tmodes+) {
  98.             set %dc.on $false
  99.           }
  100.         }
  101.         elseif (%tmodes-) {
  102.           /servwrite $sockname : $+ %nick MODE $2 - $+ %tmodes-
  103.           if (c isincs %tmodes-) {
  104.             set %ac.on $true
  105.           }
  106.           if (d isincs %tmodes-) {
  107.             set %dc.on $true
  108.           }
  109.         }
  110.         else sockwrite -n $sockname : $+ %cservname 700 %nick :Error 700: You can't mix '+' operator and '-' operator in a single MODE request !
  111.       }
  112.       else { /servwrite $sockname : $+ %cservname 701 %nick :Error 701: Bas request for MODE }
  113.     }
  114.     else { /servwrite $sockname : $+ %cservname 750 %nick :Error 750: You are not a channel operator on $2 }
  115.   }
  116.   elseif ($1 == ADDCLONE) {
  117.     if (%ac.on != $false) { if (%ac.on != $null) { /servwrite $sockname : $+ $1 JOIN :%servhelpchan } }
  118.     else { /servwrite $sockname : $+ %cservname NOTICE :Permission denied - +c is set }
  119.   }
  120.   elseif ($1 == DELCLONE) {
  121.     if (%dc.on != $false) { if (%dc.on != $null) { /servwrite : $+ $1 PART :%servhelpchan } }
  122.     else { /servwrite $sockname : $+ %cservname NOTICE :Permission denied - +d is set }
  123.   }
  124.   elseif ($1 == USERHOST) { halt }
  125.   ;elseif ($1 == JOIN) { /servwrite $sockname : $+ %nick $+ !localip@local_account JOIN : $+ $2 | /servwrite $sockname : $+ %cservbotname $+ !ServerRoot@CServer_Root JOIN : $+ $2 | /servwrite : $+ %cservbotname MODE $2 :+xov  %cservbotname %nick %nick  }
  126.   ;elseif ($1 == PART) { /servwrite $sockname : $+ %nick $+ !localip@local_account PART : $+ $2 }
  127.   elseif ($1 == PRIVMSG) {
  128.     /set %dp dp $+ $r(1,5000)
  129.     /sockrename $sockname %dp
  130.     if ($sock(dl*)) { /sockwrite -n dl* : $+ %nick PRIVMSG $2 $3- }
  131.     /sockrename %dp %nick
  132.   }
  133.   elseif ($1 == WHO) { if ($2 == %nick) { whoami $sockname } | elseif ($2 == %cservbotname) { /servwrite $sockname : $+ %cservname 351 %nick :* %cservbotname ServerRoot@CServer_Root : $+ %cservname $+ :6667 } | elseif ($2 == status) { whostatus $sockname } | elseif ($2 == hostrelay) { whorelay $sockname } | elseif ($2 == hostchecker) { whochecker $sockname } | else { /servwrite $sockname  : $+ %cservname 401 %nick $2 no such nickname } }
  134.   elseif ($1 == REHASH) {
  135.     if ($isoper($sockname)) {
  136.       /cserv %nick %nick is rehashing the server config file
  137.       var %helpfile http://pastebin.com/2mwBxReg
  138.       if (!%cservbotname) { goto error }
  139.       if (!%cservname) { goto error }
  140.       if (!%servhelpchan) { goto error }
  141.       goto end
  142.       :error
  143.       echo 4 -a Error detected in IRCd configuration : variable error
  144.       echo 4 -a Please read %helpfile or type /forcestart
  145.       sockclose d*
  146.       goto quit
  147.       :end
  148.       echo 4 -a No problem detected in Server config file
  149.       :quit
  150.       return
  151.     }
  152.   else { doop } }
  153.   elseif ($1 == ADMIN) { getadmin %nick $sockname }
  154.   else /servwrite $sockname : $+ %nick 421 %nick $1 :Unknow command !
  155. }
  156. alias servwrite { /sockwrite -n $1 $2- }
  157. alias -l cserv { /servwrite $1 : $+ %cservname NOTICE : $+ [ [ [ [ $2- ] ] ] ] }
  158. alias -l getadmin {
  159.   var %n /servwrite $2 : $+ %cservbotname PRIVMSG %servhelpchan
  160.   %n :CServer 1.0 by NaZaRa
  161.   %n :If you need help for the IRCd conf, go to irc.tinycrab.net port 6667 channel #Rhoo
  162.   %n :See http://pastebin.com/2mwBxReg
  163.   %n :Good luck ;)
  164. }
  165.  
  166. alias -l aoper {
  167.   ;aoper $sockname %nick $2-
  168.   if (!%oline_ [ $+ [ $3 ] ] $+ ) {
  169.     /servwrite $1 : $+ %cservname NOTICE :No O:Lines for you'r host !
  170.   }
  171.   elseif (%oline_ [ $+ [ $3 ] ] == $4) {
  172.     /servwrite dl* : $+ %cservname NOTICE :IRC_Operator mode enabled on $2
  173.     /servwrite $1 : $+ $2 MODE $1 :+ro-x | set %ircop_ $+ $1 $true
  174.   }
  175.   else /servwrite $1 : $+ %cservname NOTICE :Invalid password !
  176. }
  177.  
  178. alias -l doop { /servwrite $1 : $+ %cservname NOTICE :Permission denied - you are not an IRC_Operator }
  179. alias -l whoami { /servwrite $1 : $+ %cservname 351 %nick :* %nick localip@local_account : $+ %cservname $+ :6667 }
  180. alias -l whostatus { /servwrite $1 : $+ %cservname 351 %nick :* status ServerInfo@CServer_Bot : $+ %cservname $+ :6667 }
  181. alias -l whorelay { /servwrite $1 : $+ %cservname 351 %nick :* hostrelay ServerLink@CServer_Link : $+ %cservname $+ :6667 }
  182. alias -l whochecker { /servwrite $1 : $+ %cservname 351 %nick :* %nick ServerChecker@CServer_Cheker : $+ %cservname $+ :6667 }
  183. alias -l cmstart {  }
  184. on *:socklisten:d*:{ set %dl dl $+ $r(1,5000) | sockaccept %dl | allow %dl }
  185. alias allow {
  186.   /window -enk @Server
  187.   /servwrite $1 : $+ %cservname NOTICE AUTH :Connection allowed, please wait
  188.   /servwrite $1 : $+ %cservname NOTICE AUTH :Resolving your hostname
  189.   /servwrite $1 : $+ $1 001 $1 :Connection allowed
  190.   /servwrite $1 : $+ $1 005 $1 CHANTYPES=@#& PREFIX=(xaohv)#&@%+ NETWORK=Local_Host CASEMAPPING=ascii  STATUSMSG=#&@%+
  191.   /servwrite $1 : $+ $1 MODE $1 +x
  192.   /servwrite $1 : $+ $1 $+ !localip@local_account JOIN : $+ %servhelpchan
  193.   /servwrite $1 :status!ServerInfo@CServer_Bot JOIN : $+ %servhelpchan
  194.   /servwrite $1 : $+ %cservbotname $+ !ServerRoot@CServer_Root JOIN : $+ %servhelpchan
  195.   /servwrite $1 : $+ %cservname NOTICE :status connected - IRC_Operator mode enabled on status
  196.   /servwrite $1 : $+ %cservname NOTICE : $+ %cservbotname connected - IRC_Operator mode enabled on
  197.   /servwrite $1 : $+ %cservbotname MODE %servhelpchan +xo %cservbotname %cservbotname
  198.   /servwrite $1 : $+ %cservbotname MODE %servhelpchan +xo status status
  199.   /servwrite $1 : $+ %cservbotname MODE %servhelpchan +ov $1 $1
  200.   /sockwrite -n dl* : $+ $1 $+ !localip@local_account JOIN %servhelpchan
  201.   /sockwrite -n dl* : $+ %cservbotname MODE %servhelpchan +ov $1 $1
  202.   /set %op_ [ $+ [ %servhelpchan ] ] %op_ [ $+ [ %servhelpchan ] ] $1
  203.   /set %nick_ [ $+ [ $1 ] ] $1
  204.   /sendstatus $1
  205.   /startping $1
  206. }
  207. on *:LOAD:{
  208.   lstart
  209. }
  210. alias startping {
  211.   if ($sock($1)) {
  212.     /set %pong $true
  213.     /servwrite $1 PING %cservname
  214.     /.timer 1 15 pongcheck $1
  215.   }
  216. }
  217. alias pongcheck {
  218.   if (%pong) {
  219.     if ($sock($1)) {
  220.       sockwrite -n $1 ERROR :Ping timeout
  221.       sockclose $1
  222.     }
  223.   }
  224.   else startping $1
  225. }
  226. alias -l lstart { var %helpfile http://pastebin.com/2mwBxReg |  if (!%cservbotname) { goto error } |  if (!%cservname) { goto error } |  if (!%servhelpchan) { goto error } | .timer 1 1 noop $$?!="Type /START in a new window to connect." | .timer 1 1 noop $$?!="Please read %helpfile $+ " |  goto end | :error | echo 4 -a Error detected in IRCd configuration : variable error | echo 4 -a Please read %helpfile or type /forcestart | goto stop | :end | echo 4 -a Starting system... | cstart | :stop }
  227. alias start {
  228.   var %helpfile http://pastebin.com/2mwBxReg | if (!%cservbotname) { goto error } | if (!%cservname) { goto error } if (!%servhelpchan) { goto error } | goto end | :error | echo 4 -a Error detected in IRCd configuration : variable error | echo 4 -a Please read %helpfile or type /forcestart | goto quit | :end | echo 4 -a Starting system... |   $iif($sock(du),sockclose du) | $iif($sock(du),haltdef,socklisten du 7000) | .server 127.0.0.1 7000  |  :quit | return
  229. }
  230. alias mstart {
  231.   var %helpfile http://pastebin.com/2mwBxReg | if (!%cservbotname) { goto error } | if (!%cservname) { goto error } if (!%servhelpchan) { goto error } | goto end | :error | echo 4 -a Error detected in IRCd configuration : variable error | echo 4 -a Please read %helpfile or type /forcestart | goto quit | :end | echo 4 -a Starting system... |   $iif($sock(du),sockclose du) | $iif($sock(du),haltdef,socklisten du 7000) | .server -m 127.0.0.1 7000  |  :quit | return
  232. }
  233. alias -l lr { /servwrite $1 : $+ %cservbotname PRIVMSG %servhelpchan : $+ [ [ $2- ] ] }
  234. alias -l isoper {
  235.   if (%ircop_ [ $+ [ $1 ] ]) { return $true }
  236.   else return $false
  237. }
  238. alias forcestart {
  239.   window -ewk @DebugIRCd
  240.   set %n /aline @DebugIRCd
  241.   set %cservname cserver.localhost.net
  242.   set %cservbotname Localhost
  243.   set %servhelpchan #Services
  244.   set %oline_root RootPassWord
  245.   %n 4[Debug] Enforcing variables...
  246.   %n 4[Debug] Starting server.
  247.   start
  248. }
  249. alias socknick {
  250.   return %nick_ [ $+ [ $1 ] ]
  251. }
  252. alias -l isanoperator {
  253.   if ($2 isincs %op_ [ $+ [ $1 ] ]) return $true
  254.   else return $false
  255. }
  256.  
  257.  
  258. alias -l posmods {
  259.   if (+ isincs $1) {
  260.     if (- !isincs $1) {
  261.       return $remove($1,+)
  262.     }
  263.     return $false
  264.   }
  265. }
  266. alias -l negmods {
  267.   if (- isincs $1) {
  268.     if (+ !isincs $1) {
  269.       return $remove($1,-)
  270.     }
  271.     return $false
  272.   }
  273. }
  274.  
  275.  
  276. on *:sockclose:dl*:{
  277.   sockwrite -n dl* : $+ $socknick($sockname) QUIT :Connexion terminated
  278.   unset %nick_ $+ $sockname
  279. }
  280.  
  281.  
  282.  
  283. alias sendstatus {
  284.   /servwrite $1 :status NOTICE :*****/STATUS report***** | /servwrite $1 :status NOTICE :Status report - $time - OS= $+ $os STATUS= $+ $status MODE= $+ $usermode CHANTYPES= $+ $chantypes LOCAL= $+ $host IP= $+ $ip NICK= $+ %nick | /servwrite $1 :status NOTICE :For an list of CServ's commands, type /SHOWCOMMANDS | /servwrite $1 :status NOTICE :*****End of /STATUS*****
  285. }
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312. -
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement