Skip to content

Commit f360747

Browse files
committed
Update to Minecraft 1.17.
1 parent 43d5ff4 commit f360747

File tree

8 files changed

+238
-45
lines changed

8 files changed

+238
-45
lines changed

.github/workflows/gradlebuild.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
settings-path: ${{ github.workspace }} # location for the settings.xml file
1919

2020
- name: Build with Gradle
21-
run: gradle shadowRemapJar
21+
run: ./gradlew build
2222

2323
- uses: actions/upload-artifact@v2
2424
with:

.github/workflows/modrinth_update.yml

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: Gradle Build
2+
3+
on:
4+
release:
5+
types:
6+
- published
7+
8+
jobs:
9+
build:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v2
13+
- name: Set up JDK 16
14+
uses: actions/setup-java@v1
15+
with:
16+
java-version: 16
17+
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
18+
settings-path: ${{ github.workspace }} # location for the settings.xml file
19+
20+
- name: Build with Gradle
21+
env:
22+
MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }}
23+
run: ./gradlew publishModrinth

CHANGELOG.md

+7
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,13 @@
8989
- Fix missing background in settings screen.
9090
- Updated [SpruceUI].
9191

92+
## 2.0.0
93+
94+
- Updated to Minecraft 1.17.
95+
- Updated to Java 16.
96+
- Added dynamic lighting to the Glow Squid.
97+
- And more.
98+
9299
[SpruceUI]: https://github.com/LambdAurora/SpruceUI "SpruceUI page"
93100
[Sodium]: https://modrinth.com/mod/sodium "Sodium Modrinth page"
94101
[Canvas Renderer]: https://www.curseforge.com/minecraft/mc-mods/canvas-renderer "Canvas Renderer CurseForge page"

README.md

+99-13
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,122 @@
11
# LambDynamicLights
22

3-
![Java 8](https://img.shields.io/badge/language-Java%208-9B599A.svg?style=flat-square)
3+
<!-- modrinth_exclude.start -->
4+
![Java 16](https://img.shields.io/badge/language-Java%2016-9B599A.svg?style=flat-square) <!-- modrinth_exclude.end -->
45
[![GitHub license](https://img.shields.io/github/license/LambdAurora/LambDynamicLights?style=flat-square)](https://raw.githubusercontent.com/LambdAurora/LambDynamicLights/master/LICENSE)
56
![Environment: Client](https://img.shields.io/badge/environment-client-1976d2?style=flat-square)
6-
![Mod loader: Fabric](https://img.shields.io/badge/modloader-Fabric-1976d2?style=flat-square&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE4LTEyLTE2VDE2OjU0OjE3LTA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wNy0yOFQyMToxNzo0OC0wNzowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wNy0yOFQyMToxNzo0OC0wNzowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowZWRiMWMyYy1mZjhjLWU0NDEtOTMxZi00OTVkNGYxNGM3NjAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MGVkYjFjMmMtZmY4Yy1lNDQxLTkzMWYtNDk1ZDRmMTRjNzYwIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MGVkYjFjMmMtZmY4Yy1lNDQxLTkzMWYtNDk1ZDRmMTRjNzYwIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDowZWRiMWMyYy1mZjhjLWU0NDEtOTMxZi00OTVkNGYxNGM3NjAiIHN0RXZ0OndoZW49IjIwMTgtMTItMTZUMTY6NTQ6MTctMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE4IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4/HiGMAAAAtUlEQVRYw+XXrQqAMBQF4D2P2eBL+QIG8RnEJFaNBjEum+0+zMQLtwwv+wV3ZzhhMDgfJ0wUSinxZUQWgKos1JP/AbD4OneIDyQPwCFniA+EJ4CaXm4TxAXCC0BNHgLhAdAnx9hC8PwGSRtAFVMQjF7cNTWED8B1cgwW20yfJgAvrssAsZ1cB3g/xckAxr6FmCDU5N6f488BrpCQ4rQBJkiMYh4ACmLzwOQF0CExinkCsvw7vgGikl+OotaKRwAAAABJRU5ErkJggg==)
7+
[![Mod loader: Fabric]][fabric] <!-- modrinth_exclude.start -->
78
![Version](https://img.shields.io/github/v/tag/LambdAurora/LambDynamicLights?label=version&style=flat-square)
89
[![CurseForge](http://cf.way2muchnoise.eu/title/393442.svg)](https://www.curseforge.com/minecraft/mc-mods/lambdynamiclights)
10+
<!-- modrinth_exclude.end -->
911

1012
A dynamic lights mod for Fabric.
1113

12-
## What's this mod?
14+
## 📖 What's this mod?
15+
16+
It's dark outside, very dark...
17+
You can't see a lot in the darkness, you wished you had a torch,
18+
or a lantern to hold and see in the light...
19+
20+
And this is possible with this mod as it adds dynamic lights to the game.
21+
Now you will be able to see in the darkness thanks to your torch!
1322

1423
This mod adds dynamic lights to Minecraft. Dynamic lights are lights created by an entity holding an
1524
item which makes light as a block, or create by an entity on fire, etc.
1625

17-
Dynamic lights are present as an option in OptiFine or as a Forge mod (Dynamic Lights mod).
26+
[Trailer](https://www.youtube.com/embed/r8r1TNG45tM?wmode=transparent)
27+
28+
Searching other mods to replace OptiFine? [Check out that list!](https://gist.github.com/LambdAurora/1f6a4a99af374ce500f250c6b42e8754)
29+
30+
## ✅ Features:
31+
32+
- Dynamic lights.
33+
- Settings to select how smooth the dynamic lighting is.
34+
- Works with some modded items.
35+
- Any entity holding an item which emits light will emit light!
36+
- Magma cubes emit light.
37+
- Spectral arrows emit light.
38+
- Burning entities emit light.
39+
- Blazes emit light.
40+
- Some items like torches, soul torches, etc. will not light up in water.
41+
- Quick and simple API for developers.
42+
- And more!
43+
44+
## Screenshots
45+
46+
### Items emit light
47+
48+
Dropped items, which already emit light as a block, will also dynamically emit light!
49+
50+
![Torch](https://media.forgecdn.net/attachments/301/21/2020-07-04_22.png)
51+
52+
### Hold items emit light
53+
54+
Light is emitted when entities hold light emitting items.
55+
56+
![Fox holding lantern](https://media.forgecdn.net/attachments/301/22/2020-07-04_22.png)
57+
58+
### Fire! Fire! Fire!
59+
60+
Any entity on fire will emit light!
61+
62+
![Skeleton on fire!](https://media.forgecdn.net/attachments/301/23/2020-07-04_22.png)
63+
64+
### Spectral arrows
1865

19-
[Sodium](https://github.com/jellysquid3/sodium-fabric) and [Phosphor](https://github.com/jellysquid3/phosphor-fabric) are compatible and recommended.
66+
Spectral arrows will emit a weak light!
2067

21-
## Build
68+
![Spectral arrows](https://media.forgecdn.net/attachments/301/25/2020-07-04_22.png)
69+
70+
### Different luminance!
71+
72+
Light emitted from items depend on the light emitted from their respective blocks!
73+
74+
![light levels](https://media.forgecdn.net/attachments/301/26/2020-07-04_22.png)
75+
76+
### Configuration GUI
77+
78+
As of v1.2.1.
79+
80+
![Configuration GUI](https://media.forgecdn.net/attachments/301/819/2020-07-09_21.png)
81+
82+
## 📖 Usage
83+
84+
To use this mod it's very simple!
85+
86+
Install it in your mods folder along with [Fabric API] and [ModMenu], (and [Sodium] if wanted for better performances).
87+
88+
You will notice nothing at first but if you go into the video options or into the settings screen of the mod via [ModMenu], you will notice an option called Dynamic Lights which is by default off, choose the wanted configuration and enjoy!
89+
You can also configure the mod by editing the file in `config/lambdynlights.toml`.
90+
91+
Need help? Come check out [my Discord server][LambdAurora Discord].
92+
93+
<!-- modrinth_exclude.start -->
94+
### Build
2295

2396
Just do `./gradlew shadowRemapJar` and everything should build just fine!
97+
<!-- modrinth_exclude.end -->
98+
99+
## 📖 How does it work internally?
100+
101+
Check [this documentation](https://github.com/LambdAurora/LambDynamicLights/blob/1.17/HOW_DOES_IT_WORK.md).
102+
103+
## 📖 Is there an API? How to use it as a developer?
24104

25-
## Configuration
105+
Check [this documentation](https://github.com/LambdAurora/LambDynamicLights/blob/1.17/API.md).
26106

27-
You can configure the mod by editing the file in `config/lambdynlights.toml`.
28-
You also can use the configuration GUI of the mod, which is more recommended to avoid crashes.
107+
# 📖 Compatibility
29108

30-
## How does it work internally?
109+
- [Sodium] is recommended for better performances.
110+
- [Canvas] is compatible but still WIP: expect huge lag spike with it until a proper lighting API is done in Canvas.
111+
- **OptiFabric is obviously incompatible.**
31112

32-
Check [this documentation](https://github.com/LambdAurora/LambDynamicLights/blob/mc1.16/HOW_DOES_IT_WORK.md).
33113

34-
## Is there an API? How to use it as a developer?
114+
**<p style="color: red">Please, when you write the name of this mod, don't add spaces.</p>**
35115

36-
Check [this documentation](https://github.com/LambdAurora/LambDynamicLights/blob/mc1.16/API.md).
116+
[fabric]: https://fabricmc.net
117+
[Mod loader: Fabric]: https://img.shields.io/badge/modloader-Fabric-1976d2?style=flat-square&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE4LTEyLTE2VDE2OjU0OjE3LTA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wNy0yOFQyMToxNzo0OC0wNzowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wNy0yOFQyMToxNzo0OC0wNzowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowZWRiMWMyYy1mZjhjLWU0NDEtOTMxZi00OTVkNGYxNGM3NjAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MGVkYjFjMmMtZmY4Yy1lNDQxLTkzMWYtNDk1ZDRmMTRjNzYwIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MGVkYjFjMmMtZmY4Yy1lNDQxLTkzMWYtNDk1ZDRmMTRjNzYwIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDowZWRiMWMyYy1mZjhjLWU0NDEtOTMxZi00OTVkNGYxNGM3NjAiIHN0RXZ0OndoZW49IjIwMTgtMTItMTZUMTY6NTQ6MTctMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE4IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4/HiGMAAAAtUlEQVRYw+XXrQqAMBQF4D2P2eBL+QIG8RnEJFaNBjEum+0+zMQLtwwv+wV3ZzhhMDgfJ0wUSinxZUQWgKos1JP/AbD4OneIDyQPwCFniA+EJ4CaXm4TxAXCC0BNHgLhAdAnx9hC8PwGSRtAFVMQjF7cNTWED8B1cgwW20yfJgAvrssAsZ1cB3g/xckAxr6FmCDU5N6f488BrpCQ4rQBJkiMYh4ACmLzwOQF0CExinkCsvw7vgGikl+OotaKRwAAAABJRU5ErkJggg==
118+
[Fabric API]: https://www.curseforge.com/minecraft/mc-mods/fabric-api "Fabric API CurseForge page"
119+
[ModMenu]: https://modrinth.com/mod/modmenu
120+
[Sodium]: https://www.curseforge.com/minecraft/mc-mods/sodium "Sodium CurseForge page"
121+
[Canvas]: https://www.curseforge.com/minecraft/mc-mods/canvas-renderer "Canvas CurseForge page"
122+
[LambdAurora Discord]: https://discord.gg/abEbzzv

build.gradle

+98-20
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,25 @@
11
plugins {
2-
id 'fabric-loom' version '0.8-SNAPSHOT'
2+
id 'fabric-loom' version '0.8.+'
33
id 'java-library'
44
id 'maven-publish'
55
id 'com.github.johnrengelman.shadow' version '7.0.0'
6-
id 'org.cadixdev.licenser' version '0.5.0'
6+
id 'org.cadixdev.licenser' version '0.6.0'
7+
id 'com.modrinth.minotaur' version '1.2.+'
78
}
89

910
import net.fabricmc.loom.task.RemapJarTask
11+
import com.google.gson.GsonBuilder
12+
import com.google.gson.JsonObject
13+
import com.modrinth.minotaur.TaskModrinthUpload
14+
import com.modrinth.minotaur.request.VersionType
15+
import com.modrinth.minotaur.responses.ResponseError
16+
import org.apache.http.client.config.CookieSpecs
17+
import org.apache.http.client.config.RequestConfig
18+
import org.apache.http.client.entity.EntityBuilder
19+
import org.apache.http.client.methods.HttpPatch
20+
import org.apache.http.entity.ContentType
21+
import org.apache.http.impl.client.HttpClientBuilder
22+
import org.apache.http.util.EntityUtils
1023

1124
group = project.maven_group
1225
version = "${project.mod_version}+${getMCVersionString()}"
@@ -15,12 +28,27 @@ archivesBaseName = project.archives_base_name
1528
// This field defines the Java version your mod target.
1629
def targetJavaVersion = 16
1730

18-
def getMCVersionString() {
19-
if (project.minecraft_version.matches("\\d\\dw\\d\\d[a-z]")) {
31+
boolean isMCVersionNonRelease() {
32+
return project.minecraft_version.matches('^\\d\\dw\\d\\d[a-z]$')
33+
|| project.minecraft_version.matches('\\d+\\.\\d+-(pre|rc)(\\d+)')
34+
}
35+
36+
String getMCVersionString() {
37+
if (isMCVersionNonRelease()) {
2038
return project.minecraft_version
2139
}
22-
int lastDot = project.minecraft_version.lastIndexOf('.')
23-
return project.minecraft_version.substring(0, lastDot)
40+
def version = project.minecraft_version.split('\\.')
41+
return version[0] + '.' + version[1]
42+
}
43+
44+
String parseReadme() {
45+
def excludeRegex = /(?m)<!-- modrinth_exclude\.start -->(.|\n)*?<!-- modrinth_exclude\.end -->/
46+
def linkRegex = /!\[([A-z_ ]+)]\((images\/[A-z.\/_]+)\)/
47+
48+
def readme = (String) file('README.md').text
49+
readme = readme.replaceAll(excludeRegex, '')
50+
//readme = readme.replaceAll(linkRegex, '![$1](https://raw.githubusercontent.com/LambdAurora/LambDynamicLights/1.17/$2)')
51+
return readme
2452
}
2553

2654
minecraft {
@@ -58,7 +86,7 @@ configurations {
5886

5987
dependencies {
6088
minecraft "com.mojang:minecraft:${project.minecraft_version}"
61-
mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
89+
mappings "net.fabricmc:yarn:${project.minecraft_version}+build.${project.yarn_mappings}:v2"
6290
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
6391

6492
// Fabric API. This is technically optional, but you probably want it anyway.
@@ -70,11 +98,9 @@ dependencies {
7098
modImplementation("com.terraformersmc:modmenu:${project.modmenu_version}") {
7199
transitive = false
72100
}
73-
//modImplementation "grondag:canvas-mc116:1.0.+"
74-
//modImplementation "com.github.jellysquid3:sodium-fabric:mc1.16.3-0.1.0"
75101

76-
shadow "com.electronwill.night-config:core:3.6.3"
77-
shadow "com.electronwill.night-config:toml:3.6.3"
102+
shadow 'com.electronwill.night-config:core:3.6.3'
103+
shadow 'com.electronwill.night-config:toml:3.6.3'
78104
}
79105

80106
java {
@@ -91,15 +117,15 @@ tasks.withType(JavaCompile).configureEach {
91117
}
92118

93119
processResources {
94-
inputs.property "version", project.version
120+
inputs.property 'version', project.version
95121

96-
filesMatching("fabric.mod.json") {
97-
expand "version": project.version
122+
filesMatching('fabric.mod.json') {
123+
expand 'version': project.version
98124
}
99125
}
100126

101127
jar {
102-
from("LICENSE") {
128+
from('LICENSE') {
103129
rename { "${it}_${project.archivesBaseName}" }
104130
}
105131
}
@@ -110,22 +136,74 @@ license {
110136
}
111137

112138
shadowJar {
113-
dependsOn(project(":").jar)
139+
dependsOn jar
114140
configurations = [project.configurations.shadow]
115141
archiveClassifier.set('dev')
116142

117-
relocate 'com.electronwill.nightconfig', 'me.lambdaurora.lambdynlights.shadow.nightconfig'
143+
relocate 'com.electronwill.nightconfig', 'dev.lambdaurora.lambdynlights.shadow.nightconfig'
118144
}
145+
remapJar.dependsOn(shadowJar)
119146

120147
task shadowRemapJar(type: RemapJarTask) {
121148
dependsOn shadowJar
122149

123-
input = file("${project.buildDir}/libs/$archivesBaseName-$version-dev.jar")
124-
archiveName = "${archivesBaseName}-${version}.jar"
125-
addNestedDependencies = true
150+
input.set(file("${project.buildDir}/libs/$archivesBaseName-${project.version}-dev.jar"))
151+
archiveFileName = "${archivesBaseName}-${project.version}.jar"
152+
addNestedDependencies.set(true)
126153
}
127154
build.dependsOn(shadowRemapJar)
128155

156+
task publishModrinth(type: TaskModrinthUpload) {
157+
dependsOn(build)
158+
onlyIf {
159+
System.getenv('MODRINTH_TOKEN')
160+
}
161+
162+
token = System.getenv('MODRINTH_TOKEN')
163+
projectId = project.modrinth_id
164+
versionNumber = version
165+
versionName = "LambDynamicLights ${project.mod_version} (${getMCVersionString()})"
166+
uploadFile = shadowRemapJar
167+
addGameVersion((String) project.minecraft_version)
168+
addLoader('fabric')
169+
versionType = isMCVersionNonRelease() ? VersionType.BETA : VersionType.RELEASE
170+
171+
// Changelog fetching
172+
def changelogText = file('CHANGELOG.md').text
173+
def regexVersion = ((String) project.mod_version).replaceAll('\\.', /\\./).replaceAll('\\+', '\\+')
174+
def changelogRegex = ~"###? ${regexVersion}\\n\\n(( *- .+\\n)+)"
175+
def matcher = changelogText =~ changelogRegex
176+
matcher.find()
177+
178+
changelog = matcher.group(1)
179+
180+
// Readme
181+
doFirst {
182+
final def client = HttpClientBuilder.create().setDefaultRequestConfig(RequestConfig.custom().setCookieSpec(CookieSpecs.IGNORE_COOKIES).build()).build()
183+
final def patch = new HttpPatch((String) (apiURL + '/v1/mod/' + projectId))
184+
patch.addHeader("Authorization", token)
185+
186+
var json = new JsonObject()
187+
json.addProperty("body", parseReadme())
188+
patch.setEntity(EntityBuilder.create()
189+
.setText(json.toString())
190+
.setContentType(ContentType.APPLICATION_JSON)
191+
.build())
192+
193+
final def response = client.execute(patch)
194+
final int status = response.getStatusLine().getStatusCode()
195+
196+
final def gson = new GsonBuilder().create()
197+
if (status == 200) {
198+
project.getLogger().lifecycle("Successfully updated readme to ${projectId}.")
199+
} else {
200+
errorInfo = gson.fromJson(EntityUtils.toString(response.getEntity()), ResponseError.class)
201+
project.getLogger().error("Upload failed! Status: ${status} Error: ${errorInfo.getError()} Reason: ${errorInfo.getDescription()}")
202+
throw new GradleException("Upload failed! Status: ${status} Reason: ${errorInfo.getDescription()}")
203+
}
204+
}
205+
}
206+
129207
// configure the maven publication
130208
publishing {
131209
publications {

gradle.properties

+7-6
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,19 @@ org.gradle.jvmargs=-Xmx1G
33

44
# Fabric Properties
55
# check these on https://fabricmc.net/use
6-
minecraft_version=21w20a
7-
yarn_mappings=21w20a+build.19
6+
minecraft_version=1.17
7+
yarn_mappings=1
88
loader_version=0.11.3
99
# currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api
10-
fabric_api_version=0.34.5+1.17
10+
fabric_api_version=0.34.9+1.17
1111

1212
# Mod Properties
1313
mod_version = 2.0.0
14-
maven_group = me.lambdaurora
14+
maven_group = dev.lambdaurora
1515
archives_base_name = lambdynamiclights
16+
modrinth_id=yBW8D80W
1617

1718
# Dependencies
1819
# currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api
19-
spruceui_version=3.1.0+21w20a
20-
modmenu_version=2.0.0-beta.4
20+
spruceui_version=3.1.0+1.17
21+
modmenu_version=2.0.0-beta.7

settings.gradle

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
pluginManagement {
22
repositories {
3-
jcenter()
43
maven {
54
name = 'Fabric'
65
url = 'https://maven.fabricmc.net/'

0 commit comments

Comments
 (0)