alias ViewChCTCPSett {
  if (%ChCTCP.Enabled == Enabled) { echo -a 12 Channel Protection CTCP Settings Are Enabled To %ChCTCP.Punish To %ChCTCP.NoLines CTCPs In %ChCTCP.Secs Secs. }
  if (%ChCTCP.Enabled != Enabled) { echo -a 12 Channel Protection CTCP Settings Are NOT Enabled. }
}

ctcp 1:*:#: { 
  if (%ChCTCP.Enabled == Enabled) { 
    unset %ChCTCP.Var1 %ChCTCP.Var2 %ChCTCP.Var3 %ChCTCP.Var4

    :ChannelCTCP
    set %ChCTCP.Var1 $readini ChCTCP.ini $nick channel | if (%ChCTCP.Var1 == $null) { writeini ChCTCP.ini $nick channel $chan | writeini ChCTCP.ini $nick time $ctime | writeini ChCTCP.ini $nick penalties 1 | halt }
    set %ChCTCP.Var1 $readini ChCTCP.ini $nick time | set %ChCTCP.Var2 $ctime - %ChCTCP.Var1
    ;  echo -a %ChCTCP.Var2
    writeini ChCTCP.ini $nick channel $chan | writeini ChCTCP.ini $nick time $ctime | set %ChCTCP.Var3 $readini ChCTCP.ini $nick penalties | writeini ChCTCP.ini $nick penalties %ChCTCP.Var3
    if (%ChCTCP.Var2 > %ChCTCP.Secs) { writeini ChCTCP.ini $nick penalties 1 | goto ChannelCTCPExit }
    inc %ChCTCP.Var3 1 | writeini ChCTCP.ini $nick penalties %ChCTCP.Var3
    if (%ChCTCP.Var3 == %ChCTCP.NoLines) { 

      if (%ChCTCP.Punish == TempKickBan) { ban -u400 $chan $nick | timer801 1 2 { kick $chan $nick CTCP Flooding detected.. Automatic action 12 Temporary ban. | goto ChannelCTCPExit } }
      if (%ChCTCP.Punish == PermKickBan) { ban $chan $nick | timer801 1 2 { kick $chan $nick CTCP Flooding detected.. Automatic action 12 Permanent ban. | goto ChannelCTCPExit } }
      if (%ChCTCP.Punish == KickOnly) { kick $chan $nick CTCP Flooding detected.. Automatic action 12 kick-warning. | goto ChannelCTCPExit }
      if (%ChCTCP.Punish == Warning) { Notice $nick Please Do NOT CTCP Floo! 7Next Time You Will be kicked | goto ChannelCTCPExit }
      if (%ChCTCP.Punish == DeVoice) { mode $chan -v $nick | notice $nick Please Do NOT CTCP Flood! 7Next Time You Will be kicked. | goto ChannelCTCPExit }
      if (%ChCTCP.Punish == DeOpDeVoice) { mode $chan -o $nick | mode $chan -v $nick | notice $nick Please Do NOT CTCP Flood! 7Next Time You Will be kicked. | goto ChannelCTCPExit }
      if (%ChCTCP.Punish == Kill) { kill $nick CTCP Flood not allowed! | goto ChannelCTCPExit }
      if (%ChCTCP.Punish == Shun) { shun $nick CTCP Flood not allowed! | goto ChannelCTCPExit }
    }

    writeini ChCTCP.ini $nick channel $chan | writeini ChCTCP.ini $nick time $ctime | set %ChCTCP.Var3 $readini ChCTCP.ini $nick penalties | writeini ChCTCP.ini $nick penalties %ChCTCP.Var3

    :ChannelCTCPExit
  }
}
