From 4d56796244556e1d7e3b8310496f9e16f08fb4b4 Mon Sep 17 00:00:00 2001 From: Frank Date: Sat, 21 Aug 2021 14:25:09 +0200 Subject: [PATCH] Some minor Fixes --- src/main/java/ru/bclib/BCLib.java | 3 -- .../handler/autosync/AutoSync.java | 3 -- .../handler/autosync/SendFiles.java | 2 +- .../ru/bclib/gui/screens/SyncFilesScreen.java | 42 +++++++++---------- src/main/java/ru/bclib/util/PathUtil.java | 2 + 5 files changed, 23 insertions(+), 29 deletions(-) diff --git a/src/main/java/ru/bclib/BCLib.java b/src/main/java/ru/bclib/BCLib.java index f29d8b74..e02ccafd 100644 --- a/src/main/java/ru/bclib/BCLib.java +++ b/src/main/java/ru/bclib/BCLib.java @@ -39,10 +39,7 @@ public class BCLib implements ModInitializer { TagAPI.init(); CraftingRecipes.init(); WorldDataAPI.registerModCache(MOD_ID); - DataExchangeAPI.registerMod(MOD_ID); - //this will offer modMenu to clients if installed in the server - DataExchangeAPI.registerModDependency("modmenu"); DataExchangeAPI.registerDescriptors(List.of( HelloClient.DESCRIPTOR, diff --git a/src/main/java/ru/bclib/api/dataexchange/handler/autosync/AutoSync.java b/src/main/java/ru/bclib/api/dataexchange/handler/autosync/AutoSync.java index 783de73d..fe135c4a 100644 --- a/src/main/java/ru/bclib/api/dataexchange/handler/autosync/AutoSync.java +++ b/src/main/java/ru/bclib/api/dataexchange/handler/autosync/AutoSync.java @@ -1,7 +1,5 @@ package ru.bclib.api.dataexchange.handler.autosync; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; import net.fabricmc.loader.api.FabricLoader; import ru.bclib.BCLib; import ru.bclib.api.dataexchange.DataExchangeAPI; @@ -31,7 +29,6 @@ public class AutoSync { public boolean test(SyncFileHash clientHash, SyncFileHash serverHash, FileContentWrapper content); } - @Environment(EnvType.CLIENT) public static class ClientConfig extends NamedPathConfig{ public static final ConfigToken ENABLED = ConfigToken.Boolean(true, "enabled", SYNC_CATEGORY); @ConfigUI(leftPadding =8) diff --git a/src/main/java/ru/bclib/api/dataexchange/handler/autosync/SendFiles.java b/src/main/java/ru/bclib/api/dataexchange/handler/autosync/SendFiles.java index 53e9ceff..64fa2492 100644 --- a/src/main/java/ru/bclib/api/dataexchange/handler/autosync/SendFiles.java +++ b/src/main/java/ru/bclib/api/dataexchange/handler/autosync/SendFiles.java @@ -142,7 +142,7 @@ public class SendFiles extends DataHandler.FromServer { @Environment(EnvType.CLIENT) static void writeSyncedFile(AutoSyncID e, byte[] data, File fileName) { - if (!PathUtil.isChildOf(PathUtil.GAME_FOLDER, fileName.toPath())){ + if (fileName!=null && !PathUtil.isChildOf(PathUtil.GAME_FOLDER, fileName.toPath())){ BCLib.LOGGER.error(fileName + " is not within game folder " + PathUtil.GAME_FOLDER); return; } diff --git a/src/main/java/ru/bclib/gui/screens/SyncFilesScreen.java b/src/main/java/ru/bclib/gui/screens/SyncFilesScreen.java index dd246ef7..eb1ed8c1 100644 --- a/src/main/java/ru/bclib/gui/screens/SyncFilesScreen.java +++ b/src/main/java/ru/bclib/gui/screens/SyncFilesScreen.java @@ -42,34 +42,32 @@ public class SyncFilesScreen extends BCLibScreen { final GridCheckboxCell mods; - if (hasMods) { - row = grid.addRow(); - mods = row.addCheckbox(new TranslatableComponent("message.bclib.syncfiles.mods"), true, BUTTON_HEIGHT, this.font); - grid.addSpacerRow(); - } else mods=null; + row = grid.addRow(); + mods = row.addCheckbox(new TranslatableComponent("message.bclib.syncfiles.mods"), hasMods, BUTTON_HEIGHT, this.font); + mods.setEnabled(hasMods); + grid.addSpacerRow(); + final GridCheckboxCell configs; - if (hasConfigFiles) { - row = grid.addRow(); - configs = row.addCheckbox(new TranslatableComponent("message.bclib.syncfiles.configs"), true, BUTTON_HEIGHT, this.font); - grid.addSpacerRow(); - } else configs = null; + row = grid.addRow(); + configs = row.addCheckbox(new TranslatableComponent("message.bclib.syncfiles.configs"), hasConfigFiles, BUTTON_HEIGHT, this.font); + configs.setEnabled(hasConfigFiles); + + grid.addSpacerRow(); row = grid.addRow(); final GridCheckboxCell folder; - if (hasFiles) { - folder = row.addCheckbox(new TranslatableComponent("message.bclib.syncfiles.folders"), true, BUTTON_HEIGHT, this.font); - row.addSpacer(); - } else folder = null; + folder = row.addCheckbox(new TranslatableComponent("message.bclib.syncfiles.folders"), hasFiles, BUTTON_HEIGHT, this.font); + folder.setEnabled(hasFiles); + row.addSpacer(); GridCheckboxCell delete; - if (shouldDelete) { - delete = row.addCheckbox(new TranslatableComponent("message.bclib.syncfiles.delete"), true, BUTTON_HEIGHT, this.font); - } else delete = null; + delete = row.addCheckbox(new TranslatableComponent("message.bclib.syncfiles.delete"), shouldDelete, BUTTON_HEIGHT, this.font); + delete.setEnabled(shouldDelete); + grid.addSpacerRow(30); - row = grid.addRow(); row.addFiller(); row.addButton(CommonComponents.GUI_NO, BUTTON_HEIGHT, this.font, (button) -> { @@ -78,10 +76,10 @@ public class SyncFilesScreen extends BCLibScreen { row.addSpacer(); row.addButton(CommonComponents.GUI_YES, BUTTON_HEIGHT, this.font, (button) -> { listener.proceed( - mods!=null && mods.isChecked(), - configs!=null && configs.isChecked(), - folder != null && folder.isChecked(), - delete !=null && delete.isChecked() + mods.isChecked(), + configs.isChecked(), + folder.isChecked(), + delete.isChecked() ); }); row.addFiller(); diff --git a/src/main/java/ru/bclib/util/PathUtil.java b/src/main/java/ru/bclib/util/PathUtil.java index f3ba08dc..ddd0c8f1 100644 --- a/src/main/java/ru/bclib/util/PathUtil.java +++ b/src/main/java/ru/bclib/util/PathUtil.java @@ -30,6 +30,8 @@ public class PathUtil { */ public static boolean isChildOf(Path parent, Path child) { if (child == null || parent == null) return false; + parent = parent.toAbsolutePath().normalize(); + child = child.toAbsolutePath().normalize(); final int pCount = parent.getNameCount(); final int cCount = child.getNameCount();