Files
anthorob d97c4c6da2 **Add autoplay support for seamless music playback**
Introduced autoplay functionality to keep music playing when the queue ends. Added new `/autoplay` API endpoints, command handling, and service implementations. Enhanced `TrackScheduler`, queue operations, and testing to support autoplay behavior. Integrated YouTube radio mix as the initial provider.
2026-10-31 16:13:04 -04:00
..
2026-10-19 08:21:42 -04:00
2026-10-19 08:21:42 -04:00
2026-10-19 08:21:42 -04:00
2026-10-19 08:21:42 -04:00
2026-10-19 08:21:42 -04:00
2026-10-19 08:21:42 -04:00
2026-10-19 08:21:42 -04:00

Net Neutrality — Technical Documentation

This directory contains detailed technical documentation for the Net Neutrality Discord bot (me.bobert:netneutrality, version 3.0.0).

It is intended for developers working on the codebase. It documents every major system and subsystem, how they fit together, and the end-to-end flows that tie them.

Table of contents

Document Subsystem
architecture.md High-level architecture, startup/shutdown lifecycle, tech stack
events.md Event handling & routing (EventsHandler)
contexts.md Contexts — the abstraction over Discord events
commands.md Commands — message & slash commands, dispatch, options
tasks.md Tasks — button/emoji/modal/step/built-in/persistable/scheduled tasks
persistence.md Database — Hibernate/JPA, Flyway, entities, repositories, services
music.md Music — Lavalink node & client, queue, event dispatch
web-api.md HTTP Web API — Javalin server for control, introspection & music
threading.md Threading & scheduling infrastructure
utilities-and-bootstrap.md Utilities, configuration, logging, exceptions

How to read this documentation

Start with architecture.md for the big picture and the startup sequence. Then read events.md and contexts.md, because almost everything else is triggered through a Context produced by the EventsHandler. From there, the two primary execution paths are commands.md and tasks.md.

Conventions

  • Class names are given fully qualified on first mention, then by simple name.
  • Database entity classes are prefixed with O (e.g. OGuild), and are documented in persistence.md.
  • Environment variables / configuration keys use the NETNEUTRALITY_* and MYSQL_* prefixes and are documented in utilities-and-bootstrap.md.