aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-04-14 18:10:37 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-04-14 18:10:37 +0800
commit256300ec1a83b237c1c3d1655afc93ab9f37cb76 (patch)
treec85da8e99e67b9892ab085a8d260bfb93d20d79d
parentb5fb8f4a0ce9595b8eedc236584db54e1db72fbd (diff)
downloadRoughlyEnoughItems-256300ec1a83b237c1c3d1655afc93ab9f37cb76.tar.gz
RoughlyEnoughItems-256300ec1a83b237c1c3d1655afc93ab9f37cb76.tar.bz2
RoughlyEnoughItems-256300ec1a83b237c1c3d1655afc93ab9f37cb76.zip
v2.7.5
-rw-r--r--CHANGELOG.md4
-rw-r--r--README.md1
-rw-r--r--gradle.properties2
-rw-r--r--src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java10
-rw-r--r--src/main/java/me/shedaniel/rei/listeners/RecipeBookGuiHooks.java (renamed from src/main/java/me/shedaniel/rei/listeners/GhostSlotsHooks.java)5
-rw-r--r--src/main/java/me/shedaniel/rei/mixin/MixinRecipeBookGui.java13
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java12
-rwxr-xr-xsrc/main/resources/assets/roughlyenoughitems/lang/en_us.json2
8 files changed, 36 insertions, 13 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b2db9ea65..41b239413 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,7 +1,9 @@
View full changelog [here](https://github.com/shedaniel/RoughlyEnoughItems/blob/1.14/CHANGELOG.md).
+## v2.7.5.89
+- Fixed: Keybinds (e.g. O, R, U) working even if recipe book search field is focused
## v2.7.4.88
- Fixed: Item List Overlay buttons still enabled when there is only 1 page
-- Fixed [#58](https://github.com/shedaniel/RoughlyEnoughItems/issues/58): Keybinds (e.g. O, R, U) working even creative search field is focused
+- Fixed [#58](https://github.com/shedaniel/RoughlyEnoughItems/issues/58): Keybinds (e.g. O, R, U) working even if creative search field is focused
- Fixed [#59](https://github.com/shedaniel/RoughlyEnoughItems/issues/59): Wrong page calculation (Thanks geniiii)
## v2.7.3.87
- Fixed: Credits button not working
diff --git a/README.md b/README.md
index 18aec417e..4aa90a2ff 100644
--- a/README.md
+++ b/README.md
@@ -28,6 +28,7 @@ One feature will be limited:
- LOLCATS
- Upside Down English
- Brazilian Portuguese
+- Bulgarian
### License
Roughly Enough Items was a fork of Almost Enough Items by ZenDarva until v2.0 rewrite. This fork is permitted under the MIT license.
diff --git a/gradle.properties b/gradle.properties
index d603d93f3..aac3e02bf 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,4 +1,4 @@
-mod_version=2.7.4+build.88
+mod_version=2.7.5+build.89
minecraft_version=1.14 Pre-Release 2
yarn_version=1.14 Pre-Release 2+build.1
fabric_version=0.2.7+build.122
diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
index 46d14625a..551c4739a 100644
--- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
+++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
@@ -11,6 +11,7 @@ import me.shedaniel.rei.client.ConfigManager;
import me.shedaniel.rei.client.*;
import me.shedaniel.rei.gui.ContainerScreenOverlay;
import me.shedaniel.rei.listeners.CreativePlayerInventoryScreenHooks;
+import me.shedaniel.rei.listeners.RecipeBookGuiHooks;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.loader.api.FabricLoader;
import net.fabricmc.loader.api.ModContainer;
@@ -20,6 +21,7 @@ import net.minecraft.client.gui.ContainerScreen;
import net.minecraft.client.gui.Element;
import net.minecraft.client.gui.ingame.CreativePlayerInventoryScreen;
import net.minecraft.client.gui.ingame.PlayerInventoryScreen;
+import net.minecraft.client.gui.recipebook.RecipeBookGui;
import net.minecraft.client.gui.widget.RecipeBookButtonWidget;
import net.minecraft.client.gui.widget.TextFieldWidget;
import net.minecraft.item.ItemGroup;
@@ -213,8 +215,14 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
});
ClothClientHooks.SCREEN_KEY_PRESSED.register((minecraftClient, screen, i, i1, i2) -> {
if (screen instanceof CreativePlayerInventoryScreen && ((CreativePlayerInventoryScreenHooks) screen).rei_getSelectedTab() == ItemGroup.SEARCH.getIndex())
- if (screen.getFocused() != null && screen.getFocused() instanceof TextFieldWidget && ((TextFieldWidget) screen.getFocused()).isFocused())
+ if (screen.getFocused() != null && screen.getFocused() instanceof TextFieldWidget)
return ActionResult.PASS;
+ if (screen instanceof ContainerScreen && !(screen instanceof CreativePlayerInventoryScreen))
+ if (screen.getFocused() != null && screen.getFocused() instanceof RecipeBookGui) {
+ RecipeBookGuiHooks gui = (RecipeBookGuiHooks) screen.getFocused();
+ if (gui.rei_getSearchField() != null && gui.rei_getSearchField().isFocused())
+ return ActionResult.PASS;
+ }
if (screen instanceof ContainerScreen)
if (ScreenHelper.getLastOverlay().keyPressed(i, i1, i2))
return ActionResult.SUCCESS;
diff --git a/src/main/java/me/shedaniel/rei/listeners/GhostSlotsHooks.java b/src/main/java/me/shedaniel/rei/listeners/RecipeBookGuiHooks.java
index b13ab8428..4737b2c9d 100644
--- a/src/main/java/me/shedaniel/rei/listeners/GhostSlotsHooks.java
+++ b/src/main/java/me/shedaniel/rei/listeners/RecipeBookGuiHooks.java
@@ -1,9 +1,12 @@
package me.shedaniel.rei.listeners;
import net.minecraft.client.gui.widget.RecipeBookGhostSlots;
+import net.minecraft.client.gui.widget.TextFieldWidget;
-public interface GhostSlotsHooks {
+public interface RecipeBookGuiHooks {
RecipeBookGhostSlots rei_getGhostSlots();
+ TextFieldWidget rei_getSearchField();
+
}
diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinRecipeBookGui.java b/src/main/java/me/shedaniel/rei/mixin/MixinRecipeBookGui.java
index 4c280fbff..1cc1baf8a 100644
--- a/src/main/java/me/shedaniel/rei/mixin/MixinRecipeBookGui.java
+++ b/src/main/java/me/shedaniel/rei/mixin/MixinRecipeBookGui.java
@@ -1,21 +1,30 @@
package me.shedaniel.rei.mixin;
-import me.shedaniel.rei.listeners.GhostSlotsHooks;
+import me.shedaniel.rei.listeners.RecipeBookGuiHooks;
import net.minecraft.client.gui.recipebook.RecipeBookGui;
import net.minecraft.client.gui.widget.RecipeBookGhostSlots;
+import net.minecraft.client.gui.widget.TextFieldWidget;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
@Mixin(RecipeBookGui.class)
-public class MixinRecipeBookGui implements GhostSlotsHooks {
+public class MixinRecipeBookGui implements RecipeBookGuiHooks {
@Shadow
@Final
protected RecipeBookGhostSlots ghostSlots;
+ @Shadow
+ private TextFieldWidget searchField;
+
public RecipeBookGhostSlots rei_getGhostSlots() {
return ghostSlots;
}
+ @Override
+ public TextFieldWidget rei_getSearchField() {
+ return searchField;
+ }
+
}
diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java
index 801fccc52..7765a1d3f 100644
--- a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java
+++ b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java
@@ -5,7 +5,7 @@ import me.shedaniel.rei.RoughlyEnoughItemsCore;
import me.shedaniel.rei.api.*;
import me.shedaniel.rei.client.ScreenHelper;
import me.shedaniel.rei.gui.RecipeViewingScreen;
-import me.shedaniel.rei.listeners.GhostSlotsHooks;
+import me.shedaniel.rei.listeners.RecipeBookGuiHooks;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.ContainerScreen;
import net.minecraft.client.gui.Screen;
@@ -239,9 +239,9 @@ public class DefaultPlugin implements REIPlugin {
if (!recipe.getRecipe().isPresent())
return false;
if (screen.getClass().isAssignableFrom(CraftingTableScreen.class))
- ((GhostSlotsHooks) (((CraftingTableScreen) screen).getRecipeBookGui())).rei_getGhostSlots().reset();
+ ((RecipeBookGuiHooks) (((CraftingTableScreen) screen).getRecipeBookGui())).rei_getGhostSlots().reset();
else if (screen.getClass().isAssignableFrom(PlayerInventoryScreen.class))
- ((GhostSlotsHooks) (((PlayerInventoryScreen) screen).getRecipeBookGui())).rei_getGhostSlots().reset();
+ ((RecipeBookGuiHooks) (((PlayerInventoryScreen) screen).getRecipeBookGui())).rei_getGhostSlots().reset();
else
return false;
MinecraftClient.getInstance().interactionManager.clickRecipe(MinecraftClient.getInstance().player.container.syncId, (Recipe) recipe.getRecipe().get(), Screen.hasShiftDown());
@@ -264,7 +264,7 @@ public class DefaultPlugin implements REIPlugin {
if (!recipe.getRecipe().isPresent())
return false;
if (screen instanceof FurnaceScreen)
- ((GhostSlotsHooks) (((FurnaceScreen) screen).getRecipeBookGui())).rei_getGhostSlots().reset();
+ ((RecipeBookGuiHooks) (((FurnaceScreen) screen).getRecipeBookGui())).rei_getGhostSlots().reset();
else
return false;
MinecraftClient.getInstance().interactionManager.clickRecipe(MinecraftClient.getInstance().player.container.syncId, (Recipe) recipe.getRecipe().get(), Screen.hasShiftDown());
@@ -287,7 +287,7 @@ public class DefaultPlugin implements REIPlugin {
if (!recipe.getRecipe().isPresent())
return false;
if (screen instanceof SmokerScreen)
- ((GhostSlotsHooks) (((SmokerScreen) screen).getRecipeBookGui())).rei_getGhostSlots().reset();
+ ((RecipeBookGuiHooks) (((SmokerScreen) screen).getRecipeBookGui())).rei_getGhostSlots().reset();
else
return false;
MinecraftClient.getInstance().interactionManager.clickRecipe(MinecraftClient.getInstance().player.container.syncId, (Recipe) recipe.getRecipe().get(), Screen.hasShiftDown());
@@ -315,7 +315,7 @@ public class DefaultPlugin implements REIPlugin {
if (!recipe.getRecipe().isPresent())
return false;
if (screen instanceof BlastFurnaceScreen)
- ((GhostSlotsHooks) (((BlastFurnaceScreen) screen).getRecipeBookGui())).rei_getGhostSlots().reset();
+ ((RecipeBookGuiHooks) (((BlastFurnaceScreen) screen).getRecipeBookGui())).rei_getGhostSlots().reset();
else
return false;
MinecraftClient.getInstance().interactionManager.clickRecipe(MinecraftClient.getInstance().player.container.syncId, (Recipe) recipe.getRecipe().get(), Screen.hasShiftDown());
diff --git a/src/main/resources/assets/roughlyenoughitems/lang/en_us.json b/src/main/resources/assets/roughlyenoughitems/lang/en_us.json
index b9b22135b..a06397203 100755
--- a/src/main/resources/assets/roughlyenoughitems/lang/en_us.json
+++ b/src/main/resources/assets/roughlyenoughitems/lang/en_us.json
@@ -81,5 +81,5 @@
"text.rei.config.april_fools.2019": "Force 2019 REI April Fools' joke: ",
"text.rei.no_config_api": "Cloth Config API does not exist!\nPlease install it in order to show an in-game config screen!",
"_comment": "Don't change / translate the credit down below if you are doing it :)",
- "text.rei.credit.text": "§lRoughly Enough Items\n§7Originally a fork for Almost Enough Items.\n\n§lDevelopers\n - Originally by ZenDarva\n - Created by Danielshe\n - Plugin Support by TehNut\n\n§lLanguage Translation\n English - Danielshe\n Simplified Chinese - Danielshe\n Traditional Chinese - hugoalh & Danielshe\n French - Yanis48\n German - MelanX\n Estonian - Madis0\n Portuguese - thiagokenis\n LOLCAT - Danielshe\n Upside Down - Danielshe\n\n§lLicense\n§7Roughly Enough Items is using MIT."
+ "text.rei.credit.text": "§lRoughly Enough Items\n§7Originally a fork for Almost Enough Items.\n\n§lDevelopers\n - Originally by ZenDarva\n - Created by Danielshe\n - Plugin Support by TehNut\n\n§lLanguage Translation\n English - Danielshe\n Simplified Chinese - Danielshe\n Traditional Chinese - hugoalh & Danielshe\n French - Yanis48\n German - MelanX\n Estonian - Madis0\n Portuguese - thiagokenis\n LOLCAT - Danielshe\n Upside Down - Danielshe\n Brazilian Portuguese\n Bulgarian - geniiii\n\n§lLicense\n§7Roughly Enough Items is using MIT."
} \ No newline at end of file