<?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/15249" />

	<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>2008-02-18T21:08:54-04:00</updated>

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

		<entry>
		<author><name><![CDATA[Alchera]]></name></author>
		<updated>2008-02-18T21:08:54-04:00</updated>

		<published>2008-02-18T21:08:54-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=80957#p80957</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=80957#p80957"/>
		<title type="html"><![CDATA[Help with keyword / info script]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=80957#p80957"><![CDATA[
By visiting his website you'd have discovered the e-mail address seems to have changed: <a href="mailto:mail@christianhopf.de">mail@christianhopf.de</a><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=3646">Alchera</a> — Mon Feb 18, 2008 9:08 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[spijon]]></name></author>
		<updated>2008-02-18T19:49:34-04:00</updated>

		<published>2008-02-18T19:49:34-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=80956#p80956</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=80956#p80956"/>
		<title type="html"><![CDATA[Help with keyword / info script]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=80956#p80956"><![CDATA[
No response from the email i sent to <a href="mailto:mail@dev.christianhopf.de">mail@dev.christianhopf.de</a> so just delete the post.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=8142">spijon</a> — Mon Feb 18, 2008 7:49 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[spijon]]></name></author>
		<updated>2008-01-28T00:41:48-04:00</updated>

		<published>2008-01-28T00:41:48-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=80401#p80401</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=80401#p80401"/>
		<title type="html"><![CDATA[Help with keyword / info script]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=80401#p80401"><![CDATA[
I will try to contact him.<br><blockquote class="uncited"><div>It works exactly as the author (above) intended and therefore it works 100%.</div></blockquote>No it doesnt.. read what the problem is.<br><br>2 of the same keyword on different chans does the same... or else he wouldn't have made it with different channels.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=8142">spijon</a> — Mon Jan 28, 2008 12:41 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Alchera]]></name></author>
		<updated>2008-01-12T01:46:36-04:00</updated>

		<published>2008-01-12T01:46:36-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=79985#p79985</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=79985#p79985"/>
		<title type="html"><![CDATA[Help with keyword / info script]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=79985#p79985"><![CDATA[
<div class="codebox"><p>Code: </p><pre><code>    #             #           developer:  Christian 'chris' Hopf    #           system:     eggdrop v1.6.18 - tcl/tk v.8.5a2    #           product:    user defined triggers    #           version:    1.4    #                             #           contact:    mail@dev.christianhopf.de    #           irc:        #chris at QuakeNet    #           web:        www.christianhopf.de </code></pre></div>Contact information is provided.<br><blockquote class="uncited"><div>This would be a really cool script if it worked 100%</div></blockquote>It works <em class="text-italics">exactly</em> as the author (above) intended and therefore it works 100%.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=3646">Alchera</a> — Sat Jan 12, 2008 1:46 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[spijon]]></name></author>
		<updated>2008-01-11T16:42:27-04:00</updated>

		<published>2008-01-11T16:42:27-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=79980#p79980</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=79980#p79980"/>
		<title type="html"><![CDATA[Help with keyword / info script]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=79980#p79980"><![CDATA[
Hey all<br><br>I found this script in the Tcl Archive but there is some bugs working in multi Chan's with different info ;<br><br>If you make the same cmd for 2channels like : <br>on #chan1 <br>"eggbot add TEST1 TextOnLine1\nTextOnLine2" <br><br>on #chan2 <br>"eggbot add TEST1 TextOnLine3\nTextOnLine4" <br><br>And i use the !TEST1 on #chan2 i use the line from #chan1 :/<br><br>The reason this script is interesting that you can use it as an "custom" chan-info script. <br><br>On #MyChan <br>@user: Eggy add Hp <a href="http://www.mychan.com" class="postlink">www.mychan.com</a> <br>@user: !Hp <br>@Eggy: <a href="http://www.mychan.com" class="postlink">www.mychan.com</a> <br><br>So you don't need to add chan or the menu in the script but the bot only need to be on a chan.. This would be a really cool script if it worked 100%  <br><div class="codebox"><p>Code: </p><pre><code>    #                           #       +------------------------------------------------------+    #       | © Christian 'chris' Hopf &lt;mail@dev.christianhopf.de&gt; |    #       +------------------------------------------------------+    #                                                                         #              #           developer:  Christian 'chris' Hopf    #           system:     eggdrop v1.6.18 - tcl/tk v.8.5a2    #           product:    user defined triggers    #           version:    1.4    #                             #           contact:    mail@dev.christianhopf.de    #           irc:        #chris at QuakeNet    #           web:        www.christianhopf.de    #    # user defined triggers v1.4    # copyright (c) 2006 Christian 'chris' Hopf    # This program is free software; you can redistribute it and/or modify    # it under the terms of the GNU General Public License as published by    # the Free Software Foundation; either version 2 of the License, or    # (at your option) any later version.    # This program is distributed in the hope that it will be useful,    # but WITHOUT ANY WARRANTY; without even the implied warranty of    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    # GNU General Public License for more details.    # You should have received a copy of the GNU General Public License    # along with this program; if not, write to the Free Software    # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA    #    #    # changelog    #    #   18.12.2005 - v1.0 - release    #   19.12.2005 - v1.1/v1.2 - fix:    #                 - Bug by using existing proc names as keyword    #                           #               add:    #                 - clear function added    #                 - flood timer for each trigger activated to stop spamming    #   02.01.2006 - v1.3 - fix:    #                 - unmatched open quote in list    #   11.04.2006 - v1.4 - fix:    #                 - fixed bug with teh "0"    #                     #                add:    #                 - added new triggers like NULL (only command needed, no trigger)    #    # short readme    #   after setting up your eggdrop, you can get a list of all commands with     #   &lt;botnick&gt; help     #   or    #   !help (only if u havn't change anything)    #    #   short help:    #       you can add a keywords trigger with the command "add".    #       if you want to use a newline, use \n in the message you added.    #       e.g. /msg &lt;channel&gt; &lt;botnick&gt; add TEST TextOnLine1\nTextOnLine2 etc ...            # --- namespace ::keyword    namespace eval ::keyword {                   # --- namespace variable         namespace eval variable {                # string variable trigger        variable trigger "!"                # string variable keyword [ only need for /msg &lt;botnick&gt; ]        variable keyword "trigger"                                # string variable flag        variable flag "n|n"                # string variable database        variable database ".keyword.db"                       # {{{ NOW don't change anything, if you aren't 100% sure what you are doing }}}        # {{{ NOW don't change anything, if you aren't 100% sure what you are doing }}}        # {{{ NOW don't change anything, if you aren't 100% sure what you are doing }}}        # {{{ NOW don't change anything, if you aren't 100% sure what you are doing }}}                 # string variable author        variable author "2006 Christian 'chris' Hopf \002(\002#chris - www.christianhopf.de\002)\002"                # string variable version        variable version "v1.4"            }                if {![file exists $::keyword::variable::database]} {        if { [catch { set database [open $::keyword::variable::database "w"] } error] } {          die "can't create file &lt;:( \[$::keyword::variable::database\]"        }                puts -nonewline $database ""        close $database      }            # binds      bind PUBM -|- {*} ::keyword::pubm      bind MSGM -|- {*} ::keyword::msgm            # - void proc pubm {bind PUBM}      proc pubm { nickname hostname handle channel arguments } {          ::keyword::irc::parse $nickname $hostname $handle $arguments $channel "pubm"      }            # - void proc msgm {bind MSGM}      proc msgm { nickname hostname handle arguments } {          ::keyword::irc::parse $nickname $hostname $handle $arguments [lindex [split $arguments] 2] "msgm"      }                        # namespace eval irc      namespace eval irc {        # - void proc parse        proc parse { nickname hostname handle arguments channel mode} {            global botnick lastcommand channelcommand lastnickname lasthandle lastchannel lasttrigger lastucommand                        if { [::keyword::utilities::exists [encrypt split $channel] [lindex [split $arguments] 0] "-global"] } {              set message [join [::keyword::utilities::get:command [lindex [split $arguments] 0]]]                   if {[info exists ::keyword(last,used,$channel,[lindex [split $arguments] 0])] &amp;&amp; [expr [unixtime] - $::keyword(last,used,$channel,[lindex [split $arguments] 0])] &lt; 30} {                 return              }                              set ::keyword(last,used,$channel,[lindex [split $arguments] 0]) [unixtime]                                foreach output [split $message "\n"] {                putquick "PRIVMSG $channel :$output"              }                            if { [info proc ::keyword::irc::commands:[string tolower [lindex [split $arguments] 1]]] == "" &amp;&amp; [info proc ::keyword::irc::commands:[string tolower [lindex [split $arguments] 0]]] == "" } {                return              }            }                        set utrigger [getuser $handle XTRA keyword-trigger]            set temp $channel            set save $arguments;                if { $mode == "pubm" } {              if {[llength $utrigger] &lt; 1} {                set utrigger [join [string trim $::keyword::variable::trigger]]              }                  if { [string equal -nocase $botnick [lindex [split $arguments] 0]]} {                set command [string tolower [lindex [split $arguments] 1]]                set arguments [join [lrange [split $arguments] 2 end]]                set trigger "$botnick $command"                } elseif { $utrigger == "NULL" }  {                set command [string tolower [lindex [split $arguments] 0]]                set arguments [join [lrange [split $arguments] 1 end]]                                set trigger "$command"                            } elseif { [string equal -nocase [string index [lindex [split $arguments] 0] 0] $utrigger] } {                set command [string range [string tolower [lindex [split $arguments] 0]] 1 end]                set arguments [join [lrange [split $arguments] 1 end]]                  set trigger "${utrigger}$command"              } else {                return              }                            if {[string index [lindex [split $arguments] 0] 0] == "#" &amp;&amp; [validchan [lindex [split $arguments] 0]]} {                set channel [lindex [split $arguments] 0]                set arguments [join [lrange [split $arguments] 1 end]]              }                        } elseif { $mode == "msgm" } {              if { [string equal -nocase [lindex [split $arguments] 0] ${::keyword::variable::keyword}] } {                set command [lindex [split $arguments] 1]                set channel [lindex [split $arguments] 2]                              set arguments [join [lrange [split $arguments] 3 end]]                set trigger "$::keyword::variable::keyword $command"                        } else {                return              }                          } else {              return            }                        if { [string index [lindex [split $arguments] 0] 0] == "#" || [string equal -nocase [lindex [split $arguments] 0] "-global"] } {              set channel [lindex [split $arguments] 0]              set arguments [join [lrange [split $arguments] 1 end]]            }                        if { ![matchattr $handle $::keyword::variable::flag $temp] } {              return            } elseif {![info exists trigger] || [llength $trigger] &lt; 1} {              return            } elseif {(![info exists command] || [llength $command] &lt; 1)} {              return            } elseif { [info proc ::keyword::irc::command:$command] == ""  } {              return            } elseif { (![regexp -- {^#(.+)$} $channel] || ![validchan $channel]) &amp;&amp; ![string equal -nocase $channel "-global"] } {              putquick "PRIVMSG $nickname :\002(\002keyword\002)\002 you forgot the channel parameter"                            return            }                        set channelcommand "$temp"            set lastcommand  "$trigger"            set lastucommand "$command"            set lastnickname "$nickname"            set lasthandle "$handle"            set lastchannel "$channel"            set lasttrigger [join [lrange $trigger 0 end-1]]                        ::keyword::irc::command:$command $nickname $hostname $handle $channel $arguments        }                # - void proc add        proc command:add { nickname hostname handle channel arguments } {          global lastcommand                    set trigger [::keyword::utilities::trigger $handle]; set keyword [lindex [split $arguments] 0]; set message [join [lrange $arguments 1 end]]          if { $keyword == "" || $message == "" } { putquick "NOTICE $nickname :\002(\002keyword\002)\002 synta\037x\037\002:\002 $lastcommand \037?#channel?\037 &lt;keyword&gt; &lt;message&gt;"; return;}          if {[info proc ::keyword::irc::commands:$keyword] != "" || [info proc ::keyword::irc::commands:[string range [join $keyword] 1 end]] != "" } { putquick "NOTICE $nickname :\002(\002keyword\002)\002 \0034error\003\002:\002 sorry but you cant use that keyword, please choose an another one"; return; }          if {[::keyword::utilities::exists [encrypt split $channel] [join $keyword] "-global"]} {            putquick "NOTICE $nickname :\002(\002keyword\002)\002 your keyword {$keyword} does already appear in the database."            putquick "NOTICE $nickname :\002(\002keyword\002)\002 to overwrite use\002:\002 ${trigger}overwrite \037?#channel?\037|\037?-global?\037 &lt;keyword&gt; &lt;message&gt;"          } elseif {[::keyword::utilities::add [encrypt split $channel] [encrypt split [join $keyword]] [encrypt split $message]]} {            putquick "NOTICE $nickname :\002(\002keyword\002)\002 {[join $keyword]} was successfully added to the database."                     } else {            putquick "NOTICE $nickname :\002(\002keyword\002)\002 \0034error\003\002:\002 while adding channel message to the database."          }            }                # - void proc remove        proc command:remove { nickname hostname handle channel arguments } {          global lastcommand          set trigger [::keyword::utilities::trigger $handle]; set keyword [lindex [split $arguments] 0];          if { $keyword == "" } { putquick "NOTICE $nickname :\002(\002keyword\002)\002 synta\037x\037\002:\002 $lastcommand \037?#channel?\037 &lt;keyword&gt;"; return; }                                 if {![::keyword::utilities::exists [encrypt split $channel] [join $keyword]]} {            putquick "NOTICE $nickname :\002(\002keyword\002)\002 your keyword {[join $keyword]} doesn't appear in the database."          } elseif {[::keyword::utilities::remove [encrypt split $channel] [join $keyword]]} {            putquick "NOTICE $nickname :\002(\002keyword\002)\002 {[join $keyword]} successfully removed from the database."                       } else {            putquick "NOTICE $nickname :\002(\002keyword\002)\002 \0034error\003\002:\002 while removing channel message from the database."          }            }                # - void proc clear        proc command:clear { nickname hostname handle channel arguments } {                  global lastcommand          if { $arguments == "*" } { ::keyword::utilities::clear; putquick "NOTICE $nickname :\002(\002keyword\002)\002 database was successfully cleared."          } elseif {[::keyword::utilities::clear [encrypt split $channel]]} { putquick "NOTICE $nickname :\002(\002keyword\002)\002 {$channel} was successfully cleared."           } else { putquick "NOTICE $nickname :\002(\002keyword\002)\002 \0034error\003\002:\002 while removing channel from the database."; }        }                # - void proc overwrite        proc command:overwrite { command nickname hostname handle channel arguments } {          global lastcommand          set trigger [::keyword::utilities::trigger $handle]; set keyword [lindex [split $arguments] 0]; set message [join [lrange $arguments 1 end]]          if { $keyword == "" || $message == "" } { putquick "NOTICE $nickname :\002(\002keyword\002)\002 synta\037x\037\002:\002 $lastcommand \037?#channel?\037|\037?-global?\037 &lt;keyword&gt; &lt;message&gt;"; return;}          if {[info proc ::keyword::irc::commands:$keyword] != ""} { putquick "NOTICE $nickname :\002(\002keyword\002)\002 \0034error\003\002:\002 sorry but you cant use that keyword, please choose an another one"; return; }          if {![::keyword::utilities::exists [encrypt split $channel] [join $keyword] "-global"]} {            putquick "NOTICE $nickname :\002(\002keyword\002)\002 your keyword {$keyword} doesn't appear in the database."          } elseif {[::keyword::utilities::rewrite [encrypt split $channel] [join $keyword] [encrypt split $message]]} {            putquick "NOTICE $nickname :\002(\002keyword\002)\002 $keyword was successfully re-added to the database."                     } else {            putquick "NOTICE $nickname :\002(\002keyword\002)\002 \0034error\003\002:\002 while adding channel message to the database."          }                   }                            # - void procs help|showcommands {required string command} {required string nickname} {required string hostname} {required string handle} {required string channel} {required string arguments}            proc commands:help { nickname hostname handle channel arguments } { ::keyword::irc::commands:userhelp $command $nickname $hostname $handle $channel $arguments; }        proc commands:showcommands { nickname hostname handle channel arguments } { ::keyword::irc::commands:userhelp $command $nickname $hostname $handle $channel $arguments; }                        # - void proc userhelp        proc command:userhelp { nickname hostname handle channel arguments } {                      if { ![matchattr $handle $::keyword::variable::flag $channel] } { return; }          set trigger [::keyword::utilities::trigger $handle]          putquick "NOTICE $nickname :\002(\002keyword\002)\002 \037$command overview\002\037:\002"                         putquick "NOTICE $nickname :\002(\002keyword\002)\002 ${trigger}add \037?channel?\037 \037-global\037 &lt;keyword&gt; &lt;message&gt;"          putquick "NOTICE $nickname :\002(\002keyword\002)\002 ${trigger}remove \037?channel?\037 \037-global\037 &lt;#id/keyword&gt;"          putquick "NOTICE $nickname :\002(\002keyword\002)\002 ${trigger}overwrite \037?channel?\037 \037-global\037 &lt;keyword&gt; &lt;message&gt;"          putquick "NOTICE $nickname :\002(\002keyword\002)\002 ${trigger}list \037?channel?\037|\037-global\037"          putquick "NOTICE $nickname :\002(\002keyword\002)\002 ${trigger}clear \037?channel?\037|\037-global\037|\037*\037"          putquick "NOTICE $nickname :\002(\002keyword\002)\002 ${trigger}trigger \037?#id?\037 \002(\002personal trigger, not global trigger\002)\002"          putquick "NOTICE $nickname :\002(\002keyword\002)\002 ${trigger}version"                   }                # - void proc trigger        proc command:trigger { nickname hostname handle channel arguments } {             global botnick botname lastcommand            set trigger [::keyword::utilities::trigger $handle]              array set triggers {              "1" {$} "2" {!} "3" {?} "4" {.} "5" {-}              "6" {²} "7" {%} "8" {&amp;} "9" {*} "10" {:}              "11" {§} "12" {°} "13" {^} "14" {NULL}            }                             if { [llength $arguments] &lt; 1 } {              putquick "NOTICE $nickname :\002(\002keyword\002)\002 synta\037x\037\002:\002 $lastcommand \037?#id?\037"               putquick "NOTICE $nickname :\002(\002keyword\002)\002 curren\037t\037\002:\002 $trigger"              set list ""              set id   0                            while {$id &lt; 10} {                incr id 1                lappend list "#$id ($triggers($id))"              }                            putquick "NOTICE $nickname :\002(\002keyword\002)\002 available triggers are:"              putquick "NOTICE $nickname :[join $list ", "]"                            return            }                                     if { [string range $arguments 1 2] &lt; 15 &amp;&amp; [string range $arguments 1 2] &gt; 0 } {            setuser $handle XTRA keyword-trigger $triggers([string range $arguments 1 2])            putquick "NOTICE $nickname :\002(\002keyword\002)\002 your personal trigger is now: [getuser $handle XTRA keyword-trigger]"          } else {            putquick "NOTICE $nickname :\002(\002keyword\002)\002 synta\037x\037\002:\002 $lastcommand \037?\002#\002id?\037"          }        }                              # - void proc list        proc command:list { nickname hostname handle channel arguments } {          set list ""          set count [llength [::keyword::utilities::create:list $channel]]                    if { $count == "1" } {            putquick "NOTICE $nickname :\002(\002keyword\002)\002 $count message is added on my database\002:\002"          } else {            putquick "NOTICE $nickname :\002(\002keyword\002)\002 $count messages are added on my database\002:\002"          }          set data ""                    foreach messages [::keyword::utilities::create:list $channel] {                            if { [llength $data] == 5 } {              putquick "NOTICE $nickname :\002(\002keyword\002)\002 [join $data ", "]"              set data ""            }            lappend data $messages          }                    if { [llength $data] &gt; 1 } {            putquick "NOTICE $nickname :\002(\002keyword\002)\002 [join $data ", "]"          } elseif { [llength $data] == 1 } {            putquick "NOTICE $nickname :\002(\002keyword\002)\002 [join $data]"          }        }                          # - void proc version        proc command:version { nickname hostname handle channel arguments } {                      if {[info exists ::keyword(protection_v,$channel)] &amp;&amp; [expr [unixtime] - $::keyword(protection_v,$channel)] &lt; 30} { return;}          putquick "PRIVMSG $channel :\001ACTION is running the keyword script $::keyword::variable::version \002(\002c\002)\002 $::keyword::variable::author\001"          set ::keyword(protection_v,$channel) [unixtime]                }              }                        # namespace eval utilities      namespace eval utilities {                # - void proc exists {required string channel} {required string keyword}        proc exists { channel keyword {global "8427zthgf7tzht"} } {          if { $keyword == "" || ![info exists keyword] || [string match *\"* $keyword] } { return 0; }          if {[catch { set database [open $::keyword::variable::database "r"] } error]} { return 0; }          set number 1          while {![eof $database]} {            if {[set line [gets $database]] != ""} {              if { [lindex [split $line] 0] != $channel &amp;&amp; [lindex [split $line] 0] != [encrypt split "$global"]  } { continue; }              if {![isnumber [string range [join $keyword] 1 end]]} {                if {([lindex [split $line] 0] == "$channel" || [lindex [split $line] 0] == [encrypt split "$global"]) &amp;&amp; [lindex [split $line] 1] == "[encrypt split $keyword]"} {                  close $database                  return 1                }              } else {                if {[lindex [split $line] 0] == "$channel" &amp;&amp; $number == [string range [join $keyword] 1 end]} {                  close $database                  return 1                }              }            }            incr number          }                    close $database          return 0        }                          # - void proc add {required string channel} {required string keyword} {required string message}        proc add { channel keyword message } {          if {[catch { set database [open $::keyword::variable::database "a"] } error]} { return 0; }          puts $database "$channel $keyword $message"          close $database          return 1        }                          # - void proc remove {required string channel} {required string keyword}        proc remove { channel keyword } {          if {[catch { set database [open $::keyword::variable::database "r"] } error]} { return 0; }          set refill ""          set number 1          while {![eof $database]} {            if {[set line [gets $database]] != ""} {              if {[lindex [split $line] 0] == "$channel"} {                if {[lindex [split $line] 1] == "[encrypt split $keyword]"} { incr number; continue; }                if {[isnumber [string range [join $keyword] 1 end]] &amp;&amp; $number == [string range [join $keyword] 1 end]} { incr number; continue; }                       incr number;              }              lappend refill $line            }          }          close $database          set database [open $::keyword::variable::database "w"]          foreach data_refill $refill {            puts $database $data_refill          }          close $database          return 1        }                       # - void proc clear {optional string channel}        proc clear { {channel ""} } {          if { $channel == "*" || $channel == "" } {            if {[file exists $::keyword::variable::database]} { file delete $::keyword::variable::database }             set database [open $::keyword::variable::database "w"]            puts -nonewline $database ""            close $database            return;           }                    if {[catch { set database [open $::keyword::variable::database "r"] } error]} { return 0; }          set refill ""          set number 1          while {![eof $database]} {            if {[set line [gets $database]] != ""} {              if {[lindex [split $line] 0] == "$channel"} { continue; }              lappend refill $line            }          }          close $database          set database [open $::keyword::variable::database "w"]          foreach data_refill $refill {            puts $database $data_refill          }          close $database          return 1        }                         # - void proc rewrite {required string channel} {required string keyword} {required string message}        proc rewrite { channel keyword message } {          if {[catch { set database [open $::keyword::variable::database "r"] } error]} { return 0; }          set refill ""          set number 1          while {![eof $database]} {            if {[set line [gets $database]] != ""} {              if {[lindex [split $line] 0] == "$channel"} {                if {[lindex [split $line] 1] == "[encrypt split $keyword]"} { continue; }              }              lappend refill $line            }          }          close $database          set database [open $::keyword::variable::database "w"]          foreach data_refill $refill {            puts $database $data_refill          }          puts $database "$channel [encrypt split $keyword] $message"          close $database          return 1        }                          # - void proc create:list {required string channel}        proc create:list { channel } {          set data ""          set database [open $::keyword::variable::database "r"]          while {![eof $database]} {            if {[set line [gets $database]] != ""} {              if { [lindex [split $line] 0] == "[encrypt split $channel]" } {                lappend data "[decrypt split [lindex [split $line] 1]]"              }            }          }          close $database          return $data        }                # - void proc get:command {required string command}        proc get:command { command } {          set data ""          set database [open $::keyword::variable::database "r"]          while {![eof $database]} {            if {[set line [gets $database]] != ""} {              if { [lindex [split $line] 1] == "[encrypt split $command]" } {                close $database; return [decrypt split [lindex [split $line] 2]];              }            }          }          close $database        }                                 # - void proc trigger {required string handle}        proc trigger { handle } {          set utrigger [getuser $handle XTRA keyword-trigger]          if {[llength $utrigger] &lt; 1 || ![validuser $handle]} {            set utrigger [join [string trim $::keyword::variable::trigger]]          }                      return $utrigger                }                         }              # log      putlog "user defined keywords version &lt;${::keyword::variable::version}&gt; (c) $::keyword::variable::author successfully loaded"                             }</code></pre></div>The original tcl file can also be find here: <br><a href="http://www.egghelp.org/cgi-bin/tcl_archive.tcl?mode=download&amp;id=1309" class="postlink">http://www.egghelp.org/cgi-bin/tcl_arch ... ad&amp;id=1309</a> <br><br>Need some help with fixing the bug for this sweet script <br><br>Best regards<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=8142">spijon</a> — Fri Jan 11, 2008 4:42 pm</p><hr />
]]></content>
	</entry>
	</feed>
