Add copy link button to bedrock login screen

Closes https://github.com/ViaVersion/ViaFabricPlus/issues/444
This commit is contained in:
FlorianMichael 2024-06-16 16:35:44 +02:00
parent 18fd102a68
commit 5fcf377366
No known key found for this signature in database
GPG Key ID: C2FB87E71C425126
4 changed files with 25 additions and 20 deletions

View File

@ -46,20 +46,21 @@ public abstract class MixinHeldItemRenderer {
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/item/HeldItemRenderer;applyEquipOffset(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/util/Arm;F)V", ordinal = 2, shift = At.Shift.AFTER))
private void transformLegacyBlockAnimations(AbstractClientPlayerEntity player, float tickDelta, float pitch, Hand hand, float swingProgress, ItemStack item, float equipProgress, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
final boolean blockHitAnimation = VisualSettings.global().enableBlockHitAnimation.isEnabled();
if (VisualSettings.global().enableSwordBlocking.isEnabled() || blockHitAnimation) {
final Arm arm = hand == Hand.MAIN_HAND ? player.getMainArm() : player.getMainArm().getOpposite();
if (blockHitAnimation) {
applySwingOffset(matrices, arm, swingProgress);
matrices.translate(arm == Arm.RIGHT ? -0.14F : 0.14F, 0.12F, 0.12F);
} else {
matrices.translate(arm == Arm.RIGHT ? -0.15F : 0.15F, 0.07F, 0.12F);
}
matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(-102.25f));
matrices.multiply((arm == Arm.RIGHT ? RotationAxis.POSITIVE_Y : RotationAxis.NEGATIVE_Y).rotationDegrees(13.365f));
matrices.multiply((arm == Arm.RIGHT ? RotationAxis.POSITIVE_Z : RotationAxis.NEGATIVE_Z).rotationDegrees(78.05f));
if (!VisualSettings.global().enableSwordBlocking.isEnabled() && !blockHitAnimation) {
return;
}
final Arm arm = hand == Hand.MAIN_HAND ? player.getMainArm() : player.getMainArm().getOpposite();
if (blockHitAnimation) {
applySwingOffset(matrices, arm, swingProgress);
matrices.translate(arm == Arm.RIGHT ? -0.14F : 0.14F, 0.12F, 0.12F);
} else {
matrices.translate(arm == Arm.RIGHT ? -0.15F : 0.15F, 0.07F, 0.12F);
}
matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(-102.25f));
matrices.multiply((arm == Arm.RIGHT ? RotationAxis.POSITIVE_Y : RotationAxis.NEGATIVE_Y).rotationDegrees(13.365f));
matrices.multiply((arm == Arm.RIGHT ? RotationAxis.POSITIVE_Z : RotationAxis.NEGATIVE_Z).rotationDegrees(78.05f));
}
}

View File

@ -26,7 +26,7 @@ import de.florianmichael.viafabricplus.settings.base.BooleanSetting;
import de.florianmichael.viafabricplus.settings.base.ButtonSetting;
import de.florianmichael.viafabricplus.settings.base.SettingGroup;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.NoticeScreen;
import net.minecraft.client.gui.screen.ConfirmScreen;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.text.MutableText;
import net.minecraft.text.Text;
@ -65,10 +65,14 @@ public class BedrockSettings extends SettingGroup {
final Screen prevScreen = client.currentScreen;
try {
ViaFabricPlus.global().getSaveManager().getAccountsSave().setBedrockAccount(MinecraftAuth.BEDROCK_DEVICE_CODE_LOGIN.getFromInput(MinecraftAuth.createHttpClient(), new StepMsaDeviceCode.MsaDeviceCodeCallback(msaDeviceCode -> {
client.execute(() -> client.setScreen(new NoticeScreen(() -> {
client.setScreen(prevScreen);
Thread.currentThread().interrupt();
}, Text.literal("Microsoft Bedrock login"), Text.translatable("bedrock.viafabricplus.login"), Text.translatable("base.viafabricplus.cancel"), true)));
client.execute(() -> client.setScreen(new ConfirmScreen(copyUrl -> {
if (copyUrl) {
client.keyboard.setClipboard(msaDeviceCode.getDirectVerificationUri());
} else {
client.setScreen(prevScreen);
Thread.currentThread().interrupt();
}
}, Text.literal("Microsoft Bedrock login"), Text.translatable("bedrock.viafabricplus.login"), Text.translatable("base.viafabricplus.copy_link"), Text.translatable("base.viafabricplus.cancel"))));
try {
Util.getOperatingSystem().open(new URI(msaDeviceCode.getDirectVerificationUri()));
} catch (URISyntaxException e) {

View File

@ -13,7 +13,7 @@
"base.viafabricplus.logout": "Ausloggen",
"base.viafabricplus.online_mode": "Online-Modus",
"base.viafabricplus.reset": "Zurücksetzen",
"base.viafabricplus.copy_code": "Code kopieren",
"base.viafabricplus.copy_link": "Link kopieren",
"base.viafabricplus.something_went_wrong": "Etwas ist schiefgegangen! Bitte versuche es später erneut.",
"base.viafabricplus.via_translates_to": "Via übersetzt zu: %s",
"base.viafabricplus.server_version": "Serverversion: %s",

View File

@ -13,7 +13,7 @@
"base.viafabricplus.logout": "Logout",
"base.viafabricplus.online_mode": "Online Mode",
"base.viafabricplus.reset": "Reset",
"base.viafabricplus.copy_code": "Copy code",
"base.viafabricplus.copy_link": "Copy link",
"base.viafabricplus.something_went_wrong": "Something went wrong! Please try again later",
"base.viafabricplus.via_translates_to": "Via translates to: %s",
"base.viafabricplus.server_version": "Server version: %s",