Posted to tcl by aspect at Mon Jul 03 12:47:07 GMT 2023view pretty
Index: apps/ijbridge/ijbridge.tcl
==================================================================
--- apps/ijbridge/ijbridge.tcl
+++ apps/ijbridge/ijbridge.tcl
@@ -1086,12 +1086,28 @@
cmd-join $::client::channel
}
$cn registerevent 433 {
# ERR_NICKNAMEINUSE
- if { [lindex [additional] 0] == $::client::nick } {
- cmd-send "NICK [string trimright $::client::nick 0123456789][string range [expr rand()] end-2 end]"
+
+ # avoid piling up afters
+ after cancel [list cmd-send "NICK $preferred_nick"]
+
+ set preferred_nick $::ijchain::Options(IrcUser)
+ # $::client::nick is our current nick - or, during intial handshake, the nick we are trying to assume.
+
+ if {[lindex [additional] 0] eq $::client_nick} {
+
+ # we are still trying to set an initial nick
+
+ set fallback_nick "$preferred_nick[string range [expr rand()] end-2 end]"
+ cmd-send "NICK $fallback_nick"
+ set $::client::nick $fallback_nick
+ }
+
+ if {$::client::nick ne $preferred_nick} {
+ after 20000 [list cmd-send "NICK $preferred_nick"]
}
}
$cn registerevent 353 {
# RPL_NAMEREPLY