i have this odd issue with this code it seems to devoice on ban almost all nicks that match the banmask exept if the nick is a nick with {} like {somenick} {nick2} and such im puzzled as to why
It's been a while, so lets see how much I've actually forgotten...
As for brackets and braces in general, the most common issues I've come across over the years, is when scripters don't keep track of when they're operating on a string or a list. This is usually the case when I find search-and-replace snippets looking for those characters.
So only use list-operators (lindex, lrange, etc) on what you know to be a list.
The second most common one, is scripters sending unvalidated strings to expr/eval.
That said, I can't see any of those issues in the posted code.
You do have a search-and-replace snippet escaping backslash and opening-bracket in the banmask, which I belive is not needed (since banmasks use simple glob-style matching, not regular expressions). But unless the banmask includes those characters, that shouldn't be an issue.
Also curious why you split your banmask on ":"...
Think you could post some examples of banmasks and nicks that are not working properly?
So, with the examples you posted, matching works just fine - as long as you don't start injecting random characters...
To ease with figuring out what is going wrong, we need actual samples. I would also recommend using putlog to print information such as what is the actual mask and nick!user@host used; or if the bot does not believe the user is voiced, etc...
hm yes ive tested again and for some reason it seems fine now i cant grasp it ill monitor it some more and report back thanks again nml375 much apreciated