• v2.0.0 f7f0ebdf7c

    v2.0.0
    All checks were successful
    CI / build-and-test (push) Successful in 2m19s
    CI / docker-build (push) Successful in 29s
    Stable

    joeyr released this 2026-09-25 09:09:28 -05:00 | 48 commits to main since this release

    D2 alerts now go only to the people who signed up for them. This is a major
    release because four things existing users rely on change. After deploying,
    run /aufadmin d2 signup-board and pin the message it posts.

    Changed

    • Terror Zone alerts stop until someone signs up. Every rotation used to
      post for everyone in the channel. Now each person picks their zones with
      /aufhocker d2 tz-alerts, and a rotation pings only the people who picked
      that zone. If nobody in the server picked it, the bot posts nothing.
    • DClone alerts stop until someone signs up. /aufhocker d2 dclone-alerts
      picks game modes (softcore or hardcore, ladder or non-ladder) and regions
      (USA, EU, KR). A progress change pings the people who picked that game's
      mode and its region, and the post lists only the games someone in the
      server signed up for.
    • /aufhocker d2 channel is now /aufadmin d2 notifications-channel, with
      the same option and the same view-or-set behaviour. The D2 admin commands
      now live together under /aufadmin, which only admins can see.
    • D2EMU_TZ_NOTIFY_AREA_IDS no longer does anything. It was one zone list
      for the whole server, and sign-ups replace it. Nothing carries over from
      it, so everyone signs up fresh. If it's still set, the bot logs a warning at
      boot; remove it from the stack file.

    Added

    • Sign-up menus. tz-alerts shows one dropdown per act, and
      dclone-alerts and walk-alerts show a mode dropdown and a region
      dropdown. Each menu is private, opens with your current picks ticked, and
      saves the moment a dropdown changes. For DClone and walks, it warns you when
      modes or regions are empty, because a ping needs both. Untick everything to
      stop. Sign-ups are per server.
    • A sign-up board. /aufadmin d2 signup-board posts one message in the D2
      channel with a button for each menu. It's the same message for everyone and
      never shows anyone's picks, and its buttons keep working after a restart.
    • Hardcore and non-ladder DClone. The bot now tracks all twelve Reign of
      the Warlock games instead of the three softcore ladder ones, at no extra API
      cost, since they all come back in the one response. /aufhocker d2 dclone
      lists all twelve.
    • Hosted-walk alerts. When D2R Clone Hunters announce a walk in their
      #announcements, which this server follows, the bot replies under the
      copied post and pings the people signed up for that mode and region with
      /aufhocker d2 walk-alerts. The copied post's own role mention arrives as
      plain text and never pinged anyone. A post the bot can't read pings nobody
      and logs a warning with its text. Walk alerts are on when
      D2EMU_WALK_SOURCE_CHANNEL_ID is set (Clone Hunters' #announcements,
      895727392092459049, in .env.config). Leave it empty and they're off.
    • Tip: set the D2 channel to Only @mentions. d2 help, the menus and the
      board all say so. From then on, the only D2 alerts that reach you are the
      ones you picked.
    • The d2emu_subscriptions table (migration 011), and the d2emu/subs and
      d2emu/walks log phases.
    • Plugin contract: buildAdminCommands / handlesAdminSlash /
      handleAdminSlash let a plugin add one group to /aufadmin.
      handleSelectMenu routes string select menus the way handleButton routes
      buttons, by componentPrefix (renamed from buttonPrefix). onCrosspost
      hands plugins messages copied in from a followed channel, which the context
      store never sees. See docs/PLUGINS.md.

    Fixed

    • A DClone walk no longer swallows another game's progress. When one game
      walked and another moved in the same poll, only the walk was posted. Now
      both are. With twelve games tracked, that happens often.
    Downloads