promotional bannermobile promotional banner

AllItemsMini – Mini All Items Challenge

Lightweight all-items challenge with bossbar & timer

File Details

allitems-mini-2.1.0.jar

  • R
  • Apr 24, 2026
  • 65.46 KB
  • 51
  • 1.21.11+11

File Name

allitems-mini-2.1.0.jar

Supported Versions

  • 1.21.11
  • 1.21.10
  • 1.21.9
  • 1.21.8
  • 1.21.7
  • 1.21.6
  • 1.21.5
  • 1.21.4
  • 1.21.3
  • 1.21.2
  • 1.21.1
  • 1.21

[2.1.0] - 2026-04-24

🎉 New Features

Folia Support

  • Added: Full Folia compatibility via runtime detection - the plugin now works on both Paper and Folia servers
  • Added: SchedulerUtil utility class that automatically selects the correct scheduler API (BukkitScheduler on Paper, regionized schedulers on Folia)

Modrinth Update Checker

  • Added: Automatic update check against the Modrinth API on server startup
  • Added: Semantic version comparison (SemVer) - correctly determines if a remote version is newer
  • Added: In-game update notification for admins (players with allitems.admin) on join
  • Added: Configurable via update-check: true/false in config.yml
  • Added: Update messages in all 4 languages (DE, EN, FR, ES)

Tab-Complete

  • Added: Tab-completion for /aic subcommands (start, stop, reset, show, skip, timer, reload)
  • Added: Tab-completion for /aic timer options (on, off, start, stop, reset)

bStats Metrics

  • Added: bStats integration for anonymous usage statistics

🐛 Bug Fixes

  • Fixed: Race condition in offhand item submission - items are now tracked in a pending map and restored via PlayerQuitEvent if the player disconnects during the 1-tick restoration window
  • Fixed: Invalid materials in progress.yml (e.g., after a Minecraft version update) are now counted and logged with a summary warning instead of being silently dropped
  • Fixed: BossBar is now explicitly removed via Bukkit.removeBossBar() on plugin disable instead of just clearing players

🔧 Changes

  • Changed: Plugin now officially supports all 1.21.x versions (1.21, 1.21.1, ... 1.21.11+) via api-version: "1.21" and folia-supported: true
  • Changed: Unobtainable item filter is now string-based instead of hardcoded enum references - automatically adapts to the running server version
  • Changed: Config automatically merges missing keys on startup via copyDefaults - new config options are added without overwriting existing values

🗑️ Removed

  • Removed: Unused exportDefaultLanguageFiles() method from MessageProvider

📁 New Files

  • src/main/java/org/example/allitems/SchedulerUtil.java - Platform-agnostic scheduler wrapper
  • src/main/java/org/example/allitems/UpdateChecker.java - Async Modrinth update checker

[2.0.0] - 2026-01-11

🎉 Major Features

YAML-Based Multi-Language System

  • Added: Complete YAML-based translation system replacing hardcoded messages
  • Added: French (fr_FR) language support
  • Added: Spanish (es_ES) language support
  • Added: Live-reloadable translations via /aic reload without server restart
  • Added: Automatic fallback to English for missing translation keys
  • Added: Lazy loading and in-memory caching for optimal performance
  • Added: Thread-safe language file operations using ConcurrentHashMap

Developer Documentation

  • Added: Comprehensive Javadoc (in English) for all classes and methods
  • Added: Class-level documentation for AllItemsMini with features overview
  • Added: Detailed method documentation for MessageProvider (237 lines)
  • Added: Complete documentation for ChallengeTimer state management
  • Added: Full Javadoc for CommandHandler routing logic
  • Added: Enhanced documentation for Lang enum with locale detection
  • Added: Documented Msg enum with YAML key conversion

Code Modernization

  • Improved: MessageProvider now uses modern Java 21 features
  • Improved: Added @NotNull and @Nullable annotations throughout codebase
  • Improved: Enhanced null-safety with explicit checks and fallbacks
  • Improved: Modernized stream operations and lambda expressions
  • Improved: Better error handling with proper exception logging
  • Improved: Improved code organization and separation of concerns

🔧 Changes

  • Changed: Default language is now English (was German) - BREAKING CHANGE
  • Changed: Msg enum simplified to pure key enum (removed hardcoded translations)
  • Changed: Lang enum expanded with fileName field for YAML file mapping
  • Changed: MessageProvider constructor now requires JavaPlugin instance
  • Changed: Language loading moved to runtime instead of compile-time

📁 New Files

  • src/main/resources/lang/de_DE.yml - German translations (47 keys)
  • src/main/resources/lang/en_US.yml - English translations (47 keys)
  • src/main/resources/lang/fr_FR.yml - French translations (47 keys)
  • src/main/resources/lang/es_ES.yml - Spanish translations (47 keys)

🐛 Bug Fixes

  • Fixed: Language reload now properly clears cache and reloads all files
  • Fixed: Invalid format strings now log warnings instead of crashing
  • Fixed: Missing translation keys now show placeholder instead of null

📚 Documentation

  • Updated: README.md with comprehensive language system documentation
  • Updated: README.md with developer documentation section
  • Updated: README.md with language customization instructions
  • Added: Reference to CHANGELOG.md in README

⚠️ Breaking Changes

  • Default language changed from German to English Migration: Add language: de to your config.yml to restore German