aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-03-07 23:13:49 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-03-07 23:13:49 +0800
commit20a0d31befa8120688b77faf189748ca4c0b9e07 (patch)
treee7d3fd477e44daea5949fa2e7880ba39db2c78fb
parent8cd1f1a9804f980c1666079c99bafb6330c77723 (diff)
downloadRoughlyEnoughItems-20a0d31befa8120688b77faf189748ca4c0b9e07.tar.gz
RoughlyEnoughItems-20a0d31befa8120688b77faf189748ca4c0b9e07.tar.bz2
RoughlyEnoughItems-20a0d31befa8120688b77faf189748ca4c0b9e07.zip
option to disable recipe book
-rw-r--r--.gitignore2
-rw-r--r--CHANGELOG.md7
-rwxr-xr-xbuild.gradle31
-rw-r--r--src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java2
-rw-r--r--src/main/java/me/shedaniel/rei/client/ConfigObject.java3
-rw-r--r--src/main/java/me/shedaniel/rei/client/GuiHelper.java17
-rw-r--r--src/main/java/me/shedaniel/rei/gui/config/ConfigScreen.java19
-rw-r--r--src/main/java/me/shedaniel/rei/listeners/ContainerScreenHooks.java11
-rw-r--r--src/main/java/me/shedaniel/rei/mixin/MixinContainerScreen.java3
-rw-r--r--src/main/java/me/shedaniel/rei/mixin/MixinScreen.java22
-rwxr-xr-xsrc/main/resources/assets/roughlyenoughitems/lang/en_us.json1
-rwxr-xr-xsrc/main/resources/roughlyenoughitems.client.json1
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",