Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
c93428b
[WIP] feat(build): ✨ add Gradle build system and update project confi…
Zoriot Jan 5, 2026
c445c28
feat(build): ✨ update dependencies and improve async task handling in…
Zoriot Jan 5, 2026
9941ae0
feat(build): ✨ enhance async operation handling and update module reg…
Zoriot Jan 5, 2026
d604738
fix(kml): ✨ fix JAXB context handling
Zoriot Jan 10, 2026
60eeb8c
feat(gen): ✨ refactor zip installation and extraction logic, improve …
Zoriot Jan 10, 2026
e12df47
fix(stats): ✨ add validation for Network Module Build Team connection…
Zoriot Jan 10, 2026
cf28c84
feat(build): ✨ update build configuration, enhance module registratio…
Zoriot Jan 10, 2026
7bc99e8
fix(housescripts): ✨ correct block query logic for roof type handling
Zoriot Jan 10, 2026
8d0385d
fix(generator): ✨ disable railway generator temporarly
Zoriot Jan 10, 2026
468195e
fix(generator): ✨ disable field generator temporarily
Zoriot Jan 10, 2026
8fad73e
refactor(generator): ✨ update generator components to use centralized…
Zoriot Jan 10, 2026
f6aa15b
refactor(tree): ✨ update tree component logic and improve menu intera…
Zoriot Jan 11, 2026
abd7d4b
feat(util): Update GeneratorUtils to 1.7.3
MineFact Jul 18, 2025
9c0a5e3
refactor(item): ✨ simplify and clean up item metadata handling logic
Zoriot Jan 11, 2026
fae2102
feat(util): Update Item Utils to 1.3.2
MineFact Jul 18, 2025
80b1079
feat(util): Update Item Utils to 1.3.3
MineFact Jul 18, 2025
6afce38
feat(util): Update Item Utils to 1.3.4
MineFact Jul 18, 2025
a433b3f
refactor(build): ✨ remove unused authlib dependency from build config…
Zoriot Jan 11, 2026
430b8c7
refactor(all): ✨ extract utilities into alps-lib
Zoriot Jan 11, 2026
8f4c152
fix(nav): ✨ fix others/default warp group
Zoriot Jan 12, 2026
58dcd18
fix(gen/kml): ✨ fix coordinate parsing and improve error handling
Zoriot Jan 12, 2026
43fa428
refactor(build): ✨ rename packages to align with buildteamtools struc…
Zoriot Jan 12, 2026
14fb4c6
feat(build): ✨ add GitHub Actions workflow for Java CI with Gradle
Zoriot Jan 13, 2026
abeee92
fix(build): ✨ improve API key instructions and enhance module shutdow…
Zoriot Jan 16, 2026
d2ad5de
fix(build): ✨ adjust click handler logic in MainMenu for warp menu ac…
Zoriot Jan 16, 2026
e123fbc
chore(build): ✨ Update library versions & cleanup build
Zoriot Jan 19, 2026
1ea4578
fix(docs): 🐛 Fix the Wiki links to point to a internal url
Zoriot Jan 26, 2026
46daa73
fix(docs): 🐛 Point to wiki for getting the api key
Zoriot Jan 26, 2026
a8c875e
fix(build): ✨ Add override annotation to getWikiPage method in Genera…
Zoriot Jan 26, 2026
c6d51fe
feat(build): ✨ Remove commit distance from version for snaps
Zoriot Jan 26, 2026
1991113
build: ci - add workflow dispatch + change branch to main
Zoriot Jan 26, 2026
05cad3b
fix(generator): require fawe instead of also worldedit
Zoriot Jan 26, 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
46 changes: 46 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle

name: Java CI with Gradle

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
workflow_dispatch:

jobs:
build:

runs-on: ubuntu-latest
permissions:
contents: read

steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0 # full history
fetch-tags: true # grab your tags
# Make sure we check out by branch name, not just SHA:
ref: ${{ github.event_name == 'pull_request' && github.head_ref || github.ref_name }}

- name: Set up JDK 21
uses: actions/setup-java@v5
with:
java-version: '21'
distribution: 'temurin'

# Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies.
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5

- name: Build with Gradle Wrapper
run: ./gradlew clean build

- uses: actions/upload-artifact@v6
with:
name: Staging-Build
path: build/libs
compression-level: '9'
33 changes: 33 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -112,3 +112,36 @@ buildNumber.properties
# Common working directory
run/
.vscode/settings.json

# Created by https://www.toptal.com/developers/gitignore/api/gradle
# Edit at https://www.toptal.com/developers/gitignore?templates=gradle

### Gradle ###
.gradle
**/build/
!src/**/build/

# Ignore Gradle GUI config
gradle-app.setting

# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar

# Avoid ignore Gradle wrappper properties
!gradle-wrapper.properties

# Cache of project
.gradletasknamecache

# Eclipse Gradle plugin generated files
# Eclipse Core
.project
# JDT-specific (Eclipse Java Development Tools)
.classpath

### Gradle Patch ###
# Java heap dump
*.hprof

# End of https://www.toptal.com/developers/gitignore/api/gradle

40 changes: 19 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,9 @@
<a href="https://github.com/BuildTheEarth/BuildTeamTools">
<img src="https://user-images.githubusercontent.com/66020920/167615506-89e56374-327e-413f-85d9-0179e4a7a3c9.png" alt="Logo" width="100" height="100">
<br><br>
<img src="https://github-production-user-asset-6210df.s3.amazonaws.com/66020920/246825255-a75aa4e7-0cf5-40d3-af56-5c25d2a097b4.png" alt="Logo" width="612">
<img src="https://cdn.buildtheearth.net/outline/uploads/308d605b-c1a0-461c-a758-fd000a3b5a7a/7c38cde6-9c55-450f-ade6-0575da151444/buildteamtools_complete.png" alt="Logo" width="612">
</a>
</p>
<br>

<h1 align="Center">BuildTeamTools</h1>

Expand All @@ -25,7 +24,6 @@
<p align="center">
<a href="https://www.spigotmc.org/resources/buildteamtools.101854/"><img src="https://img.shields.io/spiget/downloads/101854?color=green&label=Downloads" alt="Downloads Count"></a>
<a href="https://www.spigotmc.org/resources/buildteamtools.101854/"><img src="https://img.shields.io/spiget/version/101854?label=Version" alt="Latest Version"></a>
<a href="https://github.com/BuildTheEarth/BuildTeamTools"><img src="https://tokei.rs/b1/github/BuildTheEarth/BuildTeamTools" alt="Total Lines"></a>
<a href="https://github.com/BuildTheEarth/BuildTeamTools"><img src="https://img.shields.io/github/repo-size/BuildTheEarth/BuildTeamTools" alt="Repo Size"></a>
</p>

Expand All @@ -41,11 +39,11 @@ Its primary goal is to significantly speed up the building process by eliminatin
<!-- FEATURES -->
## Features
🔨 **Easy-to-use** Tools for everything around BuildTheEarth<br/>
⏱ **Multi-Version** support from `1.18` - `1.21.4`<br/>
⏱ **Multi-Version** support from `1.18` - `1.21.x`<br/>
✔️ **User-friendly** GUIs and Commands<br/>
💬 **Multi-Language** Support (PLANNED)<br/>
📆 **Automatic** Updates<br/>
🔌 **Easy setup** and configuration<br/>
**Multi-Language** Support (PLANNED)<br/>

<!-- COMPONENTS -->
## Components
Expand All @@ -64,7 +62,7 @@ The **\*** symbol shows that this feature is still being developed or under main
## Installation
💻 **Requirements:**

- A Server running Paper 1.18 - **1.21.4**.
- A Server running Paper 1.18 - **1.21.x**.

🚩 **How to install:**
1. Download BuildTeamTools [here](https://www.spigotmc.org/resources/buildteamtools.101854/).
Expand All @@ -80,29 +78,29 @@ The **\*** symbol shows that this feature is still being developed or under main
**For more help, please see the [wiki](https://resources.buildtheearth.net/s/btt).**

## Contributors
Thank you to the following developers for contributing towards the plugin:

- **MineFact**
- **frikandelworst**
- **Brigart**
- **v4siv**
- **Adam**
- **Noah Husby**
- **Zoriot**
Thanks to all our contributors for contributing towards the plugin development and improvement!
You find them on the [contributors page](https://github.com/BuildTheEarth/BuildTeamTools/graphs/contributors).

Special thanks to the people currently working on the plugin:

- **[Zoriot](https://github.com/Zoriot)**
- **[Jasupa](https://github.com/Jasupa)**
- **[frikandelworst](https://github.com/kyanvde)**
- **[MineFact](https://github.com/MineFact)**

## Index
Click the links below for more information, or see the [wiki](https://resources.buildtheearth.net/s/btt).

- [Sledgehammer](https://resources.buildtheearth.net/s/btt/doc/sledgehammer-module-T7I0PWPsTD)
- [Generators](https://resources.buildtheearth.net/s/btt/doc/generator-module-13zqgI4yFA)
- [Houses](https://resources.buildtheearth.net/s/btt/doc/house-generator-YKQunon6Bp)
- [Roads](https://resources.buildtheearth.net/s/btt/doc/road-generator-QqKBBP0nqO)
- [Railways](https://resources.buildtheearth.net/s/btt/doc/rail-generator-EfgKXdBvk1)
- [Railways [Currently Broken]](https://resources.buildtheearth.net/s/btt/doc/rail-generator-EfgKXdBvk1)
- [Trees](https://resources.buildtheearth.net/s/btt/doc/tree-generator-pnDmYC9hzW)
- [Fields](https://resources.buildtheearth.net/s/btt/doc/field-generator-OqIN2BrZT7)
- [Sledgehammer](https://resources.buildtheearth.net/s/btt/doc/sledgehammer-module-T7I0PWPsTD)
- [Statistics](https://resources.buildtheearth.net/s/btt/doc/statistics-module-iM7IfoKroF) (PLANNED)
- [Plot System](https://resources.buildtheearth.net/s/btt/doc/plot-system-module-kkcH00jpcQ) (PLANNED)
- [Tutorials](https://resources.buildtheearth.net/s/btt/doc/tutorials-module-lkc3LaOrql) (PLANNED)
- Miscellaneous (PLANNED)
- [Security](https://resources.buildtheearth.net/s/btt/doc/security-module-iOmxV0djrW) (PLANNED)
- [Statistics](https://resources.buildtheearth.net/s/btt/doc/statistics-module-iM7IfoKroF)
- [Miscellaneous](https://resources.buildtheearth.net/doc/miscellaneous-appUzeNc5I)
- [Block Palette GUI](https://resources.buildtheearth.net/doc/block-palette-gui-hW8InCtxcq)
- Tutorials (PLANNED)
- Plot System (PLANNED - use [PST](https://github.com/AlpsBTE/Plot-System-Terra) for now)
86 changes: 86 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
/*
* This file was generated by the Gradle 'init' task.
*/

plugins {
java
alias(libs.plugins.lombok)
alias(libs.plugins.git.version)
alias(libs.plugins.shadow)
}

dependencies {
//implementation(libs.com.alpsbte.alpslib.alpslib.libpsterra) CURRENTLY BROKEN
implementation(libs.alpslib.io)
implementation(libs.alpslib.utils) {
exclude(group = "com.github.cryptomorin", module = "XSeries")
}
implementation(libs.com.alpsbte.canvas)
implementation(libs.net.daporkchop.lib.binary)
implementation(libs.com.github.cryptomorin.xseries)
implementation(libs.net.wesjd.anvilgui)
implementation(libs.micycle.clipper2)
implementation(libs.org.json.json)
implementation(libs.com.google.code.gson.gson)
implementation(libs.com.squareup.okhttp3.okhttp.jvm)
implementation(libs.javaapiforkml) {
exclude(group = "com.sun.xml.bind", module = "jaxb-xjc") // Else Remapping will yell of duplicated classes
}
implementation(libs.com.googlecode.json.simple)
implementation(platform(libs.fawe.bom))
compileOnly("com.fastasyncworldedit:FastAsyncWorldEdit-Core")
compileOnly("com.fastasyncworldedit:FastAsyncWorldEdit-Bukkit") { isTransitive = false }
compileOnly(libs.io.papermc.paper.paper.api)
}

val versionDetails: groovy.lang.Closure<com.palantir.gradle.gitversion.VersionDetails> by extra
val details = versionDetails()

group = "net.buildtheearth"
version = "0.2.0" + "-" + details.gitHash + "-SNAPSHOT"
description = "BuildTeamTools"
java.sourceCompatibility = JavaVersion.VERSION_21
java.targetCompatibility = JavaVersion.VERSION_21

tasks.withType<JavaCompile> {
options.encoding = "UTF-8"
}

tasks.withType<Javadoc> {
options.encoding = "UTF-8"
}

tasks.shadowJar {
// Exclude annotation classes (e.g. org.jetbrains.annotations)
exclude("org/jetbrains/annotations/**")
// Exclude slf4j classes
exclude("org/slf4j/**")
archiveClassifier = ""

relocationPrefix = "net.buildtheearth.buildteamtools.shaded"
enableAutoRelocation = true
}

tasks.assemble {
dependsOn(tasks.shadowJar) // Ensure that the shadowJar task runs before the build task
}

tasks.jar {
archiveClassifier = "UNSHADED"
enabled = false // Disable the default jar task since we are using shadowJar
}

tasks.processResources {
// work around IDEA-296490
duplicatesStrategy = DuplicatesStrategy.INCLUDE
with(copySpec {
from("src/main/resources/plugin.yml") {
expand(
mapOf(
"version" to project.version,
"description" to project.description
)
)
}
})
}
4 changes: 4 additions & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# This file was generated by the Gradle 'init' task.
# https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_configuration_properties
org.gradle.configuration-cache=true

44 changes: 44 additions & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# This file was generated by the Gradle 'init' task.
# https://docs.gradle.org/current/userguide/platforms.html#sub::toml-dependencies-format

[versions]
com-alpsbte-alpslib-alpslib-libpsterra = "1.1.4" # https://mvn.alps-bte.com/service/rest/repository/browse/alps-bte/com/alpsbte/alpslib/alpslib-libpsterra/
com-alpsbte-canvas = "1.3" # https://mvn.alps-bte.com/service/rest/repository/browse/alps-bte/com/alpsbte/canvas/
com-github-cryptomorin-xseries = "13.6.0" # https://github.com/CryptoMorin/XSeries/releases
com-google-code-gson-gson = "2.13.1" # https://central.sonatype.com/artifact/com.google.code.gson/gson
com-squareup-okhttp3-okhttp-jvm = "5.3.2" # https://central.sonatype.com/artifact/com.squareup.okhttp3/okhttp-jvm
javaapiforkml = "3.0.10" # https://github.com/urbancamo/javaapiforkml
io-papermc-paper-paper-api = "1.21.11-R0.1-SNAPSHOT" # https://artifactory.papermc.io/ui/native/universe/io/papermc/paper/paper-api/
micycle-clipper2 = "1.3.3" # https://github.com/micycle1/Clipper2-java/releases
net-daporkchop-lib-binary = "0.5.9-SNAPSHOT" # https://maven.daporkchop.net/net/daporkchop/lib/binary/
net-wesjd-anvilgui = "1.10.11-SNAPSHOT" # https://github.com/WesJD/AnvilGUI https://mvn.wesjd.net/
org-json-json = "20251224" # https://mvnrepository.com/artifact/org.json/json
io-freefair-lombok = "9.2.0" # https://plugins.gradle.org/plugin/io.freefair.lombok
com-googlecode-json-simple = "1.1.1" # https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple
com-palantir-git-version = "4.2.0" # https://github.com/palantir/gradle-git-version/releases
com-gradleup-shadow = "9.3.1" # https://github.com/GradleUp/shadow/releases
alpslib-io = "1.2.0" # https://mvn.alps-bte.com/service/rest/repository/browse/alps-bte/com/alpsbte/alpslib/alpslib-io/
alpslib-utils = "1.4.0" # https://mvn.alps-bte.com/service/rest/repository/browse/alps-bte/com/alpsbte/alpslib/alpslib-utils/
fawe-bom = "1.55" # Ref: https://github.com/IntellectualSites/bom

[libraries]
com-alpsbte-alpslib-alpslib-libpsterra = { module = "com.alpsbte.alpslib:alpslib-libpsterra", version.ref = "com-alpsbte-alpslib-alpslib-libpsterra" }
com-alpsbte-canvas = { module = "com.alpsbte:canvas", version.ref = "com-alpsbte-canvas" }
com-github-cryptomorin-xseries = { module = "com.github.cryptomorin:XSeries", version.ref = "com-github-cryptomorin-xseries" }
com-google-code-gson-gson = { module = "com.google.code.gson:gson", version.ref = "com-google-code-gson-gson" }
com-squareup-okhttp3-okhttp-jvm = { module = "com.squareup.okhttp3:okhttp-jvm", version.ref = "com-squareup-okhttp3-okhttp-jvm" }
javaapiforkml = { module = "uk.m0nom:javaapiforkml", version.ref = "javaapiforkml" }
io-papermc-paper-paper-api = { module = "io.papermc.paper:paper-api", version.ref = "io-papermc-paper-paper-api" }
micycle-clipper2 = { module = "com.github.micycle1:Clipper2-java", version.ref = "micycle-clipper2" }
net-daporkchop-lib-binary = { module = "net.daporkchop.lib:binary", version.ref = "net-daporkchop-lib-binary" }
net-wesjd-anvilgui = { module = "net.wesjd:anvilgui", version.ref = "net-wesjd-anvilgui" }
org-json-json = { module = "org.json:json", version.ref = "org-json-json" }
com-googlecode-json-simple = { module = "com.googlecode.json-simple:json-simple", version.ref = "com-googlecode-json-simple" }
alpslib-io = { module = "com.alpsbte.alpslib:alpslib-io", version.ref = "alpslib-io" }
alpslib-utils = { module = "com.alpsbte.alpslib:alpslib-utils", version.ref = "alpslib-utils" }
fawe-bom = { module = "com.intellectualsites.bom:bom-newest", version.ref = "fawe-bom" }

[plugins]
lombok = { id = "io.freefair.lombok", version.ref = "io-freefair-lombok" }
git-version = { id = "com.palantir.git-version", version.ref = "com-palantir-git-version" }
shadow = { id = "com.gradleup.shadow", version.ref = "com-gradleup-shadow" }
Binary file added gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
7 changes: 7 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading