Skip to content

Commit

Permalink
Initial 1.18 update!
Browse files Browse the repository at this point in the history
  • Loading branch information
ZestyBlaze committed May 16, 2022
1 parent 3ba3ac8 commit b4fd96f
Show file tree
Hide file tree
Showing 44 changed files with 1,475 additions and 1,587 deletions.
39 changes: 39 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Automatically build the project and run any configured tests for every push
# and submitted pull request. This can help catch issues that only occur on
# certain platforms or Java versions, and provides a first line of defence
# against bad commits.

name: build
on: [pull_request, push]

jobs:
build:
strategy:
matrix:
# Use these Java versions
java: [
17 # Minimum supported by Minecraft
]
# and run on both Linux and Windows
os: [ubuntu-20.04, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- name: checkout repository
uses: actions/checkout@v2
- name: validate gradle wrapper
uses: gradle/wrapper-validation-action@v1
- name: setup jdk ${{ matrix.java }}
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- name: make gradle wrapper executable
if: ${{ runner.os != 'Windows' }}
run: chmod +x ./gradlew
- name: build
run: ./gradlew build
- name: capture build artifacts
if: ${{ runner.os == 'Linux' && matrix.java == '16' }} # Only upload artifacts built from the latest java on one OS
uses: actions/upload-artifact@v2
with:
name: Artifacts
path: build/libs/
10 changes: 9 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ build/
out/
classes/

# eclipse

*.launch

# idea

.idea/
Expand All @@ -20,6 +24,10 @@ bin/
.classpath
.project

# macos

*.DS_Store

# fabric

run/
run/
186 changes: 21 additions & 165 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,207 +1,63 @@
plugins {
id 'fabric-loom' version '0.5-SNAPSHOT'
id 'fabric-loom' version '0.11-SNAPSHOT'
id 'maven-publish'
id 'com.matthewprenger.cursegradle' version '1.4.0'
id 'org.ajoberstar.grgit' version '3.1.1'
id 'com.github.breadmoirai.github-release' version '2.2.9'
id 'com.wynprice.cursemaven' version '1.2.3'
}

sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
// Adds a few utility methods like getProjectProperty
apply from: 'https://raw.githubusercontent.com/NerdHubMC/Gradle-Scripts/master/scripts/utilities.gradle'
apply from: 'https://raw.githubusercontent.com/NerdHubMC/Gradle-Scripts/master/scripts/fabric/publish/changelog.gradle'
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17

archivesBaseName = project.archives_base_name
version = project.mod_version
group = project.maven_group

minecraft {
}

repositories {
// Ladysnake bintray
maven {
name = "Ladysnake Libs"
url = "https://dl.bintray.com/ladysnake/libs"
name "Parchment"
url "https://maven.parchmentmc.org"
}
}

dependencies {
//to change the versions see the gradle.properties file
minecraft "com.mojang:minecraft:${project.minecraft_version}"
mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
modCompile "net.fabricmc:fabric-loader:${project.loader_version}"
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"

// Fabric API. This is technically optional, but you probably want it anyway.
modCompile "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
//Parchment
mappings loom.layered() {
officialMojangMappings()
parchment("org.parchmentmc.data:parchment-1.18.2:2022.05.02@zip")
}
}

processResources {
inputs.property "version", project.version

from(sourceSets.main.resources.srcDirs) {
include "fabric.mod.json"
filesMatching("fabric.mod.json") {
expand "version": project.version
}

from(sourceSets.main.resources.srcDirs) {
exclude "fabric.mod.json"
}
}

// 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
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
tasks.withType(JavaCompile).configureEach {
it.options.release = 17
}

// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
// if it is present.
// If you remove this task, sources will not be generated.
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = "sources"
from sourceSets.main.allSource
java {
withSourcesJar()
}

jar {
from "LICENSE"
from("LICENSE") {
rename { "${it}_${project.archivesBaseName}"}
}
}

// configure the maven publication
publishing {
publications {
mavenJava(MavenPublication) {
// add all the jars that should be included when publishing to maven
artifact(remapJar) {
builtBy remapJar
}
artifact(sourcesJar) {
builtBy remapSourcesJar
}
from components.java
}
}

// select the repositories you want to publish to
repositories {
// uncomment to publish to the local maven
// mavenLocal()
}
}


task checkGitStatus() {
group = 'publishing'
description = 'Checks that the git repository is in a state suitable for release'
doLast {
if (grgit == null) throw new RuntimeException('No git repository')
if (!grgit.status().isClean()) {
throw new RuntimeException("Git repository not ready for release (${grgit.status()})")
}
def currentBranch = grgit.branch.current().getName()
grgit.fetch()
if (grgit.tag.list().any { it.name == project.version }) {
throw new RuntimeException("A tag already exists for ${project.version}")
}
def status = grgit.branch.status(name: currentBranch)
if (status.aheadCount != 0) {
throw new RuntimeException('Some commits have not been pushed')
}
if (status.behindCount != 0) {
throw new RuntimeException('Some commits have not been pulled')
}
}
}

githubRelease {
repo "Nomad-Books"
token "${getProjectProperty('github_releases_token')}"
// default owner: last component of maven group
// default repo: name of the project
tagName = project.version
targetCommitish = { grgit.branch.current().name }
body = { project.getChangelogText() }

FilenameFilter filter = { dir, filename -> filename.contains(project.version) && !filename.contains('-dev.jar') }
releaseAssets = { jar.destinationDirectory.asFile.get().listFiles filter }
}
tasks.githubRelease.dependsOn(checkGitStatus)

curseforge {

if (project.getProjectProperty('curse_key') != null) {
apiKey = project.getProjectProperty('curse_key')
}

if (project.hasProperty('curseforge_id')) {
project {
id = findProperty('curseforge_id')

releaseType = project.release_type

//usually automatically determined by the CurseGradle plugin, but won't work with fabric
"${project.curseforge_versions}".split('; ').each {
addGameVersion it
}
addGameVersion 'Fabric'

mainArtifact(remapJar) {
displayName = "${project.name}-${project.version}.jar"

if (project.hasProperty('cf_requirements') || project.hasProperty('cf_optionals') || project.hasProperty('cf_embeddeds') || project.hasProperty('cf_tools') || project.hasProperty('cf_incompatibles') || project.hasProperty('cf_includes')) {
relations {
if (project.hasProperty('cf_requirements')) {
"${project.cf_requirements}".split('; ').each {
requiredDependency "${it}"
}
}
if (project.hasProperty('cf_optionals')) {
"${project.cf_optionals}".split('; ').each {
optionalDependency "${it}"
}
}
if (project.hasProperty('cf_embeddeds')) {
"${project.cf_embeddeds}".split('; ').each {
embeddedLibrary "${it}"
}
}
if (project.hasProperty('cf_tools')) {
"${project.cf_tools}".split('; ').each {
tool "${it}"
}
}
if (project.hasProperty('cf_incompatibles')) {
"${project.cf_incompatibles}".split('; ').each {
incompatible "${it}"
}
}
if (project.hasProperty('cf_includes')) {
"${project.cf_includes}".split('; ').each {
include "${it}"
}
}
}
}
}

changelogType = 'markdown'
changelog = project.getChangelogText()

afterEvaluate {
uploadTask.dependsOn remapSourcesJar
}
}
options {
forgeGradleIntegration = false
}
}
}

tasks.curseforge.dependsOn(checkGitStatus)

task release(dependsOn: [tasks.githubRelease, tasks.curseforge]) {
group = 'publishing'
description = 'Releases a new version to Github and Curseforge'
}
29 changes: 6 additions & 23 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,24 +1,7 @@
# Done to increase the memory available to gradle.
org.gradle.jvmargs=-Xmx1G

# Fabric Properties
minecraft_version=1.16.5
yarn_mappings=1.16.5+build.1
loader_version=0.11.1

#Fabric api
fabric_version=0.29.4+1.16

# Mod Properties
mod_version = 1.0.1
maven_group = io.github.ladysnake
archives_base_name = nomadbooks

#Publishing
owners = Ladysnake
license_header = GPL-3.0-or-later
curseforge_id = 356921
curseforge_versions = 1.16.5
cf_requirements = fabric-api
release_type = release
changelog_url = https://github.com/Ladysnake/Nomad-Books/blob/master/CHANGELOG.md
minecraft_version=1.18.2
loader_version=0.14.5
mod_version = 1.0.1
maven_group = net.zestyblaze
archives_base_name = nomadbooks-1.18
fabric_version=0.51.1+1.18.2
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,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading

0 comments on commit b4fd96f

Please sign in to comment.