No, this is the speed of your script, and parts need to be delayed.
You are adding a channel, getting a channel count and them removing it, all wihtin the one script cycle.
1: Adding channels.
Eggdrop will add the channel and the settings to its internal records and then send the "JOIN #channel" command.
2: Getting channel count.
This is where you bot is stuck. When you join a channel, any clinet including eggdrop, will download a list of the users in the channel, the ban list, channel modes and the topic.
The problem here, eggdrop is in the middle of a script, and can't parse this incoming data, thus doesn't have it on record.
3: Remove channel
As above, eggdrop has not yet parsed the incoming data fromt he server, because it is stuck in a script.
This command removes any information stored in memory about the channel, and then sends a "PART #channel" message to the server.
The reason you get the "Join but didn't want to", is because of this incoming data that is waiting. Once the above script has finished, the bot will parse this data. The data shows a channel it doesn't know about (more like no longer knows about), so it displays that message.
There is only one way around this. Delay obtaining a channel count, and delete the channel then.
This can be done somthing like this
Code: Select all
proc delaychancount {nick chan} {
get count [llength [chanlist $chan]]
channel remove $chan
notice $nick $count
}
You can now remove the lines that get the count, send the message and remove the channel, from your script, and replace them with 1 single line
Code: Select all
utimer 5 [list delatchancount $nick $channel]
This will use a timer to delay the count and removal, allowing eggdrop tiem to parse the script (so long as another script doesn't take too much time).