From e950575d4e11d27acbb6682b248de8f477a9ba50 Mon Sep 17 00:00:00 2001 From: olim Date: Tue, 23 Apr 2024 17:09:31 +0100 Subject: create mixin to render to the sign input screen and basic converter for k,m,b --- .../skyblocker/mixins/SignEditScreenMixin.java | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java (limited to 'src/main/java/de/hysky/skyblocker/mixins') diff --git a/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java new file mode 100644 index 00000000..a88f97ef --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java @@ -0,0 +1,32 @@ +package de.hysky.skyblocker.mixin; + + +import de.hysky.skyblocker.skyblock.SignCalculator; +import net.minecraft.block.entity.SignBlockEntity; +import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.gui.screen.ingame.AbstractSignEditScreen; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +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.Objects; + +@Mixin(AbstractSignEditScreen.class) +public abstract class SignEditScreenMixin{ + @Shadow + @Final + private String[] messages; + + @Inject(method = "render", at = @At("HEAD")) + private void skyblocker$render(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) { + //if the sign is being used to enter number send it to the sign calculator + if (Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { + SignCalculator.renderSign(context, messages); + } + + } + +} -- cgit From e618d9e1e57b17c55b7b589e8a7e3f2ca2e95428 Mon Sep 17 00:00:00 2001 From: olim Date: Wed, 24 Apr 2024 13:12:46 +0100 Subject: calculations work should probaly move to utils function and need to add config and proper text --- src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/main/java/de/hysky/skyblocker/mixins') diff --git a/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java index a88f97ef..b160b3ac 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java @@ -26,6 +26,14 @@ public abstract class SignEditScreenMixin{ if (Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { SignCalculator.renderSign(context, messages); } + } + + @Inject(method = "finishEditing", at = @At("HEAD")) + private void skyblocker$finishEditing(CallbackInfo ci) { + //if the sign is being used to enter number get number from calculator for if maths has been done + if (Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { + messages[0] = SignCalculator.getNewValue(); + } } -- cgit From aa97d9a5bb3e9274ac04b47c5d711c20e7b30087 Mon Sep 17 00:00:00 2001 From: olim Date: Wed, 24 Apr 2024 16:26:50 +0100 Subject: fix amount outputs to be full numbers --- src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/main/java/de/hysky/skyblocker/mixins') diff --git a/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java index b160b3ac..3c1667f0 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java @@ -32,7 +32,12 @@ public abstract class SignEditScreenMixin{ private void skyblocker$finishEditing(CallbackInfo ci) { //if the sign is being used to enter number get number from calculator for if maths has been done if (Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { - messages[0] = SignCalculator.getNewValue(); + boolean isPrice = messages[2].contains("price"); + String value = SignCalculator.getNewValue(isPrice); + if (value.length() >= 15) { + value = value.substring(0,15); + } + messages[0] = value; } } -- cgit From 0619e195661f4ed285786ea679a27e1f28f9dd6e Mon Sep 17 00:00:00 2001 From: olim Date: Wed, 24 Apr 2024 17:41:35 +0100 Subject: add config option --- src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/main/java/de/hysky/skyblocker/mixins') diff --git a/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java index 3c1667f0..867edb7d 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java @@ -1,8 +1,11 @@ package de.hysky.skyblocker.mixin; +import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.skyblock.SignCalculator; +import de.hysky.skyblocker.utils.Utils; import net.minecraft.block.entity.SignBlockEntity; +import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.ingame.AbstractSignEditScreen; import org.spongepowered.asm.mixin.Final; @@ -23,7 +26,7 @@ public abstract class SignEditScreenMixin{ @Inject(method = "render", at = @At("HEAD")) private void skyblocker$render(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) { //if the sign is being used to enter number send it to the sign calculator - if (Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { + if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().general.enableSignCalculator && Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { SignCalculator.renderSign(context, messages); } } @@ -31,7 +34,7 @@ public abstract class SignEditScreenMixin{ @Inject(method = "finishEditing", at = @At("HEAD")) private void skyblocker$finishEditing(CallbackInfo ci) { //if the sign is being used to enter number get number from calculator for if maths has been done - if (Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { + if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().general.enableSignCalculator && Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { boolean isPrice = messages[2].contains("price"); String value = SignCalculator.getNewValue(isPrice); if (value.length() >= 15) { -- cgit From feee94e2c2ce01262f3eb47d7b356ca9821bdb79 Mon Sep 17 00:00:00 2001 From: olim Date: Fri, 26 Apr 2024 18:01:09 +0100 Subject: add command add command to be able to use the calculator and fix crash with emty equations --- src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'src/main/java/de/hysky/skyblocker/mixins') diff --git a/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java index 867edb7d..88c54878 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java @@ -2,10 +2,8 @@ package de.hysky.skyblocker.mixin; import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.skyblock.SignCalculator; +import de.hysky.skyblocker.skyblock.calculators.SignCalculator; import de.hysky.skyblocker.utils.Utils; -import net.minecraft.block.entity.SignBlockEntity; -import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.ingame.AbstractSignEditScreen; import org.spongepowered.asm.mixin.Final; -- cgit From 08140d6b262a9b694cbc9d14189249d10c10eef6 Mon Sep 17 00:00:00 2001 From: olim Date: Thu, 2 May 2024 19:38:55 +0100 Subject: clean code and fix to 1.20.6 --- .../java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'src/main/java/de/hysky/skyblocker/mixins') diff --git a/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java index 88c54878..d1800e9b 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java @@ -1,4 +1,4 @@ -package de.hysky.skyblocker.mixin; +package de.hysky.skyblocker.mixins; import de.hysky.skyblocker.config.SkyblockerConfigManager; @@ -16,7 +16,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import java.util.Objects; @Mixin(AbstractSignEditScreen.class) -public abstract class SignEditScreenMixin{ +public abstract class SignEditScreenMixin { @Shadow @Final private String[] messages; @@ -32,15 +32,13 @@ public abstract class SignEditScreenMixin{ @Inject(method = "finishEditing", at = @At("HEAD")) private void skyblocker$finishEditing(CallbackInfo ci) { //if the sign is being used to enter number get number from calculator for if maths has been done - if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().general.enableSignCalculator && Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { + if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().general.enableSignCalculator && Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { boolean isPrice = messages[2].contains("price"); String value = SignCalculator.getNewValue(isPrice); if (value.length() >= 15) { - value = value.substring(0,15); + value = value.substring(0, 15); } messages[0] = value; } - } - } -- cgit From 52054467eac250be104d53f2aa6264eced690d44 Mon Sep 17 00:00:00 2001 From: olim Date: Sun, 5 May 2024 19:28:40 +0100 Subject: add e (160) and addapt for other ui added magnitude e as valid. and added to EditBidPopup. --- src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java/de/hysky/skyblocker/mixins') diff --git a/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java index d1800e9b..cdffc362 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java @@ -25,7 +25,7 @@ public abstract class SignEditScreenMixin { private void skyblocker$render(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) { //if the sign is being used to enter number send it to the sign calculator if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().general.enableSignCalculator && Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { - SignCalculator.renderSign(context, messages); + SignCalculator.renderCalculator(context, messages[0], context.getScaledWindowWidth() / 2, 55); } } -- cgit From da1baa8c0a22d4337f269e2eea9e33932c81ef70 Mon Sep 17 00:00:00 2001 From: olim Date: Sun, 5 May 2024 21:46:42 +0100 Subject: add option to need to start with ("=") also add key for magnitudes into option tooltip --- src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/main/java/de/hysky/skyblocker/mixins') diff --git a/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java index cdffc362..c7053a39 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java @@ -24,7 +24,7 @@ public abstract class SignEditScreenMixin { @Inject(method = "render", at = @At("HEAD")) private void skyblocker$render(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) { //if the sign is being used to enter number send it to the sign calculator - if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().general.enableSignCalculator && Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { + if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().general.inputCalculator.enabled && Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { SignCalculator.renderCalculator(context, messages[0], context.getScaledWindowWidth() / 2, 55); } } @@ -32,7 +32,7 @@ public abstract class SignEditScreenMixin { @Inject(method = "finishEditing", at = @At("HEAD")) private void skyblocker$finishEditing(CallbackInfo ci) { //if the sign is being used to enter number get number from calculator for if maths has been done - if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().general.enableSignCalculator && Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { + if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().general.inputCalculator.enabled && Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { boolean isPrice = messages[2].contains("price"); String value = SignCalculator.getNewValue(isPrice); if (value.length() >= 15) { -- cgit From 62f0a4f39e410928d3aeaea847922f44335faeef Mon Sep 17 00:00:00 2001 From: olim Date: Thu, 9 May 2024 22:07:05 +0100 Subject: fix conflicts with new config --- src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/main/java/de/hysky/skyblocker/mixins') diff --git a/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java index c7053a39..6706db58 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java @@ -24,7 +24,7 @@ public abstract class SignEditScreenMixin { @Inject(method = "render", at = @At("HEAD")) private void skyblocker$render(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) { //if the sign is being used to enter number send it to the sign calculator - if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().general.inputCalculator.enabled && Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { + if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().uiAndVisuals.inputCalculator.enabled && Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { SignCalculator.renderCalculator(context, messages[0], context.getScaledWindowWidth() / 2, 55); } } @@ -32,7 +32,7 @@ public abstract class SignEditScreenMixin { @Inject(method = "finishEditing", at = @At("HEAD")) private void skyblocker$finishEditing(CallbackInfo ci) { //if the sign is being used to enter number get number from calculator for if maths has been done - if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().general.inputCalculator.enabled && Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { + if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().uiAndVisuals.inputCalculator.enabled && Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { boolean isPrice = messages[2].contains("price"); String value = SignCalculator.getNewValue(isPrice); if (value.length() >= 15) { -- cgit