Skip to content

Commit a5e6b2a

Browse files
committed
🍱 finish most config stuff + looks a bit better
1 parent cc05eb5 commit a5e6b2a

File tree

7 files changed

+59
-18
lines changed

7 files changed

+59
-18
lines changed

‎src/main/java/one/devos/nautical/winterssummerfixes/config/Config.java‎

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,31 @@
33
import eu.midnightdust.lib.config.MidnightConfig;
44

55
public class Config extends MidnightConfig {
6-
@Comment(category = "client", centered = true)
7-
public static String limitsGrapple;
6+
public static String painAndSufferingAndSufferingAndPain = "I understand what I am doing will cause potential instabilities with Flashback. I will not report this to Flashback support. Praise Winter. Praise Moulberry. Praise Ishland.";
87

9-
@Entry(category = "client", isColor = true)
8+
@Entry(category = "limitsGrapple", isColor = true)
109
public static String limitsGrappleHitColor = "#3333ff";
1110

12-
@Entry(category = "client", isColor = true)
11+
@Entry(category = "limitsGrapple", isColor = true)
1312
public static String limitsGrappleMissColor = "#99994c";
1413

15-
@Comment(category = "client", centered = true)
16-
public static String flashback;
14+
@Comment(category = "flashback")
15+
@Condition(requiredModId = "flashback")
16+
public static String flashbackReplayForceAllowIncompatibleModsExtremeWarning;
1717

18-
@Comment(category = "client", centered = true)
18+
@Comment(category = "flashback")
19+
@Condition(requiredModId = "flashback")
1920
public static String flashbackSpacer;
2021

21-
@Comment(category = "client")
22-
public static String flashbackReplayForceAllowIncompatibleModsExtremeWarning;
22+
@Comment(category = "flashback")
23+
@Condition(requiredModId = "flashback")
24+
public static String flashbackReplayForceAllowIncompatibleModsExtremeWarning2;
25+
26+
@Comment(category = "flashback")
27+
@Condition(requiredModId = "flashback")
28+
public static String flashbackSpacer2;
2329

24-
@Entry(category = "client")
25-
public static Boolean flashbackReplayForceAllowIncompatibleMods = false;
30+
@Entry(category = "flashback")
31+
@Condition(requiredModId = "flashback")
32+
public static String flashbackReplayForceAllowIncompatibleMods = "";
2633
}

‎src/main/java/one/devos/nautical/winterssummerfixes/mixin/compat/client/flashback/FlashbackReplayIncompatibleModsMixin.java‎

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,36 @@
33
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
44
import com.moulberry.flashback.Flashback;
55
import com.moulberry.mixinconstraints.annotations.IfModLoaded;
6+
import net.minecraft.client.Minecraft;
7+
import net.minecraft.client.resources.sounds.SimpleSoundInstance;
8+
import net.minecraft.client.sounds.SoundManager;
9+
import net.minecraft.sounds.SoundEvents;
10+
import one.devos.nautical.winterssummerfixes.WintersSummerFixes;
611
import one.devos.nautical.winterssummerfixes.config.Config;
712
import org.spongepowered.asm.mixin.Mixin;
13+
import org.spongepowered.asm.mixin.Unique;
814
import org.spongepowered.asm.mixin.injection.At;
915

1016
import java.util.List;
17+
import java.util.Objects;
1118

1219
@IfModLoaded("flashback")
1320
@Mixin(value = Flashback.class, priority = 1800, remap = false)
1421
public class FlashbackReplayIncompatibleModsMixin {
22+
@Unique
23+
private static void playRoombaSound(SoundManager handler) {
24+
handler.play(SimpleSoundInstance.forUI(WintersSummerFixes.INSTANCE.getROOMBA_SOUND_EVENT(), 1.0F));
25+
}
26+
1527
@ModifyReturnValue(
1628
method = "getReplayIncompatibleMods",
1729
at = @At(value = "RETURN",
1830
target = "Lcom/moulberry/flashback/Flashback;getReplayIncompatibleMods()Ljava/util/List;"
1931
)
2032
)
2133
private static List<String> getReplayIncompatibleMods(List<String> original) {
22-
if (Config.flashbackReplayForceAllowIncompatibleMods) {
34+
if (Objects.equals(Config.flashbackReplayForceAllowIncompatibleMods, Config.painAndSufferingAndSufferingAndPain)) {
35+
playRoombaSound(Minecraft.getInstance().getSoundManager());
2336
original.clear();
2437
}
2538

‎src/main/java/one/devos/nautical/winterssummerfixes/mixin/compat/client/flashback/FlashbackReplayIncompatibleModsTitleScreenMixin.java‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
@Mixin(value = TitleScreen.class, priority = 1800, remap = false)
1111
@IfModLoaded("flashback")
1212
public class FlashbackReplayIncompatibleModsTitleScreenMixin {
13-
@TargetHandler(mixin = "com.moulberry.flashback.mixin.ui.MixinTitleScreen", name = "createOrPositionOpenSelectReplayScreenButton")
14-
@ModifyArg(method = "@MixinSquared:Handler", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/chat/Component;translatable(Ljava/lang/String;)Lnet/minecraft/network/chat/MutableComponent;"))
13+
@TargetHandler(mixin = "com.moulberry.flashback.mixin.ui.MixinTitleScreen", name = "lambda$createOrPositionOpenSelectReplayScreenButton$1")
14+
@ModifyArg(method = "@MixinSquared:Handler", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/chat/Component;translatable(Ljava/lang/String;)Lnet/minecraft/network/chat/MutableComponent;", ordinal = 0))
1515
private static String modifyWarning(String key) {
1616
return "winterssummerfixes.flashback.incompatible_with_recording_description";
1717
}

‎src/main/kotlin/one/devos/nautical/winterssummerfixes/WintersSummerFixes.kt‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,12 @@ import net.fabricmc.api.ModInitializer
66
import net.fabricmc.fabric.api.resource.ResourceManagerHelper
77
import net.fabricmc.fabric.api.resource.ResourcePackActivationType
88
import net.fabricmc.loader.api.FabricLoader
9+
import net.minecraft.core.Registry
10+
import net.minecraft.core.registries.BuiltInRegistries
911
import net.minecraft.network.chat.Component
1012
import net.minecraft.resources.ResourceLocation
13+
import net.minecraft.sounds.SoundEvent
14+
import net.minecraft.sounds.SoundEvents
1115
import one.devos.nautical.winterssummerfixes.config.Config
1216
import org.slf4j.Logger
1317
import org.slf4j.LoggerFactory
@@ -17,7 +21,12 @@ object WintersSummerFixes : ModInitializer {
1721
val LOGGER: Logger = LoggerFactory.getLogger(MOD_ID)
1822
val MOD_NAME: String = FMW.getName(MOD_ID)
1923

24+
val ROOMBA_SOUND_EVENT: SoundEvent = Registry.register(BuiltInRegistries.SOUND_EVENT, ResourceLocation.fromNamespaceAndPath(MOD_ID, "roomba"),
25+
SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath(MOD_ID, "roomba")))
26+
2027
override fun onInitialize() {
28+
Registry.register(BuiltInRegistries.SOUND_EVENT, ResourceLocation.fromNamespaceAndPath(MOD_ID, "roomba"),
29+
SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath(MOD_ID, "roomba")))
2130
MidnightConfig.init(MOD_ID, Config::class.java)
2231
LOGGER.info("[${MOD_NAME}] Winter's Summer Fixes v${FMW.getVersion(MOD_ID)} loaded!")
2332
LOGGER.info("[${MOD_NAME}] Who let the gay cat furry into the server room? Get them out! Oh wait they have a wrench.")
Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
{
22
"winterssummerfixes.midnightconfig.title": "Winter's Summer Fixes",
3-
"winterssummerfixes.midnightconfig.limitsGrapple" : "Limits' Grapple",
3+
"winterssummerfixes.midnightconfig.category.limitsGrapple" : "Limits' Grapple",
44
"winterssummerfixes.midnightconfig.limitsGrappleHitColor": "Hit Color",
55
"winterssummerfixes.midnightconfig.limitsGrappleMissColor": "Miss Color",
66

7-
"winterssummerfixes.midnightconfig.flashback" : "Flashback",
8-
"winterssummerfixes.midnightconfig.flashbackReplayForceAllowIncompatibleModsExtremeWarning" : "§l§4WARNING: §rDO NOT TOUCH THIS SETTING UNLESS YOU KNOW EXACTLY WHAT YOU'RE GETTING YOURSELF INTO.\nFLASHBACK DISABLES THE USAGE OF VIEWING REPLAYS WITH C2ME FOR A VERY GOOD REASON.",
7+
"winterssummerfixes.midnightconfig.category.flashback": "Flashback",
8+
"winterssummerfixes.midnightconfig.flashbackSpacer": "",
9+
"winterssummerfixes.midnightconfig.flashbackSpacer2": "",
10+
"winterssummerfixes.midnightconfig.flashbackReplayForceAllowIncompatibleMods": "Force Allow Incompatible Mods",
11+
"winterssummerfixes.midnightconfig.flashbackReplayForceAllowIncompatibleModsExtremeWarning" : "§l§4WARNING: §r§cDO NOT TOUCH THIS SETTING UNLESS YOU KNOW EXACTLY WHAT YOU'RE GETTING YOURSELF INTO. FLASHBACK DISABLES THE USAGE OF VIEWING REPLAYS WITH C2ME FOR A VERY GOOD REASON. IF YOU KNOW WHAT YOU'RE DOING, THEN TYPE THE FOLLOWING INTO THE FIELD AND SAVE:",
12+
"winterssummerfixes.midnightconfig.flashbackReplayForceAllowIncompatibleModsExtremeWarning2" : "I understand what I am doing will cause potential instabilities with Flashback. I will not report this to Flashback support. Praise Winter. Praise Moulberry. Praise Ishland.",
913

10-
"winterssummerfixes.flashback.incompatible_with_recording_description": "You have mods which are known to cause issues when recording replays\nPlease go back to the Main Menu screen, Mods, open the Config for Winter's Summer Fixes,\nand enable the Flashback Allow Incompatible Mods in order to\nbe able to view replays.\n\n"
14+
"winterssummerfixes.flashback.incompatible_with_recording_description": "§cYou have mods which are known to cause issues when viewing replays!§r\nIf you know §lexactly§r what you're doing, then go back to the Main Menu screen, Mods, open the Config for Winter's Summer Fixes, and enable the Flashback Force Allow Incompatible Mods in order to be able to view replays.\n\nOtherwise, please close the game, go to Prism Launcher, click edit, mods, and then click the checkbox next to the following mods in order to disable the following mods. You'll be able to view replays after.\n\n"
1115
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"roomba": {
3+
"subtitle": "Roomba violently falling down stairs",
4+
"sounds": [
5+
"winterssummerfixes:roomba"
6+
]
7+
}
8+
}
Binary file not shown.

0 commit comments

Comments
 (0)