home · contact · privacy
Add /nick command.
authorChristian Heller <c.heller@plomlompom.de>
Tue, 8 Jul 2025 20:16:31 +0000 (22:16 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Tue, 8 Jul 2025 20:16:31 +0000 (22:16 +0200)
ircplom/irc_conn.py
ircplom/tui.py

index 4d9df4c8ca74054441f64f1821477d97d0834e25..8857c776f01c0556de696df43ca39cc7519ba327 100644 (file)
@@ -325,5 +325,5 @@ class _ConnectionLoop(Loop, BroadcastConnMixin):
         elif msg.verb == 'ERROR'\
                 and msg.parameters[0].startswith('Closing link:'):
             self.broadcast_conn(DisconnectedEvent)
-        elif msg.verb == '001':
+        elif msg.verb in {'001', 'NICK'}:
             self.broadcast_conn(NickSetEvent, msg.parameters[0])
index 6638fa39ba2ad23794608a10f2a1b2efaf6af014..22c0ce57795400dd154ea23c3ade98a5d76d5923 100644 (file)
@@ -44,6 +44,7 @@ _KEYBINDINGS = {
 }
 _CMD_SHORTCUTS = {
     'disconnect': 'window.disconnect',
+    'nick': 'window.nick',
     'reconnect': 'window.reconnect'
 }
 
@@ -399,6 +400,10 @@ class _ConnectionWindow(_Window, BroadcastConnMixin):
         'Attempt reconnection.'
         self.broadcast_conn(InitReconnectEvent)
 
+    def cmd__nick(self, new_nick: str) -> None:
+        'Attempt nickname change.'
+        self.broadcast_conn(SendEvent, IrcMessage('NICK', (new_nick, )))
+
 
 class _KeyboardLoop(Loop, BroadcastMixin):
     'Loop receiving and translating keyboard events towards main loop.'