3.0
Compatibility
Changes
🚀 RaidPlugin v3.0.0 — The Ultimate Kotlin Update
This is a complete ground-up rewrite of the plugin from Java to pure Kotlin, targeting modern Paper 1.21.11+ (API 1.21.4+). We focused heavily on server performance, memory leak fixes, and code cleanup.
🛠 Performance & Architecture Fixes:
- Anti-Memory Leak: Switched from holding heavy Bukkit
Locationmaps to a lightweight, immutable customBlockPoscoordinate caching system. Worlds can now load and unload safely. - Zero-Lag Configs: Removed disk-heavy
reloadConfig()reads during active wave loops. All files are loaded into memory once. - Chunk Load Protection: Particle spawning, meteor tracking, and trader camp generation now check if chunks are loaded (
chunk.isLoaded), preventing sudden TPS drops. - Modern API: Fully stripped deprecated
valueOf()enums for professions and attributes, migrating to the official PaperRegistryAPI. - Task Lifecycle Management: Ensured explicit thread safety and automatic cleanup of dead mob UUIDs, bosses, and active task states on plugin disable/reload.
📄 New Features & Configuration:
- Flat
.cfgFormat: Abandoned clunky YAML layout for simplified, flat INI-style.cfgconfigs. - Mojang-style Trades: Custom trader syntax now uses an intuitive format:
EMERALD(3) + IRON_INGOT(8) = IRON_SWORD(1). - Universal Command Engine: Unified all dynamic triggers under
/raidplugin(or short alias/rp) with matching syntaxes forraid,meteor, andtrader. - Full Localization: Added dedicated
messages.cfgfile for complete in-game text and Bossbar customization.
⚠️ Important: Unified Command System Changes
All previous standalone commands have been completely replaced and unified under a single command engine for better consistency.
New Base Commands (Use /raidplugin or short alias /rp):
/rp raid [start | spawn | stop | reload]— Control active raid waves, rewards, and tasks./rp meteor [start | spawn | stop | reload]— Trigger or clear dynamic meteor events and custom BlockDisplay bodies./rp trader [start | spawn | stop | reload]— Spawn custom trader camps with specialized Mojang-style trade formulas./rp status— View the real-time runtime diagnostics of all active event loops and tickers.
There is no core event management system.
Compiled successfully using JDK 21.
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:DDtmlq3T:faH0z0QS"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:DDtmlq3T:faH0z0QS"
}

