diff --git a/src/derp/mumble.py b/src/derp/mumble.py index f5d5a3b..9c2addc 100644 --- a/src/derp/mumble.py +++ b/src/derp/mumble.py @@ -254,6 +254,16 @@ class MumbleBot: self._mumble.users.myself.deafen() except Exception: log.exception("mumble: failed to self-deafen on connect") + # Self-register on first connect so the server stores the cert + # and treats this bot as a known user (persistent identity). + if self._connect_count == 1: + try: + myself = self._mumble.users.myself + if not myself.get("user_id"): + myself.register() + log.info("mumble: self-registered %s", self._username) + except Exception: + log.debug("mumble: self-register skipped (already registered?)") if self._loop: asyncio.run_coroutine_threadsafe( self._notify_plugins_connected(), self._loop,