Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 60.80 KB | None | 0 0
  1. #######
  2. # Config #
  3. #######
  4.  
  5. set log "#Op-Trip"
  6.  
  7. ######
  8. # Auth #
  9. ######
  10.  
  11. bind MSG - auth proc:auth
  12. proc proc:auth {nick host hand arg} {
  13. set arg [split $arg]
  14. set pseudo [lindex $arg 0]
  15. set password [lindex $arg 1]
  16. if {$pseudo eq ""||$password eq ""} {
  17. putquick "NOTICE $nick :\002Erreur :\002 /msg $::botnick auth <pseudo> <pass>"
  18. return
  19. }
  20.  
  21. if {![validuser $pseudo]} {
  22. putquick "NOTICE $nick :\002Erreur :\002 $pseudo n'a aucun access sur le robot."
  23. return
  24. }
  25.  
  26. if {![passwdok $pseudo $password]} {
  27. putquick "NOTICE $nick :\002Erreur :\002 Votre mot de pass ou/et votre pseudo est/sont incorrect(s) !"
  28. return
  29. }
  30.  
  31. if {![string match -nocase [lindex [getuser $pseudo HOSTS] 0] $nick!$host]} {
  32. putquick "NOTICE $nick :\002Erreur :\002 Votre host ne correspond pas avec votre access !"
  33. return
  34. }
  35.  
  36. if {[getuser $pseudo XTRA AUTH] eq "ON"} {
  37. putquick "NOTICE $nick :\002Erreur :\002 Vous êtes déjà authentifier !"
  38. return
  39. }
  40.  
  41. if {[getuser $hand XTRA SUSPEND] eq "ON"} {
  42. putquick "NOTICE $nick :\002Erreur :\002 Vous êtes suspendu !"
  43. return
  44. }
  45.  
  46. putquick "NOTICE $nick :\0031\[AUTHENTIFICATION REUSSIE\]\0031 Vous êtes maintenant authentifié !"
  47. putquick "PRIVMSG $::log :$nick vient de ce auth sur le bot"
  48. putquick "INVITE $nick $::log"
  49. setuser $pseudo XTRA AUTH ON;
  50. setuser $hand XTRA SEEN [clock format [clock seconds] -format "le %d/%m/%Y à %Hh%M"]
  51. save
  52. return
  53. }
  54.  
  55. ########
  56. # Deauth #
  57. ########
  58.  
  59. bind MSG - deauth proc:deauth
  60. proc proc:deauth { nick host hand arg } {
  61. if {[getuser $hand XTRA auth] eq "ON"} {
  62. putquick "NOTICE $nick :\0031\[DEAUTHENTIFICATION REUSSIE\]\0031 Vous êtes maintenant deauthentifié !"
  63. putquick "PRIVMSG $::log : DEAUTHENTIFICATION REUSSIE pour $nick"
  64. setuser $hand XTRA AUTH OFF;
  65. save
  66. return
  67. }}
  68.  
  69. #######
  70. # Isauth #
  71. #######
  72.  
  73. proc isauth {hand} {
  74. if {[getuser $hand XTRA AUTH] eq "OFF"} {return 0}
  75. if {[getuser $hand XTRA AUTH] eq "ON"} {return 1}
  76. }
  77.  
  78. ###########
  79. # Addsuspend #
  80. ##########
  81.  
  82. bind msg - addsuspend addsuspend
  83. proc addsuspend {nick host hand arg} {
  84. global botnick
  85. if {![matchattr $hand n|n]} {
  86. putquick "PRIVMSG $::log :\0033\[ADDSUSPEND\]\0033 \002$hand\002 a essayé d'utiliser cette commande mais il n'a pas les flags nécessaire."
  87. putserv "NOTICE $nick :\002Accès refusé\002 Vous n'avez pas access à cette commande."
  88. return 0
  89. }
  90.  
  91. set arg [split $arg]
  92. set login [lindex $arg 0]
  93. if {$login==""} {
  94. putquick "NOTICE $nick :\002/msg $botnick addsuspend\002<login>"
  95. putquick "NOTICE $nick :\002Exemple :\002/msg $botnick addsuspend alias_angelius"
  96. return 0
  97. }
  98.  
  99. if {![validuser $login]} {
  100. putquick "NOTICE $nick :\002ADDSUSPEND\002: Le login \002$login\002 a aucun accès."
  101. return 0
  102. }
  103.  
  104. if {[getuser $login XTRA suspend]=="ON"} {
  105. putquick "NOTICE $nick :\002ADDSUSPEND\002: Le login \002$login\002 est déjà suspendu."
  106. return 0
  107. }
  108.  
  109. setuser $login XTRA SUSPEND ON
  110. putquick "NOTICE $nick :\002ADDSUSPEND\002: \002$login\002 a été suspendu."
  111. putquick "PRIVMSG $::log :\002\[ADDSUSPEND\]\002: \002$hand\002 a suspendu le login \002$login\002."
  112. }
  113.  
  114. ##########
  115. # Delsuspend #
  116. ##########
  117.  
  118. bind msg - delsuspend delsuspend
  119. proc delsuspend {nick host hand arg} {
  120. global botnick
  121. if {![matchattr $hand n|n]} {
  122. putquick "PRIVMSG $::log :\0033\[DELSUSPEND\]\0036 \002$hand\002 a essayé d'utiliser cette commande mais il n'a pas les flags nécessaire."
  123. putquick "NOTICE $nick :\002Accès refusé\002 Vous n'avez pas access à cette commande."
  124. return 0
  125. }
  126.  
  127. set arg [split $arg]
  128. set login [lindex $arg 0]
  129. if {$login==""} {
  130. putquick "NOTICE $nick :\002/msg $botnick delsuspend\002<login>"
  131. putquick "NOTICE $nick :\002Exemple :\002/msg $botnick delsuspend alias_angelius"
  132. return 0
  133. }
  134.  
  135. if {![validuser $login]} {
  136. putquick "NOTICE $nick :\002DELSUSPEND\002 : Le login \002$login\002 a aucun accès."
  137. return 0
  138. }
  139.  
  140. if {[getuser $login XTRA suspend]=="OFF"} {
  141. putquick "NOTICE $nick :\002DELSUSPEND\002 : Le login \002$login\002 n'est pas suspendu."
  142. return 0
  143. }
  144.  
  145. setuser $login XTRA SUSPEND OFF
  146. putquick "NOTICE $nick :\002DELSUSPEND\002 : \002$login\002 n'est plus suspendu."
  147. putquick "PRIVMSG $::log :\002DELSUSPEND\002 : \002$hand\002 a retiré le suspend de \002$login\002."
  148. }
  149.  
  150. ##########
  151. # Deauth Part #
  152. ##########
  153.  
  154. bind part -|o * proc:partdeauth
  155. proc proc:partdeauth { nick uhost handle chan {msg ""}} {
  156. if [matchattr $handle |o $chan]&&[isauth $handle] {
  157. setuser $handle XTRA AUTH OFF
  158. putquick "notice $nick :Déauthentification suite a votre part du salon.."
  159. putquick "privmsg $::log :Déauthentification suite au part de $handle"
  160. }}
  161.  
  162. ##########
  163. # Deauth Quit #
  164. ##########
  165.  
  166. bind sign -|o * proc:quitdeauth
  167. proc proc:quitdeauth { nick uhost handle chan {msg ""}} {
  168. if [matchattr $handle |o $chan]&&[isauth $handle] {
  169. setuser $handle XTRA AUTH OFF
  170. putquick "privmsg $::log :Déauthentification suite au quit de $handle"
  171. }}
  172.  
  173. ########
  174. # Connect #
  175. ########
  176.  
  177. #bind evnt - init-server evnt:init_server
  178. #proc evnt:init_server { hand } {
  179. #global botnick auth
  180. #setuser $hand XTRA AUTH OFF
  181. #}
  182.  
  183. #####
  184. # test #
  185. #####
  186.  
  187. bind pub - !destin pub_destin
  188. proc pub_destin { nick uhost handle channel arg } {
  189. set userlist [chanlist $channel]
  190. set userlist [lreplace $userlist [lsearch $nick $userlist] [lsearch $nick $userlist]]
  191. set userlist [lreplace $userlist [lsearch $::botnick $userlist] [lsearch $::botnick $userlist]]
  192. if {[llength $userlist]>0} {
  193. putserv "PRIVMSG $channel :$nick, tu es destiné ? » [lindex $userlist [rand [llength $userlist]]]"
  194. } else {
  195. putserv "PRIVMSG $channel :$nick, tu joues tout seul!"
  196. }
  197. return 0
  198. }
  199.  
  200. ########
  201. # Blacklist #
  202. ########
  203.  
  204. #################
  205. # Création et Gestion Db #
  206. #################
  207.  
  208. if {![file exist database/blacklist.db]} {
  209. set load [open database/blacklist.db w+]
  210. close fcreate
  211. putlog "\2Je créé le blacklist.db\2"
  212. }
  213.  
  214. if {![file exist database/exempt.db]} {
  215. set load [open database/exempt.db w+]
  216. close fcreate
  217. putlog "\2Je créé le exempt.db\2"
  218. }
  219.  
  220. proc progfile {file action arg} {
  221. set return 0
  222. set dbr [open database/$file.db r+]
  223. set dbw [open tmp.tmp w+]
  224. while {![eof $dbr]} {
  225. set r [gets $dbr]
  226. if {$r!=""} {puts $dbw $r}
  227. }
  228. close $dbr
  229. close $dbw
  230. set dbr [open tmp.tmp r+]
  231. set dbw [open database/$file.db w+]
  232. while {![eof $dbr]} {
  233. set r [gets $dbr]
  234. if {$action=="add"} {
  235. if {$r!=""} {
  236. puts $dbw $r
  237. } else {
  238. puts $dbw $arg
  239. }
  240. set return 1
  241. }
  242. if {$action=="del"} {
  243. if {$r!=""} {
  244. if {![string match -nocase $arg [lindex $r 0]] && ![string match -nocase $arg [lindex $r 1]]} {
  245. puts $dbw $r
  246. } else {
  247. set return 1
  248. }
  249. }
  250. }
  251. if {$action=="chk"} {
  252. if {$r!=""} {
  253. puts $dbw $r
  254. if [string match -nocase [lindex $arg 0] [lindex $r 1]] {
  255. set return [lindex $r 0]
  256. if ![string match -nocase [lindex $arg 1] [lindex $r 2]] {set return 2}
  257. if ![string match [lindex $arg 2] [lindex $r 3]] {set return 3}
  258. }
  259. }
  260. }
  261. if {$action=="icr"} {
  262. if {$r!=""} {
  263. puts $dbw $r
  264. if [string match -nocase $arg [lindex $r 0]] {
  265. set return 1
  266. }
  267. }
  268. }
  269. if {$action=="cf"} {
  270. if {$r!=""} {
  271. puts $dbw $r
  272. if [string match -nocase [lindex $r 0] $arg] {
  273. set return 1
  274. }
  275. }
  276. }
  277. if {$action=="ibr"} {
  278. if {$r!=""} {
  279. puts $dbw $r
  280. if [string match -nocase $arg [lindex $r 1]] {
  281. set return 1
  282. }
  283. }
  284. }
  285.  
  286. }
  287. close $dbr
  288. close $dbw
  289. return $return
  290. }
  291.  
  292. bind pub n .+blacklist +bl
  293. proc +bl {nick uhost hand chan args} {
  294. if {[lindex $args 0]!=""} {
  295. if {[progfile blacklist icr [lindex $args 0]]!="0"} {
  296. putserv "notice $nick :Attention le Nick: \2[lindex $args 0]\2 est déjà dans la Blacklist ou ne peux etre Blackliste."
  297. return 0
  298. }
  299. if {[progfile exempt icr [lindex $args 0]]!="0"} {
  300. putserv "notice $nick :Attention le Nick: \2[lindex $args 0]\2 Ne peux etre ajouter a la Blackliste."
  301. return 0
  302. }
  303. progfile blacklist add [lindex $args 0]
  304. putserv "notice $nick :Le Nick: \2[lindex $args 0]\2 a bien été ajouté à la blacklist."
  305. set vnick [lindex $args 0]
  306. putquick "PRIVMSG $chan :\00314Le pseudo\002\0031 $vnick\002 \00314a bien était ajouter au pseudo des (\0034Blackliste\00314)"
  307. return
  308. } else {
  309. puthelp "PRIVMSG $chan :Il faut une victime"
  310. return
  311. }}
  312.  
  313. bind pub n .-blacklist -bl
  314. proc -bl {nick uhost hand chan args} {
  315. if {[lindex $args 0]!=""} {
  316. if {[progfile blacklist del [lindex $args 0]]!="1"} {
  317. putserv "notice $nick :Attention le Nick: \2[lindex $args 0]\2 n'est pas dans la Blacklist."
  318. return 0
  319. }
  320. progfile blacklist del [lindex $args 0]
  321. putserv "notice $nick :Le Nick: \2[lindex $args 0]\2 a bien été supprimé de la blacklist."
  322. putquick "PRIVMSG $chan :\00314Le pseudo\002\0031 [lindex $args 0]\002 \00314a bien était retiré au pseudo des (\0034Blackliste\00314)"
  323. return
  324. } else {
  325. puthelp "PRIVMSG $chan :Il faut une victime"
  326. return
  327. }}
  328.  
  329. bind pub n .blacklist blist
  330. proc blist {nick uhost hand chan args} {
  331. set nickb [lindex $args 0]
  332. set blusers [open database/blacklist.db r]
  333. putserv "notice $nick :\2Voici la Blacklist:\2"
  334. putserv "notice $nick :\2\2"
  335. while {![eof $blusers]} {
  336. set bluser [gets $blusers]
  337. if {$bluser!=""} {
  338. if {$nickb==""} {
  339. putserv "notice $nick :\2Nick:\2 $bluser"
  340. } else {
  341. if [string match -nocase $nickb $bluser] {
  342. putserv "notice $nick :\2Nick:\2 $bluser."
  343. }}}}
  344. putserv "notice $nick :\2Fin de la Blacklist\2."
  345. close $bluser
  346. putserv "notice $nick :\2\2"
  347. }
  348.  
  349. bind pub n .+exempt +exempt
  350. proc +exempt {nick uhost hand chan args} {
  351. set vnick [lindex $args 0]
  352. if {[lindex $args 0]!=""} {
  353. if {[progfile exempt icr [lindex $args 0]]!="0"} {
  354. putserv "notice $nick :Attention le Nick: \2[lindex $args 0]\2 est déjà dans la liste des proteger."
  355. return 0
  356. }
  357. progfile exempt add [lindex $args 0]
  358.  
  359. putserv "notice $nick :Le Nick: \2[lindex $args 0]\2 a bien été ajouté à la liste des proteger."
  360. set vnick [lindex $args 0]
  361. putquick "PRIVMSG $chan :\00314Le pseudo\002\0031 $vnick\002 \00314a bien était ajouter au pseudo des (\0034Proteger\00314)"
  362. return
  363. } else {
  364. puthelp "PRIVMSG $chan :Il faut une victime"
  365. return
  366. }}
  367.  
  368. bind pub n .-exempt -exempt
  369. proc -exempt {nick uhost hand chan args} {
  370. if {[lindex $args 0]!=""} {
  371. if {[progfile exempt del [lindex $args 0]]!="1"} {
  372. putserv "notice $nick :Attention le Nick: \2[lindex $args 0]\2 n'est pas dans la liste des proteger."
  373. return 0
  374. }
  375. progfile exempt del [lindex $args 0]
  376. putserv "notice $nick :Le Nick: \2[lindex $args 0]\2 a bien été supprimé de la blacklist."
  377. putquick "PRIVMSG $chan :\00314Le pseudo\002\0031 [lindex $args 0]\002 \00314a bien était retiré au pseudo des (\0034Proteger\00314)"
  378. return
  379. } else {
  380. puthelp "PRIVMSG $chan :Il faut une victime"
  381. return
  382. }}
  383.  
  384. bind pub n .exempt exemptlist
  385. proc exemptlist {nick uhost hand chan args} {
  386. set nickb [lindex $args 0]
  387. set blusers [open database/exempt.db r]
  388. putserv "notice $nick :\2Voici la ExemptList:\2"
  389. putserv "notice $nick :\2\2"
  390. while {![eof $blusers]} {
  391. set bluser [gets $blusers]
  392. if {$bluser!=""} {
  393. if {$nickb==""} {
  394. putserv "notice $nick :\2Nick:\2 $bluser"
  395. } else {
  396. if [string match -nocase $nickb $bluser] {
  397. putserv "notice $nick :\2Nick:\2 $bluser."
  398. }}}}
  399. putserv "notice $nick :\2Fin de la ExempList\2."
  400. close $bluser
  401. putserv "notice $nick :\2\2"
  402. }
  403.  
  404. #####
  405. # Join #
  406. #####
  407.  
  408. bind join - "*" proc:xbl
  409. proc proc:xbl {n u h c} {
  410. set k [lindex [split $n |] 0]
  411. if {[progfile blacklist cf $k]=="1"} {
  412. set vnick $n
  413. set hostmask "[split [getchanhost $vnick $c] @]"
  414. set hostmask "!*@*[lindex $hostmask 1]"
  415. putquick "MODE $c +bbb $hostmask $k!*@* $k|*!*@*"
  416. putquick "KICK $c $vnick : \00312/\0034!\00312\\ \00312$n \0034Tu es banni du salon. Blackliste"
  417. }}
  418.  
  419. #########
  420. # Protection #
  421. #########
  422.  
  423. bind kick - * protect:kick
  424. proc protect:kick { nick uhost hand chan target text } {
  425. global auth
  426. if {[progfile exempt icr [nick2hand [lindex $text 0]]]!="0"} {
  427. putserv "kick $nick $chan :Attention le Nick: \2[lindex $text 0]\2 est dans la liste des protégés."
  428. return 0
  429. }}
  430.  
  431. ####################
  432. # Addchan/Delchan/Listchan #
  433. ####################
  434.  
  435. bind pub -|m !auto joinsalon
  436. set chans "#Op-Trip"
  437. proc joinsalon {nick host hand channel arg} {
  438. global botnick chans
  439. set cmd [lindex $arg 0]
  440. set salon [lindex $arg 1]
  441. if {[string match -nocase $chans $channel]} {
  442. if {[string index $salon 0]!="#" && $cmd!="list"} {
  443. putquick "NOTICE $nick : \0032Syntax !!\0033 !join \[add/del/list\] #Salon"
  444. return
  445. }}
  446.  
  447. switch $cmd {
  448. "" {
  449. if {[string match -nocase $chans $channel]} {
  450. putquick "NOTICE $nick : \0032Syntax !!\003 !join \[add/del/list\] #Salon"
  451. }}
  452.  
  453. "add" {
  454. if {[string match -nocase $chans $channel]} {
  455. if {[lsearch [channels] $salon]==-1} {
  456. channel add $salon
  457. savechannels
  458. putquick "privmsg $chans :\0033 $salon \00312 ajouter a la liste des joins\0034 Par $hand"
  459. } else {
  460. putquick "privmsg $chans :\0033 $salon \00312 existe déja dans la liste des joins"
  461. }}}
  462.  
  463. "del" {
  464. if {[string match -nocase $chans $channel]} {
  465. if {[lsearch [channels] $salon]!=-1} {
  466. channel remove $salon
  467. savechannels
  468. putquick "privmsg $chans :\0033 $salon \0037 supprimer de la liste des joins\0034 Par $hand"
  469. } else {
  470. putquick "privmsg $chans :\0033 $salon \00312 n'existe pas dans la liste des joins"
  471. }}}
  472.  
  473. "list" {
  474. if {[string match -nocase $chans $channel]} {
  475. set as 1
  476. putquick "privmsg $chans :\0034\[Liste Salons\]"
  477. foreach liste [channels] {
  478. putquick "privmsg $chans :\0037=>\0032 $as \0037<= \0033 $liste"
  479. incr as 1
  480. }
  481. putquick "privmsg $chans :\0036\[Fin De Liste\]"
  482. } else {putquick "privmsg $nick $host"}
  483. }
  484.  
  485. default {
  486. if {[string match -nocase $chans $channel]} {
  487. putquick "NOTICE $nick :\0032Syntax !!\003 !join \[add/del/list\] #Salon"
  488. }}}}
  489.  
  490. ########
  491. # Proteck #
  492. ########
  493.  
  494. set nk_protect "test"
  495.  
  496. bind join - * nk:add
  497. bind nick - * nk:change
  498. bind kick - * nk:kick
  499.  
  500. proc nk:add {nick host hand chan} {
  501. if {![matchattr [nick2hand $::nk_protect] +m $chan]} {
  502. lappend $::nk_protect $hand
  503. }
  504. return 0
  505. }
  506.  
  507. proc nk:change {nick host hand chan newnick} {
  508. set index [lsearch $::nk_protect $nick]
  509. if {$index>=0} {
  510. lreplace $::nk_protect $index 1 $newnick
  511. }
  512. return 0
  513. }
  514.  
  515. proc nk:kick {nick host hand chan victim reason} {
  516. set index [lsearch $::nk_protect $victim]
  517. set host [lindex [split $host @] 1]
  518. if {$index>=0} {
  519. lreplace $::nk_protect $index 1 ""
  520. pushmode $chan -o $nick
  521. newchanban $chan *!*@$host $::botnick "On ne kick pas un master.."
  522. }
  523. return 0
  524. }
  525.  
  526. #############
  527. # Access/Newpass #
  528. #############
  529.  
  530. bind MSG - access proc:access
  531. proc proc:access { nick host hand text } {
  532. global auth
  533. set chan [lindex $text 0]
  534. set pseudo [split $nick |]
  535. set mask [lindex $text 1]
  536. if {![validuser [lindex $pseudo 0]]} {
  537. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  538. return
  539. }
  540.  
  541. if {![isauth $hand]} {
  542. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  543. return
  544. }
  545.  
  546. if ![string match #* $chan] {
  547. putquick "NOTICE $nick :Syntaxe incorrecte ! ( /msg $::botnick access <#channel> <mask> )"
  548. return
  549. }
  550.  
  551. if {$mask==""} {
  552. putquick "NOTICE $nick :Syntaxe incorrecte ! ( /msg $::botnick access <#channel> <mask> )"
  553. return
  554. }
  555.  
  556. if ![validchan $chan] {
  557. putquick "NOTICE $nick :Désolé, ce salon n'est pas enregistré !"
  558. return
  559. }
  560.  
  561. if {![matchattr $hand |o [lindex $text 0]]} {
  562. "putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'utilisation de cette commande (Opérateur sur [lindex $text 0] requis) !"
  563. return
  564. }
  565.  
  566. putserv "PRIVMSG $nick :Liste des access de $chan correspondant à \0031\[ \0034$mask \0031\] :"
  567. foreach user [userlist |n $chan] {
  568. if [string match -nocase $mask $user] {
  569. putserv "PRIVMSG $nick :Owner $user"
  570. }}
  571.  
  572. foreach user [userlist |m $chan] {
  573. if ![matchattr $user |n $chan]&&[string match -nocase $mask $user] {
  574. putserv "PRIVMSG $nick :Master $user"
  575. }}
  576.  
  577. foreach user [userlist |o $chan] {
  578. if ![matchattr $user |m $chan]&&[string match -nocase $mask $user] {
  579. putserv "PRIVMSG $nick :Operateur $user"
  580. }}
  581. putserv "PRIVMSG $nick :Fin de la liste d'access."
  582. }
  583.  
  584. ########
  585. # Newpass #
  586. ########
  587.  
  588.  
  589.  
  590. #####################
  591. # Addop/Addmaster/Addowner #
  592. #####################
  593.  
  594. bind MSG - addop proc:addop
  595. proc proc:addop { nick host hand text } {
  596. global auth chan
  597. set vhand [lindex [split [lindex $text 0] |] 0]
  598. set chan [lindex $text 1]
  599. set pseudo [lindex [split $nick |] 0]
  600.  
  601. if ![validuser $pseudo] {
  602. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  603. return
  604. }
  605.  
  606. if ![isauth $hand] {
  607. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  608. return
  609. }
  610.  
  611. if {![string match #* $chan]} {
  612. putquick "NOTICE $nick :Syntaxe incorrecte ! ( /msg $::botnick addop <pseudo> <#channel> )"
  613. return
  614. }
  615.  
  616. if ![validchan $chan] {
  617. putquick "NOTICE $nick :Désolé, ce salon n'est pas enregistré !"
  618. return
  619. }
  620.  
  621. if ![matchattr $hand |m $chan] {
  622. putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'exécution de cette commande (Master sur $chan requis) !"
  623. return
  624. }
  625.  
  626. if [matchattr $vhand |n $chan] {
  627. putquick "NOTICE $nick :Ce pseudo figure dans l'Access-List Owners sur $chan !"
  628. return
  629. }
  630.  
  631. if [matchattr $vhand |m $chan] {
  632. putquick "NOTICE $nick :Ce pseudo figure dans l'Access-List Masters sur $chan !"
  633. return
  634. }
  635.  
  636. if [matchattr $vhand |o $chan] {
  637. putquick "NOTICE $nick :Ce pseudo figure dans l'Access-List Opérateurs sur $chan !"
  638. return
  639. }
  640.  
  641. if [matchattr $vhand |m $chan] {
  642. putquick "NOTICE $nick :Ce pseudo figure dans l'Access-List Masters sur $chan !"
  643. return
  644. }
  645.  
  646. adduser $vhand $vhand!*@*
  647. setuser $vhand HOSTS $vhand|*!*@*
  648. chattr $vhand -h|+o $chan
  649. putquick "NOTICE $nick :$vhand a bien été ajouté(e) en tant qu'opérateur sur $chan !"
  650. }
  651.  
  652. ##########
  653. # Addmaster #
  654. ##########
  655.  
  656. bind MSG - addmaster proc:addmaster
  657. proc proc:addmaster { nick uhost hand text } {
  658. global auth
  659. set vhand [lindex [split [lindex $text 0] |] 0]
  660. set chan [lindex $text 1]
  661. set pseudo [lindex [split $nick |] 0]
  662. if {![validuser [lindex $pseudo 0]]} {
  663. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  664. return
  665. }
  666.  
  667. if {![isauth $hand]} {
  668. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  669. return
  670. }
  671.  
  672. if {![string match #* $chan]} {
  673. putquick "NOTICE $nick :Syntaxe incorrecte ! ( /msg $::botnick addmaster <pseudo> <#channel> )"
  674. return
  675. }
  676.  
  677. if ![validchan $chan] {
  678. putquick "NOTICE $nick :Désolé, ce salon n'est pas enregistré !"
  679. return
  680. }
  681.  
  682. if {[validuser [lindex $text 0]]} {
  683. putquick "NOTICE $nick :Ce pseudo figure dans l'Access-List
  684. return
  685. }
  686.  
  687. adduser $vhand [lindex $text 0]!*@*
  688. setuser $vhand HOSTS [lindex $text 0]|*!*@*
  689. chattr $vhand -h|+om [lindex $text 1]
  690. putquick "NOTICE $nick :[lindex $text 0] a bien été ajouté(e) en tant que Master sur [lindex $text 1] !"
  691. return
  692. }
  693.  
  694. #########
  695. # Addowner #
  696. #########
  697.  
  698. bind MSG - addowner proc:addowner
  699. proc proc:addowner { nick uhost hand text } {
  700. global auth
  701. set vhand [lindex [split [lindex $text 0] |] 0]
  702. set chan [lindex $text 1]
  703. set pseudo [lindex [split $nick |] 0]
  704. if {![validuser [lindex $pseudo 0]]} {
  705. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  706. return
  707. }
  708.  
  709. if {![isauth $hand]} {
  710. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  711. return
  712. }
  713.  
  714. if {![string match #* $chan]} {
  715. putquick "NOTICE $nick :Syntaxe incorrecte ! ( /msg $::botnick addowner <pseudo> <#channel> )"
  716. return
  717. }
  718.  
  719. if ![validchan $chan] {
  720. putquick "NOTICE $nick :Désolé, ce salon n'est pas enregistré !"
  721. return
  722. }
  723.  
  724. if {[validuser [lindex $text 0]]} {
  725. putquick "NOTICE $nick :Ce pseudo figure dans l'Access-List"
  726. return
  727. }
  728.  
  729. adduser $vhand [lindex $text 0]!*@*
  730. setuser $vhand HOSTS [lindex $text 0]|*!*@*
  731. chattr $vhand -h|+on [lindex $text 1]
  732. putquick "NOTICE $nick :[lindex $text 0] a bien été ajouté(e) en tant que Owner sur [lindex $text 1] !"
  733. return
  734. }
  735.  
  736. ####################
  737. # Delop/Delmaster/Delowner #
  738. ####################
  739.  
  740. ######
  741. # Delop #
  742. ######
  743.  
  744. bind MSG - delop proc:delop
  745. proc proc:delop { nick uhost hand text } {
  746. global auth chan
  747. set vhand [lindex [split [lindex $text 0] |] 0]
  748. set chan [lindex $text 1]
  749. set pseudo [split $nick |]
  750. if {![validuser [lindex $pseudo 0]]} {
  751. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  752. return
  753. }
  754.  
  755. if {![isauth $hand]} {
  756. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  757. return
  758. }
  759.  
  760. if {![string match #* $chan]} {
  761. putquick "NOTICE $nick :Syntaxe incorrecte ! ( /msg $::botnick delop <pseudo> <#channel> )"
  762. return
  763. }
  764.  
  765. if ![validchan $chan] {
  766. putquick "NOTICE $nick :Désolé, ce salon n'est pas enregistré !"
  767. return
  768. }
  769.  
  770. if ![matchattr $hand |m $chan] {
  771. putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'exécution de cette commande (Master sur $chan requis) !"
  772. return
  773. }
  774.  
  775. if ![matchattr $vhand |o $chan] {
  776. putquick "NOTICE $nick :Ce pseudo ne figure pas dans l'Access-List de $chan !"
  777. return
  778. }
  779.  
  780. if [matchattr $vhand |n $chan] {
  781. putquick "NOTICE $nick :Ce pseudo figure dans l'Access-List Owners sur $chan !"
  782. return
  783. }
  784.  
  785. if [matchattr $vhand |m $chan] {
  786. putquick "NOTICE $nick :Ce pseudo figure dans l'Access-List Masters sur $chan !"
  787. return
  788. }
  789.  
  790. delchanrec $vhand $chan
  791. putquick "NOTICE $nick :[lindex $text 0] a bien été supprimé(e) de l'Access-List Opérateurs sur [lindex $text 1] !"
  792.  
  793. foreach c [channels] {
  794. if [haschanrec $vhand $c] {
  795. return
  796. }}
  797. deluser $vhand
  798. }
  799.  
  800. #########
  801. # Delmaster #
  802. #########
  803.  
  804. bind MSG - delmaster proc:delmaster
  805. proc proc:delmaster { nick uhost hand text } {
  806. global auth chan
  807. set vhand [lindex [split [lindex $text 0] |] 0]
  808. set chan [lindex $text 1]
  809. set pseudo [lindex [split $nick |] 0]
  810. if {![validuser [lindex $pseudo 0]]} {
  811. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  812. return
  813. }
  814.  
  815. if {![isauth $hand]} {
  816. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  817. return
  818. }
  819.  
  820. if {![string match #* $chan]} {
  821. putquick "NOTICE $nick :Syntaxe incorrecte ! ( /msg $::botnick delmaster <pseudo> <#channel> )"
  822. return
  823. }
  824.  
  825. if ![validchan $chan] {
  826. putquick "NOTICE $nick :Désolé, ce salon n'est pas enregistré !"
  827. return
  828. }
  829.  
  830. if ![matchattr $hand |m $chan] {
  831. putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'exécution de cette commande (Master sur $chan requis) !"
  832. return
  833. }
  834.  
  835. if ![matchattr $vhand |o $chan] {
  836. putquick "NOTICE $nick :Ce pseudo ne figure pas dans l'Access-List de $chan !"
  837. return
  838. }
  839.  
  840. if [matchattr $vhand |n $chan] {
  841. putquick "NOTICE $nick :Ce pseudo figure dans l'Access-List Owners sur $chan !"
  842. return
  843. }
  844.  
  845. if ![matchattr $vhand |m $chan] {
  846. putquick "NOTICE $nick :Ce pseudo figure dans l'Access-List Masters sur $chan !"
  847. return
  848. }
  849.  
  850. delchanrec $vhand $chan
  851. putquick "NOTICE $nick :[lindex $text 0] a bien été supprimé(e) de l'Access-List Master sur [lindex $text 1] !"
  852.  
  853. foreach c [channels] {
  854. if [haschanrec $vhand $c] {
  855. return
  856. }}
  857. deluser $vhand
  858. }
  859.  
  860. #########
  861. # Delowner #
  862. #########
  863.  
  864. bind MSG - delowner proc:delowner
  865. proc proc:delowner { nick uhost hand text } {
  866. global auth chan
  867. set vhand [lindex [split [lindex $text 0] |] 0]
  868. set chan [lindex $text 1]
  869. set pseudo [lindex [split $nick |] 0]
  870. if {![validuser [lindex $pseudo 0]]} {
  871. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  872. return
  873. }
  874.  
  875. if {![isauth $hand]} {
  876. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  877. return
  878. }
  879.  
  880. if {![string match #* $chan]} {
  881. putquick "NOTICE $nick :Syntaxe incorrecte ! ( /msg $::botnick delowner <pseudo> <#channel> )"
  882. return
  883. }
  884.  
  885. if ![validchan $chan] {
  886. putquick "NOTICE $nick :Désolé, ce salon n'est pas enregistré !"
  887. return
  888. }
  889.  
  890. if ![matchattr $hand |m $chan] {
  891. putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'exécution de cette commande (Master sur $chan requis) !"
  892. return
  893. }
  894.  
  895. if ![matchattr $vhand |o $chan] {
  896. putquick "NOTICE $nick :Ce pseudo ne figure pas dans l'Access-List de $chan !"
  897. return
  898. }
  899.  
  900. if ![matchattr $vhand |n $chan] {
  901. putquick "NOTICE $nick :Ce pseudo figure dans l'Access-List Owners sur $chan !"
  902. return
  903. }
  904.  
  905. if ![matchattr $vhand |m $chan] {
  906. putquick "NOTICE $nick :Ce pseudo figure dans l'Access-List Master sur $chan !"
  907. return
  908. }
  909.  
  910. delchanrec $vhand $chan
  911. putquick "NOTICE $nick :[lindex $text 0] a bien été supprimé(e) de l'Access-List Owner sur [lindex $text 1] !"
  912.  
  913. foreach c [channels] {
  914. if [haschanrec $vhand $c] {
  915. return
  916. }}
  917. deluser $vhand
  918. }
  919.  
  920. #####################
  921. # op/deop/voice/devoice chan #
  922. #####################
  923.  
  924. ####
  925. # op #
  926. ####
  927.  
  928. bind PUB - .op op
  929. proc op { nick host hand chan text } {
  930. global auth
  931. set pseudo [split $nick |]
  932. if {![validuser [lindex $pseudo 0]]} {
  933. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  934. return
  935. }
  936.  
  937. if {![isauth $hand]} {
  938. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  939. return
  940. }
  941.  
  942. if {$text!=""} {
  943. if {![matchattr $hand |o $chan]} {
  944. putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'exécution de cette commande ( Opérateur sur $chan requis.) !"
  945. return
  946. }
  947.  
  948. putquick "mode $chan +oooooo [join $text]"
  949. return
  950. }
  951.  
  952. if [isop [join $nick] $chan] {
  953. putserv "NOTICE $nick :Vous êtes déjà @ sur $chan !"
  954. return
  955. }
  956. putquick "mode $chan +o [join $nick]"
  957. }
  958.  
  959. ######
  960. # deop #
  961. ######
  962.  
  963. bind PUB -|- .deop deop
  964. proc deop { nick host hand chan text } {
  965. global auth
  966. set pseudo [split $nick |]
  967. if {![validuser [lindex $pseudo 0]]} {
  968. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  969. return
  970. }
  971.  
  972. if {![isauth $hand]} {
  973. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  974. return
  975. }
  976.  
  977. if {![matchattr $hand |o $chan]} {
  978. putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'exécution de cette commande ( Opérateur sur $chan requis.) !"
  979. return
  980. }
  981.  
  982. if {$text!=""} {
  983. if {![matchattr $hand |o $chan]} {
  984. putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'exécution de cette commande ( Master sur $chan requis.) !"
  985. return
  986. }
  987. if {[progfile exempt icr [nick2hand [lindex $text 0]]]!="0"} {
  988. putserv "notice $nick :Attention le Nick: \2[lindex $text 0]\2 est dans la liste des proteger."
  989. return 0
  990. }
  991. putquick "mode $chan -oooooo [join $text]"
  992. return
  993. }
  994.  
  995. if {![isop [join $nick] $chan]} {
  996. putserv "NOTICE $nick :Vous n'êtes pas @ sur $chan !"
  997. return
  998. }
  999. putquick "mode $chan -o [join $nick]"
  1000. }
  1001.  
  1002. ######
  1003. # Voice #
  1004. ######
  1005.  
  1006. bind PUB -|- .voice voice
  1007. proc voice { nick host hand chan text } {
  1008. global auth
  1009. set pseudo [split $nick |]
  1010. if {![validuser [lindex $pseudo 0]]} {
  1011. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  1012. return
  1013. }
  1014.  
  1015. if {![isauth $hand]} {
  1016. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  1017. return
  1018. }
  1019.  
  1020. if {![matchattr $hand |o $chan]} {
  1021. putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'exécution de cette commande ( Opérateur sur $chan requis.) !"
  1022. return
  1023. }
  1024.  
  1025. if {$text!=""} {
  1026. putquick "mode $chan +vvvvvv [join $text]"
  1027. return
  1028. }
  1029.  
  1030. if [isvoice [join $nick] $chan] {
  1031. putserv "NOTICE $nick :Vous êtes déjà voice sur $chan !"
  1032. return
  1033. }
  1034. putquick "mode $chan +v [join $nick]"
  1035. }
  1036.  
  1037. ########
  1038. # Devoice #
  1039. ########
  1040.  
  1041. bind PUB -|- .devoice devoice
  1042. proc devoice { nick host hand chan text } {
  1043. global auth
  1044. set pseudo [split $nick |]
  1045. if {![validuser [lindex $pseudo 0]]} {
  1046. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  1047. return
  1048. }
  1049.  
  1050. if {![isauth $hand]} {
  1051. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  1052. return
  1053. }
  1054.  
  1055. if {![matchattr $hand |o $chan]} {
  1056. putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'exécution de cette commande ( Opérateur sur $chan requis.) !"
  1057. return
  1058. }
  1059. if {[progfile exempt icr [nick2hand [lindex $text 0]]]!="0"} {
  1060. putserv "notice $nick :Attention le Nick: \2[lindex $text 0]\2 est dans la liste des proteger."
  1061. return 0
  1062. }
  1063. if {$text!=""} {
  1064. putquick "mode $chan -vvvvvv [join $text]"
  1065. return
  1066. }
  1067.  
  1068. if {![isvoice [join $nick] $chan]} {
  1069. putserv "NOTICE $nick :Vous êtes déjà devoice sur $chan !"
  1070. return
  1071. }
  1072. putquick "mode $chan -v [join $nick]"
  1073. }
  1074.  
  1075. #####################
  1076. # op/deop/voice/devoice MSG #
  1077. #####################
  1078.  
  1079. #####
  1080. # Op #
  1081. #####
  1082.  
  1083. bind MSG -|- op proc:op
  1084. proc proc:op { nick uhost hand text } {
  1085. global auth
  1086. set pseudo [split $nick |]
  1087. if {![validuser [lindex $pseudo 0]]} {
  1088. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  1089. return
  1090. }
  1091.  
  1092. if {![isauth $hand]} {
  1093. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  1094. return
  1095. }
  1096.  
  1097. if {![string match #* [lindex $text 0]]} {
  1098. putquick "NOTICE $nick :Syntaxe incorrecte ! ( /msg $botnick op #channel (pseudo(s)) )"
  1099. return
  1100. }
  1101.  
  1102. if {![validchan [lindex $text 0]]} {
  1103. putquick "NOTICE $nick :Désolé je me trouve actuellement pas sur le salon demandé !"
  1104. return
  1105. }
  1106.  
  1107. if {$text!=""} {
  1108. if [matchattr $hand |o [lindex $text 0]] {
  1109. putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'utilisation de cette commande (Opérateur sur [lindex $text 0] requis) !"
  1110. return
  1111. }
  1112.  
  1113. if {![onchan $nick [lindex $text 0]]} {
  1114. putquick "NOTICE $nick :Vous n'êtes pas sur [lindex $text 0] !"
  1115. return
  1116. }
  1117.  
  1118. if {![botonchan [lindex $text 0]]} {
  1119. putquick "NOTICE $nick :Désolé je me trouve actuellement pas sur le salon demandé !"
  1120. return
  1121. }
  1122.  
  1123. if {![botisop [lindex $text 0]]} {
  1124. putquick "NOTICE $nick :Désolé je ne peux te mettre op je suis deop !"
  1125. return
  1126. }
  1127.  
  1128.  
  1129. if {![matchattr $hand |o [lindex $text 0]]} {
  1130. putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'utilisation de cette commande (Opérateur sur [lindex $text 0] requis) !"
  1131. return
  1132. }
  1133.  
  1134. putquick "mode [lindex $text 0] +oooooo [join [lrange $text 1 end]]"
  1135. return
  1136. }
  1137.  
  1138. if {[isop [join $nick] [lindex $text 0]]} {
  1139. putquick "NOTICE $nick :Vous êtes déjà @ sur [lindex $text 0] !"
  1140. return
  1141. }
  1142. putquick "mode [lindex $text 0] +o [join $nick]"
  1143. }
  1144.  
  1145. ######
  1146. # Deop #
  1147. ######
  1148.  
  1149. bind MSG -|- deop proc:deop
  1150. proc proc:deop { nick host hand text } {
  1151. global auth
  1152. set pseudo [split $nick |]
  1153. if {![validuser [lindex $pseudo 0]]} {
  1154. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  1155. return
  1156. }
  1157.  
  1158. if {![isauth $hand]} {
  1159. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  1160. return
  1161. }
  1162.  
  1163. if {![string match #* [lindex $text 0]]} {
  1164. putquick "NOTICE $nick :Syntaxe incorrecte ! ( /msg $::botnick deop #channel (pseudo(s)) )"
  1165. return
  1166. }
  1167.  
  1168. if {![validchan [lindex $text 0]]} {
  1169. putquick "NOTICE $nick :Désolé je me trouve actuellement pas sur le salon demandé !"
  1170. return
  1171. }
  1172.  
  1173. if {![matchattr $hand |o [lindex $text 0]]} {
  1174. putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'utilisation de cette commande (Opérateur sur [lindex $text 0] requis) !"
  1175. return
  1176. }
  1177.  
  1178. if {![onchan $nick [lindex $text 0]]} {
  1179. putquick "NOTICE $nick :Vous n'êtes pas sur [lindex $text 0] !"
  1180. return
  1181. }
  1182.  
  1183. if {![botonchan [lindex $text 0]]} {
  1184. putquick "NOTICE $nick :Désolé je me trouve actuellement pas sur le salon demandé !"
  1185. return
  1186. }
  1187.  
  1188. if {![botisop [lindex $text 0]]} {
  1189. putquick "NOTICE $nick :Désolé je ne peux te mettre deop je suis deop !"
  1190. return
  1191. }
  1192. if {[progfile exempt icr [nick2hand [lindex $text 1]]]!="0"} {
  1193. putserv "notice $nick :Attention le Nick: \2[lindex $text 0]\2 est dans la liste des proteger."
  1194. return 0
  1195. }
  1196. if {[lindex $text 1] !=""} {
  1197. putquick "mode [lindex $text 0] -oooooo [join [lrange $text 1 end]]"
  1198. return
  1199. }
  1200.  
  1201. if ![isop [join $nick] [lindex $text 0]] {
  1202. putquick "NOTICE $nick :Vous êtes déjà deop sur [lindex $text 0] !"
  1203. return
  1204. }
  1205. putquick "mode [lindex $text 0] -o [join $nick]"
  1206. }
  1207.  
  1208. ######
  1209. # Voice #
  1210. ######
  1211.  
  1212. bind MSG -|- voice proc:voice
  1213. proc proc:voice { nick uhost hand text } {
  1214. global auth
  1215. set pseudo [split $nick |]
  1216. if {![validuser [lindex $pseudo 0]]} {
  1217. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  1218. return
  1219. }
  1220.  
  1221. if {![isauth $hand]} {
  1222. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  1223. return
  1224. }
  1225.  
  1226. if {![string match #* [lindex $text 0]]} {
  1227. putquick "NOTICE $nick :Syntaxe incorrecte ! ( /msg $botnick voice #channel (pseudo(s)) )"
  1228. return
  1229. }
  1230.  
  1231. if {![validchan [lindex $text 0]]} {
  1232. putquick "NOTICE $nick :Désolé je me trouve actuellement pas sur le salon demandé !"
  1233. return
  1234. }
  1235.  
  1236. if {![matchattr $hand |o [lindex $text 0]]} {
  1237. putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'utilisation de cette commande (Opérateur sur [lindex $text 0] requis) !"
  1238. return
  1239. }
  1240.  
  1241. if {![onchan $nick [lindex $text 0]]} {
  1242. putquick "NOTICE $nick :Vous n'êtes pas sur [lindex $text 0] !"
  1243. return
  1244. }
  1245.  
  1246. if {![botonchan [lindex $text 0]]} {
  1247. putquick "NOTICE $nick :Désolé je me trouve actuellement pas sur le salon demandé !"
  1248. return
  1249. }
  1250.  
  1251. if {![botisop [lindex $text 0]]} {
  1252. putquick "NOTICE $nick :Désolé je ne peux te mettre voice je suis deop !"
  1253. return
  1254. }
  1255.  
  1256. if {[lindex $text 1] !=""} {
  1257. putquick "mode [lindex $text 0] +vvvvvv [join [lrange $text 1 end]]"
  1258. return
  1259. }
  1260.  
  1261. if {![isop [join $nick] [lindex $text 0]]} {
  1262. putquick "NOTICE $nick :Vous êtes déjà voice sur [lindex $text 0] !"
  1263. return
  1264. }
  1265. putquick "mode [lindex $text 0] +v [join $nick]"
  1266. }
  1267.  
  1268. ########
  1269. # Devoice #
  1270. ########
  1271.  
  1272. bind MSG -|- devoice proc:devoice
  1273. proc proc:devoice { nick host hand text } {
  1274. global auth
  1275. set pseudo [split $nick |]
  1276. if {![validuser [lindex $pseudo 0]]} {
  1277. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  1278. return
  1279. }
  1280.  
  1281. if {![isauth $hand]} {
  1282. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  1283. return
  1284. }
  1285.  
  1286. if {![string match #* [lindex $text 0]]} {
  1287. putquick "NOTICE $nick :Syntaxe incorrecte ! ( /msg $botnick devoice #channel (pseudo(s)) )"
  1288. return
  1289. }
  1290.  
  1291. if {![validchan [lindex $text 0]]} {
  1292. putquick "NOTICE $nick :Désolé je me trouve actuellement pas sur le salon demandé !"
  1293. return
  1294. }
  1295.  
  1296. if {![matchattr $hand |o [lindex $text 0]]} {
  1297. putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'utilisation de cette commande (Opérateur sur [lindex $text 0] requis) !"
  1298. return
  1299. }
  1300.  
  1301. if {![onchan $nick [lindex $text 0]]} {
  1302. putquick "NOTICE $nick :Vous n'êtes pas sur [lindex $text 0] !"
  1303. return
  1304. }
  1305.  
  1306. if {![botonchan [lindex $text 0]]} {
  1307. putquick "NOTICE $nick :Désolé je me trouve actuellement pas sur le salon demandé !"
  1308. return
  1309. }
  1310.  
  1311. if {![botisop [lindex $text 0]]} {
  1312. putquick "NOTICE $nick :Désolé je ne peux te mettre devoice je suis deop !"
  1313. return
  1314. }
  1315. if {[progfile exempt icr [nick2hand [lindex $text 1]]]!="0"} {
  1316. putserv "notice $nick :Attention le Nick: \2[lindex $text 0]\2 est dans la liste des proteger."
  1317. return 0
  1318. }
  1319. if {[lindex $text 1] !=""} {
  1320. putquick "mode [lindex $text 0] -vvvvvv [join [lrange $text 1 end]]"
  1321. return
  1322. }
  1323.  
  1324. if ![isop [join $nick] [lindex $text 0]] {
  1325. putquick "NOTICE $nick :Vous êtes déjà devoice sur [lindex $text 0] !"
  1326. return
  1327. }
  1328. putquick "mode [lindex $text 0] -v [join $nick]"
  1329. }
  1330.  
  1331. #######################
  1332. # Ban/Kick/Unban/Kickban CHAN #
  1333. #######################
  1334.  
  1335. #####
  1336. # Ban #
  1337. #####
  1338.  
  1339. bind PUB - .ban ban
  1340. proc ban { nick host hand chan text } {
  1341. global auth
  1342. set pseudo [split $nick |]
  1343. if {![validuser [lindex $pseudo 0]]} {
  1344. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  1345. return
  1346. }
  1347.  
  1348. if {![isauth $hand]} {
  1349. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  1350. return
  1351. }
  1352.  
  1353. if {![matchattr $hand |o $chan]} {
  1354. putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'exécution de cette commande ( Opérateur sur $chan requis.) !"
  1355. return
  1356. }
  1357.  
  1358. if {$text == ""} {
  1359. putquick "NOTICE $nick :Syntaxe incorrecte ! ( .ban pseudo/host )"
  1360. return
  1361. }
  1362.  
  1363. if {[string match *!*@* [lindex $text 0]]} {
  1364. putquick "mode $chan +b [lindex $text 0]"
  1365. return
  1366. }
  1367. if {[progfile exempt icr [nick2hand [lindex $text 0]]]!="0"} {
  1368. putserv "notice $nick :Attention le Nick: \2[lindex $text 0]\2 est dans la liste des proteger."
  1369. return 0
  1370. }
  1371. if {[llength [getchanhost [lindex $text 0]]]!=0} {
  1372. set host [lindex [split [getchanhost [lindex $text 0]] @] 1]
  1373. putquick "mode $chan +b *!*@$host"
  1374. return
  1375. }
  1376. putquick "NOTICE $nick :Le pseudo [lindex $text 0] n'est pas sur un de mes salons, je ne peux récupérer son host !"
  1377. }
  1378.  
  1379. #####
  1380. # Kick #
  1381. #####
  1382.  
  1383. bind pub -|- .kick kick
  1384. proc kick { nick uhost hand chan text } {
  1385. global auth
  1386. set pseudo [split $nick |]
  1387. if {![validuser [lindex $pseudo 0]]} {
  1388. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  1389. return
  1390. }
  1391.  
  1392. if {![isauth $hand]} {
  1393. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  1394. return
  1395. }
  1396.  
  1397. if {![matchattr $hand |o $chan]} {
  1398. putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'exécution de cette commande ( Opérateur sur $chan requis.) !"
  1399. return
  1400. }
  1401.  
  1402. if {$text == ""} {
  1403. putquick "NOTICE $nick :Syntaxe : .kick <pseudo> <raison>"
  1404. return
  1405. }
  1406.  
  1407. if {$text != ""} {
  1408. if {![onchan [lindex $text 0]]} {
  1409. putquick "NOTICE $nick :Le pseudo [lindex $text 0] n'est pas sur $chan"
  1410. return
  1411. }
  1412. if {[progfile exempt icr [nick2hand [lindex $text 0]]]!="0"} {
  1413. putserv "notice $nick :Attention le Nick: \2[lindex $text 0]\2 est dans la liste des proteger."
  1414. return 0
  1415. }
  1416. if {[lindex $text 1] != ""} {
  1417. putquick "kick $chan [lindex $text 0] :[join [lrange $text 1 end]]"
  1418. return
  1419. }
  1420.  
  1421. if {[lindex $text 1] == ""} {
  1422. putquick "kick $chan [lindex $text 0] :Vous venez d'être kické par $nick !"
  1423. return
  1424. }}}
  1425.  
  1426. #######
  1427. # Unban #
  1428. #######
  1429.  
  1430. bind pub - .unban unban
  1431. proc unban { nick uhost hand chan text } {
  1432. global auth
  1433. set pseudo [split $nick |]
  1434. if {![validuser [lindex $pseudo 0]]} {
  1435. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  1436. return
  1437. }
  1438.  
  1439. if {![isauth $hand]} {
  1440. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  1441. return
  1442. }
  1443.  
  1444. if {![matchattr $hand |o $chan]} {
  1445. putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'exécution de cette commande ( Opérateur sur $chan requis.) !"
  1446. return
  1447. }
  1448.  
  1449. if {$text == ""} {
  1450. putquick "NOTICE $nick :Syntaxe : .unban <host>"
  1451. return
  1452. }
  1453.  
  1454. if {[string match *!*@* [lindex $text 0]]} {
  1455. putquick "mode $chan -b [lindex $text 0]"
  1456. return
  1457. }
  1458.  
  1459. if {[llength [getchanhost [lindex $text 0]]]!=0} {
  1460. set host [lindex [split [getchanhost [lindex $text 0]] @] 1]
  1461. putquick "mode $chan -b *!*@$host"
  1462. return
  1463. }}
  1464.  
  1465. ########
  1466. # Kickban #
  1467. ########
  1468.  
  1469. bind PUB - .kickban kickban
  1470. proc kickban { nick uhost hand chan text } {
  1471. global auth
  1472. set pseudo [split $nick |]
  1473. if {![validuser [lindex $pseudo 0]]} {
  1474. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  1475. return
  1476. }
  1477.  
  1478. if {![isauth $hand]} {
  1479. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  1480. return
  1481. }
  1482.  
  1483. if {![matchattr $hand |o $chan]} {
  1484. putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'exécution de cette commande ( Opérateur sur $chan requis.) !"
  1485. return
  1486. }
  1487.  
  1488. if {$text == ""} {
  1489. putquick "NOTICE $nick :Syntaxe : .kickban <pseudo>"
  1490. return
  1491. }
  1492.  
  1493. if {![onchan [lindex $text 0] $chan]} {
  1494. putquick "NOTICE $nick :Le pseudo [lindex $text 0] n'est pas sur $chan"
  1495. return
  1496. }
  1497.  
  1498. if {![botisop [lindex $chan]]} {
  1499. putquick "NOTICE $nick :Désolé je ne peux kickban je suis deop !"
  1500. return
  1501. }
  1502. if {[progfile exempt icr [nick2hand [lindex $text 0]]]!="0"} {
  1503. putserv "notice $nick :Attention le Nick: \2[lindex $text 0]\2 est dans la liste des proteger."
  1504. return 0
  1505. }
  1506. set host [lindex [split [getchanhost [lindex $text 0]] @] 1]
  1507. putquick "mode $chan +b *!*@$host"
  1508. putquick "kick $chan [lindex $text 0] :[join [lrange $text 1 end]] (Exclu(e) de $chan"
  1509. return
  1510. }
  1511.  
  1512. ######################
  1513. # Ban/Kick/Unban/Kickban MSG #
  1514. ######################
  1515.  
  1516. #####
  1517. # Ban #
  1518. #####
  1519.  
  1520. bind msg -|- ban proc:ban
  1521. proc proc:ban { nick uhost hand arg } {
  1522. global auth
  1523. set pseudo [lindex [split $nick |] 0]
  1524. set chan [lindex $arg 0]
  1525. set cible [lindex $arg 1]
  1526. if {![validuser $pseudo]} {
  1527. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  1528. return
  1529. }
  1530.  
  1531. if {![isauth $hand]} {
  1532. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  1533. return
  1534. }
  1535.  
  1536. if ("[llength $arg]"!="2")||![string match -nocase #* $chan] {
  1537. putquick "NOTICE $nick :Syntaxe incorrect ( /msg $::botnick ban <#salon> <pseudo/host> )"
  1538. return
  1539. }
  1540.  
  1541. if {![validchan [lindex $arg 0]]} {
  1542. putquick "NOTICE $nick :Désolé le salon n'est pas un salon enregistré !"
  1543. return
  1544. }
  1545.  
  1546. if {![matchattr $hand |o $chan]} {
  1547. putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'exécution de cette commande ( Opérateur sur $chan requis.) !"
  1548. return
  1549. }
  1550.  
  1551. if {![botonchan [lindex $arg 0]]} {
  1552. putquick "NOTICE $nick :Désolé je me trouve actuellement pas sur le salon demandé !"
  1553. return
  1554. }
  1555.  
  1556. if {![botisop [lindex $arg 0]]} {
  1557. putquick "NOTICE $nick :Désolé je ne suis pas op sur $chan !"
  1558. return
  1559. }
  1560.  
  1561. if {[string match *!*@* $cible]} {
  1562. putquick "mode $chan +b $cible"
  1563. return
  1564. }
  1565. if {[progfile exempt icr [nick2hand $cible]]!="0"} {
  1566. putserv "notice $nick :Attention le Nick: \2$cible\2 est dans la liste des proteger."
  1567. return 0
  1568. }
  1569. if {[llength [getchanhost $cible]]!=0} {
  1570. set host [lindex [split [getchanhost $cible] @] 1]
  1571. putquick "mode $chan +b *!*@$host"
  1572. return
  1573. }
  1574. putquick "NOTICE $nick :Le pseudo $cible n'est pas sur un de mes salons, je ne peux récupérer son host !"
  1575. }
  1576.  
  1577. ######
  1578. # kick #
  1579. ######
  1580.  
  1581. bind MSG -|- kick proc:kick
  1582. proc proc:kick { nick uhost hand arg } {
  1583. global auth
  1584. set chan [lindex $arg 0]
  1585. set cible [lindex $arg 1]
  1586. set pseudo [lindex [split $nick |] 0]
  1587. if {![validuser $pseudo]} {
  1588. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  1589. return
  1590. }
  1591.  
  1592. if {![isauth $hand]} {
  1593. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  1594. return
  1595. }
  1596.  
  1597. if {![string match #* [lindex $arg 0]]} {
  1598. putquick "NOTICE $nick :Syntaxe incorrecte ! ( /msg $botnick kick <#salon> (pseudo(s)) )"
  1599. return
  1600. }
  1601.  
  1602. if {![validchan [lindex $arg 0]]} {
  1603. putquick "NOTICE $nick :Désolé le salon n'est pas un salon enregistré !"
  1604. return
  1605. }
  1606.  
  1607. if {![matchattr $hand |o $chan]} {
  1608. putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'exécution de cette commande ( Opérateur sur $chan requis.) !"
  1609. return
  1610. }
  1611.  
  1612. if {![onchan $nick [lindex $arg 0]]} {
  1613. putquick "NOTICE $nick :Vous n'êtes pas sur [lindex $arg 0] !"
  1614. return
  1615. }
  1616.  
  1617. if {![botonchan [lindex $arg 0]]} {
  1618. putquick "NOTICE $nick :Désolé je me trouve actuellement pas sur le salon demandé !"
  1619. return
  1620. }
  1621.  
  1622. if {![botisop [lindex $arg 0]]} {
  1623. putquick "NOTICE $nick :Désolé je ne suis pas op sur $chan !"
  1624. return
  1625. }
  1626.  
  1627. if {![onchan $cible $chan]} {
  1628. putquick "NOTICE $nick :Le pseudo [lindex $arg 1] n'est pas sur [lindex $arg 0] !"
  1629. return
  1630. }
  1631.  
  1632. if {[progfile exempt icr [nick2hand [lindex $arg 1]]]!="0"} {
  1633. putserv "notice $nick :Attention le Nick: \2[lindex $arg 1]\2 est dans la liste des proteger."
  1634. return 0
  1635. }
  1636.  
  1637. if {![onchan [join [lindex $arg 1]] [lindex $arg 0]]} {
  1638. putquick "kick [lindex $arg 0] [lindex $arg 1] :Vous venez d'être kické par $nick !"
  1639. return
  1640. }
  1641.  
  1642. if {[lindex $arg 2] !=""} {
  1643. putquick "kick [lindex $arg 0] [lindex $arg 1] :[join [lrange $arg 2 end]]"
  1644. return
  1645. }}
  1646.  
  1647. #######
  1648. # Unban #
  1649. #######
  1650.  
  1651. bind msg -|- unban proc:unban
  1652. proc proc:unban { nick uhost hand arg } {
  1653. global auth
  1654. set chan [lindex $arg 0]
  1655. set pseudo [split $nick |]
  1656. if {![validuser [lindex $pseudo 0]]} {
  1657. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  1658. return
  1659. }
  1660.  
  1661. if {![isauth $hand]} {
  1662. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  1663. return
  1664. }
  1665.  
  1666. if {![matchattr $hand |o $chan]} {
  1667. putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'exécution de cette commande ( Opérateur sur $chan requis.) !"
  1668. return
  1669. }
  1670.  
  1671. if {![string match #* [lindex $arg 0]]} {
  1672. putquick "NOTICE $nick :Syntaxe : /msg $::botnick unban <#salon> <host>"
  1673. return
  1674. }
  1675.  
  1676. if {[string match *!*@* [lindex $arg 1]]} {
  1677. putquick "mode $chan -b [lindex $arg 1]"
  1678. return
  1679. }
  1680.  
  1681. if {[llength [getchanhost [lindex $arg 0]]]!=0} {
  1682. set host [lindex [split [getchanhost [lindex $arg 0]] @] 1]
  1683. putquick "mode $chan -b *!*@$host"
  1684. return
  1685. }}
  1686.  
  1687. ########
  1688. # Kickban #
  1689. ########
  1690.  
  1691. bind msg -|- kickban proc:kickban
  1692. proc proc:kickban { nick uhost hand arg } {
  1693. global auth
  1694. set chan [lindex $arg 0]
  1695. set pseudo [split $nick |]
  1696. if {![validuser [lindex $pseudo 0]]} {
  1697. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  1698. return
  1699. }
  1700.  
  1701. if {![isauth $hand]} {
  1702. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  1703. return
  1704. }
  1705.  
  1706. if {![matchattr $hand |o $chan]} {
  1707. putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'exécution de cette commande ( Opérateur sur $chan requis.) !"
  1708. return
  1709. }
  1710.  
  1711. if {![string match #* [lindex $arg 0]]} {
  1712. putquick "NOTICE $nick :Syntaxe : /msg $::botnick kickban <#salon> <pseudo> <raison>"
  1713. return
  1714. }
  1715.  
  1716. if {[progfile exempt icr [nick2hand [lindex $arg 1]]]!="0"} {
  1717. putserv "notice $nick :Attention le Nick: \2[lindex $arg 1]\2 est dans la liste des proteger."
  1718. return 0
  1719. }
  1720.  
  1721. if {[llength [getchanhost [lindex $arg 1]]]!=0} {
  1722. set host [lindex [split [getchanhost [lindex $arg 1]] @] 1]
  1723. putquick "mode $chan +b *!*@$host"
  1724. putquick "kick [lindex $arg 0] [lindex $arg 1] :[join [lrange $arg 2 end]] (Exclu(e) de $chan"
  1725. return
  1726. }}
  1727.  
  1728. ################
  1729. # Clearban/Mode Chan #
  1730. ################
  1731.  
  1732. #########
  1733. # Clearban #
  1734. #########
  1735.  
  1736. bind PUB - .clearbans clearbans
  1737. proc clearbans { nick uhost hand chan text } {
  1738. global auth
  1739. set pseudo [split $nick |]
  1740. if {![validuser [lindex $pseudo 0]]} {
  1741. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  1742. return
  1743. }
  1744.  
  1745. if {![isauth $hand]} {
  1746. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  1747. return
  1748. }
  1749.  
  1750. if {![matchattr $hand |m $chan]} {
  1751. putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'exécution de cette commande ( Master sur $chan requis.) !"
  1752. return
  1753. }
  1754.  
  1755. foreach xunban [chanbans $chan] {
  1756. putquick "mode $chan -b [lindex $xunban 0]"
  1757. }}
  1758.  
  1759. ######
  1760. # Mode #
  1761. ######
  1762.  
  1763. bind PUB - .mode mod
  1764. proc mod { nick uhost hand chan text } {
  1765. global auth
  1766. set pseudo [split $nick |]
  1767. if {![validuser [lindex $pseudo 0]]} {
  1768. putquick "NOTICE $nick :Vous n'avez aucun access dans $::botnick !"
  1769. return
  1770. }
  1771.  
  1772. if {![isauth $hand]} {
  1773. putquick "NOTICE $nick :Veuillez vous identifier au préalable ! ( /msg $::botnick auth <pseudo> <pass> )"
  1774. return
  1775. }
  1776.  
  1777. if {$text!=""} {
  1778. if {![matchattr $hand |m $chan]} {
  1779. putquick "NOTICE $nick :Vous n'avez pas les droits nécessaires à l'exécution de cette commande ( Master sur $chan requis.) !"
  1780. return
  1781. }
  1782. putquick "mode $chan $text"
  1783. }}
  1784.  
  1785. ###########
  1786. # Notice-Chan #
  1787. ##########
  1788.  
  1789. bind notc - * nonotice_chanoff
  1790. proc nonotice_chanoff { nick host hand text dest } {
  1791. global botnick
  1792. if ("$nick"=="")||("$dest"=="$botnick") {return 0}
  1793. if [validuser [finduser $nick!*@*]]&&[matchattr $hand |o $dest] {return 0}
  1794. if [isop $nick $dest]||[isvoice $nick $dest] {return 0}
  1795. if ![botisop $dest] {return 0}
  1796. if [string match -nocase niubot?? $nick] {return 0}
  1797. set host [lindex [split $host @] 1]
  1798. putquick "mode $dest +b *!*@$host"
  1799. putquick "kick $dest $nick :~ Exp/Notice-Chan ~ Pas de notice salon svp"
  1800. }
  1801.  
  1802. #####
  1803. # Help #
  1804. #####
  1805.  
  1806. bind msg - help proc:help
  1807. proc proc:help { nick host hand arg } {
  1808. set commande [lindex $arg 1]
  1809. set commande [stripcodes abcu [lindex $arg 0]]
  1810. if {$commande == ""} {
  1811. putserv "privmsg $nick :\00314Commande Help du Robot \002\0034$::botnick\002\0034"
  1812. putserv "privmsg $nick :"
  1813. foreach c [channels] {
  1814. if [matchattr $hand |o $c] {
  1815. putserv "privmsg $nick :\0031\037Level \002Opérateur\002 :\0037"
  1816. putserv "privmsg $nick :"
  1817. putserv "privmsg $nick :\00314Auth : \0034Permet de vous identifer auprès du Robot $::botnick en MSG !"
  1818. putserv "privmsg $nick :\00314Op : \0034Permet de te mettre Opérateur \0031(\00312@\0031) \0034 ou de deop sur le salon ou en MSG. et pour le faire sur quelqun aussi !"
  1819. putserv "privmsg $nick :\00314Deop : \0034Permet de te mettre Deop \0031(\00312-@\0031) \0034 sur le salon ou en MSG. et pour le faire sur quelqun aussi !"
  1820. putserv "privmsg $nick :\00314Voice : \0034Permet de te mettre voice \0031(\0033+v\0031) \0034 sur le salon ou en MSG. et pour le faire sur quelqun aussi !"
  1821. putserv "privmsg $nick :\00314Devoice : \0034Permet de te mettre Devoice \0031(\0033-v\0031) \0034 sur le salon ou en MSG. et pour le faire sur quelqun aussi !"
  1822. putserv "privmsg $nick :\00314Kick : \0034Permet de Kick quelqun sur le salon ou en MSG !"
  1823. putserv "privmsg $nick :\00314Kickban : \0034Permet de Kickban quelqun sur le salon ou en MSG !"
  1824. putserv "privmsg $nick :\00314Ban : \0034Permet de Ban quelqun sur le salon ou en MSG !"
  1825. putserv "privmsg $nick :\00314Unban : \0034Permet de Unban quelqun sur le salon ou en MSG !"
  1826. putserv "privmsg $nick :\00314Access : \0034Permet de regarder la liste d'acces en MSG !"
  1827. putserv "privmsg $nick :\00314Deauth : \0034Permet de vous désauthentifer auprès du Robot $::botnick en MSG !"
  1828. putserv "privmsg $nick :"
  1829. break
  1830. }}
  1831. foreach c [channels] {
  1832. if [matchattr $hand |m $c] {
  1833. putserv "privmsg $nick :\0031\037Level \002Master\002 :\037"
  1834. putserv "privmsg $nick :"
  1835. putserv "privmsg $nick :\00314Addop : \0034Permet de mettre un user Opérateur sur un salon défini en MSG !"
  1836. putserv "privmsg $nick :\00314Addmaster : \0034Permet de mettre un user ou un Opérateur d'un salon le level Master en MSG !"
  1837. putserv "privmsg $nick :\00314Addowner : \0034Permet de mettre un user ou Opérateur ou un Master le level Owner en MSG !"
  1838. putserv "privmsg $nick :\00314Delop : \0034Permet de retiré le level Opérateur sur un salon défini en MSG !"
  1839. putserv "privmsg $nick :\00314Delmaster : \0034Permet de retiré le level Master sur un salon défini en MSG !"
  1840. putserv "privmsg $nick :\00314Delowner :\00314Permet de retiré le level Owner sur un salon défini en MSG !"
  1841. putserv "privmsg $nick :\00314Clearbans : \0034Permet de Clearbans tout les ban sur le salon !"
  1842. putserv "privmsg $nick :\00314Mode : \0034Permet de mettre ou retirer un Mode sur le salon !"
  1843.  
  1844. putserv "privmsg $nick :"
  1845. break
  1846. }}
  1847. foreach c [channels] {
  1848. if [matchattr $hand |n $c] {
  1849. putserv "privmsg $nick :\0031\037Level \002Owner\002 :\037"
  1850. putserv "privmsg $nick :\00314Blacklist : \0034Permet de mettre/retirer/regarder la Blacklist sur le salon !"
  1851. break
  1852. }}
  1853. putserv "privmsg $nick :"
  1854. putserv "privmsg $nick :\00314Exemple de commande a taper pour avoir de l'aide plus detailler\00314"
  1855. putserv "privmsg $nick :\0034/msg $::botnick help op\0034"
  1856. putserv "privmsg $nick :"
  1857. putserv "privmsg $nick :\0031\037\002Fin du Help !\002"
  1858. break
  1859. }
  1860. switch -- $commande {
  1861. "op" {
  1862. puthelp "privmsg $nick :\00314Commande Op Chan : \0034.op \0031ou \0034.op <pseudo>"
  1863. puthelp "privmsg $nick :\00314Commande Op Msg : \0034/msg $::botnick op <#salon> \0031ou \0034/msg $::botnick op <#salon> <pseudo>"
  1864. }
  1865. "deop" {
  1866. puthelp "privmsg $nick :\00314Commande Deop Chan : \0034.deop \0031ou \0034.deop <pseudo>"
  1867. puthelp "privmsg $nick :\0031Commande Deop Chan : \0034/msg $::botnick deop <#salon> \0031ou \0034/msg $::botnick deop <#salon> <pseudo>"
  1868. }
  1869. "voice" {
  1870. puthelp "privmsg $nick :\00314Commande Voice Chan : \0034.voice \0031ou \0034.voice <pseudo>"
  1871. puthelp "privmsg $nick :\00314Commande Voice Msg : \0034/msg $::botnick <voice> <#salon> \0031ou \0034/msg $::botnick <voice> <#salon> <pseudo>"
  1872. }
  1873. "devoice" {
  1874. puthelp "privmsg $nick :\00314Commande Devoice Chan : \0034.devoice \0031ou \0034.devoice <pseudo>"
  1875. puthelp "privmsg $nick :\00314Commande Devoice Msg : \0034/msg $::botnick <devoice> <#salon> \0031ou \0034/msg $::botnick devoice <#salon> <pseudo>"
  1876. }
  1877. "kick" {
  1878. puthelp "privmsg $nick :\00314Commande Kick Chan : \0034.kick <pseudo> \0031ou \0034.kick <pseudo> <raison>"
  1879. puthelp "privmsg $nick :\00314Commande Kick Msg : \0034/msg $::botnick kick <#salon> <pseudo> \0031ou \0034/msg $::botnick kick <#salon> <pseudo> <raison>"
  1880. }
  1881. "kickban" {
  1882. puthelp "privmsg $nick :\00314Commande Kickban Chan : \0034.kickban <pseudo> \0031ou \0034.kickban <pseudo> <raison>"
  1883. puthelp "privmsg $nick :\00314Commande Kickban Msg : \0034/msg $::botnick kickban <#salon> <pseudo> \0031ou \0034/msg $::botnick kickban <#salon> <pseudo> <raison>"
  1884. }
  1885. "ban" {
  1886. puthelp "privmsg $nick :\00314Commande Ban Chan : \0034.ban <pseudo> \0031ou \0034.ban <host>"
  1887. puthelp "privmsg $nick :\00314Commande Ban Msg : \0034/msg $::botnick ban <#salon> <host>"
  1888. }
  1889. "unban" {
  1890. puthelp "privmsg $nick :\00314Commande Unban Chan : \0034.unban <pseudo> \ou \0034.unban <host>"
  1891. puthelp "privmsg $nick :\00314Commande Unban Msg : \0034/msg $::botnick unban <#salon> <host>"
  1892. }
  1893. "access" {
  1894. puthelp "privmsg $nick :\00314Commande Access Msg : \0034/msg $::botnick access <#salon> * \0031ou \0034/msg $::botnick access <#salon> al* \0037Ceci et un exemple le al* cherchera tout les access ayant dans le pseudo (al)"
  1895. }
  1896. "addop" {
  1897. puthelp "privmsg $nick :\00314Commande Addop Msg : \0034/msg $::botnick addop <pseudo> <#salon>"
  1898. }
  1899. "addmaster" {
  1900. puthelp "privmsg $nick :\00314Commande Addmaster Msg : \0034/msg $::botnick addmaster <pseudo> <#salon>"
  1901. }
  1902. "addowner" {
  1903. puthelp "privmsg $nick :\00314Commande Addowner Msg : \0034/msg $::botnick addowner <pseudo> <#salon>"
  1904. }
  1905. "delop" {
  1906. puthelp "privmsg $nick :\00314Commande Delop Msg : \0034 /msg $::botnick delop <pseudo> <#salon>"
  1907. }
  1908. "delmaster" {
  1909. puthelp "privmsg $nick :\00314Commande Delmaster Msg : \0034/msg $::botnick delmaster <pseudo> <#salon>"
  1910. }
  1911. "delowner" {
  1912. puthelp "privmsg $nick :\00314Commande Delowner Msg :\0034/msg $::botnick delowner <pseudo> <#salon>"
  1913. }
  1914. "clearbans" {
  1915. puthelp "privmsg $nick :\00314Commande Clearbans Chan : \0034.clearbans"
  1916. }
  1917. "mode" {
  1918. puthelp "privmsg $nick :\00314Commande Mode Chan : \0034.mode <le-mode>"
  1919. }
  1920. "blacklist" {
  1921. puthelp "privmsg $nick :\00314Commande Blacklist Chan : \0034.blacklist\0031,\0034.+blacklist <pseudo>\0031,\0034.-blacklist <pseudo>"
  1922. }}}
  1923.  
  1924. ###########
  1925. # Anti-Mass-Hl #
  1926. ##########
  1927.  
  1928. bind pubm - * masshl
  1929. proc masshl { nick uhost hand chan text } {
  1930. set ::nbhl 0
  1931. if {[llength [chanlist $chan]] <= 4} {
  1932. return
  1933. }
  1934. set ::nbhl 0
  1935. foreach mot [join [regul $text]] {
  1936. if {[lsearch [join [chanlist $chan]] [join $mot]] != -1} {
  1937. incr ::nbhl 1
  1938. } }
  1939. if {[llength [chanlist $chan]] <= 6} {
  1940. if {$::nbhl >= [expr [llength [chanlist $chan]] - 2]} {
  1941. putserv "PRIVMSG $chan :Mass HL détecté !"
  1942. newchanban $chan *!$uhost $::botnick { Le Mass HL est interdit ! Vous êtes banni 5 minutes ! } 5
  1943. set ::nbhl 0
  1944. }
  1945. return
  1946. }
  1947.  
  1948. if {[llength [chanlist $chan]] <= 10} {
  1949. if {$::nbhl >= [expr [llength [chanlist $chan]] - 4]} {
  1950. putserv "PRIVMSG $chan :Mass HL détecté !"
  1951. newchanban $chan *!$uhost $::botnick { Le Mass HL est interdit ! Vous êtes banni 5 minutes ! } 5
  1952. set ::nbhl 0
  1953. }
  1954. } else {
  1955. if {$::nbhl >= 7} {
  1956. putserv "PRIVMSG $chan :Mass HL détecté !"
  1957. newchanban $chan *!$uhost $::botnick { Le Mass HL est interdit ! Vous êtes banni 5 minutes ! } 5
  1958. set ::nbhl 0
  1959. }}}
  1960.  
  1961. proc regul {arg} {
  1962. set arg [stripcodes abcugr $arg]
  1963. regsub -all "" $arg "" arg
  1964. regsub -all "" $arg "" arg
  1965. regsub -all "" $arg "" arg
  1966. regsub -all "" $arg "" arg
  1967. regsub -all "" $arg "" arg
  1968. regsub -all "" $arg "" arg
  1969. regsub -all "" $arg "" arg
  1970. regsub -all {"} {$arg} "" arg
  1971. set arg [stripcodes abcugr $arg]
  1972. return $arg
  1973. }
  1974.  
  1975. #########
  1976. # Animation #
  1977. #########
  1978.  
  1979. proc regul {arg} {
  1980. set arg [stripcodes abcugr $arg]
  1981. regsub -all "" $arg "" arg
  1982. regsub -all "" $arg "" arg
  1983. regsub -all "" $arg "" arg
  1984. regsub -all "" $arg "" arg
  1985. regsub -all "" $arg "" arg
  1986. regsub -all "" $arg "" arg
  1987. regsub -all "" $arg "" arg
  1988. set arg [stripcodes abcugr $arg]
  1989. return $arg
  1990. }
  1991.  
  1992. bind EVNT - init-server proc:initjeu
  1993. proc proc:initjeu { type } {
  1994.  
  1995. #### salon sur lequel se déroule le jeu #####
  1996.  
  1997. set ::salon "#Trip"
  1998.  
  1999. #############################################
  2000.  
  2001. #### temps minimum entre deux phrases #####
  2002.  
  2003. set ::temps "30"
  2004.  
  2005. ########################
  2006.  
  2007. #### temps aléatoire max à ajouter au temps minimum ####
  2008.  
  2009. set ::add_temps "5"
  2010.  
  2011. ############################################
  2012.  
  2013. #### Phrases à faire répéter #####
  2014.  
  2015.  
  2016. set ::phrases {
  2017.  
  2018. "Ne jamais monter sa tente quand son oncle n'est pas loin"
  2019. "Si t'es sincere, dessere les !"
  2020. "La virginité ...c'est comme une mouche sur le dos d'une vache, Un coup de queue ...et oupps!!!"
  2021. "Mieux vaut habiter une maison en L, qu'un chateau hanté!"
  2022. "COucou ça vaaaaaaaaa????"
  2023. "Je préfère de belles souris que Déborah"
  2024. "Si tu as la colique, evite de tousser"
  2025. "Quand l'orage gronde, le tempête"
  2026. "Des tresses à chien sont aussi ridicules que des Natacha"
  2027. "La boisson a été faite pour que même les laids baisent"
  2028. "C'est quand on a vu ta tête que l'on a inventé la cagoule !"
  2029. "tu peux PAS test!"
  2030. "Si une femme est paniquée, ca ne veut pas dire qu'elle cherche un homme"
  2031. "Mieux vaut rater un baiser, que baiser un raté"
  2032. "Le vin d'ici est meilleur que l'au delà"
  2033. "Un pinailleur n'est pas forcement un mari infidèle."
  2034. "Si tu n'as qu'une parole, ne la donne à personne"
  2035. "Le sexe masculin est ce qu'il y a de plus léger au monde ; une simple pensée le soulève !"
  2036. "Quand les dents se déchaussent on a mauvaise haleine"
  2037. "C'est parsque la vitesse de la lumière est supérieure à celle du son que certains hommes paraissent brillants avant d'avoir l'air con"
  2038. "Je suis pour l'égalité des sexes. Je prendrai moi-même les mesures"
  2039. "Si la violence ne règle rien c'est que tu ne frappe pas assez fort"
  2040. "Il ne faut pas boire au volant, il vaut mieux boire à la bouteille"
  2041. "les etudiants c'est comme le linge : quand il fait beau , ça seche"
  2042. "Noël au balcon, enrhumé comme un con."
  2043. "Si l'argent n'achète pas l'amour, ça facilite nettement les négociations"
  2044. "les profs c'est comme les éviers, plus c'est vieux plus c'est bouché"
  2045. "vaut mieux être bourré que con,ça dure moins longtemps."
  2046. "Tousse pour un, rhume pour tous !"
  2047. "Qui ne pète ni ne rote est voué à l'explosion."
  2048. "L'éternité, c'est long, surtout vers la fin"
  2049. "Il vaut mieux une grande propre qu'une petite salle"
  2050. "Evitez la langue de bois, ça laisse des échardes"
  2051. "Quéquette en Décembre, layette en Septembre"
  2052. "Qui boit sans soif vomira sans effort."
  2053. "Quand c'est la débandade chez les hommes, les femmes sont paniquées"
  2054.  
  2055. }
  2056.  
  2057. ############################################
  2058. ####### Fin de la config ###################
  2059.  
  2060. set ::active 0
  2061. }
  2062.  
  2063. bind pub -|o !active onn
  2064. proc onn { nick uhost hand chan arg } {
  2065. if [info exists ::active]&&($::active==1) {
  2066. putserv "PRIVMSG $::salon :Le jeu est déjà activé, veuillez d'abord le désactivé avant de le relancer !"
  2067. return
  2068. }
  2069. putserv "PRIVMSG $::salon :Le jeu est activé !"
  2070. active
  2071. }
  2072.  
  2073. bind pub -|o !inactive off
  2074. proc off { nick uhost hand chan arg } {
  2075. if ![info exists ::active]||($::active==0) {
  2076. putserv "PRIVMSG $::salon :Le jeu est déjà déactivé !"
  2077. return
  2078. }
  2079. putserv "PRIVMSG $::salon :Le jeu est désactivé !"
  2080. set ::active 0
  2081. foreach t [timers] {
  2082. if {[lindex $t 1] == " active "} {
  2083. killtimer [lindex $t 2]
  2084. }}}
  2085.  
  2086. proc active {} {
  2087. set ::active 1
  2088. set ::phrase [lindex $::phrases [rand [llength $::phrases]]]
  2089. set ::kickerz ""
  2090. set ::voicerz ""
  2091. putserv "PRIVMSG $::salon :KiKiDiiiiiit : \"$::phrase\" !?"
  2092. set ::act 1
  2093. timer [expr $::temps + [rand $::add_temps]] { active }
  2094. }
  2095.  
  2096. bind PUBM - * detect
  2097. proc detect { nick uhost hand chan text } {
  2098. if [info exists ::phrase]&&[info exists ::active]&&[info exists ::act] {
  2099. if { $::active eq 1 } {
  2100. if [string match -nocase *$::phrase* [regul $text]] {
  2101. if { [rand 10] <= 5 } {
  2102. set ::kickerz $nick
  2103. putserv "PRIVMSG $::salon :Bravo, $nick ! Tu as gagné le droit de kicker quelqu'un ! tape !kicker pseudo !"
  2104. unset ::act
  2105. return
  2106. }
  2107. set ::voicerz $nick
  2108. putserv "PRIVMSG $::salon :Bravo, $nick ! Tu as gagné le droit de voicer/devoicer quelqu'un ! tape !voicer ou !devoicer pseudo !"
  2109. unset ::act
  2110. }}}}
  2111.  
  2112. bind pub - !kicker kickerz
  2113. proc kickerz { nick uhost hand chan arg } {
  2114. if {[string tolower $chan] eq [string tolower $::salon]} {
  2115. if {$nick eq $::kickerz} {
  2116. putquick "kick $chan [lindex $arg 0] :Tu as été kické par $nick, le plus rapide du jeux KiKiDiiiiiit !"
  2117. set ::kickerz ""
  2118. }}}
  2119.  
  2120. bind pub - !voicer voicerz
  2121. proc voicerz { nick uhost hand chan arg } {
  2122. if {[string tolower $chan] eq [string tolower $::salon]} {
  2123. if {$nick eq $::voicerz} {
  2124. putquick "mode $chan +v [lindex $arg 0]"
  2125. putquick "NOTICE [lindex $arg 0] :Tu as été voicé par $nick, le plus rapide du jeux KiKiDiiiiiit !"
  2126. set ::voicerz ""
  2127. }}}
  2128.  
  2129. bind pub - !devoicer devoicerz
  2130. proc devoicerz { nick uhost hand chan arg } {
  2131. if {[string tolower $chan] eq [string tolower $::salon]} {
  2132. if {$nick eq $::voicerz} {
  2133. putquick "mode $chan -v [lindex $arg 0]"
  2134. putquick "NOTICE [lindex $arg 0] :Tu as été dévoicé par $nick, le plus rapide du jeux KiKiDiiiiiit !"
  2135. set ::voicerz ""
  2136. }}}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement