From 8ac0ee175fdb77daf7351b1eefdf0c2e3ce4c2db Mon Sep 17 00:00:00 2001 From: LambdAurora Date: Thu, 19 Dec 2019 20:25:51 +0100 Subject: [PATCH] :bookmark: LambdaControls v1.0.0 --- build.gradle | 7 ++++++- gradle.properties | 6 +++--- .../lambdacontrols/LambdaInput.java | 5 +++-- .../mixin/MinecraftClientMixin.java | 4 +++- .../mixin/SettingsScreenMixin.java | 3 --- .../resources/assets/lambdacontrols/icon.png | Bin 1618 -> 1082 bytes .../assets/lambdacontrols/icon_x400.png | Bin 0 -> 4917 bytes 7 files changed, 15 insertions(+), 10 deletions(-) create mode 100644 src/main/resources/assets/lambdacontrols/icon_x400.png diff --git a/build.gradle b/build.gradle index 661e18f..914bfb9 100644 --- a/build.gradle +++ b/build.gradle @@ -21,6 +21,9 @@ repositories { name = 'CottonMC' url = 'http://server.bbkr.space:8081/artifactory/libs-snapshot' } + repositories { + maven { url = "https://jitpack.io" } + } } dependencies { @@ -30,7 +33,9 @@ dependencies { modCompile "net.fabricmc:fabric-loader:${project.loader_version}" // Fabric API. This is technically optional, but you probably want it anyway. - modCompile "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" + modApi "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" + + modCompile "io.github.prospector:modmenu:1.8.0+build.16" //modCompile "io.github.cottonmc:cotton-client-commands:0.4.2+1.14.3-SNAPSHOT" implementation "org.jetbrains:annotations:17.0.0" diff --git a/gradle.properties b/gradle.properties index 2e21a5d..dc7831b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,15 +4,15 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://fabricmc.net/use minecraft_version=1.15 - yarn_mappings=1.15+build.1:v2 + yarn_mappings=1.15+build.2:v2 loader_version=0.7.2+build.174 # Mod Properties - mod_version = 1.0.0-SNAPSHOT2 + mod_version = 1.0.0 maven_group = me.lambdaurora archives_base_name = lambdacontrols # Dependencies # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api - fabric_version=0.4.23+build.276-1.15 + fabric_version=0.4.25+build.282-1.15 diff --git a/src/main/java/me/lambdaurora/lambdacontrols/LambdaInput.java b/src/main/java/me/lambdaurora/lambdacontrols/LambdaInput.java index a4f2a4e..173ce15 100644 --- a/src/main/java/me/lambdaurora/lambdacontrols/LambdaInput.java +++ b/src/main/java/me/lambdaurora/lambdacontrols/LambdaInput.java @@ -467,7 +467,7 @@ public class LambdaInput private void handle_rb_lb(@NotNull MinecraftClient client, boolean right) { // When ingame - if (client.currentScreen == null) { + if (client.currentScreen == null && client.player != null) { if (right) client.player.inventory.selectedSlot = client.player.inventory.selectedSlot == 8 ? 0 : client.player.inventory.selectedSlot + 1; else @@ -523,7 +523,8 @@ public class LambdaInput { Element focused = screen.getFocused(); if (focused != null) - return this.handle_right_left_element(focused, right); + if (this.handle_right_left_element(focused, right)) + return this.change_focus(screen, right); return true; } diff --git a/src/main/java/me/lambdaurora/lambdacontrols/mixin/MinecraftClientMixin.java b/src/main/java/me/lambdaurora/lambdacontrols/mixin/MinecraftClientMixin.java index 7d5f663..e5baca8 100644 --- a/src/main/java/me/lambdaurora/lambdacontrols/mixin/MinecraftClientMixin.java +++ b/src/main/java/me/lambdaurora/lambdacontrols/mixin/MinecraftClientMixin.java @@ -16,6 +16,7 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.util.Window; import org.jetbrains.annotations.Nullable; +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; @@ -25,8 +26,9 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(MinecraftClient.class) public abstract class MinecraftClientMixin { + @Final @Shadow - public Window window; + private Window window; @Shadow public boolean skipGameRender; diff --git a/src/main/java/me/lambdaurora/lambdacontrols/mixin/SettingsScreenMixin.java b/src/main/java/me/lambdaurora/lambdacontrols/mixin/SettingsScreenMixin.java index 1a7020e..f5ce2a7 100644 --- a/src/main/java/me/lambdaurora/lambdacontrols/mixin/SettingsScreenMixin.java +++ b/src/main/java/me/lambdaurora/lambdacontrols/mixin/SettingsScreenMixin.java @@ -15,15 +15,12 @@ import net.minecraft.client.gui.screen.SettingsScreen; import net.minecraft.client.gui.widget.AbstractButtonWidget; import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.options.GameOptions; -import net.minecraft.client.resource.language.I18n; import net.minecraft.text.Text; 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.Redirect; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; /** * Injects the new controls settings button. diff --git a/src/main/resources/assets/lambdacontrols/icon.png b/src/main/resources/assets/lambdacontrols/icon.png index c6168d513d4e302e4a4b8c323b54e51b006e30df..fea935d4fd37c732c6c989ec55833a4fa0e0bc9a 100644 GIT binary patch delta 1047 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 diff --git a/src/main/resources/assets/lambdacontrols/icon_x400.png b/src/main/resources/assets/lambdacontrols/icon_x400.png new file mode 100644 index 0000000000000000000000000000000000000000..33c5676ba33a780e0ac6d899f0e74d85a42051cc GIT binary patch literal 4917 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 literal 0 HcmV?d00001