• v3.1.0 7ac68450ef

    v3.1.0
    All checks were successful
    CI / build-and-test (push) Successful in 2m25s
    CI / docker-build (push) Successful in 33s
    Stable

    joeyr released this 2026-09-27 15:12:50 -05:00 | 35 commits to main since this release

    Added

    • A sign-up board for the notification channels.
      /aufadmin roles signup-board posts a message with a Diablo 2 and a
      League of Legends button. Clicking one gives you the role that opens
      that game's notifications channel; clicking it again takes it away. Only
      you see the reply, and it names the channel. The command takes the two
      roles, and a channel to post in (the one you run it in if left empty). It
      refuses a role the bot can't hand out: the bot needs Manage Roles, with
      its role above both.
    Downloads
  • v3.0.1 e83adb3367

    v3.0.1
    All checks were successful
    CI / build-and-test (push) Successful in 2m53s
    CI / docker-build (push) Successful in 1m17s
    Stable

    joeyr released this 2026-09-27 13:17:37 -05:00 | 36 commits to main since this release

    Changed

    • The DClone status message has a new look. Each mode is in bold, with
      its three regions on the line below: the flag, a progress bar and the
      level, like 🇺🇸 ▰▰▱▱▱▱ 2/6. Nothing has to line up, so it reads the
      same on a phone. The side colour is green, and yellow once any game is at
      4/6 or more. Still nothing under it.
    Downloads
  • v3.0.0 55555e2204

    v3.0.0
    Some checks failed
    CI / build-and-test (push) Successful in 3m8s
    CI / docker-build (push) Failing after 1m0s
    Stable

    joeyr released this 2026-09-27 13:10:51 -05:00 | 37 commits to main since this release

    DClone alerts now ping only at the steps people pick, and delete themselves.
    This is a major release because DClone alerts stop for everyone signed up
    today until they pick their steps: open /aufhocker d2 dclone-alerts (or
    Pick my DClone games on the sign-up board) and choose them.

    Changed

    • DClone alerts ping only at the steps you pick. The DClone menu has a
      new Steps dropdown: 2/6, 3/6, 4/6, 5/6 and Spawn, any mix. A step
      nobody picked posts nothing; the status message still shows it. Pick no
      steps and you get no DClone pings at all.
    • A DClone alert is deleted when its game moves on, whether or not
      anyone picked the next step, and when it falls back. So the channel shows
      at most the current step of each game.
    • A spawn alert is deleted 12 hours later.
    • Each game gets its own alert, so each can go when its own game moves.
      Two games moving in the same check used to share one message.
    • A restart doesn't leave alerts behind. Step alerts are saved (a new
      d2emu_dclone_posts table, migration 016, applied at boot), and the first
      check after a restart deletes any whose game moved while the bot was down.
      One that won't delete is retried every 5 minutes for two hours.
    Downloads
  • v2.4.3 bbf6011c1d

    v2.4.3
    All checks were successful
    CI / build-and-test (push) Successful in 2m24s
    CI / docker-build (push) Successful in 32s
    Stable

    joeyr released this 2026-09-27 10:55:08 -05:00 | 38 commits to main since this release

    Changed

    • The DClone status message is the title and the grid, nothing else.
      Each game shows the level the tracker reports. Gone: 6/6 for the half hour
      after a spawn, the "may be out of date" line, the side colour that followed
      the highest level, and the "Last change" footer.
    Downloads
  • v2.4.1 411ca18c7d

    v2.4.1
    All checks were successful
    CI / build-and-test (push) Successful in 2m31s
    CI / docker-build (push) Successful in 30s
    Stable

    joeyr released this 2026-09-27 10:37:13 -05:00 | 40 commits to main since this release

    Changed

    • The DClone status message drops its "Last spawn" line. With nothing
      close and nothing just spawned, it's now the grid alone. A spawn still
      shows as 6/6 with "spawned N minutes ago" for the half hour after it.
    Downloads
  • v2.4.0 3eb44b7fbe

    v2.4.0
    Some checks failed
    CI / build-and-test (push) Successful in 2m35s
    CI / docker-build (push) Has been cancelled
    Stable

    joeyr released this 2026-09-27 10:34:07 -05:00 | 41 commits to main since this release

    Added

    • An always-there DClone status message. /aufadmin d2 dclone-board
      posts one message in the D2 channel showing all twelve games in a grid,
      and the bot keeps editing that same message as they move. It never pings
      anyone. Pin it, and the current DClone state is always one look away.
      • Under the grid: a line for any game at 4/6 or more, with how long
        it's been there; "spawned 4 minutes ago" for half an hour after a spawn
        (the grid shows 6/6 that long too); otherwise the last spawn.
      • Edited only when something on it changes, and it survives restarts:
        which message it is is saved (migration 015, applied at boot).
      • Says when it may be out of date: if the tracker stops answering for
        10 minutes, a line says since when.
      • Running the command again posts a fresh one and deletes the old, so
        there's only ever one. If someone deletes it, the bot stops updating it
        and logs a warn (d2emu/board); the command puts it back.

    DClone alerts are unchanged in this release.

    Downloads
  • v2.3.1 17fcdca802

    v2.3.1
    All checks were successful
    CI / build-and-test (push) Successful in 2m57s
    CI / docker-build (push) Successful in 34s
    Stable

    joeyr released this 2026-09-27 10:06:28 -05:00 | 42 commits to main since this release

    Fixed

    • The changelog lints cleanly. A new .markdownlint.json lets each
      version repeat the Added / Changed / Fixed headings (MD024 now checks
      siblings only), which clears 90 warnings, and the one code block with no
      language is marked text. Nothing changes in the bot.
    Downloads
  • v2.3.0 0d6592dc5c

    v2.3.0
    All checks were successful
    CI / build-and-test (push) Successful in 3m9s
    CI / docker-build (push) Successful in 44s
    Stable

    joeyr released this 2026-09-27 10:02:10 -05:00 | 43 commits to main since this release

    Added

    • Finished hosted walks are cleared from the channel. D2R Clone Hunters
      strike a walk post through once the walk is over. The bot now spots that,
      and 30 minutes later deletes their post and its own reply under it, so the
      channel doesn't fill up with walks that are done.
      • A restart doesn't lose it. The deletion is saved in the same list the
        Terror Zone alerts use, which the bot checks every 5 minutes, so it lands
        within 5 minutes of the half hour. A post struck through while the bot was
        restarting is still caught.
      • Only a post struck through in full counts. A time crossed out beside
        its replacement is a change of plan, not the end of the walk, and the post
        stays.
      • The bot needs Manage Messages in the D2 channel to delete Clone
        Hunters' post. Without it, the delete is retried for two hours, then given
        up on with a warn (d2emu/poll).

    Changed

    • A walk post that arrives already struck through pings nobody. Clone
      Hunters sometimes publish after the walk is over; that post now just goes
      after 30 minutes instead of pinging people for a walk that's done.
    • The Terror Zone alerts' delete list is now shared. The
      d2emu_tz_alerts table is renamed d2emu_expiring_messages and gains a
      kind column, tz or walk (migration 014, applied at boot). Alerts
      already waiting to be deleted are kept. A delete that fails now says in its
      warn whether it was a Terror Zone alert or a walk post.
    Downloads
  • v2.2.1 edc543d78e

    v2.2.1
    All checks were successful
    CI / build-and-test (push) Successful in 3m5s
    CI / docker-build (push) Successful in 42s
    Stable

    joeyr released this 2026-09-26 20:47:39 -05:00 | 44 commits to main since this release

    Changed

    • LoL result shows vision score per minute. The finished-game line now
      reads CS/min: 5.8 | Vision/min: 1.2 instead of the raw vision score,
      so short and long games compare fairly.

    Fixed

    • The ⏱️ in a LoL game post's footer no longer sticks at 0m 0s. It was
      the game clock from the moment the bot spotted the game, which is almost
      always the loading screen, and it was never updated. A live post now says
      Loading in that case, and once the game ends the footer shows the
      final game length. Posts made before this update get the same fix when
      their result comes in.
    Downloads
  • v2.2.0 dc382d7f21

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

    joeyr released this 2026-09-26 11:38:57 -05:00 | 45 commits to main since this release

    Added

    • Terror Zone warnings: pick when you're pinged. /aufhocker d2 tz-alerts
      has a new When to ping you dropdown: when the zone starts, or 5, 10, 15
      or 20 minutes before. Pick any mix, so warning only, or a warning and the
      start, both work. A warning reads "Chaos Sanctuary is terrorized in 15
      minutes", with that zone's immunities, boss packs, super uniques and start
      time, and deletes itself once the zone starts.
      • Nothing changes for anyone who doesn't pick. No timing means the ping
        as the zone starts, as before.
      • 20 minutes is the earliest, because the API reveals the next zone
        about 25 minutes ahead.
      • Stored as a new tz-when sign-up kind (migration 013, applied at boot).

    Changed

    • Acts 4 and 5 share one dropdown in the Terror Zone menu. Discord allows
      five rows per message, and the fifth is now the timing dropdown. Nobody's
      picks change, and a menu opened before the update still saves.
    • The Terror Zone check runs every 5 minutes, not every 30, so each
      warning goes on time. A zone that starts late in the API is also now caught
      within 5 minutes rather than 30.

    Fixed

    • Immunities are listed once each. The API's list for the next zone mixes
      codes and names with repeats (Fire and f, Magic and Magical); it's
      now tidied to one name per immunity. This applies to the start alert and the
      /aufhocker d2 tz reply too.
    Downloads