egghelp.org community Forum Index
[ egghelp.org home | forum home ]
egghelp.org community
Discussion of eggdrop bots, shell accounts and tcl scripts.
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

i've got a truble

 
Post new topic   Reply to topic    egghelp.org community Forum Index -> Scripting Help
View previous topic :: View next topic  
Author Message
antilope
Voice


Joined: 02 Apr 2009
Posts: 5

PostPosted: Thu Apr 23, 2009 5:17 pm    Post subject: i've got a truble Reply with quote

Hi in my autovoice list can't +voice automatically the nick with capital letters such as Prezzemolo or PrEzZeMoLo thanks for any help


Code:


# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #                                                                         # #
#                 avl (autovoicelist) - Script v1.0 by stylus740              #
# #                                                                         # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #


###############################################################################
# History:                                                                    #
# 1.0      Erstes Release                                                    #
###############################################################################

##
# verwaltet eine Liste von Nicks, die im Channel autovoice erhalten
##

# In welchen Channels soll das Script aktiv sein?
# Die Definition erfolgt durch Setzen von +avl in der Partyline im Bot
#
# .chanset #channel +avl

# Definition des Datenfiles für berechtigte User

set avl_ni(datafile) "scripts/avl.dat"

###############################################################################
# Mögliche Befehle in der Partyline:                     #
#                                       #
# .chanset #chan +avl      Aktivierung des scripts in Channel #chan      #
# .chanset #chan -avl      Deaktivierung des scripts in Channel #chan   #
# .avlhelp            Hilfen zur Bedienung               #
# .addvoice nick         User zur Liste hinzufügen            #
# .delvoice nick         User von Liste löschen               #
# .listvoice         Einträge anzeigen                  #
###############################################################################

### Ab hier nur editieren, wenn man genau weiß, was man tut. Beginn des Codes ###

setudef flag avl                        ;# Zur Aktivierung der userdefined flags
set avl_ni(version) v1.0                  ;# Variable für Version setzten

bind dcc n|n addvoice add_users               ;# User hinzufügen
bind dcc n|n delvoice del_users               ;# User hinzufügen
bind dcc n|n listvoice list_users               ;# User anzeigen
bind dcc n|n avlhelp help_users               ;# Hilfe anzeigen
bind msg n|n addvoice m_add_users               ;# User hinzufügen
bind msg n|n delvoice m_del_users               ;# User hinzufügen
bind msg n|n listvoice m_list_users               ;# User anzeigen
bind msg n|n avlhelp m_help_users               ;# Hilfe anzeigen
bind join - * join:avl_check
bind nick - * nick:avl_check

proc help_users {handle idx args} {
putlog "avl ermöglicht es Usern, die von einer berechtigten Person in einer Liste gespeichert sind"
putlog "auto-voice durch den Bot erteilen zu lassen. (Nützlich in Support Channels, wo oft User nicht"
putlog "registriert sind."
putlog "Die Steuerung von avl erfolgt über die Partyline mit den folgenden Befehlen:"
putlog " "
putlog ".addvoice <nick> <chan>        Nick mit Channel hinzufügen oder ändern"
putlog ".delvoice <nick> <chan>        Den angegebenen Nick löschen"
putlog ".listvoice               Sämtliche berechtigten User-Einträge anzeigen"
putlog ".avlhelp                        Diese Hilfemeldung anzeigen"
}

proc m_help_users {nick host hand args} {
puthelp "PRIVMSG $nick :avl ermöglicht es Usern, die von einer berechtigten Person in einer Liste gespeichert sind"
puthelp "PRIVMSG $nick :auto-voice durch den Bot erteilen zu lassen. (Nützlich in Support Channels, wo oft User nicht"
puthelp "PRIVMSG $nick :registriert sind."
puthelp "PRIVMSG $nick :Die Steuerung von avl erfolgt über ein Query mit dem Bot mit den folgenden Befehlen:"
puthelp "PRIVMSG $nick : "
puthelp "PRIVMSG $nick :/msg <bot> addvoice <nick> <chan>        Nick mit Channel hinzufügen oder ändern"
puthelp "PRIVMSG $nick :/msg <bot> delvoice <nick> <chan>        Den angegebenen Nick löschen"
puthelp "PRIVMSG $nick :/msg <bot> listvoice                 Sämtliche berechtigten User-Einträge anzeigen"
puthelp "PRIVMSG $nick :/msg <bot> avlhelp                    Diese Hilfemeldung anzeigen"
}

proc init_users {} {
global avl_nick avl_ni                        ;# Datenstrukturen public definieren
if {[file exists $avl_ni(datafile)]} {               ;# Falls File vorhanden
  putlog "Laden Userdaten aus $avl_ni(datafile)"         ;# Lademeldung
  set in [open $avl_ni(datafile) r]                  ;# Datenfile im read modus öffnen
  while {![eof $in]} {                        ;# solange kein EOF
    set vline [gets $in]                                 ;# Zeile holen
    if {[eof $in]} {break}                       ;# Falls EOF, Ende von while
    set inick [lindex [split $vline] 0]                 ;# Nick extrahieren
    set ichan [join [lrange [split $vline] 1 end]]       ;# Channel extrahieren
    set ientry "$inick&$ichan"                  ;# Kombination Nick&Chan bauen
    set avl_nick($ientry) $ientry                        ;# Array Datenfeld belegen
    }                                 ;# End while
  close $in                              ;# Datei schließen
  }                                 ;# End If (dataexist)
}                                 ;# End Procedure
init_users

proc list_users {handle idx args} {
global avl_nick avl_ni                        ;# Datenstrukturen public definieren
if {[info exists avl_nick]} {                     ;# Falls Felder definiert sind
  putlog "Eingetragene Nick für avl:"               ;# Überschrift anzeigen
  foreach search [array names avl_nick] {                ;# Für jeden Eintrag
   if {$search != 0} {                        ;# wenn kein leerer Eintrag
     set acmd [split $search "&"]                  ;# Eintrag bei "&" aufsplitten
     set inick [lindex $acmd 0]                  ;# erstes Argument ist Nick
     set inick [form $inick]                     ;# Nick formatieren
     set ichan [join [lrange [split $acmd] 1 end]]         ;# Der gesamte Rest ist der Channel
     set ichan [form $ichan]                     ;# Chan formatieren
     putlog "$inick       $ichan"                     ;# Zeile anzeigen
     }                              ;# End if (search)
    }                                 ;# End foreach
  } else {                              ;# Falls keine Struktur vorhanden
    putlog "Keine Daten gespeichert"               ;# Fehler anzeigen
  }                                 ;# End if
}                                 ;# End Procedure

proc add_users {handle idx args} {
 global avl_nick avl_ni                        ;# Datenstrukturen public definieren
 set acmd [lindex $args 0]                     ;# Befehlszeile extrahieren
 set inick [lindex [split $acmd] 0]                  ;# erstes Argument ist Nick
 set inick [form $inick]                     ;# Nick formatieren
 set ichan [join [lrange [split $acmd] 1 end]]            ;# Der gesamte Rest ist der Channel
 set ichan [form $ichan]                     ;# Chan formatieren
 set ientry "$inick&$ichan"                     ;# Kombination Nick&Chan bauen
 set avl_nick($ientry) $ientry                           ;# Array Datenfeld (neu) belegen
 writefile                              ;# Datei schreiben
 putlog "User $inick mit Chan $ichan in $avl_ni(datafile) hinzugefügt"
 if {[onchan $inick $ichan]} {
   pushmode $ichan +v $inick                   ;# direkt +v setzen
 }
}                                 ;# End Procedure

proc del_users {handle idx args} {
 global avl_nick avl_ni                        ;# Datenstrukturen public definieren
 set acmd [lindex $args 0]                     ;# Befehlszeile extrahieren
 set inick [lindex [split $acmd] 0]                 ;# erstes Argument ist Nick
 set inick [form $inick]                    ;# Nick formatieren
 set ichan [join [lrange [split $acmd] 1 end]]           ;# Der gesamte Rest ist der Channel
 set ichan [form $ichan]                     ;# Chan formatieren
 set ientry "$inick&$ichan"                     ;# Eintrag nick&chan montieren
 if {([info exists avl_nick($ientry)])} {                ;# wenn der Eintrag existiert
   unset avl_nick($ientry)                   ;# Array Datenfeld freigeben
   writefile
   putlog "Eintrag $ientry aus $avl_ni(datafile) gelöscht"  ;# Löschmeldung
   } else {                            ;# Falls Nick nicht vorhanden
   putlog "Eintrag $ientry ist nicht gespeichert!"      ;# Infomeldung
   }                              ;# End if (info)
 if {[onchan $inick $ichan]} {
   pushmode $ichan -v $inick                   ;# direkt -v setzen
 }
}                              ;# End Procedure

proc m_list_users {nick host hand args} {
global avl_nick avl_ni                        ;# Datenstrukturen public definieren
if {[info exists avl_nick]} {                     ;# Falls Felder definiert sind
  puthelp "PRIVMSG $nick :Eingetragene Nick für avl:"      ;# Überschrift anzeigen
  foreach search [array names avl_nick] {                ;# Für jeden Eintrag
   if {$search != 0} {                        ;# wenn kein leerer Eintrag
     set acmd [split $search "&"]                  ;# Eintrag bei "&" aufsplitten
     set inick [lindex [split $acmd] 0]              ;# erstes Argument ist Nick
     set inick [form $inick]                     ;# Nick formatieren
     set ichan [join [lrange [split $acmd] 1 end]]      ;# Der gesamte Rest ist der Channel
     set ichan [form $ichan]                     ;# Chan formatieren
     puthelp "PRIVMSG $nick :$inick       $ichan"       ;# Zeile anzeigen
     }                              ;# End if (search)
    }                                 ;# End foreach
  } else {                              ;# Falls keine Struktur vorhanden
    puthelp "PRIVMSG $nick :Keine Daten gespeichert"      ;# Fehler anzeigen
  }                                 ;# End if
}                                 ;# End Procedure

proc m_add_users {nick host hand args} {
 global avl_nick avl_ni                        ;# Datenstrukturen public definieren
 set acmd [lindex $args 0]                     ;# Befehlszeile extrahieren
 set inick [lindex [split $acmd] 0]                  ;# erstes Argument ist Nick
 set inick [form $inick]                     ;# Nick formatieren
 set ichan [join [lrange [split $acmd] 1 end]]            ;# Der gesamte Rest ist der Channel
 set ichan [form $ichan]                     ;# Chan formatieren
 set ientry "$inick&$ichan"                     ;# Kombination Nick&Chan bauen
 set avl_nick($ientry) $ientry                           ;# Array Datenfeld (neu) belegen
 writefile                              ;# Datei schreiben
 puthelp "PRIVMSG $nick :User $inick mit Chan $ichan in $avl_ni(datafile) hinzugefügt"
 if {[onchan $inick $ichan]} {
   pushmode $ichan +v $inick                   ;# direkt +v setzen
 }
}                                 ;# End Procedure

proc m_del_users {nick host hand args} {
 global avl_nick avl_ni                        ;# Datenstrukturen public definieren
 set acmd [lindex $args 0]                     ;# Befehlszeile extrahieren
 set inick [lindex [split $acmd] 0]                 ;# erstes Argument ist Nick
 set inick [form $inick]                    ;# Nick formatieren
 set ichan [join [lrange [split $acmd] 1 end]]           ;# Der gesamte Rest ist der Channel
 set ichan [form $ichan]                     ;# Chan formatieren
 set ientry "$inick&$ichan"                     ;# Eintrag nick&chan montieren
 if {([info exists avl_nick($ientry)])} {                ;# wenn der Eintrag existiert
   unset avl_nick($ientry)                   ;# Array Datenfeld freigeben
   writefile
   puthelp "PRIVMSG $nick :Eintrag $ientry aus $avl_ni(datafile) gelöscht"  ;# Löschmeldung
   } else {                            ;# Falls Nick nicht vorhanden
   puthelp "PRIVMSG $nick :Eintrag $ientry ist nicht gespeichert!"      ;# Infomeldung
   }                              ;# End if (info)
 if {[onchan $inick $ichan]} {
   pushmode $ichan +v $inick                   ;# direkt -v setzen
 }
}                              ;# End Procedure

### Bei einem Join wird dann Voice gegeben, wenn der Nick im Datenfile steht

proc join:avl_check {nick uhost handle chan} {
  global botnick avl_nick
  if {![avl:active $chan]} { return 0 }             ;# falscher Channel: nix machen
  set chan [string tolower $chan]               ;# Channel in Kleinschreibung
  if ([isop $botnick $chan]) {               ;# Wenn Bot im Channel Op hat
    foreach search [array names avl_nick] {            ;# Liste aller Einträge durchlaufen
      if {$search != 0} {                   ;# wenn kein leerer Eintrag
        set ientry [string tolower $avl_nick($search)]      ;# Eintrag (nick&#chan) extrahieren
        set parts [split $ientry "&"]
        set inick [lindex $parts 0]                     ;# Nick extrahieren
        set ichan [lindex $parts 1]                     ;# Chan extrahieren
        if {($nick == $inick) && ($chan == $ichan)} {
          pushmode $chan +v $nick                ;# +v setzen
   } 
      }                           ;# end if search
    }                            ;# end for eache
  } else {                           ;# bot hat gar kein op
    putlog "Habe kein op op und hole es mir neu"       ;# Meldung "kein op"
    putserv "chanserv op $chan $botnick"
  }                                 ;# end if (botisop)
}                              ;# end procedure

proc nick:avl_check {nick uhost handle chan newnick} {
  global botnick avl_nick
  if {![avl:active $chan]} { return 0 }             ;# falscher Channel: nix machen
  set chan [string tolower $chan]               ;# Channel in Kleinschreibung
  if ([isop $botnick $chan]) {               ;# Wenn Bot im Channel Op hat
    foreach search [array names avl_nick] {            ;# Liste aller Einträge durchlaufen
      if {$search != 0} {                   ;# wenn kein leerer Eintrag
        set ientry [string tolower $avl_nick($search)]      ;# Eintrag (nick&#chan) extrahieren
        set parts [split $ientry "&"]
        set inick [lindex $parts 0]                     ;# Nick extrahieren
        set ichan [lindex $parts 1]                     ;# Chan extrahieren
        if {($nick == $inick) && ($chan == $ichan)} {
          pushmode $chan +v $newnick             ;# +v setzen
   }   
      }                           ;# end if search
    }                              ;# end foreach
  } else {                           ;# bot hat gar kein op
    putlog "Habe kein op op und hole es mir neu"       ;# Meldung "kein op"
    putserv "chanserv op $chan $botnick"
  }                                 ;# end if (botisop)
}                              ;# end procedure

proc form {formtext} {                     ;# Formatierung String
  set t [string trimleft $formtext]               ;# führende Leerzeichen entfernen
  set t [string trimright $t]                  ;# folgende Leerzeichen entfernen
  return $t                           ;# formatierten String zurückliefern
}

proc writefile {} {
  global avl_nick avl_ni
  set out [open $avl_ni(datafile) w]               ;# Datenfile im w modus öffnen (überschreiben)
  foreach search [array names avl_nick] {               ;# durchlaufen der Daten arrays
    if {$search != 0} {                        ;# wenn keine leere Zeile
      set parts [split $search "&"]                  ;# Eintrag bei "&" aufsplitten
      set inick [lindex $parts 0]                  ;# Nick extrahieren
      set ichan [lindex $parts 1]                  ;# Channel extrahieren
      set output "$inick $ichan"                  ;# Output montieren
      puts $out $output                        ;# Zeile schreiben
     }                                 ;# End if (search)
   }                              ;# End Foreach
   close $out                        ;# Datei schließen
}                              ;# End procedure

proc avl:active {chan} {
  foreach setting [channel info $chan] {            ;# "channel info" ist ein TCL Befehl!
    if {[regexp -- {^[\+-]} $setting]} {
      if {$setting == "+avl"} { return 1 }
    }
  }
  return 0
}

putlog "avl (autovoicelist) von stylus740 geladen. (Stand 12.02.05)"
putlog "Eingabe von \.avlhelp bzw. \/msg $botnick avlhelp zeigt Bedienungshinweise an"
Back to top
View user's profile Send private message
speechles
Revered One


Joined: 26 Aug 2006
Posts: 1398
Location: emerald triangle, california (coastal redwoods)

PostPosted: Thu Apr 23, 2009 10:49 pm    Post subject: Reply with quote

Code:
if {($nick == $inick) && ($chan == $ichan)} {

Change both occurences of this line to the one below:
Code:
if {[string match -nocase $nick $inick] && [string match -nocase $chan $ichan]} {

_________________
speechles' eggdrop tcl archive
Back to top
View user's profile Send private message
antilope
Voice


Joined: 02 Apr 2009
Posts: 5

PostPosted: Fri Apr 24, 2009 5:48 am    Post subject: Reply with quote

speechles wrote:
Code:
if {($nick == $inick) && ($chan == $ichan)} {

Change both occurences of this line to the one below:
Code:
if {[string match -nocase $nick $inick] && [string match -nocase $chan $ichan]} {


thank u very mutch now it's work fine Very Happy Very Happy
Back to top
View user's profile Send private message
antilope
Voice


Joined: 02 Apr 2009
Posts: 5

PostPosted: Fri Apr 24, 2009 5:48 am    Post subject: Reply with quote

speechles wrote:
Code:
if {($nick == $inick) && ($chan == $ichan)} {

Change both occurences of this line to the one below:
Code:
if {[string match -nocase $nick $inick] && [string match -nocase $chan $ichan]} {


thank u very mutch now it's work fine Very Happy Very Happy
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    egghelp.org community Forum Index -> Scripting Help All times are GMT - 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Forum hosting provided by Reverse.net

Powered by phpBB © 2001, 2005 phpBB Group
subGreen style by ktauber