Skip to content

Commit 45c03f0

Browse files
authored
Merge pull request #5 from devOS-Sanity-Edition/feat/1.21.1/summer/v3/misc-patches
Misc Patches and everything else
2 parents 9f18b97 + 79932aa commit 45c03f0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+1100
-196
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ bin/
3131
# fabric
3232

3333
run/
34+
runServer/
3435

3536
# java
3637

README.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,29 @@ Some fixes done for the Winter's modpacks.
1515
- Potential Problem Mods screen on first startup
1616
- Be able to click on Journeymap formatted waypoints if you use Xaero's [Journey already integrates the other way around]
1717
- Everyone in the end during an end fight gets a dragon egg
18+
- Dark Titlebar [Windows 11 only]
19+
- Ability to change titlebar and icon [Must be a 32x32 Brotli-compressed QOI Image in Base64 string form] [Converter here](https://qoi.y2k.diy/)
20+
- Ability to read unsup.ini files in pack folder to set icon [Must be a 32x32 Brotli-compressed QOI Image in Base64 string form] and titlebar
21+
- `request` commands, notably `request dontSleep`, `request attention` and [OP Level 4 only] `request serverRestart`
22+
- `restart` command that saves, does a 15 second countdown, and then stops server [and let Pelican/Pterodactyl start server back up under assumption]
23+
- Generative AI deterrent in logs
24+
- Uploads crash logs automatically and opens up browser
25+
26+
A lot of this can be found in the mod's config, which is powered by [Vigilance](https://github.com/EssentialGG/Vigilance)
27+
28+
![java_axPRlxeTJb](https://github.com/user-attachments/assets/503969a7-b709-4ccd-baac-2195fc5fca29)
1829

1930
## Credits
2031
- BluSpring for.. basically half of this mod and why it even exists. Major major code help.
2132
- Cartrigger for idea of Raccoon trinket slot and the 2 raccoon slot textures
22-
- CephalonCosmic for internal tool to figure out which NBT files have certain values
33+
- CephalonCosmic for internal tool to figure out which NBT files have certain values, and fixing the internal impl for getting QOI Images working correctly
34+
- Deftu for Vigilance config assistance and better server restart command implementation
2335
- IThundxr for
24-
- maximumpower55 for helping with the pack
36+
- maximumpower55 for helping with the pack, and the mclo.gs crash handling from TeaBridge
2537
- Oliver-makes-code for showing how to setup datapacks as a resource pack for actual working Structure NBT overriding
26-
- ims212 for end dragon fight mixin
38+
- IMS212 for end dragon fight mixin
2739

2840
## License
2941
As per usual with all my projects, [MIT License](LICENSE).
3042

31-
However, the [CrashReportGAIDeterrentMixin](src/main/java/one/devos/nautical/winterisms/mixin/CrashReportGAIDeterrentMixin.java) in specific is 0BSD, feel free to take it, no attributions needed. :p
43+
However, the [CrashReportGAIDeterrentMixin](src/main/java/one/devos/nautical/winterisms/mixin/common/CrashReportGenerativeAIDeterrentMixin.java) in specific is 0BSD, feel free to take it, no attributions needed. :p

build.gradle.kts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ repositories {
2020
maven("https://maven.ladysnake.org/releases")
2121
maven("https://cursemaven.com") // ech. curseforge.
2222
maven("https://repo.essential.gg/repository/maven-public") // Essential's Vigilance Config
23+
maven("https://jitpack.io")
2324
}
2425

2526
//All dependencies and their versions are in ./gradle/libs.versions.toml
@@ -50,6 +51,13 @@ dependencies {
5051
include(modImplementation(libs.fmw.get())!!) // just to avoid the basic long metadata calls
5152
include(implementation(annotationProcessor(libs.mixinsquared.get())!!)!!)
5253
include(implementation(libs.mixinconstraints.get())!!)
54+
include(implementation(libs.brigadier.kotlin.get())!!)
55+
include(implementation(libs.ini4j.get())!!)
56+
include(implementation(libs.qoi.main.get())!!)
57+
include(implementation(libs.qoi.awt.get())!!)
58+
include(implementation(libs.brotli.get())!!)
59+
include(implementation(libs.jna.main.get())!!)
60+
include(implementation(libs.jna.platform.get())!!)
5361

5462
modImplementation(libs.grappling.hook)
5563
modImplementation(libs.lattice)
@@ -59,6 +67,9 @@ dependencies {
5967
// modImplementation(libs.yungs.api) // aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6068
modImplementation(libs.cloth.config)
6169
modImplementation(libs.better.end.island)
70+
modImplementation(libs.cicada)
71+
modImplementation(libs.`do`.a.barrel.roll)
72+
modImplementation(libs.fabric.permissions.api) // DABR needs this but it doesnt bundle it which is dumb. so you crash on world join w/ this
6273

6374
modCompileOnly(libs.enderscape)
6475

gradle/libs.versions.toml

Lines changed: 46 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,84 @@
11
[versions]
2+
better_end_island = "1.21.1-Fabric-3.1.2"
3+
brigadier_kotlin = "1.4.2"
4+
brotli = "0.1.2"
5+
cardinal_components = "6.1.1"
6+
cicada = "0.14.2+1.21-1.21.1"
7+
cloth_config = "15.0.140+fabric"
8+
do_a_barrel_roll = "3.7.3+1.21-fabric"
9+
enderscape = "wbBsMlR1"
10+
essential_elementa = "710"
11+
essential_universalcraft = "427" # the stanley parable number?!
12+
essential_vigilance = "312"
213
fabric_api = "0.116.4+1.21.1"
314
fabric_language_kotlin = "1.13.4+kotlin.2.2.0"
415
fabric_loader = "0.16.14"
16+
fabric_permissions_api = "0.3.1"
517
flashback = "hQkBepoB"
618
fmw = "1.0.0+build.8"
719
grappling_hook = "0.7.3-1.21.1"
20+
ini4j = "0.5.4"
21+
jna = "5.17.0"
22+
journeymap = "1.21.1-6.0.0-beta.52+fabric"
823
lattice = "1.2.10"
924
midnightlib = "1.7.5+1.21.1-fabric"
1025
minecraft = "1.21.1"
1126
mixinconstraints = "1.0.9"
1227
mixinsquared = "0.3.3"
1328
modmenu = "11.0.3"
14-
sodium = "mc1.21.1-0.6.13-fabric"
15-
trinkets = "3.10.0"
16-
xaeros_minimap = "25.2.10_Fabric_1.21"
17-
enderscape = "wbBsMlR1"
18-
journeymap = "1.21.1-6.0.0-beta.52+fabric"
1929
multikeybindings = "1.0.2+1.21.1"
20-
techreborn = "5776057"
21-
reborncore = "5776056"
22-
cardinal_components = "6.1.1"
2330
polymorph = "AGMyBSJE"
31+
qoi = "1.2.1"
2432
reborn_energy = "4.1.0"
25-
better_end_island = "1.21.1-Fabric-3.1.2"
26-
cloth_config = "15.0.140+fabric"
33+
reborncore = "5776056"
34+
sodium = "mc1.21.1-0.6.13-fabric"
35+
techreborn = "5776057"
36+
trinkets = "3.10.0"
37+
xaeros_minimap = "25.2.10_Fabric_1.21"
2738
yungs_api = "1.21.1-Fabric-5.1.6"
28-
essential_elementa = "710"
29-
essential_vigilance = "312"
30-
essential_universalcraft = "427" # the stanley parable number?!
3139

3240
[libraries]
41+
better_end_island = { module = "maven.modrinth:yungs-better-end-island", version.ref = "better_end_island" }
42+
brigadier_kotlin = { module = "com.github.Phyrone:brigardier-kotlin", version.ref = "brigadier_kotlin" }
43+
brotli = { module = "org.brotli:dec", version.ref = "brotli" }
44+
cardinal_components_base = { module = "org.ladysnake.cardinal-components-api:cardinal-components-base", version.ref = "cardinal_components" }
45+
cardinal_components_block = { module = "org.ladysnake.cardinal-components-api:cardinal-components-block", version.ref = "cardinal_components" }
46+
cardinal_components_entity = { module = "org.ladysnake.cardinal-components-api:cardinal-components-entity", version.ref = "cardinal_components" }
47+
cicada = { module = "maven.modrinth:cicada", version.ref = "cicada" }
48+
cloth_config = { module = "maven.modrinth:cloth-config", version.ref = "cloth_config" }
49+
do_a_barrel_roll = { module = "maven.modrinth:do-a-barrel-roll", version.ref = "do_a_barrel_roll" }
50+
enderscape = { module = "maven.modrinth:enderscape", version.ref = "enderscape" }
51+
essential_elementa = { module = "gg.essential:elementa", version.ref = "essential_elementa" }
52+
essential_universalcraft = { module = "gg.essential:universalcraft-1.21-fabric", version.ref = "essential_universalcraft" }
53+
essential_vigilance = { module = "gg.essential:vigilance", version.ref = "essential_vigilance" }
3354
fabric_api = { module = "net.fabricmc.fabric-api:fabric-api", version.ref = "fabric_api" }
3455
fabric_language_kotlin = { module = "net.fabricmc:fabric-language-kotlin", version.ref = "fabric_language_kotlin" }
3556
fabric_loader = { module = "net.fabricmc:fabric-loader", version.ref = "fabric_loader" }
57+
fabric_permissions_api = { module = "me.lucko:fabric-permissions-api", version.ref = "fabric_permissions_api" }
3658
flashback = { module = "maven.modrinth:flashback", version.ref = "flashback" }
3759
fmw = { module = "gay.asoji:fmw", version.ref = "fmw" }
3860
grappling_hook = { module = "io.github.moonlight_maya:Grappling-Hook", version.ref = "grappling_hook" }
61+
ini4j = { module = "org.ini4j:ini4j", version.ref = "ini4j" }
62+
jna_main = { module = "net.java.dev.jna:jna", version.ref = "jna" }
63+
jna_platform = { module = "net.java.dev.jna:jna-platform", version.ref = "jna" }
64+
journeymap = { module = "maven.modrinth:journeymap", version.ref = "journeymap" }
3965
lattice = { module = "com.moulberry:lattice", version.ref = "lattice" }
4066
midnightlib = { module = "maven.modrinth:midnightlib", version.ref = "midnightlib" }
4167
minecraft = { module = "com.mojang:minecraft", version.ref = "minecraft" }
4268
mixinconstraints = { module = "com.moulberry:mixinconstraints", version.ref = "mixinconstraints" }
4369
mixinsquared = { module = "com.github.bawnorton.mixinsquared:mixinsquared-fabric", version.ref = "mixinsquared" }
4470
modmenu = { module = "com.terraformersmc:modmenu", version.ref = "modmenu" }
45-
sodium = { module = "maven.modrinth:sodium", version.ref = "sodium" }
46-
trinkets = { module = "dev.emi:trinkets", version.ref = "trinkets" }
47-
xaeros_minimap = { module = "maven.modrinth:xaeros-minimap", version.ref = "xaeros_minimap" }
48-
enderscape = { module = "maven.modrinth:enderscape", version.ref = "enderscape" }
49-
journeymap = { module = "maven.modrinth:journeymap", version.ref = "journeymap" }
5071
multikeybindings = { module = "maven.modrinth:multi-key-bindings", version.ref = "multikeybindings" }
51-
techreborn = { module = "curse.maven:techreborn-233564", version.ref = "techreborn" }
52-
reborncore = { module = "curse.maven:reborncore-237903", version.ref = "reborncore" }
5372
polymorph = { module = "maven.modrinth:polymorph", version.ref = "polymorph" }
54-
cardinal_components_base = { module = "org.ladysnake.cardinal-components-api:cardinal-components-base", version.ref = "cardinal_components" }
55-
cardinal_components_block = { module = "org.ladysnake.cardinal-components-api:cardinal-components-block", version.ref = "cardinal_components" }
56-
cardinal_components_entity = { module = "org.ladysnake.cardinal-components-api:cardinal-components-entity", version.ref = "cardinal_components" }
73+
qoi_awt = { module = "me.saharnooby:qoi-java-awt", version.ref = "qoi" }
74+
qoi_main = { module = "me.saharnooby:qoi-java", version.ref = "qoi" }
5775
reborn_energy = { module = "teamreborn:energy", version.ref = "reborn_energy" }
58-
better_end_island = { module = "maven.modrinth:yungs-better-end-island", version.ref = "better_end_island" }
59-
cloth_config = { module = "maven.modrinth:cloth-config", version.ref = "cloth_config" }
76+
reborncore = { module = "curse.maven:reborncore-237903", version.ref = "reborncore" }
77+
sodium = { module = "maven.modrinth:sodium", version.ref = "sodium" }
78+
techreborn = { module = "curse.maven:techreborn-233564", version.ref = "techreborn" }
79+
trinkets = { module = "dev.emi:trinkets", version.ref = "trinkets" }
80+
xaeros_minimap = { module = "maven.modrinth:xaeros-minimap", version.ref = "xaeros_minimap" }
6081
yungs_api = { module = "maven.modrinth:yungs-api", version.ref = "yungs_api" }
61-
essential_elementa = { module = "gg.essential:elementa", version.ref = "essential_elementa" }
62-
essential_vigilance = { module = "gg.essential:vigilance", version.ref = "essential_vigilance" }
63-
essential_universalcraft = { module = "gg.essential:universalcraft-1.21-fabric", version.ref = "essential_universalcraft" }
6482

6583
[bundles]
6684
dev_mods = [ "sodium" ]

src/main/java/one/devos/nautical/winterisms/mixin/DisableVanillaTitle.java renamed to src/main/java/one/devos/nautical/winterisms/mixin/client/DisableVanillaTitle.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package one.devos.nautical.winterisms.mixin;
1+
package one.devos.nautical.winterisms.mixin.client;
22

33
import net.minecraft.client.Minecraft;
44
import org.spongepowered.asm.mixin.Mixin;

src/main/java/one/devos/nautical/winterisms/mixin/KeyBindsScreenMixin.java renamed to src/main/java/one/devos/nautical/winterisms/mixin/client/KeyBindsScreenMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package one.devos.nautical.winterisms.mixin;
1+
package one.devos.nautical.winterisms.mixin.client;
22

33
import com.mojang.blaze3d.platform.InputConstants;
44
import net.minecraft.Util;

src/main/java/one/devos/nautical/winterisms/mixin/KeyMappingAccessor.java renamed to src/main/java/one/devos/nautical/winterisms/mixin/client/KeyMappingAccessor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package one.devos.nautical.winterisms.mixin;
1+
package one.devos.nautical.winterisms.mixin.client;
22

33
import com.mojang.blaze3d.platform.InputConstants;
44
import net.minecraft.client.KeyMapping;

src/main/java/one/devos/nautical/winterisms/mixin/TitleScreenMixin.java renamed to src/main/java/one/devos/nautical/winterisms/mixin/client/TitleScreenMixin.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
package one.devos.nautical.winterisms.mixin;
1+
package one.devos.nautical.winterisms.mixin.client;
22

33
import net.minecraft.client.gui.screens.Screen;
44
import net.minecraft.client.gui.screens.TitleScreen;
55
import net.minecraft.network.chat.Component;
6-
import one.devos.nautical.winterisms.config.Config;
76
import one.devos.nautical.winterisms.client.screens.InitialIncompatibleWarningScreen;
7+
import one.devos.nautical.winterisms.config.Config;
88
import org.spongepowered.asm.mixin.Mixin;
99
import org.spongepowered.asm.mixin.injection.At;
1010
import org.spongepowered.asm.mixin.injection.Inject;
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package one.devos.nautical.winterisms.mixin.client;
2+
3+
import net.minecraft.client.Minecraft;
4+
import one.devos.nautical.winterisms.client.titlebar.QOIWindowIcon;
5+
import org.spongepowered.asm.mixin.Mixin;
6+
import org.spongepowered.asm.mixin.injection.At;
7+
import org.spongepowered.asm.mixin.injection.Inject;
8+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
9+
10+
@Mixin(Minecraft.class)
11+
public class WindowQOIDataMixin {
12+
@Inject(method = "onResourceLoadFinished", at = @At("HEAD"))
13+
private void onResourceLoadFinished(CallbackInfo ci) {
14+
QOIWindowIcon.INSTANCE.okayLetsDoThisShit();
15+
}
16+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package one.devos.nautical.winterisms.mixin.client;
2+
3+
import net.minecraft.client.Minecraft;
4+
import one.devos.nautical.winterisms.client.titlebar.DarkModeTitleBar;
5+
import org.lwjgl.glfw.GLFWNativeWin32;
6+
import org.spongepowered.asm.mixin.Mixin;
7+
import org.spongepowered.asm.mixin.injection.At;
8+
import org.spongepowered.asm.mixin.injection.Inject;
9+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
10+
11+
@Mixin(Minecraft.class)
12+
public class WindowTitlebarMixin {
13+
@Inject(method = "setWindowActive", at = @At("HEAD"))
14+
private void titlebar(boolean windowActive, CallbackInfo ci) {
15+
long window = Minecraft.getInstance().getWindow().getWindow();
16+
int windowId = (int) GLFWNativeWin32.glfwGetWin32Window(window);
17+
18+
DarkModeTitleBar.INSTANCE.darkModeTitleBarForWindows11(windowId);
19+
}
20+
}

0 commit comments

Comments
 (0)