
ChristianEthics 9.0 Glory to His Holy Name.
_________________________________________________________________________
E-mail: ChristianEthics2@yahoo.ca 
Messenger: ChristianEthics@hotmail.com 
Home page: http://ca.geocities.com/christianethics2
Message Board: http://groups.yahoo.com/group/ChristianEthics_BibleBotDownloadZone/
__________________________________________________________________________
-Non-Subscriber Kicks
October 2004
It can be set to kick all non-subscribers or only guest non-subscribers.

-Guest Kicks and Flood Protection Pack including knocks flood protection.
Noveber 2004 
credit to soul_on_fire for all the help in suggestions, testing and re-coding. Thankyou! :)

1) It can be set to ban all guests yet allow all webtv guests entry (instead of kicking all guests)
-using this method it auto removes the webtv entry to effectively ban all guests for 30 seconds 
after each guest join.
-When guest flood is detected it will remove webtv access, to prevent more flooding.

2) or It can be set to kick all Guests or only non-webtv Guests. (instead of banning them)
-using this method it auto bans all guests for one minute after each guest join, to avoid guest floods.
-When guest flood is detected it will ban all guests for one minute, to prevent more flooding.

*Its set to either remove webtv access or add guest ban when any manual guest kick is done, to prevent
those webtv guests from just auto re-joining immediately.

3) Invite only lock down mode?

________________________________________________________________________

*Do not edit this file.
__________________________________________________________________________
on ^*:JOIN:#:{
  if (> isin $nick) && ($me isin $nick) { 
    sockwrite -tn msn.server. $+ $cid kick $msn.get($cid,fullroom) $nick %guestkickkick 
    sockwrite -tn msn.server. $+ $cid access $msn.get($cid,fullroom) delete VOICE >*!*D21DB211*@*$*
    sockwrite -tn msn.server. $+ $cid access $msn.get($cid,fullroom) add deny $nick 0 Guest-Ban-Flood-Clone-Protection.
  }
  if ($nick == $me) && (%guestkickban.all = On) { 
    sockwrite -tn msn.server. $+ $cid access $msn.get($cid,fullroom) delete GRANT >*!*D21DB211*@*$*
    sockwrite -tn msn.server. $+ $cid access $msn.get($cid,fullroom) add VOICE >*!*D21DB211*@*$* 0 WebTV-Access-Flood-Pack  
    sockwrite -tn msn.server. $+ $cid access $msn.get($cid,fullroom) add DENY >*!*@*$* 0 Guest-Flood-Pack
    /msg $chan WebTV access and guest ban activated as part of CE Flood Protection Pack. Only Webtv Guests are able to join your room, the script using guests are banned.
  }

  if ($me isop $chan) {
    ;if ($nick = $me) halt 
    if (> isin $nick) { .inc -u2 %guestflood.number    
      if (%guestflood.name = $null) /set -u15 %guestflood.name $nick
      if (%guestflood.name != $null) && (%2guestflood.name = $null) /set -u15 %2guestflood.name $nick
      if (%guestflood.name != $null) && (%2guestflood.name != $null) && (%3guestflood.name = $null) /set -u15 %3guestflood.name $nick
      if (%guestflood.name != $null) && (%2guestflood.name != $null) && (%3guestflood.name = $null) && (%4guestflood.name = $null) /set -u15 %4guestflood.name $nick
      if (%guestflood.number = 2) { 
        sockwrite -tn msn.server. $+ $cid kick $msn.get($cid,fullroom) %guestflood.name : You were caught in the cross fire of a flood attack.    
        sockwrite -tn msn.server. $+ $cid kick $msn.get($cid,fullroom) %2guestflood.name : You were caught in the cross fire of a flood attack.    
        sockwrite -tn msn.server. $+ $cid kick $msn.get($cid,fullroom) %3guestflood.name : You were caught in the cross fire of a flood attack.    
        sockwrite -tn msn.server. $+ $cid kick $msn.get($cid,fullroom) %4guestflood.name : You were caught in the cross fire of a flood attack.    
      }  
      if (%placegueststopper != On) {     
        if (%guestkickban.all = On) {
          sockwrite -tn msn.server. $+ $cid access $msn.get($cid,fullroom) delete VOICE >*!*D21DB211*@*$*
          set %webtvaccessbackonroom $chan
          .timerwebtvaccessbackon 1 30 /webtvaccessbackon 
        }
        if (%guestkickban.all = On)  { sockwrite -tn msn.server. $+ $cid access $msn.get($cid,fullroom) add DENY >*!*@*$* 0 Guest-Flood-Pack      
        }
        set -u25 %placegueststopper On 
      }
      if (%guestkickkick = $null) { %guestkickkick = Guest-Kick 
      }
      if (%guestkick.gu = On) && (>* iswm $nick) && (D21DB211 !isin $address) { 
        /set -u20 %guestkick.all On
        sockwrite -tn msn.server. $+ $cid kick $msn.get($cid,fullroom) $nick %guestkickkick 
      } 

      if (%guestkick.all = On) && (>* iswm $nick) { 
        sockwrite -tn msn.server. $+ $cid kick $msn.get($cid,fullroom) $nick %guestkickkick
      } 
    }
    /set -u5 %lastjoin $nick 
    if (%nonsubkick.gu = On) && (>* iswm $nick) &&  ($me isop $chan) { 
      /set -u5 %lastjoin2 $nick
    }
    if (%addfloodprotection = On) {
      if (%2lockdownstopper = On) { halt }
      if (%setnonsubkicks != $null) { /2.lockdown }
      /set %2lockdownstopper On
    }

  }
}

on *:KICK:*: {  
  if (>* iswm $nick) && (%placegueststopper != On) {   
    if (%guestkickban.all = On) {
      sockwrite -tn msn.server. $+ $cid access $msn.get($cid,fullroom) delete VOICE >*!*D21DB211*@*$*
      set %webtvaccessbackonroom $chan
      .timerwebtvaccessbackon 1 60 /webtvaccessbackon 
    }
    if (%guestkickban.all != On) { sockwrite -tn msn.server. $+ $cid access $msn.get($cid,fullroom) add DENY >*!*@*$* 0 Guest-Flood-Pack      
    }

    set -u25 %placegueststopper On 
  }
}
on *:NICK: {  if (%nicknameflood = On) { 
    if (%nickkickergo = On) { 
    sockwrite -tn msn.server. $+ $cid kick $msn.get($cid,fullroom) $$1 }
    if (%nickfloodstopper = On) { halt }
    sockwrite -tn msn.server. $+ $cid mode $msn.get($cid,fullroom) +i
    /set -u350 %4.lockdown.chan $msn.get($cid,fullroom)
    /msg $msn.get($cid,fullroom) Lock Down Mode 5: Flooder Threat.  
    .timer.flooder 1 300 /4.Lock-Down-Over 
    /set -u290 %nickfloodstopper On
    /set -u270 %nickkickergo On
  }
}
;---mode commands
on *:Mode:#: { 
  if (%knocksflood = On) {
    If (+u isin $1-) /timerknocksflood off 
  }
  if (%nicknameflood = On) {
    If (-i isin $1-) {
      unset %nickfloodstopper
      unset %nickkickergo
      unset %2lockdownstopper 
      /timer.flooder stop
      echo $color(highlight text) -at Lock Down Over: invite only mode has been removed.  
    }
  }
  if (%nicknameflood != On) && (%nonsubkick.gu = On) {
    If (-i isin $1-) /timer.flooder stop 
    unset %nickfloodstopper
    unset %nickkickergo
    unset %2lockdownstopper
    echo $color(highlight text) -at Lock Down Over: invite only mode has been removed. 
  }
  if (%nicknameflood != On) && (%nonsubkick.all = On) {
    If (-i isin $1-) /timer.flooder stop 
    echo $color(highlight text) -at Lock Down Over: invite only mode has been removed. 
    unset %nickfloodstopper
    unset %nickkickergo
    2lockdownstopper
  }
}

;---raw commands


raw KNOCK:*: { if (%knocksflood = On) { 
    inc -u15 %setknock [ $+ [ $msn.get($cid,fullroom) ] ] 
    if (%setknock [ $+ [ $msn.get($cid,fullroom) ] ] == 3) sockwrite -tn msn.server. $+ $cid mode $msn.get($cid,fullroom) -u
    if (%setknock [ $+ [ $msn.get($cid,fullroom) ] ] == 3) /set -u25 %guestkick.all On
    if (%setknock [ $+ [ $msn.get($cid,fullroom) ] ] == 3) .timerknocksflood 1 60 /knocks
    /set -u300 %knocks.chan $msn.get($cid,fullroom) 
    if (%setknock [ $+ [ $msn.get($cid,fullroom) ] ] == 3) /msg $msn.get($cid,fullroom) Knocks turned off for 1 minute: Knocks Flood Prevention.
    if (%setknock [ $+ [ $msn.get($cid,fullroom) ] ] == 3) sockwrite -tn msn.server. $+ $cid kick $msn.get($cid,fullroom) %guestflood.name : You were caught in the cross fire of a flood attack.    
    if (%setknock [ $+ [ $msn.get($cid,fullroom) ] ] == 3) sockwrite -tn msn.server. $+ $cid kick $msn.get($cid,fullroom) %2guestflood.name : You were caught in the cross fire of a flood attack.    
    if (%setknock [ $+ [ $msn.get($cid,fullroom) ] ] == 3) sockwrite -tn msn.server. $+ $cid kick $msn.get($cid,fullroom) %3guestflood.name : You were caught in the cross fire of a flood attack.    
    if (%setknock [ $+ [ $msn.get($cid,fullroom) ] ] == 3) sockwrite -tn msn.server. $+ $cid kick $msn.get($cid,fullroom) %4guestflood.name : You were caught in the cross fire of a flood attack.    
  }
}

raw 908:*: {  if ($me isop $chan) && (%nicknameflood = On) {
    if (%4.floodstopper = On) { halt }
    .inc -u4 %4.floodprot 
    if (%4.addfloodprotection = On) { 
      /set -u120 %4.floodstopper On 
      if (%4.floodprot != $null) { /4.lockdown }
    }
  }
}
raw 908:*: { .inc -u4 %setnonsubkicks 
  if (%lastjoin != $null) && (%nonsubkick.gu = On) && (%lastjoin = %lastjoin2) { 
    if ($me isop $comchan(%lastjoin,1)) { 
      if (%nonsubkick = $null) %nonsubkick = Non-Subscriber   
      sockwrite -tn msn.server. $+ $cid access $comchan(%lastjoin,1) add deny *! $+ $$ial(%lastjoin $+ *,1).addr %nonsubban Non-subscriber-guestonly-kick
      /kick $comchan(%lastjoin,1) %lastjoin $($replace(%nonsubkick,$nick,$chr(37) $+ lastjoin),2) $iif(%nonsubban isnum,(Ban set for %nonsubban minute(s)))
    } 
  }
  if (%lastjoin != $null) && (%nonsubkick.all = On)  { 
    if ($me isop $comchan(%lastjoin,1)) { 
      if (%nonsubkick = $null) %nonsubkick = Non-Subscriber
      sockwrite -tn msn.server. $+ $cid access $comchan(%lastjoin,1) add deny *! $+ $$ial(%lastjoin $+ *,1).addr %nonsubban Non-subscriber-guestonly-kick
      /kick $comchan(%lastjoin,1) %lastjoin $($replace(%nonsubkick,$nick,$chr(37) $+ lastjoin),2) $iif(%nonsubban isnum,(Ban set for %nonsubban minute(s)))

    } 
  }
}

;---aliases
alias 4.Lock-Down-Over { 
  /mode %4.lockdown.chan -i  
  /msg %4.lockdown.chan Lock-Down-Over 

}
alias 4.lockdown { 
  /mode $msn.get($cid,fullroom) +i 
  /set -u120 %4.lockdown.on On
  /set %4.lockdown.chan $msn.get($cid,fullroom)
  /msg $msn.get($cid,fullroom) Room Put Into Lock Down Mode 2: Flooder Threat. 
  .timer.flooder 1 120 /4.Lock-Down-Over 
}
alias knocks { /mode %knocks.chan +u | /msg $msn.get($cid,fullroom) Room -at Knocks turned on Flood 0ver
}

alias 7.Lock-Down-Over { 
  /mode %2.lockdown.chan -i 
  echo $color(highlight text) -at Lock Down Over: invite only mode has been removed. 
  /msg %2.lockdown.chan Lock-Down-Over 
}
alias webtvaccessbackon { 
  sockwrite -tn msn.server. $+ $cid access $msn.get($cid,fullroom) add VOICE >*!*D21DB211*@*$* 0 WebTV-Access-Flood-Pack  
  sockwrite -tn msn.server. $+ $cid access $msn.get($cid,fullroom) add DENY >*!*@*$* 0 Guest-Flood-Pack
  sockwrite -tn msn.server. $+ $cid access $msn.get($cid,fullroom) delete GRANT >*!*D21DB211*@*$*
}
alias guestkickban.set { 
  set %guestkickban $$?="SET BAN TIME FOR GUEST KICK. [Note: ban time is in minutes (24 Hours is 1440 Minutes) or use [0] for indefinite ban.] The current ban set in minutes is: %guestkickban " | /splay notify.wav 
  echo $color(highlight text) -at Ban Set: %guestkickban
}
alias guestkickkick.set { 
  set %guestkickkick $$?="Enter message for Guest kick:" | /splay notify.wav 
  echo $color(highlight text) -at Message: %guestkickkick
}
alias nonsubban.set { 
  set %nonsubban $$?="SET BAN TIME FOR NON-SUBSCRIBER KICK. [Note: ban time is in minutes (24 Hours is 1440 Minutes) or use [0] for indefinite ban.] The current ban set in minutes is: %nonsubban " | /splay notify.wav 
  echo $color(highlight text) -at Ban Set: %nonsubban
}
alias nonsubkick.set { 
  set %nonsubkick $$?="Enter message for non-subscriber kick:" | /splay notify.wav 
  echo $color(highlight text) -at Message: %nonsubkick
}
alias 2.lockdown { 
  sockwrite -tn msn.server. $+ $cid mode $msn.get($cid,fullroom) +i
  /set -u300 %2.lockdown.on On
  /set %2.lockdown.chan $msn.get($cid,fullroom)
  /msg $msn.get($cid,fullroom) Room Put Into Lock Down Mode 2: Flooder Threat. 
  .timer.flooder 1 180 /2.Lock-Down-Over  
}
alias 2.Lock-Down-Over { 
  /mode %2.lockdown.chan -i  
  /msg %2.lockdown.chan Lock-Down-Over 
}

;---load commands

on *:LOAD: {  
  /splay notify.wav
}
on *:UNLOAD: { /unset %guestkick.gu  | /unset %guestkick.all  | /unset %placeguestban | /splay unload.wav | /echo $color(highlight text) -at [Guest kicks off.]
}


;---menus

menu menubar { 
  -
  $iif(%guestkick.gu == On,$style(1)) $iif(%guestkick.all == On,$style(1)) $iif(%placeguestban == On,$style(1)) $+ Guest Kick and Flood Protection
  .$iif(%guestkickban.all = On,$style(1)) Guest ban and webtv access method
  ..On: /set %guestkickban.all On
  ..-
  ..Off: /unset %guestkickban.all 
  ..-
  ..Info: { /echo $color(highlight text) -at [Guest Ban and Webtv Access System Info] 
    /echo $color(highlight text) -at This is the most effective way to protect your room from flooders.
    /echo $color(highlight text) -at 1) This method places a full guest ban into your access list - effectively banning all guest flooders from your room
    /echo $color(highlight text) -at 2) Then, it places a webtv access entry into your access list - which gives webtv people the ability to bypass the full guest ban, and join your room
    /echo $color(highlight text) -at 3) To ban webtv people, you will have to make sure that the webtv access(voice) entry is removed.
    /echo $color(highlight text) -at 4) In the event of a guest kick, the webtv access entry is auto removed for a few minutes, to deter the kicked webtv person from re-joining immediately.
    /echo $color(highlight text) -at 5) If you do not like this method, you might decided to simply attempt to kick all guests, or only non-webtv guests who enter your room.  
  } 
  .-
  .$iif(%guestkick.gu == On,$style(1)) $+ Kick Only Non-Webtv Guests : /set %guestkick.gu On | /unset %guestkick.all | /echo $color(highlight text) -at [All NON-WEBTV guests will be kicked.  Webtv users are safe.]
  .-
  .$iif(%guestkick.all == On,$style(1)) $+ Kick All Guests : /set %guestkick.all On | /unset %guestkick.gu | /echo $color(highlight text) -at [All Guests will be kicked. Including webtv users.]
  .-
  .Guest Kick Off: /unset %guestkick.all | /unset %guestkick.gu | echo $color(highlight text) -at [Guest kicks now off]
  .-
  .$iif(%placeguestban == On,$style(1)) $+ Guest Flood Protection On: /set %placeguestban On | /echo $color(highlight text) -at [Guest Flood Protection Enabled - guest ban set for one minute after each guest entry.]
  .-
  .Guest Flood Protection Off: /unset %placeguestban | /echo $color(highlight text) -at [Guest Flood Protection Off]
  .-
  .set kick message: /splay chimes.wav | guestkickkick.set | echo $color(highlight text) -at Message set: %guestkickkick
  -
  $iif(%knocksflood == On,$style(1)) $+ Knocks Flood Protection  
  .$iif(%knocksflood == On,$style(1)) $+ On: /set %knocksflood On | /msg $msn.get($cid,fullroom) Room -at Knocks Flood Prevention [ ON ]
  .-
  .Off: /unset %knocksflood  | /msg $msn.get($cid,fullroom) -at Knocks Flood Protection [ Off]
  -
  -
  $iif(%nicknameflood  == On,$style(1)) $iif(%4.addfloodprotection  == On,$style(1)) $+ NickName Changing Flooder Protection 
  .$iif(%nicknameflood  == On,$style(1)) On: /set %nicknameflood On | /echo $color(highlight text) -at [Nick Name Changing Flood Protection Turned On] 
  .-
  .Off: /unset %nicknameflood  | /echo $color(highlight text) -at [Nick Name Changing Flood Protection Turned Off]
  .-
  .$iif(%4.addfloodprotection  == On,$style(1)) $+ Non-Sub Flood Protection On: /set %4.addfloodprotection On | /echo $color(highlight text) -at [Extra Flood Protection On] | /echo $color(highlight text) -at After 
  .-
  .Non-Sub Flood Protection Off: /unset %4.addfloodprotection  | /echo $color(highlight text) -at [Extra Flood Protection Off] 
  -
  $iif(%nonsubkick.gu == On,$style(1)) $iif(%nonsubkick.all == On,$style(1)) $iif(%addfloodprotection == On,$style(1)) $+ Non-Sub Kick and Flood Protection
  .$iif(%nonsubkick.gu == On,$style(1)) $+ Kick Only Guest Non-Subs: /set %nonsubkick.gu On | /unset %nonsubkick.all | /echo $color(highlight text) -at [All Guest Non-Subscribers will be kicked when they join..webtv users exempt.]
  .-
  .$iif(%nonsubkick.all == On,$style(1)) $+ Kick All Non-Subs: /set %nonsubkick.all On | /unset %nonsubkick.gu | /echo $color(highlight text) -at [All Non-Subscribers will be kicked when they join.]
  .-
  .Non-Sub Kick Off: /unset %nonsubkick.all | /unset %nonsubkick.gu | echo $color(highlight text) -at [Non-Subscriber kicks now off]
  .-
  .$iif(%addfloodprotection == On,$style(1)) $+ Non-Sub Flood Protection On: set %addfloodprotection $=on On  | /echo $color(highlight text) -at [Extra Flood Protection Enabled - after 2 non-sub joins in less then 7 seconds room is placed in lockdown mode for 2 minutes.]
  .-
  .Non-Sub Flood Protection Off: unset %addfloodprotection |  /echo $color(highlight text) -at [Extra Flood Protection Off]
  .-
  .Set Kick Message: /splay chimes.wav | nonsubkick.set | echo $color(highlight text) -at Message set: %nonsubkick
  .-
  .Set Ban Time: /splay chimes.wav | nonsubban.set | echo $color(highlight text) -at Ban set: %nonsubban
  -
}
