Advertisement
Guest User

Untitled

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