diff --git a/build.gradle b/build.gradle index ab622a1..fb942f9 100644 --- a/build.gradle +++ b/build.gradle @@ -28,7 +28,7 @@ dependencies { modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" - modImplementation "com.terraformersmc:modmenu:${project.modmenu_version}" + // modImplementation "com.terraformersmc:modmenu:${project.modmenu_version}" modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" modImplementation include("io.github.cottonmc:LibGui:${project.libgui_version}") } diff --git a/src/main/java/me/bionicbeanie/mods/savecoords/gui/impl/DIContainer.java b/src/main/java/me/bionicbeanie/mods/savecoords/gui/impl/DIContainer.java index a9695f6..28f3e20 100644 --- a/src/main/java/me/bionicbeanie/mods/savecoords/gui/impl/DIContainer.java +++ b/src/main/java/me/bionicbeanie/mods/savecoords/gui/impl/DIContainer.java @@ -1,14 +1,11 @@ package me.bionicbeanie.mods.savecoords.gui.impl; -import com.terraformersmc.modmenu.api.ConfigScreenFactory; - import me.bionicbeanie.mods.savecoords.IFileStore; import me.bionicbeanie.mods.savecoords.IKeyBinds; import me.bionicbeanie.mods.savecoords.IModGui; import me.bionicbeanie.mods.savecoords.IPlayerLocator; import me.bionicbeanie.mods.savecoords.impl.Factory; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.screen.Screen; //All of this works because single-threaded initialization!! Sed lyf :( public class DIContainer { @@ -19,7 +16,7 @@ public class DIContainer { private static IPlayerLocator playerLocator; private static IModGui modGui; private static IKeyBinds keyBinds; - private static ConfigScreenFactory modMenuScreenFactory; + //private static ConfigScreenFactory modMenuScreenFactory; private static PingPositionOperation pingPositionOperation; public static IModGui getModGui() { @@ -32,25 +29,25 @@ public class DIContainer { return keyBinds; } - public static ConfigScreenFactory getModMenuScreenFactory() { - initialize(); - - if (modMenuScreenFactory == null) { - modMenuScreenFactory = (parent) -> { - ConfigViewHandler handler = new ConfigViewHandler(); - - handler.onSave(() -> { - new SaveConfigsOperation(keyBinds, fileStore, handler::getState).run(); - guiController.closeScreen(); - }); - - handler.onBack(() -> guiController.closeScreen()); - - return handler.createView(keyBinds.getAllBinds()); - }; - } - return modMenuScreenFactory; - } +// public static ConfigScreenFactory getModMenuScreenFactory() { +// initialize(); +// +// if (modMenuScreenFactory == null) { +// modMenuScreenFactory = (parent) -> { +// ConfigViewHandler handler = new ConfigViewHandler(); +// +// handler.onSave(() -> { +// new SaveConfigsOperation(keyBinds, fileStore, handler::getState).run(); +// guiController.closeScreen(); +// }); +// +// handler.onBack(() -> guiController.closeScreen()); +// +// return handler.createView(keyBinds.getAllBinds()); +// }; +// } +// return modMenuScreenFactory; +// } public static Runnable getPingPositionOperation() { initialize(); @@ -59,7 +56,6 @@ public class DIContainer { private static void initialize() { if (!initialized) { - initialized = true; MinecraftClient minecraftClient = MinecraftClient.getInstance(); diff --git a/src/main/java/me/bionicbeanie/mods/savecoords/gui/impl/ListViewHandler.java b/src/main/java/me/bionicbeanie/mods/savecoords/gui/impl/ListViewHandler.java index cd06b3a..19b5695 100644 --- a/src/main/java/me/bionicbeanie/mods/savecoords/gui/impl/ListViewHandler.java +++ b/src/main/java/me/bionicbeanie/mods/savecoords/gui/impl/ListViewHandler.java @@ -81,10 +81,11 @@ class ListViewHandler extends ViewHandlerBase { try { List positions = fileStore.listPositions(); Collections.sort(positions, (p1, p2) -> { - if(p1.getPositionMetadata() != null && p2.getPositionMetadata() != null) { - return p2.getPositionMetadata().getLastModified().compareTo(p1.getPositionMetadata().getLastModified()); + if (p1.getPositionMetadata() != null && p2.getPositionMetadata() != null) { + return p2.getPositionMetadata().getLastModifiedMillis() > p1.getPositionMetadata().getLastModifiedMillis() ? 1 + : 0; } - + return -1; }); return positions; @@ -155,11 +156,11 @@ class ListViewHandler extends ViewHandlerBase { this.icon.setImage(ResourceUtils.CreateWorldIconIdentifier(position.getWorldDimension())); this.location.setText(new LiteralText(position.getLocationName())); this.location.setColor(0x3939ac); - if(position.getPositionMetadata() != null) { + if (position.getPositionMetadata() != null) { this.world.setText(new LiteralText("[" + position.getPositionMetadata().getWorldName() + "]")); this.world.setColor(0xb80000); } - + this.coordinates .setText(new LiteralText(position.getX() + ", " + position.getY() + ", " + position.getZ())); this.deleteButton.setOnClick(() -> onDelete.accept(position)); diff --git a/src/main/java/me/bionicbeanie/mods/savecoords/gui/impl/RootGridPanel.java b/src/main/java/me/bionicbeanie/mods/savecoords/gui/impl/RootGridPanel.java index 8b752a8..077aa76 100644 --- a/src/main/java/me/bionicbeanie/mods/savecoords/gui/impl/RootGridPanel.java +++ b/src/main/java/me/bionicbeanie/mods/savecoords/gui/impl/RootGridPanel.java @@ -6,6 +6,7 @@ import java.util.List; import io.github.cottonmc.cotton.gui.GuiDescription; import io.github.cottonmc.cotton.gui.widget.WGridPanel; import io.github.cottonmc.cotton.gui.widget.WWidget; +import io.github.cottonmc.cotton.gui.widget.data.Insets; import me.bionicbeanie.mods.savecoords.gui.IRootPanel; class RootGridPanel extends WGridPanel implements IRootPanel{ @@ -15,6 +16,7 @@ class RootGridPanel extends WGridPanel implements IRootPanel{ public RootGridPanel(GuiDescription guiDescription) { this(18); + setInsets(Insets.ROOT_PANEL); this.guiDescription = guiDescription; } 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 0975af6..e47f75b 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 @@ -30,7 +30,7 @@ public class SaveConfigsOperation extends ViewOperationBase>{ for (IKeyBinding binding : state) { Config config = new Config(); config.setName(binding.getName()); - config.setType(parseTypeInt(binding.getType())); + config.setType(parseTypeString(binding.getType())); config.setCode(binding.getCode()); keyBinds.updateKeyBind(binding.getName(), binding.getType(), binding.getCode()); @@ -43,11 +43,11 @@ public class SaveConfigsOperation extends ViewOperationBase>{ fileStore.writeConfigs(configData); } - private int parseTypeInt(Type type) { + private String parseTypeString(Type type) { if(type == Type.KEYSYM) { - return 0; + return "KEYSYM"; } - return 1; + return "MOUSE"; } } 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 03e8b47..47b70a0 100644 --- a/src/main/java/me/bionicbeanie/mods/savecoords/impl/FileStore.java +++ b/src/main/java/me/bionicbeanie/mods/savecoords/impl/FileStore.java @@ -28,7 +28,7 @@ class FileStore implements IFileStore { private Gson gson; public FileStore(String baseDir) { - this.gson = new GsonBuilder().setPrettyPrinting().setLenient().create(); + this.gson = new GsonBuilder().setPrettyPrinting().setLenient(). create(); this.saveFilePath = Paths.get(baseDir, DEFAULT_DIR, DEFAULT_FILE); try { @@ -141,15 +141,7 @@ class FileStore implements IFileStore { return data; } catch (Exception e) { - // Fallback for old versions - ModData data = new ModData(); - data.setDefaultWorldName(""); - data.setPositions(gson.fromJson(String.join("", lines), PlayerPosition[].class)); - data.setConfigData(new ConfigData()); - - dump(data); - - return data; + throw e; } } 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 7597b54..9fbe0f5 100644 --- a/src/main/java/me/bionicbeanie/mods/savecoords/impl/KeyBinds.java +++ b/src/main/java/me/bionicbeanie/mods/savecoords/impl/KeyBinds.java @@ -154,8 +154,8 @@ class KeyBinds implements IKeyBinds { } - private Type parseType(int type) { - if(type == 0) { + private Type parseType(String type) { + if("KEYSYM".equalsIgnoreCase(type)) { return Type.KEYSYM; } 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 3ba1393..358fc67 100644 --- a/src/main/java/me/bionicbeanie/mods/savecoords/model/ConfigData.java +++ b/src/main/java/me/bionicbeanie/mods/savecoords/model/ConfigData.java @@ -33,7 +33,7 @@ public class ConfigData { public static class Config{ private String name; - private int type; + private String type; private int code; public int getCode() { @@ -42,10 +42,10 @@ public class ConfigData { public void setCode(int code) { this.code = code; } - public int getType() { + public String getType() { return type; } - public void setType(int type) { + public void setType(String type) { this.type = type; } public String getName() { diff --git a/src/main/java/me/bionicbeanie/mods/savecoords/model/PositionMetadata.java b/src/main/java/me/bionicbeanie/mods/savecoords/model/PositionMetadata.java index e9eec81..5d46d5a 100644 --- a/src/main/java/me/bionicbeanie/mods/savecoords/model/PositionMetadata.java +++ b/src/main/java/me/bionicbeanie/mods/savecoords/model/PositionMetadata.java @@ -1,17 +1,15 @@ package me.bionicbeanie.mods.savecoords.model; -import java.time.LocalDateTime; - public class PositionMetadata { private String worldName, notes; - private LocalDateTime created, lastModified; + private long createdMillis, lastModifiedMillis; public PositionMetadata(String worldName, String notes) { this.worldName = worldName; this.notes = notes; - this.created = LocalDateTime.now(); - this.lastModified = this.created; + this.createdMillis = System.currentTimeMillis(); + this.lastModifiedMillis = this.createdMillis; } public String getWorldName() { @@ -30,15 +28,15 @@ public class PositionMetadata { this.notes = notes; } - public LocalDateTime getCreated() { - return created; + public long getCreatedMillis() { + return createdMillis; } - public LocalDateTime getLastModified() { - return lastModified; + public long getLastModifiedMillis() { + return lastModifiedMillis; } public void updateLastModified() { - this.lastModified = LocalDateTime.now(); + this.lastModifiedMillis = System.currentTimeMillis(); } } diff --git a/src/main/java/me/bionicbeanie/mods/savecoords/modmenu/SaveCoordinatesModMenu.java b/src/main/java/me/bionicbeanie/mods/savecoords/modmenu/SaveCoordinatesModMenu.java index 4eee60a..ec884de 100644 --- a/src/main/java/me/bionicbeanie/mods/savecoords/modmenu/SaveCoordinatesModMenu.java +++ b/src/main/java/me/bionicbeanie/mods/savecoords/modmenu/SaveCoordinatesModMenu.java @@ -1,14 +1,14 @@ -package me.bionicbeanie.mods.savecoords.modmenu; - -import com.terraformersmc.modmenu.api.ConfigScreenFactory; -import com.terraformersmc.modmenu.api.ModMenuApi; - -import me.bionicbeanie.mods.savecoords.gui.impl.DIContainer; - -public class SaveCoordinatesModMenu implements ModMenuApi { - - @Override - public ConfigScreenFactory getModConfigScreenFactory() { - return DIContainer.getModMenuScreenFactory(); - } -} +//package me.bionicbeanie.mods.savecoords.modmenu; +// +//import com.terraformersmc.modmenu.api.ConfigScreenFactory; +//import com.terraformersmc.modmenu.api.ModMenuApi; +// +//import me.bionicbeanie.mods.savecoords.gui.impl.DIContainer; +// +//public class SaveCoordinatesModMenu implements ModMenuApi { +// +// @Override +// public ConfigScreenFactory getModConfigScreenFactory() { +// return DIContainer.getModMenuScreenFactory(); +// } +//}