if {[string match -nocase "abc" $txt] || [string match -nocase "def" $txt] || [string match -nocase "ghi" $txt] || [string match -nocase "jkl" $txt] && $nick eq "daigo"}
Whenever someone says "abc" "def" or "ghi" the script responds to them, even though I stated that I want only the nickname "daigo" to be responded to. I assume this is because I need to enclose all 4 of the || conditions together, but I tried brackets [], {} and parentheses () but none of them work.
if {([lindex [split $arg] 0] ne "") && ([string match -nocase "*matchthis*" $arg])} {
This would fix your issue with the last condition of your statement; $nick eq "daigo"
We explore.. and you call us criminals. We seek after knowledge.. and you call us criminals. We exist without skin color, without nationality, without religious bias.. and you call us criminals.