All versions
1.5.2
Release
Advanced TreeCapitator 1.5.25 months ago 824
Compatibility
Minecraft: Java Edition
1.21.x
Platforms
Bukkit
Paper
Purpur
Spigot
Changes
[1.5.2] — 2025-06-07
Fixed — Bug Fixes
| # | Bug | Details |
|---|---|---|
| 1 | api-version: '1.20' in plugin.yml while compiling against Paper 1.21.4 API |
The plugin declared api-version: '1.20', which allowed Paper to load it on 1.20.x servers. Particle.BLOCK was renamed from Particle.BLOCK_CRACK in Paper 1.21+; running on a 1.20 server would produce a NoSuchFieldError at class-loading time, crashing the plugin on enable. Fixed by raising api-version to '1.21', which prevents the plugin from loading on incompatible servers and eliminates the runtime risk. |
| 2 | Sound.BLOCK_WOOD_BREAK played for Nether stems and Bamboo blocks |
All felled trees used the overworld wood-break sound (Sound.BLOCK_WOOD_BREAK) regardless of log type. In vanilla Minecraft, Nether stems (CRIMSON_STEM, WARPED_STEM) use block.nether_wood.break and Bamboo blocks use block.bamboo_wood.break. Playing the wrong sound for these types is audibly incorrect and breaks immersion. Fixed by adding a fellSound(Material) helper that dispatches to Sound.BLOCK_NETHER_WOOD_BREAK for Nether-type stems, Sound.BLOCK_BAMBOO_WOOD_BREAK for Bamboo, and Sound.BLOCK_WOOD_BREAK for all overworld logs. Detection uses a name-prefix check so future variants are covered automatically. |
| 3 | cfg field in TreeCapitatorTask captured at construction time, not at execution time |
TreeCapitatorTask stored the Config instance as a field initializer (private final Config cfg = getInstance().getPluginConfig()), which ran when new TreeCapitatorTask(...) was called inside onBlockBreak. Since the task executes one tick later via runTask(), a /atc reload issued in that one-tick window would leave the task using a stale pre-reload Config snapshot — the new configuration was silently ignored for that fell. Fixed by removing the field and fetching the config fresh at the top of doFell() via plugin.getPluginConfig(), always reflecting the most recent reload. |
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:8li9wnIm:vJ2sGAba"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:8li9wnIm:vJ2sGAba"
}

