diff --git a/src/main/java/me/bionicbeanie/mods/savecoords/gui/impl/SaveConfigsOperation.java b/src/main/java/me/bionicbeanie/mods/savecoords/gui/impl/SaveConfigsOperation.java index 9f9371c..0975af6 100644 --- a/src/main/java/me/bionicbeanie/mods/savecoords/gui/impl/SaveConfigsOperation.java +++ b/src/main/java/me/bionicbeanie/mods/savecoords/gui/impl/SaveConfigsOperation.java @@ -9,6 +9,7 @@ import me.bionicbeanie.mods.savecoords.IKeyBinds; import me.bionicbeanie.mods.savecoords.IKeyBinds.IKeyBinding; import me.bionicbeanie.mods.savecoords.model.ConfigData; import me.bionicbeanie.mods.savecoords.model.ConfigData.Config; +import net.minecraft.client.util.InputUtil.Type; public class SaveConfigsOperation extends ViewOperationBase>{ @@ -29,7 +30,7 @@ public class SaveConfigsOperation extends ViewOperationBase>{ for (IKeyBinding binding : state) { Config config = new Config(); config.setName(binding.getName()); - config.setType(binding.getType()); + config.setType(parseTypeInt(binding.getType())); config.setCode(binding.getCode()); keyBinds.updateKeyBind(binding.getName(), binding.getType(), binding.getCode()); @@ -41,4 +42,12 @@ public class SaveConfigsOperation extends ViewOperationBase>{ fileStore.writeConfigs(configData); } + + private int parseTypeInt(Type type) { + if(type == Type.KEYSYM) { + return 0; + } + + return 1; + } } diff --git a/src/main/java/me/bionicbeanie/mods/savecoords/impl/FileStore.java b/src/main/java/me/bionicbeanie/mods/savecoords/impl/FileStore.java index 8ed2b98..03e8b47 100644 --- a/src/main/java/me/bionicbeanie/mods/savecoords/impl/FileStore.java +++ b/src/main/java/me/bionicbeanie/mods/savecoords/impl/FileStore.java @@ -44,31 +44,31 @@ class FileStore implements IFileStore { @Override public String readDefaultWorldName() throws IOException { ModData data = load(); - + return data.getDefaultWorldName(); } - + @Override public ConfigData readConfigData() throws IOException { ModData data = load(); - + return data.getConfigData(); } - @Override public void writeDefaultWorldName(String defaultWorldName) throws IOException { ModData data = load(); - data.setDefaultWorldName(defaultWorldName);; + data.setDefaultWorldName(defaultWorldName); + ; dump(data); } - + @Override public void writeConfigs(ConfigData configData) throws IOException { ModData data = load(); data.setConfigData(configData); - + dump(data); } @@ -116,26 +116,30 @@ class FileStore implements IFileStore { private ModData load() throws IOException { List lines = Files.readAllLines(saveFilePath); try { - ModData data = gson.fromJson(String.join("", lines), ModData.class); - - if(data == null) { + ModData data = gson.fromJson(String.join("", lines), ModData.class); + + if (data == null) { data = new ModData(); } - - if(data.getDefaultWorldName() == null) { + + if (data.getDefaultWorldName() == null) { data.setDefaultWorldName(""); } - - if(data.getPositions() == null) { + + if (data.getPositions() == null) { data.setPositions(new PlayerPosition[] {}); } - - if(data.getConfigData() == null) { + + if (data.getConfigData() == null) { data.setConfigData(new ConfigData()); } - + + if (data.getConfigData().getKeyConfigs() == null) { + data.getConfigData().setKeyConfigs(new ConfigData.Config[] {}); + } + return data; - + } catch (Exception e) { // Fallback for old versions ModData data = new ModData(); diff --git a/src/main/java/me/bionicbeanie/mods/savecoords/impl/KeyBinds.java b/src/main/java/me/bionicbeanie/mods/savecoords/impl/KeyBinds.java index 7193d27..f51bbfb 100644 --- a/src/main/java/me/bionicbeanie/mods/savecoords/impl/KeyBinds.java +++ b/src/main/java/me/bionicbeanie/mods/savecoords/impl/KeyBinds.java @@ -94,12 +94,10 @@ class KeyBinds implements IKeyBinds { public int getDefaultCode() { return defaultCode; } - - public void setBoundKey(Type type, int code) { - super.setBoundKey(type.createFromCode(code)); - - this.type = type; - this.code = code; + + @Override + public boolean wasPressed() { + return super.wasPressed(); } @Override @@ -116,11 +114,24 @@ class KeyBinds implements IKeyBinds { public Text getNameLocalizedText() { return new TranslatableText(getTranslationKey()); } + + @Override + public Text getBoundKeyLocalizedText() { + return super.getBoundKeyLocalizedText(); + } + + void setBoundKey(Type type, int code) { + super.setBoundKey(type.createFromCode(code)); + + this.type = type; + this.code = code; + } } private void initialize() { try { ConfigData configData = fileStore.readConfigData(); + Config[] configs = configData.getKeyConfigs(); if (configs == null) { @@ -129,7 +140,7 @@ class KeyBinds implements IKeyBinds { for (int i = 0; i < configs.length; ++i) { String name = configs[i].getName(); - Type type = configs[i].getType(); + Type type = parseType(configs[i].getType()); int code = configs[i].getCode(); if (keyBinds.containsKey(name)) { @@ -142,4 +153,12 @@ class KeyBinds implements IKeyBinds { } + + private Type parseType(int type) { + if(type == 0) { + return Type.KEYSYM; + } + + return Type.MOUSE; + } } diff --git a/src/main/java/me/bionicbeanie/mods/savecoords/model/ConfigData.java b/src/main/java/me/bionicbeanie/mods/savecoords/model/ConfigData.java index 7e584cd..3ba1393 100644 --- a/src/main/java/me/bionicbeanie/mods/savecoords/model/ConfigData.java +++ b/src/main/java/me/bionicbeanie/mods/savecoords/model/ConfigData.java @@ -2,8 +2,6 @@ package me.bionicbeanie.mods.savecoords.model; import org.lwjgl.glfw.GLFW; -import net.minecraft.client.util.InputUtil.Type; - public class ConfigData { private Config[] keyConfigs; @@ -12,13 +10,15 @@ public class ConfigData { private int defaultKeyBindingCode; public ConfigData() { - this.defaultKeyBindingCode = GLFW.GLFW_KEY_H; //Default value + this.defaultKeyBindingCode = GLFW.GLFW_KEY_H; } + @Deprecated public void setDefaultKeyBindingCode(int defaultKeyBindingCode) { this.defaultKeyBindingCode = defaultKeyBindingCode; } + @Deprecated public int getDefaultKeyBindingCode() { return defaultKeyBindingCode; } @@ -33,7 +33,7 @@ public class ConfigData { public static class Config{ private String name; - private Type type; + private int type; private int code; public int getCode() { @@ -42,10 +42,10 @@ public class ConfigData { public void setCode(int code) { this.code = code; } - public Type getType() { + public int getType() { return type; } - public void setType(Type type) { + public void setType(int type) { this.type = type; } public String getName() {