From 29d0edf230187b7e60bafc8eedc2472f346b57c0 Mon Sep 17 00:00:00 2001 From: Sakura Ryoko Date: Thu, 25 Jul 2024 22:44:24 -0400 Subject: [PATCH] fix: when using mods on servers via BungeeCord, and the JSON files are not loaded / saved in between worlds. --- gradle.properties | 2 +- .../malilib/mixin/MixinMinecraftClient.java | 16 ++ .../resources/assets/malilib/lang/ru_ru.json | 137 ------------------ .../resources/assets/malilib/lang/tr_tr.json | 137 ------------------ 4 files changed, 17 insertions(+), 275 deletions(-) delete mode 100644 src/main/resources/assets/malilib/lang/ru_ru.json delete mode 100644 src/main/resources/assets/malilib/lang/tr_tr.json diff --git a/gradle.properties b/gradle.properties index 94ee19837..c31091169 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,7 +9,7 @@ author = masa mod_file_name = malilib-fabric # Current mod version -mod_version = 0.20.0 +mod_version = 0.20.2 # Minecraft, Fabric Loader and API and mappings versions minecraft_version_out = 1.21 diff --git a/src/main/java/fi/dy/masa/malilib/mixin/MixinMinecraftClient.java b/src/main/java/fi/dy/masa/malilib/mixin/MixinMinecraftClient.java index b71e9765f..47fdff15e 100644 --- a/src/main/java/fi/dy/masa/malilib/mixin/MixinMinecraftClient.java +++ b/src/main/java/fi/dy/masa/malilib/mixin/MixinMinecraftClient.java @@ -2,6 +2,7 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @@ -25,6 +26,7 @@ public abstract class MixinMinecraftClient @Shadow public ClientWorld world; + @Unique private ClientWorld worldBefore; @Inject(method = "(Lnet/minecraft/client/RunArgs;)V", at = @At("RETURN")) @@ -72,6 +74,20 @@ private void onLoadWorldPost(ClientWorld worldClientIn, DownloadingTerrainScreen } } + @Inject(method = "enterReconfiguration(Lnet/minecraft/client/gui/screen/Screen;)V", at = @At("HEAD")) + private void onReconfigurationPre(Screen screen, CallbackInfo ci) + { + this.worldBefore = this.world; + ((WorldLoadHandler) WorldLoadHandler.getInstance()).onWorldLoadPre(this.worldBefore, null, (MinecraftClient)(Object) this); + } + + @Inject(method = "enterReconfiguration(Lnet/minecraft/client/gui/screen/Screen;)V", at = @At("RETURN")) + private void onReconfigurationPost(Screen screen, CallbackInfo ci) + { + ((WorldLoadHandler) WorldLoadHandler.getInstance()).onWorldLoadPost(this.worldBefore, null, (MinecraftClient)(Object) this); + this.worldBefore = null; + } + @Inject(method = "disconnect(Lnet/minecraft/client/gui/screen/Screen;Z)V", at = @At("HEAD")) private void onDisconnectPre(Screen screen, boolean bl, CallbackInfo ci) { diff --git a/src/main/resources/assets/malilib/lang/ru_ru.json b/src/main/resources/assets/malilib/lang/ru_ru.json deleted file mode 100644 index 77e41a6fb..000000000 --- a/src/main/resources/assets/malilib/lang/ru_ru.json +++ /dev/null @@ -1,137 +0,0 @@ -{ - "malilib.config.name.ignoredKeys": "игнорируютсяКлючи", - "malilib.config.name.openGuiConfigs": "openGuiConfigs", - "malilib.config.name.realmsCommonConfig": "областиCommonConfig", - "malilib.config.name.debugMessages": "отладочные сообщения", - "malilib.config.name.inputCancellationDebugging": "Отмена ввода Отладка", - "malilib.config.name.keybindDebugging": "привязка клавиш Отладка", - "malilib.config.name.keybindDebuggingIngame": "привязка клавишОтладкаВ игре", - "malilib.config.name.mouseScrollDebug": "мышьScrollDebug", - - "malilib.config.comment.ignoredKeys": "Любые установленные здесь клавиши будут полностью игнорироваться", - "malilib.config.comment.openGuiConfigs": "Откройте внутриигровой графический интерфейс конфигурации Malilib", - "malilib.config.comment.realmsCommonConfig": "Следует ли использовать общее имя файла конфигурации для всех серверов областей.\nЕсли эта опция отключена, то IP-адрес и порт сервера используются в именах генерируемых файлов конфигурации.\nОднако, судя по всему, адреса серверов Realms регулярно меняются, поэтому имена конфигов будут меняться\nвсе время, и поэтому конфигурации не сохранялись должным образом.\nТак что в основном оставляйте это включенным, если вы играете только на одном сервере Realms.\nЕсли вы играете на нескольких Realms... то конфигурации все равно будут перепутаны.\nЕсли вы не играете на разных серверах в разных экземплярах Minecraft\nчтобы конфигурации были разделены экземпляром Minecraft.", - "malilib.config.comment.debugMessages": "Если этот параметр включен, события уровня отладки\nпечатаются в игровой консоли/журнале", - "malilib.config.comment.inputCancellationDebugging": "При включении отображается причина/источник отмены.\nдля ввода (клавиатура и мышь) распечатывается", - "malilib.config.comment.keybindDebugging": "Если эта функция включена, нажатия клавиш и удержание клавиш\nраспечатывается на игровой консоли (и на панели действий, если она включена)", - "malilib.config.comment.keybindDebuggingIngame": "Если включено, то сообщения от «keybindDebugging»\nтакже печатаются на внутриигровой панели действий.", - "malilib.config.comment.mouseScrollDebug": "Если включено, некоторые значения отладки при прокрутке мыши.\nпечатаются в игровой консоли/журнале", - - "malilib.config.comment.keybind_settings.activate_on": "Активируется ли действие при нажатии\nили отпускании сочетания клавиш", - "malilib.config.comment.keybind_settings.allow_empty_keybind": "Если сочетание клавиш не задано, другие\nсочетания всегда будут считать его активным,\n если их срабатывание требует его активации", - "malilib.config.comment.keybind_settings.allow_extra_keys": "Можно ли удерживать сторонние клавиши\nво время нажатия сочетания", - "malilib.config.comment.keybind_settings.cancel_further": "Отключает обработку игрой последней клавиши сочетания,\nчтобы избежать двойного срабатывания клавиши\n(напимер, при открытии окна с поиском)", - "malilib.config.comment.keybind_settings.context": "Срабатывает ли сочетание клавиш в\nигре или в графическом интерфейсе", - "malilib.config.comment.keybind_settings.exclusive": "Другие сочетания клавиш будут блокироваться,\nпока все клавиши этого сочетания не будут отпущены", - "malilib.config.comment.keybind_settings.order_sensitive": "Сочетание клавиш будет срабатывать только\nпри определённой последовательности нажатий", - - "malilib.error.failed_to_create_directory": "Не удалось создать папку '%s'", - "malilib.error.file_or_directory_already_exists": "Файл или папка '%s' уже существует", - "malilib.error.invalid_directory": "Неверное имя папки '%s'", - "malilib.error.invalid_block_blacklist_entry": "Некорректный блок в чёрном или белом списке: '%s'", - "malilib.error.invalid_item_blacklist_entry": "Некорректное имя предмета в чёрном или белом списке: '%s'", - - "malilib.gui.button.cancel": "Отменить", - "malilib.gui.button.ok": "ОК", - "malilib.gui.button.reset": "Сброс", - "malilib.gui.button.reset.caps": "Сброс", - - "malilib.gui.button.render_layers_gui.axis": "Ось: %s", - "malilib.gui.button.render_layers_gui.layers": "Слои: %s", - "malilib.gui.button.render_layers_gui.set_here": "Установить на текущей высоте", - - "malilib.gui.button.hover.directory_widget.create_directory": "Создать новую папку", - "malilib.gui.button.hover.directory_widget.root": "В корневую папку", - "malilib.gui.button.hover.directory_widget.up": "На уровень вверх", - "malilib.gui.button.hover.hold_shift_for_info": "§oУдерживайте Shift для получения дополнительной информации§r", - "malilib.gui.button.hover.plus_minus_tip": "ЛКМ для увеличения\nПКМ для уменьшения\nShift и/или Alt для увеличения размера шага", - - "malilib.gui.label.block_snap.center": "Центр", - "malilib.gui.label.block_snap.corner": "Угол", - "malilib.gui.label.block_snap.none": "Нет", - - "malilib.gui.label_colored.off": "§cВыкл§r", - "malilib.gui.label_colored.on": "§aВкл§r", - - "malilib.gui.label.color_editor.current_color": "Текущий цвет:", - - "malilib.gui.label.keybind_settings.activate_on": "Активация", - "malilib.gui.label.keybind_settings.allow_empty_keybind": "Не задано = всегда активно", - "malilib.gui.label.keybind_settings.allow_extra_keys": "Игнорировать другие клавиши", - "malilib.gui.label.keybind_settings.cancel_further": "Прерывать повторное срабатывание", - "malilib.gui.label.keybind_settings.context": "Условия активации", - "malilib.gui.label.keybind_settings.exclusive": "Обособленность", - "malilib.gui.label.keybind_settings.order_sensitive": "Строгий порядок нажатия", - "malilib.gui.label.keybind_settings.tips": "- ЛКМ, чтобы настроить\n- ПКМ, чтобы сбросить по умолчанию", - "malilib.gui.label.keybind_settings.title_advanced_keybind_settings": "Расширенные настройки привязки клавиш", - - "malilib.gui.label.layer_mode.all": "Все слои", - "malilib.gui.label.layer_mode.all_above": "Все выше", - "malilib.gui.label.layer_mode.all_below": "Все ниже", - "malilib.gui.label.layer_mode.layer_range": "Диапазон слоёв", - "malilib.gui.label.layer_mode.single_layer": "Один слой", - - "malilib.label.message_output_type.none": "Никто", - "malilib.label.message_output_type.actionbar": "Панель действий", - "malilib.label.message_output_type.message": "Сообщение", - - "malilib.gui.label.no": "Нет", - "malilib.gui.label.yes": "Да", - - "malilib.gui.label.render_layers.layer": "Слой", - "malilib.gui.label.render_layers.layer_max": "Максимальный слой", - "malilib.gui.label.render_layers.layer_min": "Минимальный слой", - - "malilib.gui.title.all_hotkeys": "Все зарегистрированные клавиши", - "malilib.gui.title.color_editor": "Редактор цвета", - "malilib.gui.title.configs": "Настройки Malilib - %s", - "malilib.gui.title.create_directory": "Создать новую папку", - "malilib.gui.title.debug": "Отладка", - "malilib.gui.title.generic": "Общие", - "malilib.gui.title.keybind_settings.advanced": "Расширенные настройки клавиш для %s", - "malilib.gui.title.color_list_edit": "Изменить список цветов для '%s'", - "malilib.gui.title.string_list_edit": "Изменить список строк для '%s'", - - "malilib.hover.color_indicator.open_color_editor": "Открыть редактор цветов", - "malilib.label.active_mode.always": "Всегда", - "malilib.label.active_mode.never": "Никогда", - "malilib.label.active_mode.with_key": "С клавишей", - - "malilib.label.key_action.both": "Оба", - "malilib.label.key_action.press": "При нажатии", - "malilib.label.key_action.release": "При отпускании", - - "malilib.label.key_context.any": "Везде", - "malilib.label.key_context.gui": "Только в меню", - "malilib.label.key_context.ingame": "Только в игре", - - "malilib.label.list_type.blacklist": "Чёрный список", - "malilib.label.list_type.none": "Нет", - "malilib.label.list_type.whitelist": "Белый список", - - "malilib.label.alignment.top_left": "Сверху слева", - "malilib.label.alignment.top_right": "Сверху справа", - "malilib.label.alignment.bottom_left": "Снизу слева", - "malilib.label.alignment.bottom_right": "Снизу справа", - "malilib.label.alignment.center": "По центру", - - "malilib.message.directory_created": "Папка '%s' создана", - "malilib.message.toggled": "Переключён %s %s", - "malilib.message.value.off": "Выкл", - "malilib.message.value.on": "Вкл", - - "malilib.message.formatting_code.error": "§c", - "malilib.message.formatting_code.info": "§f", - "malilib.message.formatting_code.success": "§a", - "malilib.message.formatting_code.warning": "§6", - - "malilib.message.layer_range.range_max": "максимальный", - "malilib.message.layer_range.range_min": "минимальный", - "malilib.message.moved_layer_range": "Смещён весь диапазон слоёв по §a%s§r на §a%s§r оси", - "malilib.message.moved_layer_range_boundary": "Смещён диапазон слоёв §a%s§r на §a%s§r по §a%s§r оси", - "malilib.message.moved_max_layer_to": "Смещён максимальный слой на %s", - "malilib.message.moved_min_layer_to": "Смещён минимальный слой на %s", - "malilib.message.set_layer_axis_to": "Установлена ось слоя на %s", - "malilib.message.set_layer_mode_to": "Установлен режим слоя на %s", - "malilib.message.set_layer_to": "Установлен слой на %s" -} diff --git a/src/main/resources/assets/malilib/lang/tr_tr.json b/src/main/resources/assets/malilib/lang/tr_tr.json deleted file mode 100644 index b4c495bac..000000000 --- a/src/main/resources/assets/malilib/lang/tr_tr.json +++ /dev/null @@ -1,137 +0,0 @@ -{ - "malilib.config.name.ignoredKeys": "göz ardı edilenAnahtarlar", - "malilib.config.name.openGuiConfigs": "openGuiConfig'leri", - "malilib.config.name.realmsCommonConfig": "realmsCommonConfig", - "malilib.config.name.debugMessages": "hata ayıklamaMesajlar", - "malilib.config.name.inputCancellationDebugging": "Giriş İptali Hata Ayıklama", - "malilib.config.name.keybindDebugging": "tuş ataması hata ayıklaması", - "malilib.config.name.keybindDebuggingIngame": "tuş bağlamaHata ayıklamaOyun içi", - "malilib.config.name.mouseScrollDebug": "fareKaydırmaHata Ayıklama", - - "malilib.config.comment.ignoredKeys": "Burada ayarlanan tuşlar tamamen göz ardı edilecek", - "malilib.config.comment.openGuiConfigs": "Oyun içi malilib yapılandırma GUI'sini açın", - "malilib.config.comment.realmsCommonConfig": "Tüm bölge sunucuları için ortak bir yapılandırma dosyası adının kullanılıp kullanılmayacağı.\nBu devre dışı bırakılırsa, oluşturulan yapılandırma dosyası adlarında sunucu IP'si ve bağlantı noktası kullanılır.\nAncak görünen o ki Realms sunucu adresleri düzenli olarak değişiyor, dolayısıyla yapılandırma adları da değişiyor\nher zaman ve bu nedenle yapılandırmalar düzgün şekilde kaydedilmez.\nDolayısıyla, yalnızca bir Realms sunucusunda oynuyorsanız, temel olarak bunu etkin bırakın.\nBirden fazla Bölgede oynuyorsanız... o zaman yapılandırmalar ne olursa olsun karışacaktır.\nFarklı Minecraft örneklerinde farklı sunucularda oynamadığınız sürece\nYapılandırmaları Minecraft örneğiyle ayrı tutmak için.", - "malilib.config.comment.debugMessages": "Etkinleştirildiğinde, hata ayıklama düzeyindeki olaylar\noyun konsoluna/günlüğe yazdırılır", - "malilib.config.comment.inputCancellationDebugging": "Etkinleştirildiğinde iptal nedeni/kaynağı\ngirişler için (klavye ve fare) yazdırılır", - "malilib.config.comment.keybindDebugging": "Etkinleştirildiğinde, tuşlara basılması ve basılı tutulan tuşlar\noyun konsoluna (ve etkinse işlem çubuğuna) yazdırılır", - "malilib.config.comment.keybindDebuggingIngame": "Etkinleştirilirse, 'keybindDebugging'den gelen mesajlar\nayrıca oyun içi aksiyon çubuğuna da yazdırılır", - "malilib.config.comment.mouseScrollDebug": "Etkinleştirilirse, fare kaydırmasından bazı hata ayıklama değerleri\noyun konsoluna/günlüğe yazdırılır", - - "malilib.config.comment.keybind_settings.activate_on": "Tuş ataması, tuş kombinasyonunun basımında mı yoksa bırakımında mı aktif oluyor", - "malilib.config.comment.keybind_settings.allow_empty_keybind": "Boş tuş ataması geçerli mi\n(her zaman aktif olarak varsayılacak)", - "malilib.config.comment.keybind_settings.allow_extra_keys": "Tuş atamasını etkileştirmek için ekstra tuşların basılı tutulması mı gerekiyor", - "malilib.config.comment.keybind_settings.cancel_further": "Tuş ataması aktif iken, en son basılan\n tuşun işlenmesini iptal et", - "malilib.config.comment.keybind_settings.context": "Tuş ataması, oyunda mı yoksa arayüz ekranında mı aktifleştirilebilir", - "malilib.config.comment.keybind_settings.exclusive": "Eğer doğruysa, söz konusu tuş atamasından önce\n diğer tüm tuş atamaları hiç aktifleştirilmeyecek\nTüm tuşlar bırakıldığında, bu check sıfırlanacak.", - "malilib.config.comment.keybind_settings.order_sensitive": "Tuş atamasındaki tuşlar tanımlanmış şekildeki sıraya göre mi basılmalı", - - "malilib.error.failed_to_create_directory": "'%s' dizininin yaratımı başarısız", - "malilib.error.file_or_directory_already_exists": "'%s' dosyası veya dizini zaten var", - "malilib.error.invalid_directory": "Geçersiz dizin ismi: '%s'", - "malilib.error.invalid_block_blacklist_entry": "Kara veya beyaz listede geçersiz engel: '%s'", - "malilib.error.invalid_item_blacklist_entry": "Kara veya beyaz listede gecersiz eşya ismi: '%s'", - - "malilib.gui.button.cancel": "İptal", - "malilib.gui.button.ok": "Tamam", - "malilib.gui.button.reset": "Sıfırla", - "malilib.gui.button.reset.caps": "SIFIRLA", - - "malilib.gui.button.render_layers_gui.axis": "Eksen: %s", - "malilib.gui.button.render_layers_gui.layers": "Katmanlar: %s", - "malilib.gui.button.render_layers_gui.set_here": "Buraya Ayarla", - - "malilib.gui.button.hover.directory_widget.create_directory": "Yeni dizin/klasör yarat", - "malilib.gui.button.hover.directory_widget.root": "Kök dizinine", - "malilib.gui.button.hover.directory_widget.up": "Ebeveyn dizinine", - "malilib.gui.button.hover.hold_shift_for_info": "§oDaha fazla bilgi için Shift'e basılı tut§r", - "malilib.gui.button.hover.plus_minus_tip": "Arttırmak için sol tık\nAzaltmak için sağ tık\nAdım boyutunu arttırmak için Shift ve/veya Alt", - - "malilib.gui.label.block_snap.center": "Merkez", - "malilib.gui.label.block_snap.corner": "Köşe", - "malilib.gui.label.block_snap.none": "Yok", - - "malilib.gui.label_colored.off": "§cKAPALI§r", - "malilib.gui.label_colored.on": "§aAÇIK§r", - - "malilib.gui.label.color_editor.current_color": "Mevcut renk:", - - "malilib.gui.label.keybind_settings.activate_on": "Etkin", - "malilib.gui.label.keybind_settings.allow_empty_keybind": "Boş tuş atamaya izin ver", - "malilib.gui.label.keybind_settings.allow_extra_keys": "Ekstra tuşlara izin ver", - "malilib.gui.label.keybind_settings.cancel_further": "Daha fazla işlemi iptal et", - "malilib.gui.label.keybind_settings.context": "Kullanım Alanı", - "malilib.gui.label.keybind_settings.exclusive": "Özel", - "malilib.gui.label.keybind_settings.order_sensitive": "Sıralama Hassasiyeti", - "malilib.gui.label.keybind_settings.tips": "- Ayarlama yapmak için sol tık\n- Varsayılana dönmek için sağ tık", - "malilib.gui.label.keybind_settings.title_advanced_keybind_settings": "Gelişmiş Tuş Atama Ayarları", - - "malilib.gui.label.layer_mode.all": "Hepsi", - "malilib.gui.label.layer_mode.all_above": "Hepsinin Üstü", - "malilib.gui.label.layer_mode.all_below": "Hepsinin Altı", - "malilib.gui.label.layer_mode.layer_range": "Katman Aralığı", - "malilib.gui.label.layer_mode.single_layer": "Tek Katman", - - "malilib.label.message_output_type.none": "Hiçbiri", - "malilib.label.message_output_type.actionbar": "Eylem Çubuğu", - "malilib.label.message_output_type.message": "İleti", - - "malilib.gui.label.no": "hayır", - "malilib.gui.label.yes": "evet", - - "malilib.gui.label.render_layers.layer": "Katman", - "malilib.gui.label.render_layers.layer_max": "En üst katman", - "malilib.gui.label.render_layers.layer_min": "En alt katman", - - "malilib.gui.title.all_hotkeys": "Tüm kayıtlı tuş kısayolları", - "malilib.gui.title.color_editor": "Renk Düzenleyici", - "malilib.gui.title.configs": "malilib Ayarları - %s", - "malilib.gui.title.create_directory": "Yeni bir dizin yarat", - "malilib.gui.title.debug": "Hata Ayıklama", - "malilib.gui.title.generic": "Genel", - "malilib.gui.title.keybind_settings.advanced": "%s için Gelişmiş Tuş Atama Ayarları", - "malilib.gui.title.string_list_edit": "'%s' için dizilim listesini", - "malilib.gui.title.color_list_edit": "Şunun için renk listesini düzenle '%s'", - - "malilib.hover.color_indicator.open_color_editor": "Renk Düzenleyiciyi Aç", - "malilib.label.active_mode.always": "Her Zaman", - "malilib.label.active_mode.never": "Asla", - "malilib.label.active_mode.with_key": "Bir Tuş İle", - - "malilib.label.key_action.both": "İKİSİ", - "malilib.label.key_action.press": "BASIM", - "malilib.label.key_action.release": "BIRAKIM", - - "malilib.label.key_context.any": "Herhangi", - "malilib.label.key_context.gui": "Arayüz Menüsü", - "malilib.label.key_context.ingame": "Oyun İçi", - - "malilib.label.list_type.blacklist": "Kara Liste", - "malilib.label.list_type.none": "Yok", - "malilib.label.list_type.whitelist": "Beyaz Liste", - - "malilib.label.alignment.top_left": "Sol Üst", - "malilib.label.alignment.top_right": "Sağ Üst", - "malilib.label.alignment.bottom_left": "Sol Alt", - "malilib.label.alignment.bottom_right": "Sağ Alt", - "malilib.label.alignment.center": "Merkez", - - "malilib.message.directory_created": "'%s' dizini yaratıldı", - "malilib.message.toggled": "%s %s Açıldı/Kapatıldı", - "malilib.message.value.off": "KAPA", - "malilib.message.value.on": "AÇ", - - "malilib.message.formatting_code.error": "§c", - "malilib.message.formatting_code.info": "§f", - "malilib.message.formatting_code.success": "§a", - "malilib.message.formatting_code.warning": "§6", - - "malilib.message.layer_range.range_max": "en çok", - "malilib.message.layer_range.range_min": "en az", - "malilib.message.moved_layer_range": "Bütün katman aralığı §a%s§r tarafından taşındı (§a%s§r ekseninde)", - "malilib.message.moved_layer_range_boundary": "Katman aralığı §a%s§r tarafından taşındı (§a%s§r ekseninde)", - "malilib.message.moved_max_layer_to": "En üst katman şuraya taşındı: %s", - "malilib.message.moved_min_layer_to": "En alt katman şuraya taşındı: %s", - "malilib.message.set_layer_axis_to": "Katman eksenini buna ayarla: %s", - "malilib.message.set_layer_mode_to": "Katman modunu buna ayarla: %s", - "malilib.message.set_layer_to": "Katmanı buna ayarla: %s" -}