Tags
Creators
Details
Licensed MIT
Published last year
Updated last year
All versions
v1.4.0
Release
LilWorlds v1.4.0: API Revolutionlast year 36
Compatibility
Minecraft: Java Edition
1.21ā1.21.5
1.20.x
1.19.x
1.18.x
1.17.x
1.16.x
Platforms
Bukkit
Paper
Purpur
Spigot
Changes
š MAJOR NEW FEATURES
š§ Complete Developer API System
- NEW: Comprehensive API for developers with full world management capabilities
- NEW:
LilWorldsAPI- Main API entry point with singleton pattern - NEW:
WorldBuilder- Fluent builder pattern for intuitive world creation - NEW:
WorldManager- Advanced world management operations with async support - NEW:
WorldInfo- Comprehensive world information wrapper - NEW:
WorldUtils- Utility functions for common world operations
š” Event System
- NEW: Custom event system for world operations (all cancellable)
- NEW:
WorldCreateEvent- Fired before world creation - NEW:
WorldCreatedEvent- Fired after successful world creation - NEW:
WorldDeleteEvent- Fired before world deletion - NEW:
WorldTeleportEvent- Fired before player teleportation
ā” Teleport Command
- NEW:
/world teleport <world>command (alias:/w tp <world>) - NEW: Teleports players to spawn location of specified world
- NEW: Security validation and rate limiting
- NEW: Permission checking (
lilworlds.world.teleport) - NEW: Player-only command with appropriate error messages
š¤ Short Command Aliases
- NEW:
/w i(info),/w cr(create),/w cl(clone) - NEW:
/w ld(load),/w ul(unload),/w rm(remove) - NEW:
/w imp(import),/w ls(list),/w ss(setspawn) - NEW:
/w sus(setuniversalspawn),/w cfg(config),/w tp(teleport)
š§ API Features
š Async Operations
- NEW: All I/O operations return
CompletableFuture - NEW: Non-blocking world loading, unloading, deletion, cloning
- NEW: Async world creation with callback support
- NEW: Thread-safe operations with proper main thread scheduling
šļø Builder Pattern
- NEW: Fluent world creation:
api.createWorld("name").environment(NORMAL).build() - NEW: Method chaining for intuitive API usage
- NEW: Callback support for success/failure handling
- NEW: Async and sync creation methods
š”ļø Advanced Features
- NEW: World size calculation and formatting
- NEW: World backup functionality
- NEW: Player evacuation from worlds
- NEW: Safe spawn location detection
- NEW: World existence checking (loaded/unloaded)
š Documentation & Examples
š Complete Documentation
- NEW:
API_EXAMPLE.java- Complete example plugin - NEW: Maven/Gradle dependency setup instructions
- NEW: Best practices and performance tips
šÆ Developer Support
- NEW: JitPack integration for easy dependency management
- NEW: Example implementations for common use cases
š§ Core Plugin Improvements
š¬ Enhanced Commands
- IMPROVED: All commands now support short aliases
- IMPROVED: Tab completion for all aliases
- IMPROVED: Help system shows available aliases
- IMPROVED: Teleport command with full validation
š”ļø Security & Performance
- IMPROVED: Enhanced world name validation
- IMPROVED: Rate limiting for teleport operations
- IMPROVED: Security logging for sensitive operations
- IMPROVED: Efficient caching of world information
š Messages & UX
- NEW: Teleport-specific messages in
messages.yml - IMPROVED: Command descriptions show aliases
- IMPROVED: Clear error messages for all scenarios
- IMPROVED: Consistent command structure
š§ Technical Implementation
šļø API Architecture
src/main/java/org/hydr4/lilworlds/api/
āāā LilWorldsAPI.java # Main API class
āāā events/ # Event system
āāā utils/ # Utility classes
āāā world/ # World management
š Async Pattern
- NEW: CompletableFuture-based async operations
- NEW: Proper thread management with Bukkit scheduler
- NEW: Error handling with callbacks and exceptions
- NEW: Thread-safe operations throughout
š¦ Publishing Ready
- NEW: JitPack integration ready
šÆ Usage Examples
Basic API Usage:
LilWorldsAPI api = LilWorldsAPI.getInstance();
api.createWorld("myworld")
.environment(World.Environment.NORMAL)
.generator("superflat")
.onSuccess(world -> System.out.println("Created!"))
.buildAsync();
Event Handling:
@EventHandler
public void onWorldCreate(WorldCreateEvent event) {
if (event.getWorldName().startsWith("temp_")) {
event.setCancelled(true);
}
}
š Backward Compatibility
- MAINTAINED: All existing commands work unchanged
- MAINTAINED: Existing configurations remain valid
- MAINTAINED: No breaking changes to plugin behavior
- MAINTAINED: Same security and performance standards
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:DTSoa5GI:FwNqVEjE"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:DTSoa5GI:FwNqVEjE"
}

