Annihilation Web is javadoc web from annihilation plugin
README
Interactive documentation site for the Annihilation Minecraft plugin β a multi-server team PvP game built on Spigot 1.20.4 with Redis, MongoDB, and BungeeCord.

Annihilation Docs is a single-page application that serves as the complete technical reference for developers working on the Annihilation plugin suite. It covers architecture, Java class APIs, game mechanics, commands, events, i18n, and configuration β all in one searchable, translatable interface.
Stack: React 19 Β· TypeScript Β· Vite Β· Tailwind CSS v4
Languages: English Β· EspaΓ±ol Β· PortuguΓͺs
Pages: 22 routes
Classes documented: 21 player classes Β· 42+ Java classes
| Feature | Description |
|---|---|
| SPA routing | useState<PageId> routing β no URL changes, instant navigation |
| Global search | Full-text search across all pages with Cmd+K / Ctrl+K shortcut |
| Sticky TOC | Floating Table of Contents with IntersectionObserver active-section tracking |
| i18n (EN/ES/PT) | Full UI translation via I18nProvider + useT() hook, persisted in localStorage |
| Class detail | Individual page per class with abilities, pro tips, counters, and same-role links |
| Class comparison | Side-by-side table of all 21 classes with role filter and sort |
| Dependency graph | Interactive CSS module graph β click a node to see dependencies and key exports |
| Changelog | Timeline view with versioned release notes and badge types (feat, fix, perf, β¦) |
| Related pages | Context-aware "See also" section at the bottom of every page |
| Back to top | Smooth-scroll button that appears after 320 px of scroll |
| Copy code | Shared CodeBlock component with clipboard copy and translated feedback |
| Mobile sidebar | Responsive drawer with overlay and hamburger toggle |
| Route | Description |
|---|---|
| overview | Project banner, stats (316 classes Β· 4 modules Β· 21 kits Β· 3 languages), quick navigation |
| architecture | System diagram: BungeeCord β Lobby β Game β Commons, Redis/MongoDB |
| dependency-graph | Interactive graph of inter-module dependencies |
| Route | Description |
|---|---|
| module-bungee | annihilation-bungee β proxy plugin, player transfer, Redis bridge |
| module-commons | annihilation-commons β shared library: MessageBus, TranslationService, MatchmakingQueue |
| module-game | annihilation-game β arena engine, NexusManager, CombatTagService, class system |
| module-lobby | annihilation-lobby β matchmaking processor, shop, cosmetics, leaderboard |
| Route | Description |
|---|---|
| classes | Grid of all 21 player classes with role filter, search, and click-through to detail |
| class-detail | Per-class page: ability, kit, pro tips, strong-against / weak-against |
| class-compare | Comparison table β sort by cooldown, role, trigger; filter by role |
| phases | Arena phase state machine (WAITING β PHASE IβVI β ENDING) |
| nexus | Nexus damage flow, NexusManager API, i18n keys, /score output |
| matchmaking | Matchmaking flow diagram, QUICK_JOIN vs SPECIFIC_ARENA, key classes |
| Route | Description |
|---|---|
| commands | Tabbed reference: Game Player Β· Game Admin Β· Lobby Player Β· Lobby Admin |
| events | Filterable Bukkit event listener table (27 entries, 6 categories) |
| Route | Description |
|---|---|
| i18n | Language resolution pipeline, Common/Lobby/Game message keys, PlaceholderResolver |
| configuration | GameConfig, RedisCredentials, MongoCredentials, YAML repositories |
| setup | Step-by-step installation guide with copy-to-clipboard code blocks |
| changelog | Versioned release timeline |
21 classes across 7 roles:
| Role | Classes | |---|---| | Warrior | Knight, Tank, Swordsman, Destroyer | | Assassin | Assassin, Vampire, Acrobat | | Mage | Wizard, Necromancer, Alchemist | | Support | Healer, Paladin | | Utility | Builder, Engineer, Miner, Trapper | | Ranger | Ranger, Sniper, Archer | | Special | Scout, Speedster |
annihilation-web/
βββ public/
β βββ Annihilation-Banner.png # Hero banner
β βββ favicon.svg # Crossed-swords icon
β βββ icons.svg
βββ src/
β βββ App.tsx # Root: routing state, Cmd+K shortcut, layout
β βββ components/
β β βββ ApiClassCard.tsx # Java class detail card
β β βββ BackToTop.tsx # Scroll-to-top button
β β βββ CodeBlock.tsx # Copy-to-clipboard code block
β β βββ RelatedPages.tsx # "See also" section
β β βββ Sidebar.tsx # Navigation drawer + in-sidebar search
β β βββ TableOfContents.tsx # Sticky floating TOC
β β βββ Topbar.tsx # Top bar with search input and language switcher
β βββ data/
β β βββ classes.ts # 21 player class definitions
β β βββ commands.ts # 39 command entries across 4 tabs
β β βββ navigation.ts # PageId, NAV_SECTIONS, breadcrumbs, TOC, RELATED_PAGES
β β βββ modules/
β β βββ commons-api.ts # annihilation-commons Java API surface
β β βββ game-api.ts # annihilation-game Java API surface
β β βββ lobby-api.ts # annihilation-lobby Java API surface
β βββ i18n/
β β βββ context.tsx # I18nProvider + useT() hook
β β βββ types.ts # Translations interface (strict key typing)
β β βββ en.ts # English strings
β β βββ es.ts # Spanish strings
β β βββ pt.ts # Portuguese strings
β βββ pages/
β βββ Overview.tsx
β βββ Architecture.tsx
β βββ DependencyGraph.tsx
β βββ ModuleDetail.tsx
β βββ Classes.tsx
β βββ ClassDetail.tsx
β βββ ClassCompare.tsx
β βββ Phases.tsx
β βββ Nexus.tsx
β βββ Matchmaking.tsx
β βββ Commands.tsx
β βββ Events.tsx
β βββ I18n.tsx
β βββ Configuration.tsx
β βββ Setup.tsx
β βββ Changelog.tsx
β βββ SearchResults.tsx
βββ index.html
βββ package.json
βββ tsconfig.json
βββ vite.config.ts
git clone https://github.com/alexissdev/annihilation-web.git
cd annihilation-web
npm install
npm run dev
Open http://localhost:5173.
npm run build # outputs to dist/
npm run preview # serves the built output locally
npm run lint
| Shortcut | Action |
|---|---|
| Cmd+K / Ctrl+K | Focus global search input |
The UI is fully translated in three languages. Switch via the language selector in the top bar.
| Code | Language |
|---|---|
| EN | English (default) |
| ES | EspaΓ±ol |
| PT | PortuguΓͺs |
The selected language is persisted in localStorage under the key anni-lang. To add a new language:
src/i18n/xx.ts implementing the Translations interface from types.ts.src/i18n/context.tsx alongside en, es, and pt.Topbar.tsx.| Tool | Version | Role | |---|---|---| | React | 19 | UI library | | TypeScript | 6 | Type safety | | Vite | 8 | Build tool + dev server | | Tailwind CSS | 4 | Styling | | ESLint | 10 | Linting |
No runtime dependencies beyond React and React DOM. Zero external UI component libraries.
MIT β see LICENSE.