From 8fa3439fb85286309f3f59fb685a148e89f3d00f Mon Sep 17 00:00:00 2001 From: Lukiiy <102190774+Lukiiy@users.noreply.github.com> Date: Sun, 2 Feb 2025 18:48:21 -0300 Subject: [PATCH] 1.0.1 - Using F3+U allows the player to cycle through volumes. --- build.gradle | 12 +------ gradle.properties | 2 +- .../java/me/lukiiy/lowrain/LowVolumeRain.java | 5 +-- .../me/lukiiy/lowrain/mixin/ClientMixin.java | 32 +++++++++++++++++++ .../lowrain/mixin/DecreaseVolumeMixin.java | 3 +- src/main/resources/lowrain.mixins.json | 3 +- 6 files changed, 41 insertions(+), 16 deletions(-) create mode 100644 src/main/java/me/lukiiy/lowrain/mixin/ClientMixin.java diff --git a/build.gradle b/build.gradle index ad3eeab..3919f9e 100644 --- a/build.gradle +++ b/build.gradle @@ -40,9 +40,6 @@ processResources { } java { - // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task - // if it is present. - // If you remove this line, sources will not be generated. withSourcesJar() } @@ -52,7 +49,6 @@ jar { } } -// configure the maven publication publishing { publications { mavenJava(MavenPublication) { @@ -60,11 +56,5 @@ publishing { } } - // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. - repositories { - // Add repositories to publish to here. - // Notice: This block does NOT have the same function as the block in the top level. - // The repositories here will be used for publishing your artifact, not for - // retrieving dependencies. - } + repositories {} } diff --git a/gradle.properties b/gradle.properties index 902ee31..2d202c9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,6 +7,6 @@ org.gradle.parallel=true loader_version=0.15.6-babric.2 # Mod Properties - mod_version = 1.0.0 + mod_version = 1.0.1 maven_group = me.lukiiy archives_base_name = lowrain diff --git a/src/main/java/me/lukiiy/lowrain/LowVolumeRain.java b/src/main/java/me/lukiiy/lowrain/LowVolumeRain.java index de4e259..22ebe90 100644 --- a/src/main/java/me/lukiiy/lowrain/LowVolumeRain.java +++ b/src/main/java/me/lukiiy/lowrain/LowVolumeRain.java @@ -8,6 +8,7 @@ public class LowVolumeRain implements ModInitializer { public static final String ID = "lowrain"; public static final Logger LOGGER = LoggerFactory.getLogger(ID); - @Override - public void onInitialize() {} + public static float Volume = 0.025f; + + @Override public void onInitialize() {} } diff --git a/src/main/java/me/lukiiy/lowrain/mixin/ClientMixin.java b/src/main/java/me/lukiiy/lowrain/mixin/ClientMixin.java new file mode 100644 index 0000000..b3232f2 --- /dev/null +++ b/src/main/java/me/lukiiy/lowrain/mixin/ClientMixin.java @@ -0,0 +1,32 @@ +package me.lukiiy.lowrain.mixin; + +import me.lukiiy.lowrain.LowVolumeRain; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.ClientPlayerEntity; +import org.lwjgl.input.Keyboard; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.util.Arrays; +import java.util.List; + +@Mixin(Minecraft.class) +public class ClientMixin { + @Shadow public ClientPlayerEntity player; + @Unique private static final List volCycle = Arrays.asList(0.12f, 0.075f, 0.05f, 0.025f, 0.012f); + @Unique private static int volIdx = 2; + + @Inject(method = "tick", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;isWorldRemote()Z", ordinal = 0)) + private void lowrain_key(CallbackInfo info) { + if (Keyboard.getEventKeyState() && Keyboard.getEventKey() == Keyboard.KEY_U && Keyboard.isKeyDown(Keyboard.KEY_F3)) { + volIdx = (volIdx + 1) % volCycle.size(); + LowVolumeRain.Volume = volCycle.get(volIdx); + + this.player.method_490("§e[LowVolumeRain] §fSet the volume to " + LowVolumeRain.Volume + "!"); + } + } +} diff --git a/src/main/java/me/lukiiy/lowrain/mixin/DecreaseVolumeMixin.java b/src/main/java/me/lukiiy/lowrain/mixin/DecreaseVolumeMixin.java index 1cb509f..143cdcf 100644 --- a/src/main/java/me/lukiiy/lowrain/mixin/DecreaseVolumeMixin.java +++ b/src/main/java/me/lukiiy/lowrain/mixin/DecreaseVolumeMixin.java @@ -1,5 +1,6 @@ package me.lukiiy.lowrain.mixin; +import me.lukiiy.lowrain.LowVolumeRain; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.class_555; @@ -13,6 +14,6 @@ public class DecreaseVolumeMixin { @Redirect(method = "method_1846", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/World;method_150(DDDLjava/lang/String;FF)V")) private void lowrain_change(World instance, double e, double f, double string, String g, float h, float v) { - instance.method_150(e, f, string, g, 0.025f, v); + instance.method_150(e, f, string, g, LowVolumeRain.Volume, v); } } diff --git a/src/main/resources/lowrain.mixins.json b/src/main/resources/lowrain.mixins.json index b877025..31fb5af 100644 --- a/src/main/resources/lowrain.mixins.json +++ b/src/main/resources/lowrain.mixins.json @@ -6,7 +6,8 @@ "mixins": [ ], "client": [ - "DecreaseVolumeMixin" + "DecreaseVolumeMixin", + "ClientMixin" ], "injectors": { "defaultRequire": 1