add things to make releasing mod easier

This commit is contained in:
Flemmli97 2021-06-10 16:55:55 +02:00
parent a48ec00100
commit 609e6461f7
4 changed files with 211 additions and 100 deletions

View File

@ -73,8 +73,8 @@ Flan 1.2.5
- Sync itemstack when failing to place blocks - Sync itemstack when failing to place blocks
- Fix various thrown entitys to not abide by claim protection - Fix various thrown entitys to not abide by claim protection
- Add 2 new permissions: - Add 2 new permissions:
- Item drop permission: If set to false prevents items being dropped (players only) Item drop permission: If set to false prevents items being dropped (players only)
- Item pickup permission: If set to false prevents items from being picked up. Player thrown items Item pickup permission: If set to false prevents items from being picked up. Player thrown items
(Death included) gets a special tag so that the one who threw them can always pick it up. (Death included) gets a special tag so that the one who threw them can always pick it up.
- Change some permissions to default true: Enderchest, Enchanting table, Item drop, Item pickup - Change some permissions to default true: Enderchest, Enchanting table, Item drop, Item pickup

View File

@ -1,13 +1,24 @@
buildscript {
dependencies {
classpath group: 'com.diluv.schoomp', name: 'Schoomp', version: '1.1.0'
}
}
plugins { plugins {
id 'fabric-loom' version '0.4-SNAPSHOT' id 'fabric-loom' version '0.4-SNAPSHOT'
id 'maven-publish' id 'maven-publish'
id 'com.matthewprenger.cursegradle' version '1.4.0'
} }
import com.diluv.schoomp.Webhook
import com.diluv.schoomp.message.Message
import com.diluv.schoomp.message.embed.Embed
sourceCompatibility = JavaVersion.VERSION_1_8 sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8
archivesBaseName = project.archives_base_name archivesBaseName = project.archives_base_name
version = project.minecraft_version+"-"+project.mod_version version = project.minecraft_version + "-" + project.mod_version
group = project.maven_group group = project.maven_group
repositories { repositories {
@ -46,8 +57,6 @@ dependencies {
modImplementation "me.lucko:fabric-permissions-api:${project.fabric_permissions_api}" modImplementation "me.lucko:fabric-permissions-api:${project.fabric_permissions_api}"
modCompileOnly "io.github.gunpowder:gunpowder-api:${gunpowder_version}+1.16.2" modCompileOnly "io.github.gunpowder:gunpowder-api:${gunpowder_version}+1.16.2"
modImplementation "io.github.ladysnake:PlayerAbilityLib:${project.player_ability_lib}" modImplementation "io.github.ladysnake:PlayerAbilityLib:${project.player_ability_lib}"
// PSA: Some older mods, compiled on Loom 0.2.1, might have outdated Maven POMs.
// You may need to force-disable transitiveness on them.
} }
processResources { processResources {
@ -97,6 +106,7 @@ publishing {
version project.version version project.version
} }
} }
repositories { repositories {
maven { maven {
url "https://gitlab.com/api/v4/projects/21830712/packages/maven" url "https://gitlab.com/api/v4/projects/21830712/packages/maven"
@ -109,3 +119,100 @@ publishing {
} }
} }
} }
def changelog(int versions) {
try {
def changelog = ""
def match = 0
file("Changelog.txt").eachLine {
if (it.matches("${project.project_name} ([0-9].[0-9].[0-9])"))
match++
if (match <= versions) {
changelog += it + "\n"
} else
return
}
return changelog + "\n\n"
} catch (exception) {
return "${project.project_name} ${project.mod_version}\n==========\n"
}
}
//Splits the changelog into multiple parts if they get bigger than discords embed field size (1024)
def discordChangelog() {
def changelog = changelog(1)
def res = new ArrayList()
if (changelog.size() < 1024) {
res.add(changelog)
return res;
}
def temp = ""
changelog.split("\n").each {
it = it + "\n"
if ((temp.size() + it.size()) >= 1024) {
res.add(temp)
temp = it
} else
temp += it
}
res.add(temp)
return res
}
curseforge {
apiKey = findProperty('curseApiToken') ?: 0
project {
id = "${curse_id}"
changelog = changelog(3)
releaseType = 'release'
"${project.curse_versions}".split(', ').each {
addGameVersion "${it}"
}
relations {
"${project.curse_dep}".split(', ').each {
requiredDependency "${it}"
}
}
}
}
tasks.getByName("curseforge").doLast {
try {
def newFileId = tasks.getByName("curseforge${project.curse_id}").property('mainArtifact').fileID
def webhook = new Webhook(findProperty('discordHook'), "${project.project_name} Upload")
def message = new Message()
def version = project.curse_versions.split(', ')[0]
message.setUsername("Release")
message.setContent("@Flan ${project.project_name} ${project.mod_version} for Minecraft ${version} has been released!")
def embed = new Embed()
embed.addField('Get it here', "${project.findProperty('curse_page')}/files/${newFileId}", false)
def changelog = discordChangelog()
if (changelog.size() == 1)
embed.addField('Change Log', "```md\n${changelog.get(0) ?: 'Unavailable :('}```", false)
else
changelog.forEach {
embed.addField("Change Log", "```md\n${it}```", false)
}
embed.setColor(0xFF8000)
message.addEmbed(embed)
webhook.sendMessage(message)
}
catch (IOException e) {
println 'Failed to push to the Discord webhook.'
}
}
task buildUploadAll(group: "upload") {
dependsOn clean, publish, tasks.getByName("curseforge")
build.mustRunAfter clean
tasks.findByName("curseforge").mustRunAfter publish
}
tasks.getByName("curseforge").dependsOn build
publish.dependsOn build

View File

@ -1,20 +1,24 @@
# Done to increase the memory available to gradle. # Done to increase the memory available to gradle.
org.gradle.jvmargs=-Xmx2G org.gradle.jvmargs=-Xmx2G
# Fabric Properties # Fabric Properties
# check these on https://fabricmc.net/use # check these on https://fabricmc.net/use
minecraft_version=1.16.2 minecraft_version=1.16.2
yarn_mappings=1.16.2+build.1 yarn_mappings=1.16.2+build.1
loader_version=0.9.1+build.205 loader_version=0.9.1+build.205
# Mod Properties # Mod Properties
mod_version = 1.4.1 mod_version=1.4.1
maven_group = io.github.flemmli97 maven_group=io.github.flemmli97
archives_base_name = flan archives_base_name=flan
# Dependencies # Dependencies
# currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api
fabric_version=0.19.0+build.398-1.16 fabric_version=0.19.0+build.398-1.16
gunpowder_version=0.2.10 gunpowder_version=0.2.10
fabric_permissions_api=0.1-SNAPSHOT fabric_permissions_api=0.1-SNAPSHOT
player_ability_lib=1.2.2 player_ability_lib=1.2.2
# Curse properties
curse_page=https://www.curseforge.com/minecraft/mc-mods/flan
curse_versions=1.16.5
curse_id=404578
curse_dep=fabric-api
# Other
project_name=Flan

View File

@ -8,7 +8,7 @@
"Flemmli97" "Flemmli97"
], ],
"contact": { "contact": {
"homepage": "", "homepage": "https://www.curseforge.com/minecraft/mc-mods/flan",
"sources": "https://github.com/Flemmli97/Flan" "sources": "https://github.com/Flemmli97/Flan"
}, },
"license": "ARR", "license": "ARR",