diff options
author | HacktheTime <l4bg0jb7@duck.com> | 2023-08-09 20:46:00 +0200 |
---|---|---|
committer | HacktheTime <l4bg0jb7@duck.com> | 2023-08-09 20:46:00 +0200 |
commit | 2cd5f8e6bd42a084022028adcc24ef566fddab95 (patch) | |
tree | e06a18df40629371c33b9efce971489812696ac0 /src/main/java/de/hype/bbsentials/mixins/SimpleOptionMixin.java | |
download | BBsentials-2cd5f8e6bd42a084022028adcc24ef566fddab95.tar.gz BBsentials-2cd5f8e6bd42a084022028adcc24ef566fddab95.tar.bz2 BBsentials-2cd5f8e6bd42a084022028adcc24ef566fddab95.zip |
Initial commit
Diffstat (limited to 'src/main/java/de/hype/bbsentials/mixins/SimpleOptionMixin.java')
-rw-r--r-- | src/main/java/de/hype/bbsentials/mixins/SimpleOptionMixin.java | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/main/java/de/hype/bbsentials/mixins/SimpleOptionMixin.java b/src/main/java/de/hype/bbsentials/mixins/SimpleOptionMixin.java new file mode 100644 index 0000000..7444788 --- /dev/null +++ b/src/main/java/de/hype/bbsentials/mixins/SimpleOptionMixin.java @@ -0,0 +1,33 @@ +package de.hype.bbsentials.mixins; + +import de.hype.bbsentials.api.ISimpleOption; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.option.SimpleOption; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; + +import java.util.Objects; +import java.util.function.Consumer; + +@Mixin(SimpleOption.class) +public class SimpleOptionMixin implements ISimpleOption { + @Shadow + Object value; + @Shadow + @Final + private Consumer<Object> changeCallback; + + @Override + public void set(Object value) { + if (!MinecraftClient.getInstance().isRunning()) { + this.value = value; + } + else { + if (!Objects.equals(this.value, value)) { + this.value = value; + this.changeCallback.accept(this.value); + } + } + } +} |