Skip to content

Commit c2de9e7

Browse files
committed
feat: add Mixins for Ribbits and Nitrogen(fabric) #8
1 parent f39ee6c commit c2de9e7

12 files changed

Lines changed: 82 additions & 7 deletions

File tree

common/src/main/java/dev/aika/smsn/config/SMSNConfig.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,35 @@ public class SMSNConfig extends ModConfig {
1717
@Comment("❤ Loving " + SMSN.MOD_NAME + " ? Consider supporting development on " + ModConstants.SponsorUrl + " to help keep updates coming! ❤")
1818
private static final String sponsor = ModConstants.MyCat;
1919

20+
@LoaderSpecific({LoaderType.NEOFORGE, LoaderType.FABRIC})
2021
public boolean aetherMoaSkinsFeature = SMSNConfigDefault.aetherMoaSkinsFeature;
22+
@LoaderSpecific(LoaderType.NEOFORGE)
2123
public boolean immersiveEngineeringSpecialRevolvers = SMSNConfigDefault.immersiveEngineeringSpecialRevolvers;
24+
@LoaderSpecific({LoaderType.NEOFORGE, LoaderType.FABRIC})
2225
public boolean ipnUpdateCheckAndUserTracking = SMSNConfigDefault.ipnUpdateCheckAndUserTracking;
26+
@LoaderSpecific(LoaderType.NEOFORGE)
2327
public boolean petrolparkBadgeCheck = SMSNConfigDefault.petrolparkBadgeCheck;
28+
@LoaderSpecific({LoaderType.NEOFORGE, LoaderType.FABRIC})
2429
public boolean supplementariesCreditsCheck = SMSNConfigDefault.supplementariesCreditsCheck;
30+
@LoaderSpecific(LoaderType.NEOFORGE)
2531
public boolean bagusLibSupportersCheck = SMSNConfigDefault.bagusLibSupportersCheck;
32+
@LoaderSpecific(LoaderType.NEOFORGE)
2633
public boolean placeboTrails = SMSNConfigDefault.placeboTrails;
34+
@LoaderSpecific(LoaderType.NEOFORGE)
2735
public boolean placeboWings = SMSNConfigDefault.placeboWings;
36+
@LoaderSpecific(LoaderType.FABRIC)
2837
public boolean irisUpdateCheck = SMSNConfigDefault.irisUpdateCheck;
38+
@LoaderSpecific(LoaderType.NEOFORGE)
2939
public boolean actuallyAdditionsSpecialPeopleStuff = SMSNConfigDefault.actuallyAdditionsSpecialPeopleStuff;
40+
@LoaderSpecific({LoaderType.NEOFORGE, LoaderType.FABRIC})
3041
public boolean exposureGoldenCameraSkin = SMSNConfigDefault.exposureGoldenCameraSkin;
42+
@LoaderSpecific(LoaderType.NEOFORGE)
3143
public boolean titaniumReward = SMSNConfigDefault.titaniumReward;
44+
@LoaderSpecific({LoaderType.NEOFORGE, LoaderType.FABRIC})
3245
public boolean ribbitsSupporterHat = SMSNConfigDefault.ribbitsSupporterHat;
3346

3447
@Category("qol")
35-
@LoaderSpecific(LoaderType.FORGE)
48+
@LoaderSpecific(LoaderType.NEOFORGE)
3649
public boolean immersiveCavesDiscordMessage = SMSNConfigDefault.immersiveCavesDiscordMessage;
3750

3851
private static final Jankson JANKSON = Jankson.builder().build();

fabric/build.gradle.kts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ dependencies {
4949
modImplementation("maven.modrinth:iris:${mod.prop("fabric.iris")}")
5050
// Exposure
5151
modCompileOnly("maven.modrinth:exposure:${mod.prop("fabric.exposure")}")
52+
// Aether Nitrogen
53+
modImplementation("com.aetherteam.nitrogen:nitrogen_internals:${mod.prop("fabric.nitrogen")}")
54+
// Ribbits
55+
modCompileOnly("maven.modrinth:ribbits:${mod.prop("fabric.ribbits")}")
5256

5357
shadowBundle("blue.endless:jankson:1.2.3")
5458

fabric/src/main/java/dev/aika/smsn/fabric/mixin/MixinInfo.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ public static Map<String, String> getMixinClassNames() {
1616

1717
put("dev.aika.smsn.fabric.mixin.exposure.GildedMixin", "exposure");
1818
put("dev.aika.smsn.fabric.mixin.exposure.PatreonMixin", "exposure");
19+
20+
put("dev.aika.smsn.fabric.mixin.ribbits.SupportersJSONMixin", "ribbits");
21+
22+
put("dev.aika.smsn.fabric.mixin.aetherteam.UserData$ServerMixin", "nitrogen");
1923
}};
2024
}
2125
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package dev.aika.smsn.fabric.mixin.aetherteam;
2+
3+
import dev.aika.smsn.SMSN;
4+
import net.minecraft.server.MinecraftServer;
5+
import net.minecraft.server.level.ServerPlayer;
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+
import java.util.UUID;
12+
13+
@Mixin(value = com.aetherteam.nitrogen.api.users.UserData.Server.class, remap = false)
14+
public abstract class UserData$ServerMixin {
15+
@Inject(method = "sendUserRequest", at = @At("HEAD"), cancellable = true)
16+
private static void sendUserRequest(MinecraftServer server, ServerPlayer serverPlayer, UUID uuid, CallbackInfo ci) {
17+
if (!SMSN.CONFIG.isAetherMoaSkinsFeature()) ci.cancel();
18+
}
19+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package dev.aika.smsn.fabric.mixin.ribbits;
2+
3+
import com.yungnickyoung.minecraft.ribbits.client.supporters.SupportersJSON;
4+
import dev.aika.smsn.SMSN;
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(value = SupportersJSON.class, remap = false)
11+
public abstract class SupportersJSONMixin {
12+
@Inject(method = "populateSupportersList", at = @At("HEAD"), cancellable = true)
13+
private static void populateSupportersList(CallbackInfo ci) {
14+
if (!SMSN.CONFIG.isRibbitsSupporterHat()) ci.cancel();
15+
}
16+
}

fabric/src/main/resources/smsn.mixins.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@
88
"iris.UpdateCheckerMixin"
99
],
1010
"mixins": [
11+
"aetherteam.UserData$ServerMixin",
1112
"exposure.GildedMixin",
1213
"exposure.PatreonMixin",
1314
"ipn.IPNInfoManager$doCheckVersion$$inlined$timer$default$1Mixin",
1415
"ipn.IPNInfoManager$doSessionKeepAlive$$inlined$timer$default$1Mixin",
16+
"ribbits.SupportersJSONMixin",
1517
"supplementaries.CreditsMixin"
1618
],
1719
"injectors": {

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ org.gradle.configuration-cache=false
88
mod.id=smsn
99
mod.name=Save My Shaky Network
1010
mod.group=dev.aika.smsn
11-
mod.version=1.2.2
11+
mod.version=1.2.3
1212
mod.release_type=release
1313
mod.enabled_platforms=fabric,neoforge
1414
# Minecraft properties

neoforge/build.gradle.kts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,6 @@ repositories {
2727
name = "NeoForged"
2828
url = uri("https://maven.neoforged.net/releases")
2929
}
30-
maven {
31-
name = "Aether Team"
32-
url = uri("https://packages.aether-mod.net/Nitrogen")
33-
}
3430
maven {
3531
name = "Blueprint"
3632
url = uri("https://maven.teamabnormals.com")
@@ -99,6 +95,8 @@ dependencies {
9995
modCompileOnly("maven.modrinth:exposure:${mod.prop("neoforge.exposure")}")
10096
// Titanium
10197
modCompileOnly("maven.modrinth:titanium:${mod.prop("neoforge.titanium")}")
98+
// Ribbits
99+
modCompileOnly("maven.modrinth:ribbits:${mod.prop("neoforge.ribbits")}")
102100

103101
shadowBundle("blue.endless:jankson:1.2.3")
104102
forgeRuntimeLibrary("blue.endless:jankson:1.2.3")

neoforge/src/main/java/dev/aika/smsn/neoforge/mixin/MixinInfo.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ public static Map<String, String> getMixinClassNames() {
3434
put("dev.aika.smsn.neoforge.mixin.exposure.PatreonMixin", "exposure");
3535

3636
put("dev.aika.smsn.neoforge.mixin.titanium.RewardMixin", "titanium");
37+
38+
put("dev.aika.smsn.neoforge.mixin.ribbits.SupportersJSONMixin", "ribbits");
3739
}};
3840
}
3941
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package dev.aika.smsn.neoforge.mixin.ribbits;
2+
3+
import com.yungnickyoung.minecraft.ribbits.client.supporters.SupportersJSON;
4+
import dev.aika.smsn.SMSN;
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(value = SupportersJSON.class, remap = false)
11+
public abstract class SupportersJSONMixin {
12+
@Inject(method = "populateSupportersList", at = @At("HEAD"), cancellable = true)
13+
private static void populateSupportersList(CallbackInfo ci) {
14+
if (!SMSN.CONFIG.isRibbitsSupporterHat()) ci.cancel();
15+
}
16+
}

0 commit comments

Comments
 (0)