From 9a74f6333e50bff18ac26b76e2a072a1b8109a45 Mon Sep 17 00:00:00 2001 From: FlorianMichael <60033407+FlorianMichael@users.noreply.github.com> Date: Wed, 29 Mar 2023 00:17:56 +0200 Subject: [PATCH] Implemented copy code action to bedrock login Fixed resource packs aren't loading Updated ViaBedrock Updated some translations --- build.gradle | 1 + .../ViaFabricPlusBlobCacheProvider.java | 7 +++-- .../settings/groups/BedrockSettings.java | 13 +++++++--- .../assets/viafabricplus/lang/en_us.json | 1 + .../assets/viafabricplus/lang/ja_jp.json | 26 ++++++++++++++++--- .../assets/viafabricplus/lang/uk_ua.json | 8 ++++++ 6 files changed, 45 insertions(+), 11 deletions(-) diff --git a/build.gradle b/build.gradle index 223a5398..873eaf26 100644 --- a/build.gradle +++ b/build.gradle @@ -75,6 +75,7 @@ dependencies { exclude group: "io.jsonwebtoken", module: "jjwt-impl" exclude group: "io.jsonwebtoken", module: "jjwt-gson" } + libs "io.netty:netty-codec-http:4.1.90.Final" // Some people don't know how to define dependencies properly in a build.gradle libs ("net.raphimc:MinecraftAuth:${project.minecraftauth_version}") { exclude group: "com.google.code.gson", module: "gson" exclude group: "org.slf4j", module: "slf4j-api" diff --git a/src/main/java/de/florianmichael/viafabricplus/protocolhack/provider/viabedrock/ViaFabricPlusBlobCacheProvider.java b/src/main/java/de/florianmichael/viafabricplus/protocolhack/provider/viabedrock/ViaFabricPlusBlobCacheProvider.java index d585af81..d27e8c17 100644 --- a/src/main/java/de/florianmichael/viafabricplus/protocolhack/provider/viabedrock/ViaFabricPlusBlobCacheProvider.java +++ b/src/main/java/de/florianmichael/viafabricplus/protocolhack/provider/viabedrock/ViaFabricPlusBlobCacheProvider.java @@ -17,7 +17,6 @@ */ package de.florianmichael.viafabricplus.protocolhack.provider.viabedrock; -import com.viaversion.viaversion.api.connection.UserConnection; import net.raphimc.viabedrock.protocol.providers.BlobCacheProvider; import java.util.HashMap; @@ -33,7 +32,7 @@ public class ViaFabricPlusBlobCacheProvider extends BlobCacheProvider { } @Override - public byte[] addBlob(final UserConnection user, final long hash, final byte[] compressedBlob) { + public byte[] addBlob(final long hash, final byte[] compressedBlob) { synchronized (this.blobs) { if (this.blobs.containsKey(hash)) { // In case the server overwrites a blob size -= this.blobs.get(hash).length; @@ -45,14 +44,14 @@ public class ViaFabricPlusBlobCacheProvider extends BlobCacheProvider { } @Override - public boolean hasBlob(final UserConnection user, final long hash) { + public boolean hasBlob(final long hash) { synchronized (this.blobs) { return this.blobs.containsKey(hash); } } @Override - public byte[] getBlob(final UserConnection user, final long hash) { + public byte[] getBlob(final long hash) { synchronized (this.blobs) { return this.blobs.get(hash); } diff --git a/src/main/java/de/florianmichael/viafabricplus/settings/groups/BedrockSettings.java b/src/main/java/de/florianmichael/viafabricplus/settings/groups/BedrockSettings.java index 34768abf..46057cb5 100644 --- a/src/main/java/de/florianmichael/viafabricplus/settings/groups/BedrockSettings.java +++ b/src/main/java/de/florianmichael/viafabricplus/settings/groups/BedrockSettings.java @@ -23,6 +23,7 @@ import de.florianmichael.viafabricplus.screen.settings.SettingsScreen; import de.florianmichael.viafabricplus.settings.base.SettingGroup; import de.florianmichael.viafabricplus.settings.type_impl.ButtonSetting; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.screen.ConfirmScreen; import net.minecraft.client.gui.screen.NoticeScreen; import net.minecraft.client.gui.screen.TitleScreen; import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen; @@ -41,10 +42,14 @@ public class BedrockSettings extends SettingGroup { public final ButtonSetting BEDROCK_ACCOUNT = new ButtonSetting(this, Text.translatable("bedrock.viafabricplus.set"), () -> CompletableFuture.runAsync(() -> { try { BedrockAccountHandler.INSTANCE.setAccount(MinecraftAuth.requestBedrockLogin(msaDeviceCode -> { - MinecraftClient.getInstance().execute(() -> MinecraftClient.getInstance().setScreen(new NoticeScreen(() -> { - MinecraftClient.getInstance().setScreen(SettingsScreen.get(new MultiplayerScreen(new TitleScreen()))); - Thread.currentThread().interrupt(); - }, Text.literal("Microsoft Bedrock login"), Text.translatable("bedrocklogin.viafabricplus.text", msaDeviceCode.userCode()), Text.translatable("words.viafabricplus.cancel"), false))); + MinecraftClient.getInstance().execute(() -> MinecraftClient.getInstance().setScreen(new ConfirmScreen(consumer -> { + if (consumer) { + MinecraftClient.getInstance().keyboard.setClipboard(msaDeviceCode.userCode()); + } else { + MinecraftClient.getInstance().setScreen(SettingsScreen.get(new MultiplayerScreen(new TitleScreen()))); + Thread.currentThread().interrupt(); + } + }, Text.literal("Microsoft Bedrock login"), Text.translatable("bedrocklogin.viafabricplus.text", msaDeviceCode.userCode()), Text.translatable("words.viafabricplus.copy"), Text.translatable("words.viafabricplus.cancel")))); try { Util.getOperatingSystem().open(new URI(msaDeviceCode.verificationUri())); } catch (URISyntaxException e) { diff --git a/src/main/resources/assets/viafabricplus/lang/en_us.json b/src/main/resources/assets/viafabricplus/lang/en_us.json index dbc45c81..ae77d9a1 100644 --- a/src/main/resources/assets/viafabricplus/lang/en_us.json +++ b/src/main/resources/assets/viafabricplus/lang/en_us.json @@ -11,6 +11,7 @@ "words.viafabricplus.logout": "Logout", "words.viafabricplus.online": "Online Mode", "words.viafabricplus.reset": "Reset", + "words.viafabricplus.copy": "Copy code", "bedrock.viafabricplus.set": "Click to set account for Bedrock edition", diff --git a/src/main/resources/assets/viafabricplus/lang/ja_jp.json b/src/main/resources/assets/viafabricplus/lang/ja_jp.json index d9a07b00..cf1c3bf0 100644 --- a/src/main/resources/assets/viafabricplus/lang/ja_jp.json +++ b/src/main/resources/assets/viafabricplus/lang/ja_jp.json @@ -8,11 +8,14 @@ "words.viafabricplus.rb": "右下", "words.viafabricplus.cancel": "キャンセル", "words.viafabricplus.cancelreset": "リセットして閉じる", + "words.viafabricplus.logout": "ログアウト", + "words.viafabricplus.online": "オンラインモード", + "words.viafabricplus.reset": "リセット", "bedrock.viafabricplus.set": "クリックしてBedrock edition用のアカウントを用意", "bridge.viafabricplus.secret": "Super Secret Settingsを表示", - "bridge.viafabricplus.extrainformation": "サーバーに接続するバージョンを選択", + "bridge.viafabricplus.extrainformation": "デバッグ画面に追加情報を表示", "bridge.viafabricplus.classicloading": "接続画面に昔の読み込み進行情報を表示", "debug.viafabricplus.sequence": "優先順位付けを無効化", @@ -25,7 +28,7 @@ "debug.viafabricplus.attribute": "属性修飾子を置換", "debug.viafabricplus.replacesneak": "スニークの置換", "debug.viafabricplus.longsneak": "長いスニーク", - "debug.viafabricplus.legacypseeds": "以前の採掘速度", + "debug.viafabricplus.legacypseeds": "従来の採掘速度", "general.viafabricplus.main": "メインボタンの位置", "general.viafabricplus.creative": "利用不可能なアイテムをクリエイティブタブから削除", @@ -35,6 +38,8 @@ "mppass.viafabricplus.betacraft": "BetaCraft認証を使用", "mppass.viafabricplus.verify": "ViaLegacyがjoinServer()を呼び出してセッションを検証することを許可", "mppass.viafabricplus.fail": "joinServer() の呼び出し失敗時に切断", + "mppass.viafabricplus.classicube": "ClassiCubeを使用している場合は CPEバージョンを強制", + "mppass.viafabricplus.spoof": "ClassiCubeを使用している場合はClassiCubeのユーザー名に変更", "visual.viafabricplus.secure": "安全なチャットの警告を無効", "visual.viafabricplus.indicator": "チャットの非署名表示を隠す", @@ -46,9 +51,24 @@ "visual.viafabricplus.betahud": "新しいHUD要素を削除", "visual.viafabricplus.classic": "クリエイティブインベントリの置換", "visual.viafabricplus.walkanimation": "以前の歩行アニメーション", + "visual.viafabricplus.sodium": "Sodiumのチャンク描画を修正", "bedrocklogin.viafabricplus.text": "ブラウザが開きました。\nブラウザに次のコードを入力してください: %s\nこの画面を閉じるとログインが中断されます。", "bedrocklogin.viafabricplus.error": "エラーが発生しました! 詳細についてはlasted.logを確認してください。\nまた、下記の場所でバグを報告してください。 \nhttps://github.com/FlorianMichael/ViaFabricPlus/issues", - "forceversion.viafabricplus.title": "サーバーに接続するバージョンを選択" + "forceversion.viafabricplus.title": "サーバーに接続するバージョンを選択", + + "classicube.viafabricplus.account": "ここでアカウントを作成できます: https://www.classicube.net/", + "classicube.viafabricplus.loading": "プロファイル情報とサーバーリストを読み込んでいます...", + + "classicube.viafabricplus.error.token": "トークンが正しくありません。ViaFabric Plusの更新を確認してください。", + "classicube.viafabricplus.error.username": "無効なユーザー名です。", + "classicube.viafabricplus.error.password": "無効なバスワードです。.", + "classicube.viafabricplus.error.verification": "このアカウントは、まだメール認証が行われていません。", + "classicube.viafabricplus.error.logincode": "多要素認証が要求されました。 メールを確認してください。", + + "classicube.viafabricplus.warning": "この機能は、APIリクエストを ClassiCube APIに送信します。", + + "betacraft.viafabricplus.warning": "このボタンを押すと、API リクエストが\"betacraft.uk/serverlist\"に送信されます。", + "betacraft.viafabricplus.error": "エラーが発生しました。 後でもう一度試してください。" } \ No newline at end of file diff --git a/src/main/resources/assets/viafabricplus/lang/uk_ua.json b/src/main/resources/assets/viafabricplus/lang/uk_ua.json index 86ac8ddf..e4b659b2 100644 --- a/src/main/resources/assets/viafabricplus/lang/uk_ua.json +++ b/src/main/resources/assets/viafabricplus/lang/uk_ua.json @@ -9,6 +9,8 @@ "words.viafabricplus.cancel": "Відмінити", "words.viafabricplus.cancelreset": "Відмінити і відновити", "words.viafabricplus.logout": "Вийти", + "words.viafabricplus.online": "Онлайн режим", + "words.viafabricplus.reset": "Зкинути", "bedrock.viafabricplus.set": "Нажміть, щоб встановити аккаунт для Bedrock", @@ -37,6 +39,7 @@ "mppass.viafabricplus.verify": "Дозвольте ViaLegacy викликати joinServer() для перевірки сеансу", "mppass.viafabricplus.fail": "Від’єднатися, якщо виклик joinServer() не вдається", "mppass.viafabricplus.classicube": "Примусово встановити версію CPE, якщо використовується ClassiCube MP Pass", + "mppass.viafabricplus.spoof": "Підмінити ім'я користувача на ім'я ClassiCube, якщо використовується ClassiCube", "visual.viafabricplus.secure": "Прибрати застереження чату", "visual.viafabricplus.indicator": "Сховати ідикатор підпису", @@ -63,4 +66,9 @@ "classicube.viafabricplus.error.password": "Неправильний пароль.", "classicube.viafabricplus.error.verification": "Користувач ще не підтвердив емейл.", "classicube.viafabricplus.error.logincode": "Потрібна багатофакторна автентифікація. Будь ласка, перевірте свою електронну пошту." + + "classicube.viafabricplus.warning": "Ця фішка надішле API запит до ClassiCube API.", + + "betacraft.viafabricplus.warning": "Нажимаючи цю кнопку ви надішлете API запит до \"betacraft.uk/serverlist\".", + "betacraft.viafabricplus.error": "Щось пішло не так! Будь ласка, спробуйте знову пізніше" } \ No newline at end of file