Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
25e93df
Begin project restructure
thomasmny May 12, 2025
24ac7d7
Start fixing compile errors
thomasmny May 13, 2025
5c38ae3
More compile errors fixes
thomasmny May 13, 2025
80c8e1b
Start API creation
thomasmny May 13, 2025
9285aed
Fix compilation errors
thomasmny May 14, 2025
6db2075
Fix issues with server start
thomasmny May 14, 2025
fd2405b
Remove unused inventory row from setup menu
thomasmny May 14, 2025
e3be351
Fix incorrectly formatted `%builders%` placeholder, remove unused mes…
thomasmny May 14, 2025
84a6198
Rename `WorldIcon` class to `CustomizableIcons` to better reflect pur…
thomasmny May 14, 2025
c9cc279
Refactored some code
thomasmny May 14, 2025
255625a
Bump version to 3.0.0-SNAPSHOT
thomasmny May 15, 2025
054c340
Refactor message key within enums in api
thomasmny May 22, 2025
11c7a5b
Add ability to create World Folders (#352)
thomasmny Jun 24, 2025
12d1c0e
Fix world sorting setting not loading correctly
thomasmny Jun 24, 2025
0bf217b
Update to Java 21 (#355)
thomasmny Jun 24, 2025
f3fb577
Drop support for old versions (#356)
thomasmny Jun 25, 2025
bd6599a
Use custom inventory holders instead of using PDC for storing worlds
thomasmny Jun 25, 2025
39f06a0
Checking if a world exists during creation should be case-insensitive
thomasmny Jun 25, 2025
aa595bd
Use custom inventory holders to distinguish between inventories
thomasmny Jun 25, 2025
6b8d593
Delegate inventory click events to custom `BuildSystemInventory` classes
thomasmny Jun 25, 2025
b339df5
Fix invalid setup saving after prior changes
thomasmny Jun 25, 2025
4082832
Teleport players to the highest block when removing them out of a world
thomasmny Jun 25, 2025
4f3a056
Use `{@link BuildWorld}` instead of `{@link BuildWorldImpl}` in javadocs
thomasmny Jun 25, 2025
d3a6ee5
Add ability to create World Backups (#357)
thomasmny Jun 28, 2025
0269ffb
Move inventory handling login to `InventoryManager`
thomasmny Jun 28, 2025
51f9541
Migrate to jSpecify
thomasmny Jun 28, 2025
2bac7a5
Refactored some data loading code
thomasmny Jun 28, 2025
27dcf3d
Future-proof `Storage` by making methods return futures
thomasmny Jun 28, 2025
a7c3f66
Minor improvements to sounds when interacting with GUIs
thomasmny Jun 30, 2025
245bf46
Refactor world creation process to use fluent API and improve readabi…
thomasmny Jun 30, 2025
b733a5c
Folder improvements
thomasmny Jul 1, 2025
a10a4a9
Enhance world management by adding asynchronous unimport and delete m…
thomasmny Jul 1, 2025
803ec5b
Fix template worlds not keeping world generator settings (#360)
thomasmny Jul 1, 2025
138dcc8
Add a config option to prohibit world deletion
thomasmny Jul 2, 2025
5e7ec1a
Restructure project a tiny bit
thomasmny Jul 3, 2025
c9c5190
Always use custom chunk generator in world creation, if set
thomasmny Jul 3, 2025
c6ade40
Refactored code dealing with game rules
thomasmny Jul 3, 2025
1a289b7
Make folder world count include nested folder's worlds
thomasmny Jul 7, 2025
533bf8f
Fix `DisplayablesInventory` not registering inventory when calling `u…
thomasmny Jul 7, 2025
f470ce3
Enhance folder management by enforcing category consistency for paren…
thomasmny Jul 7, 2025
f7d556e
Refactor list collection methods to use `toList()` for improved reada…
thomasmny Jul 7, 2025
260f523
Add commands for directly opening navigator categories
thomasmny Jul 7, 2025
840bbfe
Refactor custom block management by renaming classes and updating ref…
thomasmny Jul 7, 2025
1daa98a
Javadoc improvements
thomasmny Jul 7, 2025
dc778fa
Improve "new navigator" functionality
thomasmny Jul 8, 2025
c490456
Add `PlayerBuildModeToggleEvent`, refactor navigator handling to use …
thomasmny Jul 8, 2025
d87836e
Compile with Spigot 1.21.8
thomasmny Aug 10, 2025
ccae7f7
Enable configuration cache for improved build performance
thomasmny Aug 15, 2025
93edacb
Disable configuration cache for Sonatype publishing tasks
thomasmny Aug 15, 2025
bff0258
Add config option for disabled world physics (#372)
thomasmny Aug 15, 2025
ffa5379
Improve error handling and logging in YAML storage and player/world l…
thomasmny Aug 30, 2025
ed94871
Fix typo in setup-java action version in build configuration
thomasmny Aug 30, 2025
a19e6ca
Merge branch 'master' into dev/v3
thomasmny Aug 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ body:
id: server-info
attributes:
label: Server Info
description: "Minecraft version: (e.g. 1.18.2), Server version (e.g. Spigot, Paper), Plugin version (e.g. 2.17.1)"
description: "Minecraft version: (e.g. 1.21.4), Server version (e.g. Spigot, Paper), Plugin version (e.g. 2.17.1)"
render: shell
placeholder: "Minecraft version 1.18.2 on the server version Paper-386 with the Plugin version 2.17.1 "
placeholder: "Minecraft version 1.21.4 on the server version Paper-386 with the Plugin version 2.17.1"
validations:
required: true
- type: textarea
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ blank_issues_enabled: false
contact_links:
- name: 🗣️ Discord Chat
url: https://discord.com/invite/rduPF3yk62
about: Ask questions and discuss with others on my Discord server.
about: Support Discord, please ask questions and seek support here.
6 changes: 0 additions & 6 deletions .github/pull_request_template.md

This file was deleted.

3 changes: 1 addition & 2 deletions .github/renovate.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@
],
"automerge": true,
"ignoreDeps": [
"org.spigotmc:spigot-api",
"com.sk89q.worldedit:worldedit-core"
"org.spigotmc:spigot-api"
],
"labels": [
"renovate"
Expand Down
13 changes: 5 additions & 8 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,16 @@ jobs:

steps:
- name: Checkout Git Repository
uses: actions/checkout@v5.0.0
uses: actions/checkout@v5

- name: JDK ${{ matrix.java }}
uses: actions/setup-java@v5.0.0
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v5
with:
java-version: ${{ matrix.java }}
cache: 'gradle'
distribution: 'temurin'

- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v3
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4

- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew clean build
51 changes: 51 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Publish to Sonatype

on:
push:
branches: [ master, dev/v3 ]

jobs:
publish:
if: github.repository_owner_id == 29168243
runs-on: ubuntu-latest
strategy:
matrix:
java: [ 21 ]
fail-fast: true
steps:
- name: Checkout Git Repository
uses: actions/checkout@v4

- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4

- name: Get Project Version
id: version
run: |
VERSION=$(./gradlew -q properties --no-daemon | grep "^version:" | awk '{print $2}')
echo "version=$VERSION" >> "$GITHUB_OUTPUT"

- name: Publish to Sonatype
env:
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.SONATYPE_USERNAME }}
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }}
ORG_GRADLE_PROJECT_signingKeyId: ${{ secrets.SIGNING_KEY_ID }}
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.SIGNING_KEY }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.SIGNING_PASSWORD }}
run: |
PROJECT_VERSION="${{ steps.version.outputs.version }}"
echo "Detected project version: $PROJECT_VERSION"

if [[ "$PROJECT_VERSION" == *-SNAPSHOT ]]; then
echo "Publishing SNAPSHOT version to Sonatype..."
./gradlew publishAllPublicationsToSonatypeRepository --no-daemon --no-configuration-cache
else
echo "Publishing RELEASE version to Sonatype and closing staging repository..."
./gradlew publishAllPublicationsToSonatypeRepository closeAndReleaseSonatypeStagingRepository --no-daemon --no-configuration-cache
fi
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# User-specific stuff
.idea/
.vscode/

*.iml
*.ipr
Expand Down
59 changes: 23 additions & 36 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
* [Introduction](#introduction)
* [Links and Contacts](#links-and-contacts)
* [Features](#features)
* [Screenshots](#screenshots)
* [Statistics](#statistics)
* [Developer API](#developer-api)
* [Contributing](#contributing)
* [To compile...](#to-compile)
* [Then you will find...](#then-you-will-find)
Expand Down Expand Up @@ -49,8 +49,8 @@ building can start!
* Powerful navigator which allows for an overview of all worlds. Extra GUIs for:
- **_Not Started_**, **_In Progress_**, **_Almost Finished_** and **_Finished_** maps
- Maps that have been put to the **_Archive_**
- **_Private_** player maps: Each player can create their own map, if a map with their name
doesn't exist
- **_Private_** player maps: Each player can create their own map, if a map with their name
doesn't exist
* **Create worlds with ease**: When creating a world, choose from:
- **_Predefined worlds_** _or_
- **_Custom generators_** provided by 3rd party plugins _or_
Expand Down Expand Up @@ -79,47 +79,34 @@ building can start!
- Night vision
- Disable interactions with certain blocks

## Screenshots

### Navigator

![Screenshot](.github/images/navigator.png)

### World Navigator

![Screenshot](.github/images/worlds.png)

### Create predefined worlds

![Screenshot](.github/images/predefined_worlds.png)

### Create worlds with the help of custom templates

![Screenshot](.github/images/templates.png)

### Receive secret blocks

![Screenshot](.github/images/blocks.png)

### Change which status each world has

![Screenshot](.github/images/status.png)
## Statistics

### Per player settings
![Graph](https://bstats.org/signatures/bukkit/BuildSystem.svg)

![Screenshot](.github/images/settings.png)
## Developer API

### Change the default items
**Maven:**

![Screenshot](.github/images/setup.png)
```xml

### Custom scoreboard
<dependency>
<groupId>de.eintosti</groupId>
<artifactId>buildsystem-api</artifactId>
<version>version</version>
</dependency>
```

![Screenshot](.github/images/scoreboard.png)
**Or alternatively, with Gradle:**

## Statistics
```kotlin
repositories {
mavenCentral()
}

![Graph](https://bstats.org/signatures/bukkit/BuildSystem.svg)
dependencies {
compileOnly("de.eintosti:buildsystem-api:version")
}
```

## Contributing

Expand Down
12 changes: 12 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
plugins {
id("io.github.gradle-nexus.publish-plugin") version "2.0.0"
}

nexusPublishing {
repositories {
sonatype {
nexusUrl.set(uri("https://ossrh-staging-api.central.sonatype.com/service/local/"))
snapshotRepositoryUrl.set(uri("https://central.sonatype.com/repository/maven-snapshots/"))
}
}
}
12 changes: 0 additions & 12 deletions buildSrc/src/main/kotlin/AdapterConfig.kt

This file was deleted.

6 changes: 1 addition & 5 deletions buildSrc/src/main/kotlin/CommonConfig.kt
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import org.gradle.api.JavaVersion
import org.gradle.api.Project
import org.gradle.api.plugins.JavaPluginExtension
import org.gradle.api.tasks.compile.JavaCompile
Expand All @@ -12,7 +11,6 @@ fun Project.applyCommonConfiguration() {
version = rootProject.version

repositories {
mavenLocal()
mavenCentral()
maven {
name = "Spigot"
Expand All @@ -26,13 +24,11 @@ fun Project.applyCommonConfiguration() {
name = "OSS Sonatype Snapshots"
url = uri("https://oss.sonatype.org/content/repositories/snapshots/")
}
mavenLocal()
}

plugins.withId("java") {
the<JavaPluginExtension>().apply {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8

toolchain {
languageVersion.set(JavaLanguageVersion.of(21))
}
Expand Down
9 changes: 0 additions & 9 deletions buildsystem-abstraction/adapter-1_12/build.gradle.kts

This file was deleted.

Loading