diff --git a/src/main/java/sonar/fluxnetworks/FluxConfig.java b/src/main/java/sonar/fluxnetworks/FluxConfig.java index d61a76f2..d7248208 100644 --- a/src/main/java/sonar/fluxnetworks/FluxConfig.java +++ b/src/main/java/sonar/fluxnetworks/FluxConfig.java @@ -74,7 +74,7 @@ static void reload(@Nonnull ModConfigEvent event) { public static boolean enableButtonSound, enableGuiDebug, enableModernDesign; public static boolean enableOneProbeBasicInfo, enableOneProbeAdvancedInfo, enableOneProbeSneaking; - public static boolean enableFluxRecipe, enableChunkLoading, enableSuperAdmin; + public static boolean enableFluxRecipe, enableChunkLoading, enableSuperAdmin, enableWirelessMainInventory; public static long defaultLimit, basicCapacity, basicTransfer, herculeanCapacity, herculeanTransfer, gargantuanCapacity, gargantuanTransfer; public static int maximumPerPlayer, superAdminRequiredPermission; @@ -174,6 +174,7 @@ private static class Server { // general private final ModConfigSpec.BooleanValue mEnableFluxRecipe; private final ModConfigSpec.BooleanValue mEnableChunkLoading; + private final ModConfigSpec.BooleanValue mEnableWirelessMainInventory; //private final ModConfigSpec.BooleanValue mChunkLoadingRequiresSuperAdmin; // blacklist @@ -215,6 +216,10 @@ private Server(@Nonnull ModConfigSpec.Builder builder) { .comment("Allows flux devices to enable chunk loading.") .translation(FluxNetworks.MODID + ".config." + "enableChunkLoading") .define("enableChunkLoading", true); + mEnableWirelessMainInventory = builder + .comment("Allows to enable wireless charging for the main inventory.") + .translation(FluxNetworks.MODID + ".config." + "enableWirelessMainInventory") + .define("enableWirelessMainInventory", false); builder.pop(); builder.push("blacklist"); @@ -269,6 +274,7 @@ private void load() { enableFluxRecipe = mEnableFluxRecipe.get(); enableChunkLoading = mEnableChunkLoading.get(); enableSuperAdmin = mEnableSuperAdmin.get(); + enableWirelessMainInventory = mEnableWirelessMainInventory.get(); EnergyUtils.reloadBlacklist(mBlockBlacklistStrings.get(), mItemBlackListStrings.get()); diff --git a/src/main/java/sonar/fluxnetworks/api/FluxConstants.java b/src/main/java/sonar/fluxnetworks/api/FluxConstants.java index 0d5f31e1..4c15a8a5 100644 --- a/src/main/java/sonar/fluxnetworks/api/FluxConstants.java +++ b/src/main/java/sonar/fluxnetworks/api/FluxConstants.java @@ -74,7 +74,8 @@ public final class FluxConstants { RESPONSE_HAS_CONTROLLER = 5, RESPONSE_INVALID_USER = 6, RESPONSE_INVALID_PASSWORD = 7, - RESPONSE_BANNED_LOADING = 8; + RESPONSE_BANNED_LOADING = 8, + RESPONSE_BANNED_WIRELESS_MAIN = 9; /** * Request keys. diff --git a/src/main/java/sonar/fluxnetworks/api/FluxTranslate.java b/src/main/java/sonar/fluxnetworks/api/FluxTranslate.java index b263f68e..24cebaa5 100644 --- a/src/main/java/sonar/fluxnetworks/api/FluxTranslate.java +++ b/src/main/java/sonar/fluxnetworks/api/FluxTranslate.java @@ -134,6 +134,7 @@ public class FluxTranslate { INVALID_USER = new FluxTranslate("gui.fluxnetworks.response.invaliduser"), INVALID_PASSWORD = new FluxTranslate("gui.fluxnetworks.response.invalidpassword"), BANNED_LOADING = new FluxTranslate("gui.fluxnetworks.response.bannedloading"), + BANNED_WIRELESS_MAIN = new FluxTranslate("gui.fluxnetworks.response.bannedwirelessmain"), OWNER = new FluxTranslate("gui.fluxnetworks.access.owner"), ADMIN = new FluxTranslate("gui.fluxnetworks.access.admin"), @@ -163,6 +164,7 @@ public static FluxTranslate fromResponseCode(int code) { case FluxConstants.RESPONSE_INVALID_USER -> INVALID_USER; case FluxConstants.RESPONSE_INVALID_PASSWORD -> INVALID_PASSWORD; case FluxConstants.RESPONSE_BANNED_LOADING -> BANNED_LOADING; + case FluxConstants.RESPONSE_BANNED_WIRELESS_MAIN -> BANNED_WIRELESS_MAIN; default -> null; }; } diff --git a/src/main/java/sonar/fluxnetworks/api/misc/FeedbackInfo.java b/src/main/java/sonar/fluxnetworks/api/misc/FeedbackInfo.java index 59d247aa..1c49fe49 100644 --- a/src/main/java/sonar/fluxnetworks/api/misc/FeedbackInfo.java +++ b/src/main/java/sonar/fluxnetworks/api/misc/FeedbackInfo.java @@ -15,6 +15,7 @@ public enum FeedbackInfo { INVALID_USER(FluxTranslate.INVALID_USER), ILLEGAL_PASSWORD(FluxTranslate.INVALID_PASSWORD), BANNED_LOADING(FluxTranslate.BANNED_LOADING), + BANNED_WIRELESS_MAIN(FluxTranslate.BANNED_WIRELESS_MAIN), SA_ON(FluxTranslate.SA_ON), SA_OFF(FluxTranslate.SA_OFF), PASSWORD_REQUIRE(null), diff --git a/src/main/java/sonar/fluxnetworks/api/network/WirelessType.java b/src/main/java/sonar/fluxnetworks/api/network/WirelessType.java index b5744383..10248ea6 100644 --- a/src/main/java/sonar/fluxnetworks/api/network/WirelessType.java +++ b/src/main/java/sonar/fluxnetworks/api/network/WirelessType.java @@ -20,9 +20,6 @@ public enum WirelessType { } public boolean isActivated(int setting) { - if (this == INVENTORY) { - return false; - } return (setting >> ordinal() & 1) == 1; } diff --git a/src/main/java/sonar/fluxnetworks/client/gui/tab/GuiTabWireless.java b/src/main/java/sonar/fluxnetworks/client/gui/tab/GuiTabWireless.java index e1e7a3f3..6017bb84 100644 --- a/src/main/java/sonar/fluxnetworks/client/gui/tab/GuiTabWireless.java +++ b/src/main/java/sonar/fluxnetworks/client/gui/tab/GuiTabWireless.java @@ -91,10 +91,8 @@ public void onButtonClicked(GuiButtonCore button, float mouseX, float mouseY, in return; } if (button instanceof InventoryButton btn) { - if (btn.mType != WirelessType.INVENTORY) { - mWirelessMode ^= 1 << btn.mType.ordinal(); - mApply.setClickable(true); - } + mWirelessMode ^= 1 << btn.mType.ordinal(); + mApply.setClickable(true); } else if (button instanceof SwitchButton btn) { btn.toggle(); if (btn.isChecked()) { diff --git a/src/main/java/sonar/fluxnetworks/common/device/FluxControllerHandler.java b/src/main/java/sonar/fluxnetworks/common/device/FluxControllerHandler.java index 7772106a..2edf7f23 100644 --- a/src/main/java/sonar/fluxnetworks/common/device/FluxControllerHandler.java +++ b/src/main/java/sonar/fluxnetworks/common/device/FluxControllerHandler.java @@ -164,6 +164,9 @@ public ItemStack next() { if (WirelessType.CURIOS.isActivated(wirelessMode) && FluxNetworks.isCuriosLoaded()) { handlers.add(new WirelessHandler(CuriosIntegration.getFlatStacks(player), NOT_EMPTY)); } + if (WirelessType.INVENTORY.isActivated(wirelessMode) && FluxConfig.enableWirelessMainInventory) { + handlers.add(new WirelessHandler(inventory.items.subList(Inventory.getSelectionSize(), Inventory.INVENTORY_SIZE), NOT_EMPTY)); + } if (!handlers.isEmpty()) { mPlayers.put(player, handlers); } diff --git a/src/main/java/sonar/fluxnetworks/register/Messages.java b/src/main/java/sonar/fluxnetworks/register/Messages.java index 07986575..59720528 100644 --- a/src/main/java/sonar/fluxnetworks/register/Messages.java +++ b/src/main/java/sonar/fluxnetworks/register/Messages.java @@ -9,6 +9,7 @@ import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.thread.BlockableEventLoop; import net.minecraft.world.entity.player.Player; +import sonar.fluxnetworks.FluxConfig; import sonar.fluxnetworks.FluxNetworks; import sonar.fluxnetworks.api.FluxConstants; import sonar.fluxnetworks.api.device.IFluxDevice; @@ -656,18 +657,23 @@ private static void onWirelessMode(FriendlyByteBuf payload, Supplier> WirelessType.INVENTORY.ordinal() & 1) == 1) && !FluxConfig.enableWirelessMainInventory) { + newWirelessMode ^= 1 << WirelessType.INVENTORY.ordinal(); + response(token, 0, FluxConstants.RESPONSE_BANNED_WIRELESS_MAIN, p); + } // allow set to invalid boolean reject = network.isValid() && (checkTokenFailed(token, p, network) || network.getMemberByUUID(p.getUUID()) == null); if (reject) { - if (WirelessType.ENABLE_WIRELESS.isActivated(wirelessMode)) { + if (WirelessType.ENABLE_WIRELESS.isActivated(newWirelessMode)) { response(token, 0, FluxConstants.RESPONSE_REJECT, p); } else { - fp.setWirelessMode(wirelessMode); + fp.setWirelessMode(newWirelessMode); syncCapability(p); } } else { - fp.setWirelessMode(wirelessMode); + fp.setWirelessMode(newWirelessMode); fp.setWirelessNetwork(wirelessNetwork); syncCapability(p); } diff --git a/src/main/resources/assets/fluxnetworks/lang/de_de.json b/src/main/resources/assets/fluxnetworks/lang/de_de.json index 27840b6d..65074e04 100644 --- a/src/main/resources/assets/fluxnetworks/lang/de_de.json +++ b/src/main/resources/assets/fluxnetworks/lang/de_de.json @@ -78,6 +78,7 @@ "gui.fluxnetworks.response.invaliduser": "Der Nutzer ist ungültig", "gui.fluxnetworks.response.invalidpassword": "Das Passwort ist ungültig", "gui.fluxnetworks.response.bannedloading": "Chunk laden ist auf diesen Server verboten", + "gui.fluxnetworks.response.bannedwirelessmain": "Das drahtlose Laden von Gegenständen im Hauptinventar ist auf diesem Server deaktiviert", "gui.fluxnetworks.label.sortby": "Sortiere nach", "gui.fluxnetworks.label.selected": "%s Item(s) Ausgewählt", @@ -114,7 +115,7 @@ "gui.fluxnetworks.button.connect": "Verbinden", "gui.fluxnetworks.button.delete": "Löschen", - "gui.fluxnetworks.slot.main": "Hauptinventar (Deaktiviert)", + "gui.fluxnetworks.slot.main": "Hauptinventar", "gui.fluxnetworks.slot.hotbar": "Schnellauswahlslots", "gui.fluxnetworks.slot.mainhand": "Haupt Hand", "gui.fluxnetworks.slot.offhand": "Neben Hand", diff --git a/src/main/resources/assets/fluxnetworks/lang/en_us.json b/src/main/resources/assets/fluxnetworks/lang/en_us.json index 0da70bf5..9e293117 100644 --- a/src/main/resources/assets/fluxnetworks/lang/en_us.json +++ b/src/main/resources/assets/fluxnetworks/lang/en_us.json @@ -79,6 +79,7 @@ "gui.fluxnetworks.response.invaliduser": "The user is invalid", "gui.fluxnetworks.response.invalidpassword": "The password is invalid", "gui.fluxnetworks.response.bannedloading": "Chunk loading is banned on this server", + "gui.fluxnetworks.response.bannedwirelessmain": "Wireless charging of items in the main inventory is disabled on this server", "gui.fluxnetworks.label.sortby": "Sort by", "gui.fluxnetworks.label.selected": "%s Item(s) Selected", @@ -116,7 +117,7 @@ "gui.fluxnetworks.button.connect": "Connect", "gui.fluxnetworks.button.delete": "Delete", - "gui.fluxnetworks.slot.main": "Main Inventory (Disabled)", + "gui.fluxnetworks.slot.main": "Main Inventory", "gui.fluxnetworks.slot.hotbar": "Hotbar Slots", "gui.fluxnetworks.slot.mainhand": "Main Hand", "gui.fluxnetworks.slot.offhand": "Off Hand", diff --git a/src/main/resources/assets/fluxnetworks/lang/ja_jp.json b/src/main/resources/assets/fluxnetworks/lang/ja_jp.json index 9280937a..a80f770f 100644 --- a/src/main/resources/assets/fluxnetworks/lang/ja_jp.json +++ b/src/main/resources/assets/fluxnetworks/lang/ja_jp.json @@ -79,6 +79,7 @@ "gui.fluxnetworks.response.invaliduser": "ユーザーが無効です。", "gui.fluxnetworks.response.invalidpassword": "パスワードが無効です", "gui.fluxnetworks.response.bannedloading": "このサーバーではチャンクのロードが禁止されています。", + "gui.fluxnetworks.response.bannedwirelessmain": "このサーバーでは、メインインベントリ内のアイテムのワイヤレス充電は無効化されています", "gui.fluxnetworks.label.sortby": "並べ替え", "gui.fluxnetworks.label.selected": "%sアイテムが選択されました", @@ -116,7 +117,7 @@ "gui.fluxnetworks.button.connect": "接続", "gui.fluxnetworks.button.delete": "削除", - "gui.fluxnetworks.slot.main": "メインインベントリ(無効)", + "gui.fluxnetworks.slot.main": "メインインベントリ", "gui.fluxnetworks.slot.hotbar": "ホットバースロット", "gui.fluxnetworks.slot.mainhand": "メインハンド", "gui.fluxnetworks.slot.offhand": "オフハンド", diff --git a/src/main/resources/assets/fluxnetworks/lang/pt_br.json b/src/main/resources/assets/fluxnetworks/lang/pt_br.json index 805c5aa5..56ab9660 100644 --- a/src/main/resources/assets/fluxnetworks/lang/pt_br.json +++ b/src/main/resources/assets/fluxnetworks/lang/pt_br.json @@ -79,6 +79,7 @@ "gui.fluxnetworks.response.invaliduser": "Usuário inválido selecionado", "gui.fluxnetworks.response.invalidpassword": "Formato de senha errado, tem de ser um dígito ou letra", "gui.fluxnetworks.response.bannedloading": "Carregamento de Chunks foi banido desse servidor", + "gui.fluxnetworks.response.bannedwirelessmain": "O carregamento sem fio de itens no inventário principal está desativado neste servidor", "gui.fluxnetworks.label.sortby": "Ordenar por", "gui.fluxnetworks.label.selected": "%s Item(s) Selecionado", @@ -116,7 +117,7 @@ "gui.fluxnetworks.button.connect": "Conectar", "gui.fluxnetworks.button.delete": "Deletar", - "gui.fluxnetworks.slot.main": "Inventário Principal (Desabilitado)", + "gui.fluxnetworks.slot.main": "Inventário Principal", "gui.fluxnetworks.slot.hotbar": "Espaços da Hotbar", "gui.fluxnetworks.slot.mainhand": "Mão principal", "gui.fluxnetworks.slot.offhand": "Fora da mão", diff --git a/src/main/resources/assets/fluxnetworks/lang/ru_ru.json b/src/main/resources/assets/fluxnetworks/lang/ru_ru.json index 6c3aa827..9c26d7bd 100644 --- a/src/main/resources/assets/fluxnetworks/lang/ru_ru.json +++ b/src/main/resources/assets/fluxnetworks/lang/ru_ru.json @@ -79,6 +79,7 @@ "gui.fluxnetworks.response.invaliduser": "Выбран неверный пользователь", "gui.fluxnetworks.response.invalidpassword": "Неверный формат пароля, должен быть цифрой или буквой", "gui.fluxnetworks.response.bannedloading": "Загрузка чанка была заблокирована с сервера", + "gui.fluxnetworks.response.bannedwirelessmain": "Беспроводная зарядка предметов в основном инвентаре отключена на этом сервере", "gui.fluxnetworks.label.sortby": "Сортировать по", "gui.fluxnetworks.label.selected": "%s Item(s) Выбрано", @@ -116,7 +117,7 @@ "gui.fluxnetworks.button.connect": "Соединить", "gui.fluxnetworks.button.delete": "Удалить", - "gui.fluxnetworks.slot.main": "Основной инвентарь (отключено)", + "gui.fluxnetworks.slot.main": "Основной инвентарь", "gui.fluxnetworks.slot.hotbar": "Слоты горячей панели", "gui.fluxnetworks.slot.mainhand": "Main Hand", "gui.fluxnetworks.slot.offhand": "Off Hand", diff --git a/src/main/resources/assets/fluxnetworks/lang/tr_tr.json b/src/main/resources/assets/fluxnetworks/lang/tr_tr.json index 46fcd658..25e57fc9 100644 --- a/src/main/resources/assets/fluxnetworks/lang/tr_tr.json +++ b/src/main/resources/assets/fluxnetworks/lang/tr_tr.json @@ -79,6 +79,7 @@ "gui.fluxnetworks.response.invaliduser": "Geçersiz kullanıcı", "gui.fluxnetworks.response.invalidpassword": "Geçersiz şifre", "gui.fluxnetworks.response.bannedloading": "Yığın yükleme bu sunucuda yasaklanmıştır", + "gui.fluxnetworks.response.bannedwirelessmain": "Bu sunucuda ana envanterdeki öğelerin kablosuz şarjı devre dışıdır", "gui.fluxnetworks.label.sortby": "Sıralama Ölçütü", "gui.fluxnetworks.label.selected": "%s Eşya Seçildi", @@ -116,7 +117,7 @@ "gui.fluxnetworks.button.connect": "Bağlan", "gui.fluxnetworks.button.delete": "Sil", - "gui.fluxnetworks.slot.main": "Ana Envanter (Devre Dışı)", + "gui.fluxnetworks.slot.main": "Ana Envanter", "gui.fluxnetworks.slot.hotbar": "Araç Çubuğu Yuvaları", "gui.fluxnetworks.slot.mainhand": "Ana El", "gui.fluxnetworks.slot.offhand": "Diğer El", diff --git a/src/main/resources/assets/fluxnetworks/lang/vi_vn.json b/src/main/resources/assets/fluxnetworks/lang/vi_vn.json index d9bfe94f..d0e40843 100644 --- a/src/main/resources/assets/fluxnetworks/lang/vi_vn.json +++ b/src/main/resources/assets/fluxnetworks/lang/vi_vn.json @@ -78,7 +78,8 @@ "gui.fluxnetworks.response.hascontroller": "Hệ thống này đã có sẵn một Bộ Điều Khiển Thông Lượng", "gui.fluxnetworks.response.invaliduser": "Người dùng không hợp lệ", "gui.fluxnetworks.response.invalidpassword": "Mật khẩu không hợp lệ", - "gui.fluxnetworks.response.bannedloading": "Chunk loading is banned on this server", + "gui.fluxnetworks.response.bannedloading": "Việc tải từng phần bị cấm trên máy chủ này", + "gui.fluxnetworks.response.bannedwirelessmain": "Chức năng sạc không dây cho các vật phẩm trong kho chính đã bị vô hiệu hóa trên máy chủ này", "gui.fluxnetworks.label.sortby": "Sắp xếp theo", "gui.fluxnetworks.label.selected": "%s Đồ Vật Được Chọn", @@ -116,7 +117,7 @@ "gui.fluxnetworks.button.connect": "Kết Nối", "gui.fluxnetworks.button.delete": "Xóa", - "gui.fluxnetworks.slot.main": "Kho Đồ Chính (Tắt)", + "gui.fluxnetworks.slot.main": "Kho Đồ Chính", "gui.fluxnetworks.slot.hotbar": "Vị Trí Hotbar", "gui.fluxnetworks.slot.mainhand": "Tay Chính", "gui.fluxnetworks.slot.offhand": "Tay Phụ", diff --git a/src/main/resources/assets/fluxnetworks/lang/zh_cn.json b/src/main/resources/assets/fluxnetworks/lang/zh_cn.json index 2bf51a68..dc353d33 100644 --- a/src/main/resources/assets/fluxnetworks/lang/zh_cn.json +++ b/src/main/resources/assets/fluxnetworks/lang/zh_cn.json @@ -79,6 +79,7 @@ "gui.fluxnetworks.response.invaliduser": "无效的用户", "gui.fluxnetworks.response.invalidpassword": "无效的密码", "gui.fluxnetworks.response.bannedloading": "服务器禁用了区块加载", + "gui.fluxnetworks.response.bannedwirelessmain": "本服务器已禁用主物品栏内物品的无线充电功能", "gui.fluxnetworks.label.sortby": "分类方式", "gui.fluxnetworks.label.selected": "已选择 %s 个项目", @@ -116,7 +117,7 @@ "gui.fluxnetworks.button.connect": "连接", "gui.fluxnetworks.button.delete": "删除", - "gui.fluxnetworks.slot.main": "主物品栏(已禁用)", + "gui.fluxnetworks.slot.main": "主物品栏", "gui.fluxnetworks.slot.hotbar": "快捷栏", "gui.fluxnetworks.slot.mainhand": "主手", "gui.fluxnetworks.slot.offhand": "副手", diff --git a/src/main/resources/assets/fluxnetworks/lang/zh_tw.json b/src/main/resources/assets/fluxnetworks/lang/zh_tw.json index eb17adde..12707dcc 100644 --- a/src/main/resources/assets/fluxnetworks/lang/zh_tw.json +++ b/src/main/resources/assets/fluxnetworks/lang/zh_tw.json @@ -79,6 +79,7 @@ "gui.fluxnetworks.response.invaliduser": "無效的使用者", "gui.fluxnetworks.response.invalidpassword": "無效的密碼", "gui.fluxnetworks.response.bannedloading": "伺服器已停用區塊載入功能", + "gui.fluxnetworks.response.bannedwirelessmain": "本伺服器已停用主物品欄內物品的無線充電功能", "gui.fluxnetworks.label.sortby": "排序方式", "gui.fluxnetworks.label.selected": "已選擇 %s 個物品", @@ -116,7 +117,7 @@ "gui.fluxnetworks.button.connect": "連接", "gui.fluxnetworks.button.delete": "刪除", - "gui.fluxnetworks.slot.main": "主物品欄(已停用)", + "gui.fluxnetworks.slot.main": "主物品欄", "gui.fluxnetworks.slot.hotbar": "快捷欄", "gui.fluxnetworks.slot.mainhand": "慣用手", "gui.fluxnetworks.slot.offhand": "非慣用手",