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

@ -26,13 +26,13 @@ Flan 1.4.0
Flan 1.3.3 Flan 1.3.3
====================== ======================
- Some blocks permission changed from PROJECTILES to OPENCONTAINER on direct interaction - Some blocks permission changed from PROJECTILES to OPENCONTAINER on direct interaction
Affected blocks: campfire, tnt, (chorus fruit), bells Affected blocks: campfire, tnt, (chorus fruit), bells
Direct interaction as in right clicking the block. For actual projectile hits this remains unchanged Direct interaction as in right clicking the block. For actual projectile hits this remains unchanged
- Fix several entities not protected on indirect non projectile player attacks (e.g. through player ignited tnt)- - Fix several entities not protected on indirect non projectile player attacks (e.g. through player ignited tnt)-
More noticable with other mods #52 More noticable with other mods #52
- Add gunpowder currency support. - Add gunpowder currency support.
Enables the purchase and selling of claim blocks. Price configurable. Disabled by default Enables the purchase and selling of claim blocks. Price configurable. Disabled by default
Only selling and purchase of additional claim blocks possible (not the ones you get with time). Only selling and purchase of additional claim blocks possible (not the ones you get with time).
Flan 1.3.2 Flan 1.3.2
====================== ======================
@ -52,13 +52,13 @@ Flan 1.3.0
- Fix inventory desync when using the naming screen - Fix inventory desync when using the naming screen
- Add /flan help command. For now it only displays all available commands - Add /flan help command. For now it only displays all available commands
- Add default groups. Set via the config file in defaultGroups. - Add default groups. Set via the config file in defaultGroups.
Every claim created will have those groups by default to make group creation easier Every claim created will have those groups by default to make group creation easier
and without having to make the same group for multiple claims again and again. and without having to make the same group for multiple claims again and again.
- Add personal groups. Set either via the command /flan permissions personal ... - Add personal groups. Set either via the command /flan permissions personal ...
or via the gui /flan personalGroups. or via the gui /flan personalGroups.
Personal groups are just like default groups except player bound. If a player has any Personal groups are just like default groups except player bound. If a player has any
personal groups that will be used instead of the global default group. That way the player personal groups that will be used instead of the global default group. That way the player
can also specify what groups a claim should have upon creation. can also specify what groups a claim should have upon creation.
- Localized various gui strings - Localized various gui strings
Flan 1.2.6 Flan 1.2.6
@ -73,9 +73,9 @@ 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
Flan 1.2.4 Flan 1.2.4

View File

@ -1,111 +1,218 @@
plugins { buildscript {
id 'fabric-loom' version '0.4-SNAPSHOT' dependencies {
id 'maven-publish' classpath group: 'com.diluv.schoomp', name: 'Schoomp', version: '1.1.0'
}
} }
plugins {
id 'fabric-loom' version '0.4-SNAPSHOT'
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 {
mavenCentral() mavenCentral()
jcenter() jcenter()
maven { maven {
name = 'Fabric-Permission-API' name = 'Fabric-Permission-API'
url 'https://oss.sonatype.org/content/repositories/snapshots' url 'https://oss.sonatype.org/content/repositories/snapshots'
} }
maven { maven {
name = "Gunpowder" name = "Gunpowder"
url = "https://maven.martmists.com/releases" url = "https://maven.martmists.com/releases"
} }
maven { maven {
name = 'Ladysnake Mods' name = 'Ladysnake Mods'
url = 'https://ladysnake.jfrog.io/artifactory/mods' url = 'https://ladysnake.jfrog.io/artifactory/mods'
content { content {
includeGroup 'io.github.ladysnake' includeGroup 'io.github.ladysnake'
includeGroupByRegex 'io\\.github\\.onyxstudios.*' includeGroupByRegex 'io\\.github\\.onyxstudios.*'
} }
} }
} }
dependencies { dependencies {
//to change the versions see the gradle.properties file //to change the versions see the gradle.properties file
minecraft "com.mojang:minecraft:${project.minecraft_version}" minecraft "com.mojang:minecraft:${project.minecraft_version}"
mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
// Fabric API. This is technically optional, but you probably want it anyway. // Fabric API. This is technically optional, but you probably want it anyway.
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
compile group: 'org.yaml', name: 'snakeyaml', version: '1.25' compile group: 'org.yaml', name: 'snakeyaml', version: '1.25'
include group: 'org.yaml', name: 'snakeyaml', version: '1.25' include group: 'org.yaml', name: 'snakeyaml', version: '1.25'
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 {
inputs.property "version", project.version inputs.property "version", project.version
from(sourceSets.main.resources.srcDirs) { from(sourceSets.main.resources.srcDirs) {
include "fabric.mod.json" include "fabric.mod.json"
expand "version": project.version expand "version": project.version
} }
from(sourceSets.main.resources.srcDirs) { from(sourceSets.main.resources.srcDirs) {
exclude "fabric.mod.json" exclude "fabric.mod.json"
} }
} }
// ensure that the encoding is set to UTF-8, no matter what the system default is // 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 // 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 // see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
tasks.withType(JavaCompile) { tasks.withType(JavaCompile) {
options.encoding = "UTF-8" options.encoding = "UTF-8"
} }
// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
// if it is present. // if it is present.
// If you remove this task, sources will not be generated. // If you remove this task, sources will not be generated.
task sourcesJar(type: Jar, dependsOn: classes) { task sourcesJar(type: Jar, dependsOn: classes) {
classifier = "sources" classifier = "sources"
from sourceSets.main.allSource from sourceSets.main.allSource
} }
jar { jar {
from "LICENSE" from "LICENSE"
} }
// configure the maven publication // configure the maven publication
publishing { publishing {
publications { publications {
mavenJava(MavenPublication) { mavenJava(MavenPublication) {
// add all the jars that should be included when publishing to maven // add all the jars that should be included when publishing to maven
artifact(remapJar) { artifact(remapJar) {
builtBy remapJar builtBy remapJar
} }
artifact(sourcesJar) { artifact(sourcesJar) {
builtBy remapSourcesJar builtBy remapSourcesJar
} }
artifactId project.archives_base_name artifactId project.archives_base_name
version project.version version project.version
} }
} }
repositories {
maven { repositories {
url "https://gitlab.com/api/v4/projects/21830712/packages/maven" maven {
//url "https://maven.pkg.github.com/flemmli97/RuneCraftory" url "https://gitlab.com/api/v4/projects/21830712/packages/maven"
credentials { //url "https://maven.pkg.github.com/flemmli97/RuneCraftory"
username = project.findProperty("gpr.user") ?: System.getenv("GPR_USER") credentials {
password = project.findProperty("gpr.gitlab.token") ?: System.getenv("GPR_GITLAB_TOKEN") username = project.findProperty("gpr.user") ?: System.getenv("GPR_USER")
//password = project.findProperty("gpr.github.token") ?: System.getenv("GPR_TOKEN") password = project.findProperty("gpr.gitlab.token") ?: System.getenv("GPR_GITLAB_TOKEN")
} //password = project.findProperty("gpr.github.token") ?: System.getenv("GPR_TOKEN")
} }
} }
}
} }
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",