Alexis Dev
HomeProjectsContact

Alexis Costa

Full Stack Developer building modern, efficient and scalable web applications.

Pilar, Buenos Aires, Argentina πŸ‡¦πŸ‡·

Repositories

  • crud-app
  • alexissdev.me
  • Balder
  • Isis

Connect

Send a messageJoin Discordalesideveloper@gmail.com

Β© 2026 Alexis Costa β€” All rights reserved.

Back

annihilation-web

Annihilation Web is javadoc web from annihilation plugin

1 stars0 forksTypeScriptJuly 21, 2026

README

Annihilation Docs

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.

Banner


Overview

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


Features

| 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 |


Pages

Home

| 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 |

Modules

| 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 |

Game Mechanics

| 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 |

Commands & Events

| Route | Description | |---|---| | commands | Tabbed reference: Game Player Β· Game Admin Β· Lobby Player Β· Lobby Admin | | events | Filterable Bukkit event listener table (27 entries, 6 categories) |

Reference

| 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 |


Player Classes

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 |


Project Structure

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

Getting Started

Prerequisites

  • Node.js 18+
  • npm 9+

Install & run

git clone https://github.com/alexissdev/annihilation-web.git
cd annihilation-web
npm install
npm run dev

Open http://localhost:5173.

Build for production

npm run build       # outputs to dist/
npm run preview     # serves the built output locally

Lint

npm run lint

Keyboard Shortcuts

| Shortcut | Action | |---|---| | Cmd+K / Ctrl+K | Focus global search input |


Internationalization

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:

  1. Create src/i18n/xx.ts implementing the Translations interface from types.ts.
  2. Register it in src/i18n/context.tsx alongside en, es, and pt.
  3. Add the language option to the switcher in Topbar.tsx.

Tech Stack

| 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.


License

MIT β€” see LICENSE.

View on GitHub← Back