<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
	<link rel="self" type="application/atom+xml" href="https://forum.eggheads.org/app.php/feed/topic/20438" />

	<title>egghelp/eggheads community</title>
	<subtitle>Discussion of eggdrop bots, shell accounts and tcl scripts.</subtitle>
	<link href="https://forum.eggheads.org/index.php" />
	<updated>2022-08-03T04:12:17-04:00</updated>

	<author><name><![CDATA[egghelp/eggheads community]]></name></author>
	<id>https://forum.eggheads.org/app.php/feed/topic/20438</id>

		<entry>
		<author><name><![CDATA[simo]]></name></author>
		<updated>2022-08-03T04:12:17-04:00</updated>

		<published>2022-08-03T04:12:17-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=111226#p111226</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=111226#p111226"/>
		<title type="html"><![CDATA[Auto Voice System]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=111226#p111226"><![CDATA[
thanks for pointing out CrazyCat i changed it in the post<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12505">simo</a> — Wed Aug 03, 2022 4:12 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[CrazyCat]]></name></author>
		<updated>2022-08-03T03:56:21-04:00</updated>

		<published>2022-08-03T03:56:21-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=111225#p111225</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=111225#p111225"/>
		<title type="html"><![CDATA[Auto Voice System]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=111225#p111225"><![CDATA[
With a better indentation, you might have seen that the flushmode is in the wrong place.<br>It must be in the <strong class="text-strong">foreach channel</strong> loop. Actually, it flushes only for the last channel, so it may slow the application of the modes for the firsts channels in eggdrop list.<div class="codebox"><p>Code: </p><pre><code>proc idle:cron {min hour day month weekday} {   variable idleTime   set now [clock seconds]   foreach channel [channels] {      if {![channel get $channel idleDevoice] || ![botisop $channel]} continue      foreach member [chanlist $channel] {         if {[isbotnick $member] || [isop $member $channel] || ![isvoice $member $channel] || [matchattr [nick2hand $member] +G|+G $channel]} continue         #  set handle [nick2hand $member $channel]         #  if {[matchattr $handle e]} return         set chanidle [getchanidle $member $channel]         if {$chanidle &gt;= $idleTime} {            pushmode $channel -v $member         }      }      flushmode $channel   }}</code></pre></div><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=691">CrazyCat</a> — Wed Aug 03, 2022 3:56 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[simo]]></name></author>
		<updated>2022-08-03T04:11:34-04:00</updated>

		<published>2022-08-03T03:36:06-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=111224#p111224</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=111224#p111224"/>
		<title type="html"><![CDATA[Auto Voice System]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=111224#p111224"><![CDATA[
this seems to work for me : <br><div class="codebox"><p>Code: </p><pre><code>namespace eval idleDevoice {## Default idle time in minutes   set idleTime 28   setudef flag idleDevoice     ### Bind Cron every 5 mins ###      bind cron - {*/5 * * * *} [namespace current]::idle:cron#Bind on pub msg from V flag users   bind pubm V|V * [namespace current]::idle:voice### MAIN PROC ###      proc idle:cron {min hour day month weekday} {      variable idleTime      set now [clock seconds]      foreach channel [channels] {         if {![channel get $channel idleDevoice] || ![botisop $channel]} continue      foreach member [chanlist $channel] {            if {[isbotnick $member] || [isop $member $channel] || ![isvoice $member $channel] || [matchattr [nick2hand $member] +G|+G $channel]} continue          #  set handle [nick2hand $member $channel]          #  if {[matchattr $handle e]} return            set chanidle [getchanidle $member $channel]            if {$chanidle &gt;= $idleTime} {               pushmode $channel -v $member            }         }          flushmode $channel      }}   proc idle:voice {nick uhost hand chan text} {      if {![botisop $chan] || [isvoice $nick $chan]} return      pushmode $chan +v $nick      }}</code></pre></div><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12505">simo</a> — Wed Aug 03, 2022 3:36 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[simo]]></name></author>
		<updated>2022-08-03T00:21:15-04:00</updated>

		<published>2022-08-03T00:21:15-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=111223#p111223</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=111223#p111223"/>
		<title type="html"><![CDATA[Auto Voice System]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=111223#p111223"><![CDATA[
Hm ok CrazyCat<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12505">simo</a> — Wed Aug 03, 2022 12:21 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[CrazyCat]]></name></author>
		<updated>2022-08-02T03:17:51-04:00</updated>

		<published>2022-08-02T03:17:51-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=111222#p111222</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=111222#p111222"/>
		<title type="html"><![CDATA[Auto Voice System]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=111222#p111222"><![CDATA[
adding a flushmode right after the pushmode is more the way it may work.<br>It actually works with puthelp because your eggdrop isn't too much loaded and haven't to send lot of msg, but using a message queue to send modes is not the solution.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=691">CrazyCat</a> — Tue Aug 02, 2022 3:17 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[simo]]></name></author>
		<updated>2022-08-01T14:08:43-04:00</updated>

		<published>2022-08-01T14:08:43-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=111221#p111221</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=111221#p111221"/>
		<title type="html"><![CDATA[Auto Voice System]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=111221#p111221"><![CDATA[
i tested this and it seems to  work for me :<br><div class="codebox"><p>Code: </p><pre><code>namespace eval idleDevoice {## Default idle time in minutes   set idleTime 28   setudef flag idleDevoice     ### Bind Cron every 5 mins ###      bind cron - {*/5 * * * *} [namespace current]::idle:cron### Bind on pub msg from V flag users   bind pubm V|V * [namespace current]::idle:voice### MAIN PROC ###      proc idle:cron {min hour day month weekday} {      variable idleTime      set now [clock seconds]      foreach channel [channels] {         if {![channel get $channel idleDevoice]} continue         if {![botisop $channel]} continue         foreach member [chanlist $channel] {            if {[isbotnick $member]} continue                     if {[isop $member $channel] || ![isvoice $member $channel] || [matchattr [nick2hand $member] +G|+G $channel]} continue          #  set handle [nick2hand $member $channel]          #  if {[matchattr $handle e]} return            set chanidle [getchanidle $member $channel]            if {$chanidle &gt;= $idleTime} {               lappend userList $member            }         }                 if {[info exists userList]} {          idle:push $channel $userList}      }   }   proc idle:voice {nick uhost hand chan text} {      if {![botisop $chan]} return      if {[isvoice $nick $chan]} return      pushmode2 $chan +v $nick   }      proc idle:push {channel userList} {      if {![botisop $channel]} return      set max 3        set len [llength $userList]        while {$len &gt; 0} {         if {$len &gt; $max} {            set mode [string repeat "v" $max]            set users [join [lrange $userList 0 [expr {$max - 1}]]]            set userList [lrange $userList $max end]            incr len -$max         } else {            set mode [string repeat "v" $len]            set users [join $userList]            set len 0         }            puthelp "mode $channel -$mode $users"      }   }}</code></pre></div><br><br>i changed the :<br><blockquote class="uncited"><div>  pushmode $channel -$mode $users </div></blockquote>into :<br><blockquote class="uncited"><div> puthelp "mode $channel -$mode $users" </div></blockquote><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12505">simo</a> — Mon Aug 01, 2022 2:08 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[mvp1]]></name></author>
		<updated>2022-08-01T08:59:46-04:00</updated>

		<published>2022-08-01T08:59:46-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=111218#p111218</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=111218#p111218"/>
		<title type="html"><![CDATA[Auto Voice System]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=111218#p111218"><![CDATA[
Hi CrazyCat, Ceasar,<br><br>I'm using below code, it is working but it does not seem to devoice all the nicks which are sitting on voice more than idle time? When the channel is 150+ count and voiced users are 10-15, many voiced users stay voiced and do not get devoiced. Below is complete code I am using. <br>Voicing +V and Exception +G are working fine. But devoicing seems to have a problem or lag when there are 10-15 users sitting on voice.<br><br>Any thoughts what is going wrong? Or if something can be changed with the code?<br><br>Many thanks<br><div class="codebox"><p>Code: </p><pre><code>namespace eval idleDevoice {## Default idle time in minutes   set idleTime 28   setudef flag idleDevoice     ### Bind Cron every 5 mins ###      bind cron - {*/5 * * * *} [namespace current]::idle:cron### Bind on pub msg from V flag users   bind pubm V|V * [namespace current]::idle:voice### MAIN PROC ###      proc idle:cron {min hour day month weekday} {      variable idleTime      set now [clock seconds]      foreach channel [channels] {         if {![channel get $channel idleDevoice]} continue         if {![botisop $channel]} continue         foreach member [chanlist $channel] {            if {[isbotnick $member]} continue                     if {[isop $member $channel] || ![isvoice $member $channel] || [matchattr [nick2hand $member] +G|+G $channel]} continue          #  set handle [nick2hand $member $channel]          #  if {[matchattr $handle e]} return             set chanidle [getchanidle $member $channel]            if {$chanidle &gt;= $idleTime} {               lappend userList $member            }         }                 if {[info exists userList]} {          idle:push $channel $userList}      }   }   proc idle:voice {nick uhost hand chan text} {      if {![botisop $chan]} return      if {[isvoice $nick $chan]} return      pushmode $chan +v $nick   }      proc idle:push {channel userList} {      if {![botisop $channel]} return      set max 3        set len [llength $userList]        while {$len &gt; 0} {         if {$len &gt; $max} {            set mode [string repeat "v" $max]            set users [join [lrange $userList 0 [expr {$max - 1}]]]            set userList [lrange $userList $max end]            incr len -$max         } else {            set mode [string repeat "v" $len]            set users [join $userList]            set len 0         }            pushmode $channel -$mode $users      }   }} </code></pre></div><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12960">mvp1</a> — Mon Aug 01, 2022 8:59 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[CrazyCat]]></name></author>
		<updated>2022-02-02T07:16:00-04:00</updated>

		<published>2022-02-02T07:16:00-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=110838#p110838</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=110838#p110838"/>
		<title type="html"><![CDATA[Auto Voice System]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=110838#p110838"><![CDATA[
+g is auto-voice flag (<a href="https://docs.eggheads.org/mainDocs/users.html" class="postlink">https://docs.eggheads.org/mainDocs/users.html</a>), so it's normal the voice is enforced.<br><br>Change the bind to v|v and give your users the +v flag rather than the +g.<br><br>I did <a href="https://scripts.eggdrop.fr/details-advoice-s3.html" class="postlink">advoice</a> script a long time before, I'll work on it to make it suit your need.<br><br>Actually, it voices any user joining or speaking (unless the user is op/halfop) and devoice idle users after a delay (global or per channel).<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=691">CrazyCat</a> — Wed Feb 02, 2022 7:16 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[mvp1]]></name></author>
		<updated>2022-02-02T07:00:51-04:00</updated>

		<published>2022-02-02T07:00:51-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=110837#p110837</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=110837#p110837"/>
		<title type="html"><![CDATA[Auto Voice System]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=110837#p110837"><![CDATA[
Cheers CrazyCat, the +V flag exception works now. Legend mate.<br>However, I just picked up another issue. The eggdrop seems to be enforcing the voice on +g flag users? I'm not too sure if there's something we could do with this code, or with my .chaninfo settings for the channel?<br><br>Below is example, <br>(after it voices a +g user when users speak, if any other OP devoices it manually, it voices it back) (Also when a +g user is currently devoice, and if any other user devoice it again, the bot puts it back on voice, until the devoice timer 2 mins, when bot devoices it itself)<br><br>[23:49] &lt;User1&gt; hi<br>[23:49] * Bot sets mode: +v User1<br>[23:49] * AnotherOP sets mode: -v User1<br>[23:49] * Bot sets mode: +v User1<br>[23:52] * Bot sets mode: -v User1<br>[00:11] * AnotherOp sets mode: -v User1<br>[00:11] * Bot sets mode: +v User1<br><br><br>Below is my .chaninfo output;<br><br><br>[23:50] &lt;AnotherOP&gt; .chaninfo #channel123<br>[23:50] &lt;Bot&gt; Settings for dynamic channel #channel123:<br>[23:50] &lt;Bot&gt; Protect modes (chanmode): +tn<br>[23:50] &lt;Bot&gt; Idle Kick after (idle-kick): DON'T!<br>[23:50] &lt;Bot&gt; stopnethack: DON'T!<br>[23:50] &lt;Bot&gt; aop-delay: 5:30<br>[23:50] &lt;Bot&gt; revenge-mode: 0<br>[23:50] &lt;Bot&gt; ban-type: 3<br>[23:50] &lt;Bot&gt; ban-time: 120<br>[23:50] &lt;Bot&gt; exempt-time: 60<br>[23:50] &lt;Bot&gt; invite-time: 60<br>[23:50] &lt;Bot&gt; Other modes:<br>[23:50] &lt;Bot&gt;      -inactive       -statuslog      -secret         +shared<br>[23:50] &lt;Bot&gt;      +greet          -seen           +cycle          +dontkickops<br>[23:50] &lt;Bot&gt;      +protectops     -protectfriends -revenge        -revengebot<br>[23:50] &lt;Bot&gt;      -bitch          -autoop         -autovoice      -nodesynch<br>[23:50] &lt;Bot&gt;      -enforcebans    -dynamicbans    -userbans       -autohalfop<br>[23:50] &lt;Bot&gt;      -protecthalfops -static<br>[23:50] &lt;Bot&gt;      +dynamicexempts +userexempts    +dynamicinvites +userinvites<br>[23:50] &lt;Bot&gt; User defined channel flags:<br>[23:50] &lt;Bot&gt;      +idleDevoice -nopubstats -quietstats -nostats<br>[23:50] &lt;Bot&gt;      -noseendata -quietseens -quietaiseens -nopubseens<br>[23:50] &lt;Bot&gt; flood settings: chan ctcp join kick deop nick<br>[23:50] &lt;Bot&gt; number:           15    3    5    3    3    5<br>[23:50] &lt;Bot&gt; time  :           60   60   60   10   10   60<br>[23:50] &lt;Bot&gt; [05:50:01] #AnotherOp# chaninfo #channel123<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12960">mvp1</a> — Wed Feb 02, 2022 7:00 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[CrazyCat]]></name></author>
		<updated>2022-02-02T06:50:07-04:00</updated>

		<published>2022-02-02T06:50:07-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=110836#p110836</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=110836#p110836"/>
		<title type="html"><![CDATA[Auto Voice System]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=110836#p110836"><![CDATA[
My bad... <strong class="text-strong">nick2hand</strong><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=691">CrazyCat</a> — Wed Feb 02, 2022 6:50 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[mvp1]]></name></author>
		<updated>2022-02-02T06:24:33-04:00</updated>

		<published>2022-02-02T06:24:33-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=110835#p110835</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=110835#p110835"/>
		<title type="html"><![CDATA[Auto Voice System]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=110835#p110835"><![CDATA[
Hi CrazyCat, thanks mate. I've testing it now and getting below error;<br><br>[05:23:00] Tcl error [::idleDevoice::idle:cron]: invalid command name "nick2handle"<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12960">mvp1</a> — Wed Feb 02, 2022 6:24 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[CrazyCat]]></name></author>
		<updated>2022-02-01T08:43:05-04:00</updated>

		<published>2022-02-01T08:43:05-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=110832#p110832</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=110832#p110832"/>
		<title type="html"><![CDATA[Auto Voice System]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=110832#p110832"><![CDATA[
If your users are in bot's userlist, add them the +V flag (global or per channel)<br><br>Then, find the following line:<div class="codebox"><p>Code: </p><pre><code>if {[isop $member $channel] || ![isvoice $member $channel]} continue </code></pre></div>Replace it with:<div class="codebox"><p>Code: </p><pre><code>if {[isop $member $channel] || ![isvoice $member $channel] || [matchattr [nick2handle $member] +V|+V $channel]} continue</code></pre></div><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=691">CrazyCat</a> — Tue Feb 01, 2022 8:43 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[mvp1]]></name></author>
		<updated>2022-02-01T08:20:57-04:00</updated>

		<published>2022-02-01T08:20:57-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=110831#p110831</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=110831#p110831"/>
		<title type="html"><![CDATA[Auto Voice System]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=110831#p110831"><![CDATA[
HI @Caesar /all, I am trying to test a similar av system and thank you very much for your code mate. I am using below code successfully and its working fine for voice g flag users and then devoicing every user after set time. I tried the exeptions code you mentioned but it didn't work properly. Appreciate if you can write me a exception code which I can add to this, where it does not devoice the exception users? I want to add exception users manually by for example giving them another flag or something? so the code can check if the user have exception flag, then not devoice it.<br><div class="codebox"><p>Code: </p><pre><code>namespace eval idleDevoice {   # Default idle time in minutes   set idleTime 2   setudef flag idleDevoice           bind cron - {* * * * *} [namespace current]::idle:cron   bind pubm g|g * [namespace current]::idle:voice      proc idle:cron {min hour day month weekday} {      variable idleTime      set now [clock seconds]      foreach channel [channels] {         if {![channel get $channel idleDevoice]} continue         if {![botisop $channel]} continue         foreach member [chanlist $channel] {            if {[isbotnick $member]} continue                     if {[isop $member $channel] || ![isvoice $member $channel]} continue          #  set handle [nick2hand $member $channel]          #  if {[matchattr $handle e]} return             set chanidle [getchanidle $member $channel]            if {$chanidle &gt;= $idleTime} {               lappend userList $member            }         }                 if {[info exists userList]} {          idle:push $channel $userList}      }   }   proc idle:voice {nick uhost hand chan text} {      if {![botisop $chan]} return      if {[isvoice $nick $chan]} return      pushmode $chan +v $nick   }      proc idle:push {channel userList} {      if {![botisop $channel]} return      set max 6        set len [llength $userList]        while {$len &gt; 0} {         if {$len &gt; $max} {            set mode [string repeat "v" $max]            set users [join [lrange $userList 0 [expr {$max - 1}]]]            set userList [lrange $userList $max end]            incr len -$max         } else {            set mode [string repeat "v" $len]            set users [join $userList]            set len 0         }            pushmode $channel -$mode $users      }   }} </code></pre></div>[/code]<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12960">mvp1</a> — Tue Feb 01, 2022 8:20 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[caesar]]></name></author>
		<updated>2018-03-05T02:38:56-04:00</updated>

		<published>2018-03-05T02:38:56-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=106721#p106721</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=106721#p106721"/>
		<title type="html"><![CDATA[Auto Voice System]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=106721#p106721"><![CDATA[
Ah, in that case replace the idle:nick function with:<div class="codebox"><p>Code: </p><pre><code>proc idle:nick {nick} {set skip [list "user_1" "user_2" "user_3" "and so on"]set test [expr {[lsearch -nocase $skip $nick] &gt; -1 ? "1" : "0"}]}</code></pre></div>and instead of the:<div class="codebox"><p>Code: </p><pre><code>if {[idle:nick $member]} continue </code></pre></div>add:<div class="codebox"><p>Code: </p><pre><code>if {[isbotnick $nick] || [idle:nick $member]} continue </code></pre></div>inside that foreach loop.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=187">caesar</a> — Mon Mar 05, 2018 2:38 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[a41]]></name></author>
		<updated>2018-03-04T02:17:45-04:00</updated>

		<published>2018-03-04T02:17:45-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=106719#p106719</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=106719#p106719"/>
		<title type="html"><![CDATA[Auto Voice System]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=106719#p106719"><![CDATA[
I had to remove the user exclusion as everything stopped working other than voicing a user. Devoice stopped working. <div class="codebox"><p>Code: </p><pre><code>namespace eval idleDevoice {   # Default idle time in minutes   set idleTime 60   setudef flag idleDevoice            bind cron - {* * * * *} [namespace current]::idle:cron   bind pubm g|g * [namespace current]::idle:voice      proc idle:cron {min hour day month weekday} {      variable idleTime      set now [clock seconds]      foreach channel [channels] {         if {![channel get $channel idleDevoice]} continue         if {![botisop $channel]} continue         foreach member [chanlist $channel] {            if {[isbotnick $member]} continue            if {[isop $member $channel] || ![isvoice $member $channel]} continue            set chanidle [getchanidle $member $channel]            if {$chanidle &gt;= $idleTime} {               lappend userList $member            }         }           if {[info exists userList]} {          idle:push $channel $userList}       }   }   proc idle:voice {nick uhost hand chan text} {      if {![botisop $chan]} return      if {[isvoice $nick $chan]} return      pushmode $chan +v $nick   }      proc idle:push {channel userList} {      if {![botisop $channel]} return      set max 6        set len [llength $userList]        while {$len &gt; 0} {         if {$len &gt; $max} {            set mode [string repeat "v" $max]            set users [join [lrange $userList 0 [expr {$max - 1}]]]            set userList [lrange $userList $max end]            incr len -$max         } else {            set mode [string repeat "v" $len]            set users [join $userList]            set len 0         }            pushmode $channel -$mode $users      }   }}</code></pre></div><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12737">a41</a> — Sun Mar 04, 2018 2:17 am</p><hr />
]]></content>
	</entry>
	</feed>
