Delay Voice +Dm (Undernet)
Seb |
PRO |
02/24/26 03:48:25 PM UTC (Edited) |
0 ⭐ |
10067 👁️ |
Never ⏰ |
[protection, mirc, AdiIRC]
; ================================================================
; Delay Hidden Voice Script (+Dm Auto Voice Handler)
; ================================================================
; Usage:
; This script is designed for Undernet channels using mode +Dm
; (Delay Join + Moderated). When enabled, users join the channel
; without voice and are automatically voiced (+v) after a short delay.
;
; Features:
; - Automatically scans joining users via NAMES reply (RAW 355)
; - WHOIS checks users before voicing
; - Voices users after a short delay (5 seconds)
; - Includes anti-flood protection when unhiding users
; - Toggle-safe with timer cleanup
;
; Requirements:
; - Must be on Undernet
; - Requires channel operator access to set +Dm and +v
;
; Notes:
; - The script sets channel mode +Dm when enabled.
; - When disabled, it removes +Dm and clears timers.
; - Uses a temporary hash system to prevent voice flooding.
; ================================================================
menu channel, {
$iif(undernet isin $network,Delay Voice)
..ON:husers | mode $chan +Dm
..OFF:husers | mode $chan -Dm
}
alias dm.off {
.names -d $chan
if ($timer(hUsers) != $null) {
.timerhUsers off
unset %huserchan
echo -at Delay Hidden voice Script is Off!
.mode $chan -Dm
unhide $chan
}
}
alias dm.on {
.timerhUsers 0 15 .names -d $chan
set %huserchan $chan
.mode $chan +Dm
echo -at Delay Hidden voice Script is On!
}
raw 355:*: {
if ( $4 == $null ) { HALT }
else {
set %allnicks $4-
set %i 1
:next
set %nick $gettok(%allnicks,%i, 32)
if %nick == $null goto done
if $istok( %nrdone,%nick,32 ) { inc %i | goto next }
.set -u60 %nrdone %nrdone %nick
.enable #ghost
.whois %nick
;.timern 1 1 .notice %nick You Are hidden under +Dm channel modes, in a moment you will be voiced(+v) and you will be able to speak.
.timerv 1 5 mode %huserchan +v %nick
inc %i
goto next
:done
}
halt
}
raw 366:*: halt
#ghost off
raw 301:*: halt
raw 310:*: halt
raw 311:*: { echo -at 4 $+ Scanning Hidden User: $address($2,5) | halt }
raw 312:*: halt
raw 313:*: halt
raw 330:*: halt
raw 319:*: halt
raw 317:*: halt
raw 318:*: { .timer 1 15 .disable #ghost | haltdef }
#ghost end
alias unhide {
hadd -mu4 noflood plx 1
.timer 1 0 names -d $1
}
raw 355:*:{
if ( $hget(noflood,plx) ) {
var %total = $numtok($4-,32)
hadd -mu15 user list $4-
var %x = $hget(user,0).item
while ( %x > 0 ) {
var %a = $gettok($hget(user,list),1-6,32)
.timer 1 0 mode $3 +vvvvvv %a
.timer 1 1 mode $3 -vvvvvv %a
hadd user list $gettok($hget(user,list),7-,32)
dec %x 6
}
HALT
}
}
raw 366:*:{ if ( $Hget(noflood,plx) ) { HALT } }
Comments
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎