aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-01-01 00:10:09 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-01-01 00:10:09 +0800
commit50da7926d439166a1e68631e31523c604c337517 (patch)
tree14bad533c2b97fa72700aff99895d767c0662d47 /src/main/java
parent9e87d028018db1a5f7b125c0766073ff5b296333 (diff)
downloadRoughlyEnoughItems-50da7926d439166a1e68631e31523c604c337517.tar.gz
RoughlyEnoughItems-50da7926d439166a1e68631e31523c604c337517.tar.bz2
RoughlyEnoughItems-50da7926d439166a1e68631e31523c604c337517.zip
Config Draft
Diffstat (limited to 'src/main/java')
-rwxr-xr-xsrc/main/java/me/shedaniel/ClientListener.java7
-rwxr-xr-xsrc/main/java/me/shedaniel/Core.java46
-rw-r--r--src/main/java/me/shedaniel/config/REIConfig.java16
-rwxr-xr-xsrc/main/java/me/shedaniel/library/KeyBindManager.java40
-rwxr-xr-xsrc/main/java/me/shedaniel/listenerdefinitions/PreLoadOptions.java9
-rwxr-xr-xsrc/main/java/me/shedaniel/mixins/SettingsMixin.java44
-rw-r--r--src/main/java/me/shedaniel/plugin/RandomRecipe.java33
-rw-r--r--src/main/java/me/shedaniel/plugin/TestRandomCategory.java72
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/VanillaPlugin.java10
9 files changed, 71 insertions, 206 deletions
diff --git a/src/main/java/me/shedaniel/ClientListener.java b/src/main/java/me/shedaniel/ClientListener.java
index a74fe5e06..00be6f7ae 100755
--- a/src/main/java/me/shedaniel/ClientListener.java
+++ b/src/main/java/me/shedaniel/ClientListener.java
@@ -15,7 +15,6 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.registry.IRegistry;
-import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -34,9 +33,9 @@ public class ClientListener implements DoneLoading, RecipeLoadListener {
plugins = new ArrayList<>();
stackList = new ArrayList<>();
- recipeKeybind = KeyBindManager.createKeybinding("key.rei.recipe", KeyEvent.VK_R, "key.rei.category", REIRenderHelper::recipeKeybind);
- hideKeybind = KeyBindManager.createKeybinding("key.rei.hide", KeyEvent.VK_O, "key.rei.category", REIRenderHelper::hideKeybind);
- useKeybind = KeyBindManager.createKeybinding("key.rei.use", KeyEvent.VK_U, "key.rei.category", REIRenderHelper::useKeybind);
+ recipeKeybind = KeyBindManager.createKeybinding("key.rei.recipe", Core.config.recipeKeyBind, REIRenderHelper::recipeKeybind);
+ hideKeybind = KeyBindManager.createKeybinding("key.rei.hide", Core.config.hideKeyBind, REIRenderHelper::hideKeybind);
+ useKeybind = KeyBindManager.createKeybinding("key.rei.use", Core.config.usageKeyBind, REIRenderHelper::useKeybind);
buildItemList();
}
diff --git a/src/main/java/me/shedaniel/Core.java b/src/main/java/me/shedaniel/Core.java
index 61f985db1..495274d03 100755
--- a/src/main/java/me/shedaniel/Core.java
+++ b/src/main/java/me/shedaniel/Core.java
@@ -1,14 +1,25 @@
package me.shedaniel;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.google.gson.JsonObject;
+import com.google.gson.internal.Streams;
+import com.google.gson.stream.JsonWriter;
+import me.shedaniel.config.REIConfig;
import me.shedaniel.network.CheatPacket;
import me.shedaniel.network.DeletePacket;
import net.minecraft.network.EnumPacketDirection;
import org.dimdev.rift.listener.PacketAdder;
+import org.dimdev.riftloader.RiftLoader;
+import org.dimdev.riftloader.listener.InitializationListener;
+
+import java.io.*;
+import java.nio.file.Files;
/**
* Created by James on 7/27/2018.
*/
-public class Core implements PacketAdder {
+public class Core implements PacketAdder, InitializationListener {
@Override
public void registerHandshakingPackets(PacketRegistrationReceiver receiver) {
}
@@ -29,5 +40,38 @@ public class Core implements PacketAdder {
}
+ public static final File configFile = new File(RiftLoader.instance.configDir, "rei.json");
+ public static REIConfig config;
+
+ @Override
+ public void onInitialization() {
+ try {
+ loadConfig();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static void loadConfig() throws IOException {
+ if (!configFile.exists())
+ loadDefaultConfig();
+ InputStream in = Files.newInputStream(configFile.toPath());
+ config = REIConfig.GSON.fromJson(new InputStreamReader(in), REIConfig.class);
+ }
+
+ public static void loadDefaultConfig() throws IOException {
+ config = new REIConfig();
+ saveConfig();
+ }
+
+ public static void saveConfig() throws IOException {
+ configFile.getParentFile().mkdirs();
+ if (configFile.exists())
+ configFile.delete();
+ try (Writer writer = new FileWriter(configFile)) {
+ REIConfig.GSON.toJson(config, writer);
+ writer.close();
+ }
+ }
}
diff --git a/src/main/java/me/shedaniel/config/REIConfig.java b/src/main/java/me/shedaniel/config/REIConfig.java
new file mode 100644
index 000000000..791c9f1a9
--- /dev/null
+++ b/src/main/java/me/shedaniel/config/REIConfig.java
@@ -0,0 +1,16 @@
+package me.shedaniel.config;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+
+import java.awt.event.KeyEvent;
+
+public class REIConfig {
+
+ public static Gson GSON = new GsonBuilder().create();
+
+ public int recipeKeyBind = KeyEvent.VK_R;
+ public int usageKeyBind = KeyEvent.VK_U;
+ public int hideKeyBind = KeyEvent.VK_O;
+
+}
diff --git a/src/main/java/me/shedaniel/library/KeyBindManager.java b/src/main/java/me/shedaniel/library/KeyBindManager.java
index 14f620f8e..de4ea3dbc 100755
--- a/src/main/java/me/shedaniel/library/KeyBindManager.java
+++ b/src/main/java/me/shedaniel/library/KeyBindManager.java
@@ -1,52 +1,25 @@
package me.shedaniel.library;
-import me.shedaniel.listenerdefinitions.PreLoadOptions;
-import net.minecraft.client.Minecraft;
import net.minecraft.client.settings.KeyBinding;
-import org.apache.commons.lang3.ArrayUtils;
-import org.dimdev.rift.listener.client.KeybindHandler;
-import java.util.*;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Optional;
/**
* Created by James on 8/7/2018.
*/
-public class KeyBindManager implements PreLoadOptions, KeybindHandler {
+public class KeyBindManager {
- private static boolean optionsLoaded = false;
- private static List<KeyBinding> bindingsToAdd = new ArrayList<>();
private static Map<KeyBinding, Sink> bindingFunctions = new HashMap<>();
- public static KeyBinding createKeybinding(String bindingName, int key, String categoryName, Sink function) {
+ public static KeyBinding createKeybinding(String bindingName, int key, Sink function) {
KeyBinding newBinding;
- newBinding = new KeyBinding(bindingName, key, categoryName);
- if (optionsLoaded) {
- ArrayUtils.add(Minecraft.getInstance().gameSettings.keyBindings, newBinding);
- } else {
- bindingsToAdd.add(newBinding);
- }
+ newBinding = new KeyBinding(bindingName, key, "");
bindingFunctions.put(newBinding, function);
- addCategoryIfMissing(categoryName);
return newBinding;
}
- private static void addCategoryIfMissing(String categoryName) {
- /*if (!KeyBinding.CATEGORY_ORDER.containsKey(categoryName)){
- KeyBinding.CATEGORY_ORDER.put(categoryName,KeyBinding.CATEGORY_ORDER.size()+1);
- }*/
- }
-
- @Override
- public List<KeyBinding> loadOptions() {
- optionsLoaded = true;
- return bindingsToAdd;
- }
-
- @Override
- public void processKeybinds() {
- bindingFunctions.keySet().stream().filter(KeyBinding::isPressed).forEach(f -> bindingFunctions.get(f).Sink());
- }
-
public static boolean processGuiKeybinds(int typedChar) {
Optional<KeyBinding> binding = bindingFunctions.keySet().stream().filter(f -> f.getDefault().getKeyCode() == typedChar).findFirst();
if (binding.isPresent()) {
@@ -55,4 +28,5 @@ public class KeyBindManager implements PreLoadOptions, KeybindHandler {
}
return false;
}
+
}
diff --git a/src/main/java/me/shedaniel/listenerdefinitions/PreLoadOptions.java b/src/main/java/me/shedaniel/listenerdefinitions/PreLoadOptions.java
deleted file mode 100755
index 8e04f1c11..000000000
--- a/src/main/java/me/shedaniel/listenerdefinitions/PreLoadOptions.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package me.shedaniel.listenerdefinitions;
-
-import net.minecraft.client.settings.KeyBinding;
-
-import java.util.List;
-
-public interface PreLoadOptions {
- public List<KeyBinding> loadOptions();
-}
diff --git a/src/main/java/me/shedaniel/mixins/SettingsMixin.java b/src/main/java/me/shedaniel/mixins/SettingsMixin.java
deleted file mode 100755
index fa4dee435..000000000
--- a/src/main/java/me/shedaniel/mixins/SettingsMixin.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package me.shedaniel.mixins;
-
-import me.shedaniel.listenerdefinitions.PreLoadOptions;
-import net.minecraft.client.GameSettings;
-import net.minecraft.client.settings.KeyBinding;
-import org.dimdev.riftloader.RiftLoader;
-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.ArrayList;
-import java.util.List;
-
-/**
- * Created by James on 8/7/2018.
- */
-
-@Mixin(GameSettings.class)
-public class SettingsMixin {
- @Shadow
- public KeyBinding[] keyBindings;
-
- public SettingsMixin() {
- System.out.println("loaded");
- }
-
- @Inject(method = "loadOptions", at = @At("HEAD"))
- public void beforeLoadOptions(CallbackInfo ci) {
-
- RiftLoader.instance.getListeners(PreLoadOptions.class).stream().forEach(f -> processNewBindings(f.loadOptions()));
- }
-
- private void processNewBindings(List<KeyBinding> newBindings) {
- List<KeyBinding> toAdd = new ArrayList<>();
- toAdd.addAll(newBindings);
- for(KeyBinding keyBinding : keyBindings) {
- toAdd.add(keyBinding);
- }
- keyBindings = (KeyBinding[]) toAdd.toArray(new KeyBinding[0]);
- }
-
-}
diff --git a/src/main/java/me/shedaniel/plugin/RandomRecipe.java b/src/main/java/me/shedaniel/plugin/RandomRecipe.java
deleted file mode 100644
index 5dcdb9d4a..000000000
--- a/src/main/java/me/shedaniel/plugin/RandomRecipe.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package me.shedaniel.plugin;
-
-import me.shedaniel.api.IRecipe;
-import net.minecraft.init.Blocks;
-import net.minecraft.item.ItemStack;
-
-import java.util.Arrays;
-import java.util.LinkedList;
-import java.util.List;
-
-public class RandomRecipe implements IRecipe<ItemStack> {
-
- private String id;
-
- public RandomRecipe(String id) {
- this.id = id;
- }
-
- @Override
- public String getId() {
- return id;
- }
-
- @Override
- public List<ItemStack> getOutput() {
- return new LinkedList<>(Arrays.asList(new ItemStack[]{new ItemStack(Blocks.BEETROOTS.asItem())}));
- }
-
- @Override
- public List<List<ItemStack>> getInput() {
- return new LinkedList<>(Arrays.asList(new LinkedList<>(Arrays.asList(new ItemStack[]{new ItemStack(Blocks.OAK_LOG.asItem())}))));
- }
-}
diff --git a/src/main/java/me/shedaniel/plugin/TestRandomCategory.java b/src/main/java/me/shedaniel/plugin/TestRandomCategory.java
deleted file mode 100644
index 4773e7e55..000000000
--- a/src/main/java/me/shedaniel/plugin/TestRandomCategory.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package me.shedaniel.plugin;
-
-import me.shedaniel.api.IDisplayCategory;
-import me.shedaniel.gui.widget.Control;
-import me.shedaniel.gui.widget.REISlot;
-import me.shedaniel.plugin.crafting.VanillaCraftingRecipe;
-import net.minecraft.init.Blocks;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-
-public class TestRandomCategory implements IDisplayCategory<RandomRecipe> {
-
- private String id;
- private List<RandomRecipe> recipes;
- private ItemStack item;
-
- public TestRandomCategory(String id, ItemStack item) {
- this.id = id;
- this.item = item;
- }
-
- @Override
- public String getId() {
- return id;
- }
-
- @Override
- public String getDisplayName() {
- return id;
- }
-
- @Override
- public void addRecipe(RandomRecipe recipe) {
- if (this.recipes == null)
- this.recipes = new ArrayList<>();
- this.recipes.add(recipe);
- }
-
- @Override
- public void resetRecipes() {
- this.recipes = new ArrayList<>();
- }
-
- @Override
- public List<REISlot> setupDisplay(int number) {
- return new LinkedList<>();
- }
-
- @Override
- public boolean canDisplay(RandomRecipe recipe) {
- return false;
- }
-
- @Override
- public void drawExtras() {
-
- }
-
- @Override
- public void addWidget(List<Control> controls, int number) {
-
- }
-
- @Override
- public ItemStack getCategoryIcon() {
- return item;
- }
-}
diff --git a/src/main/java/me/shedaniel/plugin/VanillaPlugin.java b/src/main/java/me/shedaniel/plugin/VanillaPlugin.java
index 70e7918da..252ce9349 100755
--- a/src/main/java/me/shedaniel/plugin/VanillaPlugin.java
+++ b/src/main/java/me/shedaniel/plugin/VanillaPlugin.java
@@ -35,11 +35,6 @@ public class VanillaPlugin implements IREIPlugin, PotionCraftingAdder {
REIRecipeManager.instance().addDisplayAdapter(new VanillaCraftingCategory());
REIRecipeManager.instance().addDisplayAdapter(new VanillaFurnaceCategory());
REIRecipeManager.instance().addDisplayAdapter(new VanillaPotionCategory());
-// REIRecipeManager.instance().addDisplayAdapter(new TestRandomCategory("a", new ItemStack(Blocks.ACACIA_BUTTON.asItem())));
-// REIRecipeManager.instance().addDisplayAdapter(new TestRandomCategory("b", new ItemStack(Blocks.ACACIA_LOG.asItem())));
-// REIRecipeManager.instance().addDisplayAdapter(new TestRandomCategory("c", new ItemStack(Blocks.ACACIA_LOG.asItem())));
-// REIRecipeManager.instance().addDisplayAdapter(new TestRandomCategory("d", new ItemStack(Blocks.ACACIA_LOG.asItem())));
-// REIRecipeManager.instance().addDisplayAdapter(new TestRandomCategory("e", new ItemStack(Blocks.ACACIA_LOG.asItem())));
for(IRecipe recipe : REIRecipeManager.instance().recipeManager.getRecipes()) {
if (recipe instanceof ShapelessRecipe) {
@@ -65,11 +60,6 @@ public class VanillaPlugin implements IREIPlugin, PotionCraftingAdder {
REIRecipeManager.instance().addRecipe("vanilla", recipes);
REIRecipeManager.instance().addRecipe("furnace", furnaceRecipes);
REIRecipeManager.instance().addRecipe("potion", potionRecipes.stream().collect(Collectors.toList()));
-// REIRecipeManager.instance().addPotionRecipe("a", new RandomRecipe("a"));
-// REIRecipeManager.instance().addPotionRecipe("b", new RandomRecipe("b"));
-// REIRecipeManager.instance().addPotionRecipe("c", new RandomRecipe("c"));
-// REIRecipeManager.instance().addPotionRecipe("d", new RandomRecipe("d"));
-// REIRecipeManager.instance().addPotionRecipe("e", new RandomRecipe("e"));
}
@Override