Puddles 2.0.0: Now fully server-sided!

- Port to 1.21
- Utilize Polymer and ServerTranslationsAPI for fully server-side functionality (Doesn't even require resourcepacks)
- Instead of breaking, puddles will now create a splash effect when mined
- Puddles no longer slow down walking (Sprinting still gets interrupted; this is not fixable, closes #2)
- Fixed #13
- Fixed #11
This commit is contained in:
Martin Prokoph
2024-08-18 23:25:05 +02:00
parent f414be04ce
commit d115aadfe8
18 changed files with 225 additions and 209 deletions

View File

@@ -1,16 +1,26 @@
plugins {
id 'fabric-loom' version '1.3-SNAPSHOT'
id 'fabric-loom' version '1.7-SNAPSHOT'
id 'maven-publish'
id "me.shedaniel.unified-publishing" version "0.1.+"
}
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
archivesBaseName = project.archives_base_name
version = project.mod_version
group = project.maven_group
base {
archivesName = project.archives_base_name
loom {
}
repositories {
maven { url "https://api.modrinth.com/maven" }
maven { url "https://maven.terraformersmc.com/releases" }
maven { url "https://jitpack.io" }
maven {
url = "https://api.modrinth.com/maven"
}
maven { url 'https://maven.nucleoid.xyz' }
}
dependencies {
@@ -19,10 +29,15 @@ dependencies {
mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
// Fabric API. This is technically optional, but you probably want it anyway.
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
modImplementation "maven.modrinth:midnightlib:${midnightlib_version}"
include "maven.modrinth:midnightlib:${midnightlib_version}"
modImplementation "maven.modrinth:midnightlib:${midnightlib_version}"
modImplementation include("eu.pb4:polymer-core:${polymer_version}")
modImplementation include("eu.pb4:polymer-blocks:${polymer_version}")
modImplementation include("eu.pb4:polymer-virtual-entity:${polymer_version}")
modImplementation include("xyz.nucleoid:server-translations-api:${server_translation_version}")
}
processResources {
@@ -34,7 +49,13 @@ processResources {
}
tasks.withType(JavaCompile).configureEach {
it.options.release = 17
// ensure that the encoding is set to UTF-8, no matter what the system default is
// this fixes some edge cases with special characters not displaying correctly
// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
// If Javadoc is generated, this must be specified in that task too.
it.options.encoding = "UTF-8"
it.options.release = 21
}
java {
@@ -42,14 +63,11 @@ java {
// if it is present.
// If you remove this line, sources will not be generated.
withSourcesJar()
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
jar {
from("LICENSE") {
rename { "${it}_${project.base.archivesName.get()}"}
rename { "${it}_${project.archivesBaseName}"}
}
}
@@ -57,7 +75,13 @@ jar {
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
// add all the jars that should be included when publishing to maven
artifact(remapJar) {
builtBy remapJar
}
artifact(sourcesJar) {
builtBy remapSourcesJar
}
}
}
@@ -68,4 +92,56 @@ publishing {
// The repositories here will be used for publishing your artifact, not for
// retrieving dependencies.
}
}
ext {
releaseChangelog = {
def changes = new StringBuilder()
changes << "## Puddles v$project.version for $project.minecraft_version\n[View the changelog](https://www.github.com/TeamMidnightDust/Puddles/commits/)"
def proc = "git log --max-count=1 --pretty=format:%s".execute()
proc.in.eachLine { line ->
def processedLine = line.toString()
if (!processedLine.contains("New translations") && !processedLine.contains("Merge") && !processedLine.contains("branch")) {
changes << "\n- ${processedLine.capitalize()}"
}
}
proc.waitFor()
return changes.toString()
}
}
unifiedPublishing {
project {
displayName = "Puddles v$project.version - Fabric $project.minecraft_version"
releaseType = "$project.release_type"
changelog = releaseChangelog()
gameVersions = []
gameLoaders = ["fabric","quilt"]
mainPublication remapJar
relations {
depends {
curseforge = "midnightlib"
modrinth = "midnightlib"
}
}
var CURSEFORGE_TOKEN = project.findProperty("CURSEFORGE_TOKEN") ?: System.getenv("CURSEFORGE_TOKEN")
if (CURSEFORGE_TOKEN != null) {
curseforge {
token = CURSEFORGE_TOKEN
id = rootProject.curseforge_id
gameVersions.addAll "Java 21", project.minecraft_version, project.supported_versions
}
}
var MODRINTH_TOKEN = project.findProperty("MODRINTH_TOKEN") ?: System.getenv("MODRINTH_TOKEN")
if (MODRINTH_TOKEN != null) {
modrinth {
token = MODRINTH_TOKEN
id = rootProject.modrinth_id
version = "$project.version"
gameVersions.addAll project.minecraft_version, project.supported_versions
}
}
}
}