Skip to content

AtlasLang

AtlasLang is a production-grade multilingual engine designed for centralized language management across plugins and server components.

It provides strict validation, structured file handling, database-backed player language storage and full PlaceholderAPI integration.

GitHub Repository:
https://github.com/nauticstudios/atlaslang

Public API:
https://github.com/nauticstudios/AtlasLang/blob/master/src/main/java/com/github/nautic/api/AtlasAPI.java


AtlasLang provides:

  • Per-player language storage
  • Locale → folder mapping system
  • Strict language validation
  • Recursive YAML file loading
  • PlaceholderAPI expansion
  • Public developer API
  • GitHub synchronization
  • Database persistence
  • Runtime dependency loading

Responsible for:

  • Runtime dependency loading
  • Configuration initialization
  • Language registration
  • Command system
  • Placeholder expansion registration
  • GitHub sync management
  • Database initialization

Handles:

  • Language registration
  • Locale → folder mapping
  • Default language fallback
  • Strict resolution
  • Reload logic

Configuration format:

default: english
register:
languages:
- en:english:messages.yml
- es:spanish:messages.yml

Format:

locale:folder:defaultFile

Responsible for:

  • Recursive language folder loading
  • YAML caching
  • Dynamic file resolution
  • Default file generation
  • Cache clearing

Language directory:

/plugins/AtlasLang/languages/

Example:

languages/
├── english/
│ ├── messages.yml
│ ├── scoreboard.yml
│ └── system.yml
└── spanish/
├── messages.yml
├── scoreboard.yml
└── system.yml

Handles:

  • Message retrieval
  • String and list resolution
  • Placeholder injection
  • Fallback handling
  • Missing path safety

If a path is invalid, a safe fallback message is returned.

Malformed or missing language files will never crash the server.


Identifier:

%alang_...%

Format:

%alang_(file)_(path)%

Examples:

%alang_(messages)_(join_message)%
%alang_(lobby:scoreboard)_(title)%

Behavior:

  • Resolves player language from database
  • Falls back to default if invalid
  • Validates file existence
  • Validates path existence

Static API access:

AtlasAPI.get(player, "path.to.message");
AtlasAPI.get(uuid, "path.to.message");
AtlasAPI.get("english", "path.to.message");

With fallback:

AtlasAPI.getOrDefault(player, "path.to.message", "Fallback");

Validation:

AtlasAPI.has("english", "path.to.message");
AtlasAPI.isLanguageRegistered("english");

Player language:

AtlasAPI.setLanguage(player, "english");
AtlasAPI.getLanguage(player);

Managers:

AtlasAPI.getLanguageManager();
AtlasAPI.getLangHandler();

Addon access:

AtlasAPI.getAddon(player, "path.to.message");

Base command:

/atlaslang
CommandPermission
/atlaslang help
/atlaslang listatlaslang.list
/atlaslang aliasesatlaslang.aliases
/atlaslang set <player> <language>atlaslang.set
/atlaslang reset <player>atlaslang.reset
/atlaslang info <player>atlaslang.info
/atlaslang reloadatlaslang.reload
/atlaslang github syncatlaslang.github
/atlaslang github statusatlaslang.github

Full access:

atlaslang.admin

Supports automatic language sync from a repository.

Example:

github:
repository:
name: "owner/repository"
branch: "main"
authentication:
type: "none"
token: ""
paths:
remote-root: "languages"
local-root: "languages"
sync:
create-missing: true
overwrite-existing: true
delete-missing: false
reload-after-sync: true
  • Runs asynchronously
  • Does not block the main thread
  • Supports optional token authentication

Player language storage process:

  1. Retrieve stored language
  2. Validate registration
  3. Fallback to default if invalid

Database safely closes on plugin disable.


Dependencies are loaded during onLoad() from:

  • Maven Central
  • CodeMC Repository

Libraries are relocated and isolated to prevent conflicts.


  1. Player language requested
  2. LanguageManager resolves locale
  3. Folder validated
  4. FileManager loads file
  5. Path resolved
  6. Fallback applied if necessary

Strict validation prevents invalid states.


  • Multi-language networks
  • Centralized language control
  • Scoreboards
  • GUIs and menus
  • Placeholder-based systems
  • Modular plugin ecosystems

  • No fatal errors for missing translations
  • Strict language validation
  • Safe fallback system
  • Async GitHub sync
  • Runtime-safe reload