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
======================
- Some blocks permission changed from PROJECTILES to OPENCONTAINER on direct interaction
Affected blocks: campfire, tnt, (chorus fruit), bells
Direct interaction as in right clicking the block. For actual projectile hits this remains unchanged
Affected blocks: campfire, tnt, (chorus fruit), bells
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)-
More noticable with other mods #52
More noticable with other mods #52
- Add gunpowder currency support.
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).
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).
Flan 1.3.2
======================
@ -52,13 +52,13 @@ Flan 1.3.0
- Fix inventory desync when using the naming screen
- Add /flan help command. For now it only displays all available commands
- Add default groups. Set via the config file in defaultGroups.
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.
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.
- Add personal groups. Set either via the command /flan permissions personal ...
or via the gui /flan personalGroups.
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
can also specify what groups a claim should have upon creation.
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
can also specify what groups a claim should have upon creation.
- Localized various gui strings
Flan 1.2.6
@ -73,9 +73,9 @@ Flan 1.2.5
- Sync itemstack when failing to place blocks
- Fix various thrown entitys to not abide by claim protection
- Add 2 new permissions:
- 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
(Death included) gets a special tag so that the one who threw them can always pick it up.
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
(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
Flan 1.2.4

View File

@ -1,111 +1,218 @@
plugins {
id 'fabric-loom' version '0.4-SNAPSHOT'
id 'maven-publish'
buildscript {
dependencies {
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
targetCompatibility = JavaVersion.VERSION_1_8
archivesBaseName = project.archives_base_name
version = project.minecraft_version+"-"+project.mod_version
version = project.minecraft_version + "-" + project.mod_version
group = project.maven_group
repositories {
mavenCentral()
jcenter()
maven {
name = 'Fabric-Permission-API'
url 'https://oss.sonatype.org/content/repositories/snapshots'
}
maven {
name = "Gunpowder"
url = "https://maven.martmists.com/releases"
}
maven {
name = 'Ladysnake Mods'
url = 'https://ladysnake.jfrog.io/artifactory/mods'
content {
includeGroup 'io.github.ladysnake'
includeGroupByRegex 'io\\.github\\.onyxstudios.*'
}
}
mavenCentral()
jcenter()
maven {
name = 'Fabric-Permission-API'
url 'https://oss.sonatype.org/content/repositories/snapshots'
}
maven {
name = "Gunpowder"
url = "https://maven.martmists.com/releases"
}
maven {
name = 'Ladysnake Mods'
url = 'https://ladysnake.jfrog.io/artifactory/mods'
content {
includeGroup 'io.github.ladysnake'
includeGroupByRegex 'io\\.github\\.onyxstudios.*'
}
}
}
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"
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
//to change the versions see the gradle.properties file
minecraft "com.mojang:minecraft:${project.minecraft_version}"
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}"
// Fabric API. This is technically optional, but you probably want it anyway.
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
compile group: 'org.yaml', name: 'snakeyaml', version: '1.25'
include 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'
modImplementation "me.lucko:fabric-permissions-api:${project.fabric_permissions_api}"
modCompileOnly "io.github.gunpowder:gunpowder-api:${gunpowder_version}+1.16.2"
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.
modImplementation "me.lucko:fabric-permissions-api:${project.fabric_permissions_api}"
modCompileOnly "io.github.gunpowder:gunpowder-api:${gunpowder_version}+1.16.2"
modImplementation "io.github.ladysnake:PlayerAbilityLib:${project.player_ability_lib}"
}
processResources {
inputs.property "version", project.version
inputs.property "version", project.version
from(sourceSets.main.resources.srcDirs) {
include "fabric.mod.json"
expand "version": project.version
}
from(sourceSets.main.resources.srcDirs) {
include "fabric.mod.json"
expand "version": project.version
}
from(sourceSets.main.resources.srcDirs) {
exclude "fabric.mod.json"
}
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"
options.encoding = "UTF-8"
}
// 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
classifier = "sources"
from sourceSets.main.allSource
}
jar {
from "LICENSE"
from "LICENSE"
}
// 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
}
artifactId project.archives_base_name
version project.version
}
}
repositories {
maven {
url "https://gitlab.com/api/v4/projects/21830712/packages/maven"
//url "https://maven.pkg.github.com/flemmli97/RuneCraftory"
credentials {
username = project.findProperty("gpr.user") ?: System.getenv("GPR_USER")
password = project.findProperty("gpr.gitlab.token") ?: System.getenv("GPR_GITLAB_TOKEN")
//password = project.findProperty("gpr.github.token") ?: System.getenv("GPR_TOKEN")
}
}
}
publications {
mavenJava(MavenPublication) {
// add all the jars that should be included when publishing to maven
artifact(remapJar) {
builtBy remapJar
}
artifact(sourcesJar) {
builtBy remapSourcesJar
}
artifactId project.archives_base_name
version project.version
}
}
repositories {
maven {
url "https://gitlab.com/api/v4/projects/21830712/packages/maven"
//url "https://maven.pkg.github.com/flemmli97/RuneCraftory"
credentials {
username = project.findProperty("gpr.user") ?: System.getenv("GPR_USER")
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.
org.gradle.jvmargs=-Xmx2G
# Fabric Properties
# check these on https://fabricmc.net/use
minecraft_version=1.16.2
yarn_mappings=1.16.2+build.1
loader_version=0.9.1+build.205
# check these on https://fabricmc.net/use
minecraft_version=1.16.2
yarn_mappings=1.16.2+build.1
loader_version=0.9.1+build.205
# Mod Properties
mod_version = 1.4.1
maven_group = io.github.flemmli97
archives_base_name = flan
mod_version=1.4.1
maven_group=io.github.flemmli97
archives_base_name=flan
# Dependencies
# 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
gunpowder_version=0.2.10
fabric_permissions_api=0.1-SNAPSHOT
player_ability_lib=1.2.2
# 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
gunpowder_version=0.2.10
fabric_permissions_api=0.1-SNAPSHOT
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"
],
"contact": {
"homepage": "",
"homepage": "https://www.curseforge.com/minecraft/mc-mods/flan",
"sources": "https://github.com/Flemmli97/Flan"
},
"license": "ARR",