Advertisement
LoveAbleElf

sticky ban

Dec 11th, 2020
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.14 KB | None | 0 0
  1. ; STICKYBANS v1.1 - by entropy 2020
  2.  
  3. ; Commands:
  4. ; /addban - bans all stickybans on active channel.
  5. ; /addsticky <ban1> <ban2> <ban3> etc... - adds to the stickybans list.
  6. ; /delsticky <ban1> <ban2> <ban3> etc... - deletes from the stickybans list.
  7. ; /liststicky - lists all stickybans.
  8. ; /clearsticky - clears the stickybans list.
  9.  
  10. ;========================================================= EVENTS
  11.  
  12. on @*:unban:#:{ if ($nick != ChanServ && $hget(stickybans,$banmask)) { mode # +b $banmask } }
  13.  
  14. on *:start:{
  15. if (!$hget(stickybans)) { hmake stickybans 100 }
  16. if ($isfile(stickybans.dat)) { hload stickybans stickybans.dat }
  17. }
  18. on *:exit:{
  19. if ($hget(stickybans)) {
  20. hsave -o stickybans stickybans.dat
  21. }
  22. }
  23.  
  24. ;========================================================= ALIASES
  25.  
  26. alias addban {
  27. var %a = 1, %b, %all
  28. while ($hget(stickybans,%a).item) {
  29. %b = $v1
  30. %all = %all %b
  31. inc %a
  32. }
  33. if ($me isop $active) { pushmodex $active $+(+,$str(b,$numtok(%all,32))) %all }
  34. }
  35. alias addsticky {
  36. ;/addsticky <ban1> <ban2> <ban3> etc...
  37. var %a = 1, %b, %f = 0
  38. while ($gettok($1-,%a,32)) {
  39. %b = $v1
  40. if (!$hget(stickybans,%b)) { inc %f | hadd -m stickybans %b $ctime }
  41. inc %a
  42. }
  43. echo $color(info) -tag * [STICKY] Added %f stickybans!
  44. }
  45. alias delsticky {
  46. ;/delsticky <ban1> <ban2> <ban3> etc...
  47. var %a = 1, %b, %f = 0
  48. while ($gettok($1-,%a,32)) {
  49. %b = $v1
  50. if ($hget(stickybans,%b)) { inc %f | hdel -m stickybans %b }
  51. inc %a
  52. }
  53. echo $color(info) -tag * [STICKY] Deleted %f stickybans!
  54. }
  55. alias clearsticky {
  56. ;/clearsticky
  57. if ($hget(stickybans)) { hfree stickybans | if ($isfile(stickybans.dat)) { .remove stickybans.dat } | echo $color(info) -tag * [STICKY] Ban list Cleared! }
  58. }
  59. alias liststicky {
  60. ;/liststicky
  61. var %a = 1, %b, %f = 0
  62. echo $color(info) -tag * [STICKY] List:
  63. while ($hget(stickybans,%a).item) {
  64. %b = $v1
  65. inc %f
  66. echo $color(info) -tag %f $+ ) %b
  67. inc %a
  68. }
  69. echo $color(info) -tag * [STICKY] List end.
  70. }
  71. alias -l pushmodex {
  72. if (-t* iswm $1) { var %time = $mid($1,3) , %count = 1 | tokenize 32 $2- }
  73. else { var %time = 0 , %count = 0 }
  74. var %modespl = $modespl , %chan = $1 , %modes = $2 , %parms = $3- , %x = 1 , %y = $len(%modes) , %lwhich = + , %which = + , %a , %b
  75. tokenize 44 $chanmodes
  76. var %t1 = $1 , %t2 = $nickmode $+ $2 , %t3 = $3 , %t4 = $4
  77. tokenize 32 %parms
  78. while (%x <= %y) {
  79. var %t = $mid(%modes,%x,1)
  80. if (%t isin +-) { var %lwhich = %which , %which = %t }
  81. else {
  82. if (%t isincs $gettok(%t1 %t2 %t3, 1- $pos(.-+, %which),32)) {
  83. var %b = %b $1
  84. tokenize 32 $2-
  85. }
  86. var %a = $+(%a,$iif(!%a || %lwhich != %which,%which),%t) , %lwhich = %which
  87. if ($len($remove(%a,+,-)) = %modespl) {
  88. if (!%time) { mode %chan %a %b }
  89. else { .timer -m 1 $calc(%time * %count) mode %chan %a %b }
  90. var %a = "" , %b = "", %count = %count + 1
  91. }
  92. }
  93. inc %x
  94. }
  95. if (%a) {
  96. if (!%time) { mode %chan %a %b }
  97. else { .timer -m 1 $calc(%time * %count) mode %chan %a %b }
  98. }
  99. }
  100. ;========================================================= EOF
  101.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement