Advertisement
LoveAbleElf

EvilNetKickBan.mrc

Sep 16th, 2017
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.04 KB | None | 0 0
  1. ; This is an automatic ban script for certain phrases
  2. on *;start:{
  3. asetup
  4. }
  5.  
  6. alias asetup {
  7. aecho AutomaticBan script is configuring...
  8. .ial on
  9. ; 1 hour
  10. set %global.bantime 1800
  11. set %global.banmask 1
  12.  
  13. aecho bantime is $duration(%global.bantime) [literal: %global.bantime $+ ]
  14. aecho banmask type is set to %global.banmask
  15. aecho Done.
  16. }
  17. alias aecho {
  18. echo -s [14[3autoscript14] $1-
  19. }
  20. ; Check if this user is exempt from being checked
  21. ; If the nickname is us, ignore
  22. ; if the address contains users.evilnet.org, ignore
  23. alias priv {
  24. var %chan = $1
  25. var %nick = $2
  26. var %addr = $3
  27. if (%addr == $null) {
  28. %addr = $address(%nick, 5)
  29. }
  30. if (%addr == $null) {
  31. aecho internal error, priv cannot find address for %nick
  32. return $true
  33. }
  34. var %level = $level(%addr)
  35.  
  36. ; purposefully returning false to test.
  37. if (%nick == slink) { return $false }
  38. if (%level > 1) { return $true }
  39. else if (%nick isop $chan) { return $true }
  40. else if (%nick isvoice %chan) { return $true }
  41. else if (%nick == $me) {
  42. return $true
  43. }
  44. elseif (*.users.evilnet.org iswm %addr) {
  45. return $true
  46. }
  47. else {
  48. return $false
  49. }
  50. }
  51. alias aaddress {
  52. return $gettok($address($1, 0), 2, 33)
  53. }
  54.  
  55. alias bannednick {
  56. if ($regex($1, /^[a-zA-Z]\d\d\d\d\d?$/) > 0) {
  57. return $true
  58. }
  59. return $false
  60. }
  61. on 1:join:#evilnet:{
  62. if ($priv($chan, $nick, $address) == $true) {
  63. return
  64. }
  65. if ($bannednick($nick) == $true) {
  66. aecho on_join: will ban $nick
  67. akban $chan $nick Flagged nickname.
  68. }
  69. }
  70.  
  71. ; Our automatic kickban command. It will ban the person first, then kick them after with the
  72. ; reason specified (or Unknown reason if not specified)
  73. ; It will ensure that the party we are trying to kick is NOT opped, NOT voiced, and does NOT contain
  74. ; users.evilnet.org
  75. alias akban {
  76. var %chan = $1
  77. var %nick = $2
  78. var %reason = $3-
  79. var %address $aaddress(%nick)
  80. ; If the user is privileged (opped, voiced, or users.evilnet.org), ignore.
  81. if ($priv(%chan, %nick, %address) == $true) {
  82. aecho akban: called on privileged user: chan= $+ %chan nick= $+ %nick reason= $+ %reason
  83. return
  84. }
  85. echo -ag kickbanning %chan %nick %reason
  86. if (%reason == $null) {
  87. %reason = Unknown reason.
  88. }
  89.  
  90. if ($me !isop %chan) {
  91. aecho akban called when I am not opped on %chan
  92. return
  93. }
  94. else if (%chan == $null) {
  95. aecho akban: channel and nickname are not set.
  96. }
  97. ban -u $+ %global.bantime %chan %nick %global.banmask
  98. .timer 1 3 kick %chan %nick %reason
  99. }
  100.  
  101. ; As an example for you if you want to write your own ban phrases.
  102. ; This will catch any etxt that contains bad, text, here, and ends with 111
  103.  
  104. ; wildcard example
  105. on *:text:*this*will*get*you*banned*if*these*words*are*in*it*:#:akban $chan $nick BAD.
  106.  
  107. ; Contains regexes and stuff.
  108. ; $ indicates a regular expression search
  109. on $*:text:/\b[a-zA-Z0-9]+\.onion\/\d+\b/:#:{
  110. akban $chan $nick Not allowed!
  111. }
  112. on *:text:/GET OFF THIS IRC WITH THESE LOSERS/:#:{
  113. akban $chan $nick Not allowed.
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement