Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
d98ecdf
1.7.3 Public Alpha (#78)
MagicTeaMC Mar 2, 2026
74ee9d8
Bump me.clip:placeholderapi from 2.11.7 to 2.12.2
dependabot[bot] Mar 2, 2026
1b93342
fix grammer
Mar 3, 2026
bcdd4d4
bump lamp version
Mar 3, 2026
fedcf89
Added translation using Weblate (Italian)
Mar 4, 2026
eb825f3
Translated using Weblate (Spanish)
Mar 4, 2026
0b7e305
fix some possibly small issues
Mar 5, 2026
63bdda3
fix #85
Mar 5, 2026
d7992ee
fix folia support
Mar 7, 2026
f1e5bf0
[ci skip] Translated using Weblate (Italian)
Mar 13, 2026
c7c0ce6
add null check
Mar 16, 2026
bc38db8
initial workaround for "special characters are not allowed" error
Mar 16, 2026
45cd9f0
bump to 1.7.4
Mar 16, 2026
9ea5b41
start moving to Matrix
Mar 20, 2026
2c2a784
[ci skip] Translated using Weblate (French)
Mar 23, 2026
24d7329
[ci skip] Translated using Weblate (Italian)
Mar 23, 2026
8e8cb6d
ensure player without permission cant chop tree
Mar 25, 2026
8a1ccf9
more checking
Mar 25, 2026
d7945d3
[ci skip] add license header
Mar 28, 2026
0cd2900
[ci skip] yes, use matrix
Mar 28, 2026
deba0df
Merge branch 'master' into dependabot/gradle/me.clip-placeholderapi-2…
MagicTeaMC Mar 28, 2026
82b31ac
Bump me.clip:placeholderapi from 2.11.7 to 2.12.2 (#84)
MagicTeaMC Mar 28, 2026
a0bc741
update actions version
Mar 28, 2026
8fa0fa6
[ci skip] Translated using Weblate (German)
Mar 31, 2026
c43cff2
[ci skip] Translated using Weblate (German)
Apr 2, 2026
9afbd0b
[ci skip] Added translation using Weblate (Turkish)
metrokitten Apr 3, 2026
66566f5
[fix] remove deprecated method of getting plugin metadata
metrokitten Apr 3, 2026
2d73f80
[ci skip] Translated using Weblate (German)
metrokitten Apr 3, 2026
9f1a747
[ci skip] Translated using Weblate (Turkish)
metrokitten Apr 3, 2026
a107f9a
Properly lint the README
metrokitten Apr 3, 2026
4fd099e
add Turkish translation from Codeberg
metrokitten Apr 3, 2026
a51ce4f
Revert "add Turkish translation from Codeberg"
metrokitten Apr 3, 2026
df466d2
Merge branch 'master' into master
metrokitten Apr 3, 2026
72f725a
use 26.1.1 to test
Apr 4, 2026
458df96
Merge branch 'master' into feat/26-1-support
MagicTeaMC Apr 4, 2026
f288f0e
update actions version
Mar 28, 2026
9b5210a
some small fixes
Apr 6, 2026
22e13b2
Merge branch 'master' into feat/26-1-support
MagicTeaMC Apr 6, 2026
69dca2f
add 26.1 support
Apr 6, 2026
3f1c60f
mark 26.1(.1) as supported
Apr 6, 2026
702ade3
we can still use java 21 to build jar
Apr 6, 2026
bde8a53
fix enable/disable command logic
Apr 6, 2026
d597277
Merge branch 'master' into feat/26-1-support
MagicTeaMC Apr 6, 2026
d004f08
move message keys to a class
Apr 6, 2026
163c7a8
[ci skip] Translated using Weblate (Spanish)
Apr 6, 2026
460b67f
Revert "[fix] remove deprecated method of getting plugin metadata"
metrokitten Apr 7, 2026
446c265
[ci skip] improve README format (#88)
MagicTeaMC Apr 8, 2026
8571fd3
Merge branch 'master' into feat/26-1-support
MagicTeaMC Apr 8, 2026
6164817
use another source of XSeries
Apr 8, 2026
c38b6ec
this version checking is useless
Apr 10, 2026
2df2aa7
arch update my jdk to 26 :<
Apr 10, 2026
ee745af
allow plugin to run on java 17 env
Apr 10, 2026
03fe2c7
Merge branch 'master' into feat/26-1-support
MagicTeaMC Apr 10, 2026
d7db747
26.1.2 should be supported
Apr 10, 2026
9a5980f
26.1 support (#89)
MagicTeaMC Apr 11, 2026
977ca99
update gradle and some deps
Apr 11, 2026
681f977
better update checker
Apr 11, 2026
74d1a2c
some small improve to database
Apr 11, 2026
d00d79a
some more small fixes
Apr 11, 2026
65cf72a
edit translation
Apr 11, 2026
f5aa7ec
Stop using some of deprecated APIs
Apr 11, 2026
13efdd0
i forgot to change back version
Apr 11, 2026
1ab7109
no more useless deprecation message
Apr 11, 2026
b1edd87
this probably fix spigot
Apr 11, 2026
79bf96d
allow vanilla tree chopping when still in cooldown
Apr 11, 2026
e53d9f0
small codebase improvement
Apr 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/Java-CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ jobs:
runs-on: "ubuntu-latest"

steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
distribution: "temurin"
java-version: "17"
Expand Down
41 changes: 36 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# AutoTreeChop

![atc-intro](https://github.com/user-attachments/assets/7b556970-7c4c-4271-9016-4a4612895379)
**AutoTreeChop** lets your players chop entire trees by breaking just one log.
It's async-friendly, lightweight, and fully customizable — with built-in support for MySQL(optional), CoreProtect, and popular protection plugins.

- 🌐 [Discord Support Server](https://discord.gg/uQ4UXANnP2)
- 🌐 [Matrix Support Chat](https://matrix.to/#/#maoyue-dev:matrix.org)
- 🌱 [Modrinth Page](https://modrinth.com/plugin/autotreechop)
- 💻 [Source Code (GitHub)](https://github.com/milkteamc/AutoTreeChop)
- ⚙️ [Default Config](https://github.com/milkteamc/AutoTreeChop/blob/master/src/main/resources/config.yml)
Expand All @@ -13,38 +14,46 @@ It's async-friendly, lightweight, and fully customizable — with built-in suppo
## Key Features

### 🌲 Smart Tree Chopping

- Chop entire trees by breaking just one log
- Toggle on/off with `/atc` command or by sneaking (pressing SHIFT)
- Async support for smooth performance on Modern servers
- Customizable leaves cleaner

### ⚡ Lightweight & Easy to Configure

- Minimal performance impact
- Simple setup, and user-friendly configuration

### 🔁 Auto Replanting

- Automatically replant saplings after chopping
- Optionally require players to have saplings

### 🧑‍🤝‍🧑 Player Control & Limits

- Daily limits for usage and chopped blocks
- Configurable cooldowns
- VIP players can bypass limits with permission

### 🛡️ Full Protection Plugin Support

- Compatible with Residence, WorldGuard, Lands, GriefPrevention
- Supports **CoreProtect** for logging actions

### 🌐 Multi-Language & Locale Support

- Translations included: `en`, `zh`, `ja`, `de`, `es`, `fr`, `ru`, etc.
- Automatically switches to player's locale if enabled

### 🗄️ MySQL & SQLite Support

- Scale with MySQL or keep it simple with SQLite (default)

---

## Supported Plugins
>
> Since we call the block break event directly by default, plugins such as CoreProtect and Drop2Inventory should be supported without modification.

- WorldGuard
Expand All @@ -64,8 +73,8 @@ It's async-friendly, lightweight, and fully customizable — with built-in suppo
| `/atc usage` | Show daily usage |
| `/atc reload` | Reload plugin config |
| `/atc toggle <player>` | Toggle for another player |
| `/atc enable <player/@a/@r/@p>` | Enable for another players |
| `/atc disable <player/@a/@r/@p>` | Disable for another players |
| `/atc enable <player/@a/@r/@p>` | Enable for other players |
| `/atc disable <player/@a/@r/@p>` | Disable for other players |
| `/atc about` | Plugin info |

---
Expand Down Expand Up @@ -100,17 +109,39 @@ It's async-friendly, lightweight, and fully customizable — with built-in suppo

## Support & Contribute

- Need help? Join our [Discord](https://discord.gg/uQ4UXANnP2)
- Need help? Join our [Matrix](https://matrix.to/#/#maoyue-dev:matrix.org)
- Found a bug? Open an issue on [GitHub](https://github.com/milkteamc/AutoTreeChop/issues)
- Want to help translate? Get started [here](https://translate.codeberg.org/projects/autotreechop/autotreechop)
- Want to help translate? Get started [on this page](https://translate.codeberg.org/projects/autotreechop/autotreechop)
- Love the plugin? Give it a ⭐️ on [GitHub](https://github.com/milkteamc/AutoTreeChop)

---

## bStats

This plugin uses [bStats](https://bstats.org) to collect anonymous usage statistics (such as plugin version, server software, and player count).
These statistics help us improve the plugin.
If you prefer not to participate, you can disable it anytime in:
`/plugins/bStats/config.yml`

[![bstats](https://bstats.org/signatures/bukkit/AutoTreeChop.svg)](https://bstats.org/plugin/bukkit/AutoTreeChop/20053)

---

## License

```txt
Copyright (C) 2026 MilkTeaMC and contributors

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
```
34 changes: 20 additions & 14 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
plugins {
id 'java'
id 'maven-publish'
id 'com.gradleup.shadow' version '9.3.1'
id 'xyz.jpenilla.run-paper' version '3.0.2'
id 'com.gradleup.shadow' version '9.4.1'
id 'xyz.jpenilla.run-paper' version '3.+'
id 'com.modrinth.minotaur' version '2.+'
id 'com.diffplug.spotless' version '8.+'
}

group = 'org.milkteamc'
version = '1.7.3'
version = '1.7.4'

// Java Configuration
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
languageVersion = JavaLanguageVersion.of(17)
}
}

Expand All @@ -29,8 +29,9 @@ spotless {
java {
removeUnusedImports()
formatAnnotations()

palantirJavaFormat()

licenseHeaderFile(rootProject.file('spotless/HEADER'))
}
}

Expand Down Expand Up @@ -70,24 +71,24 @@ repositories {
}

dependencies {
compileOnly 'io.papermc.paper:paper-api:1.21.11-R0.1-SNAPSHOT'
compileOnly 'io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT'

implementation 'net.kyori:adventure-platform-bukkit:4.4.1'
implementation 'net.kyori:adventure-text-minimessage:4.26.1'

implementation 'io.github.revxrsal:lamp.common:4.0.0-rc.14'
implementation 'io.github.revxrsal:lamp.bukkit:4.0.0-rc.14'
implementation 'io.github.revxrsal:lamp.common:4.0.0-rc.16'
implementation 'io.github.revxrsal:lamp.bukkit:4.0.0-rc.16'

implementation 'com.github.Anon8281:UniversalScheduler:0.1.7'
implementation 'com.zaxxer:HikariCP:7.0.2'
implementation 'org.bstats:bstats-bukkit:3.1.0'
implementation 'com.github.cryptomorin:XSeries:13.6.0'
implementation 'io.github.almighty-satan:XSeries:13.6.0+26.1'
implementation 'dev.dejvokep:boosted-yaml:1.3.7'

compileOnly 'me.clip:placeholderapi:2.11.7'
compileOnly 'me.clip:placeholderapi:2.12.2'
compileOnly files('./libs/Residence5.1.4.3.jar')
compileOnly 'com.github.angeschossen:LandsAPI:7.17.2'
compileOnly 'com.sk89q.worldguard:worldguard-bukkit:7.0.14'
compileOnly 'com.sk89q.worldguard:worldguard-bukkit:7.0.9'
compileOnly 'com.github.GriefPrevention:GriefPrevention:16.18.4'
}

Expand Down Expand Up @@ -171,7 +172,11 @@ tasks.shadowJar {
}

tasks.runServer {
minecraftVersion('1.21.11')
minecraftVersion('26.1.1')
def javaVersion = Math.max(25, JavaVersion.current().majorVersion.toInteger())
javaLauncher = javaToolchains.launcherFor {
languageVersion = JavaLanguageVersion.of(javaVersion)
}
}

runPaper.folia.registerTask()
Expand All @@ -195,7 +200,7 @@ modrinth {
---

📝 Report issues: [GitHub Issues](https://github.com/milkteamc/AutoTreeChop/issues)
💬 Get support: [Discord](https://discord.gg/uQ4UXANnP2)
💬 Get support: [Matrix](https://matrix.to/#/#maoyue-dev:matrix.org)
""".stripIndent().trim()

uploadFile = tasks.shadowJar.archiveFile
Expand All @@ -206,7 +211,8 @@ modrinth {
'1.19', '1.19.1', '1.19.2', '1.19.3', '1.19.4',
'1.20', '1.20.1', '1.20.2', '1.20.3', '1.20.4', '1.20.5', '1.20.6',
'1.21', '1.21.1', '1.21.2', '1.21.3', '1.21.4', '1.21.5', '1.21.6',
'1.21.7', '1.21.8', '1.21.9', '1.21.10', '1.21.11'
'1.21.7', '1.21.8', '1.21.9', '1.21.10', '1.21.11',
'26.1', '26.1.1', '26.1.2'
]

loaders = ['paper', 'purpur', 'folia', 'spigot']
Expand Down
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
2 changes: 1 addition & 1 deletion gradlew

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions spotless/HEADER
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/*
* Copyright (C) $YEAR MilkTeaMC and contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/

Loading
Loading