diff options
| author | Unknown <shekwancheung0528@gmail.com> | 2019-03-07 23:13:49 +0800 |
|---|---|---|
| committer | Unknown <shekwancheung0528@gmail.com> | 2019-03-07 23:13:49 +0800 |
| commit | 20a0d31befa8120688b77faf189748ca4c0b9e07 (patch) | |
| tree | e7d3fd477e44daea5949fa2e7880ba39db2c78fb | |
| parent | 8cd1f1a9804f980c1666079c99bafb6330c77723 (diff) | |
| download | RoughlyEnoughItems-20a0d31befa8120688b77faf189748ca4c0b9e07.tar.gz RoughlyEnoughItems-20a0d31befa8120688b77faf189748ca4c0b9e07.tar.bz2 RoughlyEnoughItems-20a0d31befa8120688b77faf189748ca4c0b9e07.zip | |
option to disable recipe book
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | CHANGELOG.md | 7 | ||||
| -rwxr-xr-x | build.gradle | 31 | ||||
| -rw-r--r-- | src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java | 2 | ||||
| -rw-r--r-- | src/main/java/me/shedaniel/rei/client/ConfigObject.java | 3 | ||||
| -rw-r--r-- | src/main/java/me/shedaniel/rei/client/GuiHelper.java | 17 | ||||
| -rw-r--r-- | src/main/java/me/shedaniel/rei/gui/config/ConfigScreen.java | 19 | ||||
| -rw-r--r-- | src/main/java/me/shedaniel/rei/listeners/ContainerScreenHooks.java | 11 | ||||
| -rw-r--r-- | src/main/java/me/shedaniel/rei/mixin/MixinContainerScreen.java | 3 | ||||
| -rw-r--r-- | src/main/java/me/shedaniel/rei/mixin/MixinScreen.java | 22 | ||||
| -rwxr-xr-x | src/main/resources/assets/roughlyenoughitems/lang/en_us.json | 1 | ||||
| -rwxr-xr-x | src/main/resources/roughlyenoughitems.client.json | 1 |
12 files changed, 105 insertions, 14 deletions
diff --git a/.gitignore b/.gitignore index 270cfeb7a..907cdd67b 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,5 @@ private.properties # Files from bad operating systems :^) Thumbs.db .DS_Store + +secret\.properties diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..990c7a0fd --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,7 @@ +# v2.4.0 +- Config with comments +- Fix creative even more +- No longer uses Fabric internals +- Config to disable Recipe Book +# v2.3.2.56 +- Removed Plugin Update Checker diff --git a/build.gradle b/build.gradle index 4d74023ef..61ad5b8b8 100755 --- a/build.gradle +++ b/build.gradle @@ -3,6 +3,7 @@ import net.fabricmc.loom.task.RemapJar plugins { id 'fabric-loom' version '0.2.0-SNAPSHOT' id "com.github.johnrengelman.shadow" version "4.0.3" + id "com.matthewprenger.cursegradle" version "1.1.2" } sourceCompatibility = 1.8 @@ -54,3 +55,33 @@ dependencies { compile "blue.endless:jankson:${project.janksonVersion}" contained "blue.endless:jankson:${project.janksonVersion}" } + +curseforge { + if (project.hasProperty("curseForgeApiKey")) { + apiKey = project.properties.curseForgeApiKey + } + project { + id = "310111" + changelogType = "markdown" + changelog = file("CHANGELOG.md") + releaseType = "release" + addGameVersion "1.14-Snapshot" + mainArtifact(remapShadowJar.jar) { + displayName = "[Fabric $project.minecraftVersion] v$project.version" + relations { + requiredDependency "fabric" + optionalDependency "pluginloader" + tool "rei-addons" + } + } + } + options { + forgeGradleIntegration = false + } +} + +afterEvaluate { + // CurseGradle generates tasks in afterEvaluate for each project + // There isn't really any other way to make it depend on a task unless it is an AbstractArchiveTask + tasks.curseforge310111.dependsOn remapShadowJar +} diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java index dddb955e0..2cac1d50e 100644 --- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java +++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java @@ -81,8 +81,6 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer, ModInitiali RoughlyEnoughItemsCore.LOGGER.warn("REI: Plugin Loader is not loaded! Please consider installing https://minecraft.curseforge.com/projects/pluginloader for REI plugin compatibility!"); registerPlugin(new Identifier("roughlyenoughitems", "default_plugin"), new DefaultPlugin()); } - - ClientTickCallback.EVENT.register(GuiHelper::onTick); } @Override diff --git a/src/main/java/me/shedaniel/rei/client/ConfigObject.java b/src/main/java/me/shedaniel/rei/client/ConfigObject.java index ba697d99a..447fb8658 100644 --- a/src/main/java/me/shedaniel/rei/client/ConfigObject.java +++ b/src/main/java/me/shedaniel/rei/client/ConfigObject.java @@ -43,6 +43,9 @@ public class ConfigObject { @Comment("Toggle utils buttons") public boolean showUtilsButtons = false; + @Comment("Disable Recipe Book") + public boolean disableRecipeBook = false; + @Comment("The location of choose page dialog") public RelativePoint choosePageDialogPoint = new RelativePoint(.5, .5); diff --git a/src/main/java/me/shedaniel/rei/client/GuiHelper.java b/src/main/java/me/shedaniel/rei/client/GuiHelper.java index 9c41a5abf..329753add 100644 --- a/src/main/java/me/shedaniel/rei/client/GuiHelper.java +++ b/src/main/java/me/shedaniel/rei/client/GuiHelper.java @@ -1,11 +1,14 @@ package me.shedaniel.rei.client; import com.google.common.collect.Lists; +import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.gui.ContainerScreenOverlay; import me.shedaniel.rei.gui.widget.TextFieldWidget; import me.shedaniel.rei.listeners.ContainerScreenHooks; -import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.ContainerScreen; +import net.minecraft.client.gui.InputListener; +import net.minecraft.client.gui.widget.ButtonWidget; +import net.minecraft.client.gui.widget.RecipeBookButtonWidget; import net.minecraft.item.ItemStack; import java.util.List; @@ -38,10 +41,14 @@ public class GuiHelper { return getLastOverlay(false); } - public static void onTick(MinecraftClient client) { - if (client.currentScreen instanceof ContainerScreen && lastContainerScreen != client.currentScreen) { - GuiHelper.lastContainerScreen = (ContainerScreen) client.currentScreen; - } + public static void disableRecipeBook(ContainerScreen lastContainerScreen, List<InputListener> listeners, List<ButtonWidget> buttonWidgets) { + RoughlyEnoughItemsCore.LOGGER.info("%d %d", listeners.size(), buttonWidgets.size()); + for(InputListener listener : listeners) + if (listener instanceof RecipeBookButtonWidget) + listeners.remove(listener); + for(ButtonWidget buttonWidget : buttonWidgets) + if (buttonWidget instanceof RecipeBookButtonWidget) + buttonWidgets.remove(buttonWidget); } public static ContainerScreen getLastContainerScreen() { diff --git a/src/main/java/me/shedaniel/rei/gui/config/ConfigScreen.java b/src/main/java/me/shedaniel/rei/gui/config/ConfigScreen.java index 4af12577b..01f40f9aa 100644 --- a/src/main/java/me/shedaniel/rei/gui/config/ConfigScreen.java +++ b/src/main/java/me/shedaniel/rei/gui/config/ConfigScreen.java @@ -207,6 +207,25 @@ public class ConfigScreen extends Screen { return getTrueFalseText(RoughlyEnoughItemsCore.getConfigManager().getConfig().showUtilsButtons); } })); + entryListWidget.configAddEntry(new ConfigEntry.ButtonConfigEntry(new TranslatableTextComponent("text.rei.config.disable_recipe_book"), new ConfigEntry.ButtonConfigEntry.ConfigEntryButtonProvider() { + @Override + public boolean onPressed(int button, double mouseX, double mouseY) { + if (button == 0) + RoughlyEnoughItemsCore.getConfigManager().getConfig().disableRecipeBook = !RoughlyEnoughItemsCore.getConfigManager().getConfig().disableRecipeBook; + try { + RoughlyEnoughItemsCore.getConfigManager().saveConfig(); + } catch (IOException e) { + e.printStackTrace(); + return false; + } + return true; + } + + @Override + public String getText() { + return getTrueFalseText(RoughlyEnoughItemsCore.getConfigManager().getConfig().disableRecipeBook); + } + })); entryListWidget.configAddEntry(new ConfigEntry.CategoryTitleConfigEntry(new TranslatableTextComponent("text.rei.config.advanced"))); entryListWidget.configAddEntry(new ConfigEntry.TextFieldConfigEntry(new TranslatableTextComponent("text.rei.give_command"), new ConfigEntry.TextFieldConfigEntry.ConfigEntryTextFieldProvider() { @Override diff --git a/src/main/java/me/shedaniel/rei/listeners/ContainerScreenHooks.java b/src/main/java/me/shedaniel/rei/listeners/ContainerScreenHooks.java index 33ed1aceb..caae64adc 100644 --- a/src/main/java/me/shedaniel/rei/listeners/ContainerScreenHooks.java +++ b/src/main/java/me/shedaniel/rei/listeners/ContainerScreenHooks.java @@ -1,18 +1,17 @@ package me.shedaniel.rei.listeners; import net.minecraft.container.Slot; -import net.minecraft.item.ItemStack; public interface ContainerScreenHooks { - public int rei_getContainerLeft(); + int rei_getContainerLeft(); - public int rei_getContainerTop(); + int rei_getContainerTop(); - public int rei_getContainerWidth(); + int rei_getContainerWidth(); - public int rei_getContainerHeight(); + int rei_getContainerHeight(); - public Slot rei_getHoveredSlot(); + Slot rei_getHoveredSlot(); } diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinContainerScreen.java b/src/main/java/me/shedaniel/rei/mixin/MixinContainerScreen.java index 0ba58ae8a..b0fed91c7 100644 --- a/src/main/java/me/shedaniel/rei/mixin/MixinContainerScreen.java +++ b/src/main/java/me/shedaniel/rei/mixin/MixinContainerScreen.java @@ -1,5 +1,6 @@ package me.shedaniel.rei.mixin; +import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.TabGetter; import me.shedaniel.rei.client.ClientHelper; import me.shedaniel.rei.client.GuiHelper; @@ -9,9 +10,9 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.ContainerScreen; import net.minecraft.client.gui.Screen; import net.minecraft.client.gui.ingame.CreativePlayerInventoryScreen; +import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.container.Slot; import net.minecraft.item.ItemGroup; -import net.minecraft.item.ItemStack; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinScreen.java b/src/main/java/me/shedaniel/rei/mixin/MixinScreen.java new file mode 100644 index 000000000..df034a967 --- /dev/null +++ b/src/main/java/me/shedaniel/rei/mixin/MixinScreen.java @@ -0,0 +1,22 @@ +package me.shedaniel.rei.mixin; + +import me.shedaniel.rei.RoughlyEnoughItemsCore; +import net.minecraft.client.gui.ContainerScreen; +import net.minecraft.client.gui.Screen; +import net.minecraft.client.gui.widget.ButtonWidget; +import net.minecraft.client.gui.widget.RecipeBookButtonWidget; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(Screen.class) +public class MixinScreen { + + @Inject(method = "addButton", at = @At("HEAD"), cancellable = true) + protected void addButton(ButtonWidget buttonWidget, CallbackInfoReturnable info) { + if (RoughlyEnoughItemsCore.getConfigManager().getConfig().disableRecipeBook && ((Screen) (Object) this) instanceof ContainerScreen && buttonWidget instanceof RecipeBookButtonWidget) + info.cancel(); + } + +} diff --git a/src/main/resources/assets/roughlyenoughitems/lang/en_us.json b/src/main/resources/assets/roughlyenoughitems/lang/en_us.json index 2ad8d7ab9..e7137d51b 100755 --- a/src/main/resources/assets/roughlyenoughitems/lang/en_us.json +++ b/src/main/resources/assets/roughlyenoughitems/lang/en_us.json @@ -53,6 +53,7 @@ "text.rei.config.appearance": "Appearance", "text.rei.config.modules": "Modules", "text.rei.config.advanced": "Advanced", + "text.rei.config.disable_recipe_book": "Disable Recipe Book:", "text.rei.choose_page": "Choose Page", "text.rei.config.disable_credits_button": "Disable Credits Button:", "text.rei.config.max_recipes_per_page": "Maximum Recipes Each Page:", diff --git a/src/main/resources/roughlyenoughitems.client.json b/src/main/resources/roughlyenoughitems.client.json index 45b9f4842..ddc42c932 100755 --- a/src/main/resources/roughlyenoughitems.client.json +++ b/src/main/resources/roughlyenoughitems.client.json @@ -4,6 +4,7 @@ "minVersion": "0.7.11", "compatibilityLevel": "JAVA_8", "mixins": [ + "MixinScreen", "MixinContainerScreen", "MixinClientPlayNetworkHandler", "MixinPlayerInventoryScreen", |
