From 39f140dae19df4a9ef9a187961421a09dd79ea96 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Fri, 25 Sep 2026 15:27:27 +0200 Subject: [PATCH] Mojang session auth and version check; release 0.1.0-beta3 - Implement SaturnProvider.getModVersion() (Fabric mod metadata) and showWarning() (15 s SystemToast) in every version - Bump mod_version to 0.1.0-beta3, the first version on the new Mojang session-server authentication - Point common at its merge commit for the new auth flow and version check Fixes #7 Co-Authored-By: Claude Opus 5.5 --- common | 2 +- gradle.properties | 2 +- .../impl/provider/SaturnProviderImpl.java | 22 +++++++++++++++++++ .../impl/provider/SaturnProviderImpl.java | 22 +++++++++++++++++++ .../impl/provider/SaturnProviderImpl.java | 22 +++++++++++++++++++ .../impl/provider/SaturnProviderImpl.java | 22 +++++++++++++++++++ .../impl/provider/SaturnProviderImpl.java | 22 +++++++++++++++++++ .../impl/provider/SaturnProviderImpl.java | 22 +++++++++++++++++++ .../impl/provider/SaturnProviderImpl.java | 22 +++++++++++++++++++ .../impl/provider/SaturnProviderImpl.java | 22 +++++++++++++++++++ 10 files changed, 178 insertions(+), 2 deletions(-) diff --git a/common b/common index 510760d..98da429 160000 --- a/common +++ b/common @@ -1 +1 @@ -Subproject commit 510760d59051b63f8914a1a0ebeeaf12aebdbc79 +Subproject commit 98da42992eb6b4ecc5b17beb7c66c3709d5aeac6 diff --git a/gradle.properties b/gradle.properties index ed8d81a..6598a82 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,4 +4,4 @@ org.gradle.parallel=true # IntelliJ IDEA is not yet fully compatible with configuration cache, see: https://github.com/FabricMC/fabric-loom/issues/1349 org.gradle.configuration-cache=false -mod_version=0.1.0-beta2 +mod_version=0.1.0-beta3 diff --git a/versions/1.21.10/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java b/versions/1.21.10/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java index 8ac2333..20a50be 100644 --- a/versions/1.21.10/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java +++ b/versions/1.21.10/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java @@ -3,6 +3,11 @@ package org.saturnclient.impl.provider; import java.awt.image.BufferedImage; import java.util.UUID; +import net.fabricmc.loader.api.FabricLoader; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.toast.SystemToast; +import net.minecraft.text.Text; + import org.saturnclient.common.provider.SaturnProvider; import org.saturnclient.common.ref.asset.IdentifierRef; import org.saturnclient.common.ref.game.MinecraftClientRef; @@ -59,6 +64,23 @@ public class SaturnProviderImpl implements SaturnProvider { SaturnClient.LOGGER.error(message, throwable); } + /** Shown longer than the vanilla default, since these ask the player to act. */ + private static final SystemToast.Type WARNING_TOAST = new SystemToast.Type(15_000L); + + @Override + public String getModVersion() { + return FabricLoader.getInstance().getModContainer(SaturnClient.MOD_ID) + .map(mod -> mod.getMetadata().getVersion().getFriendlyString()) + .orElse("unknown"); + } + + @Override + public void showWarning(String title, String message) { + MinecraftClient client = MinecraftClient.getInstance(); + client.execute(() -> client.getToastManager().add( + SystemToast.create(client, WARNING_TOAST, Text.literal(title), Text.literal(message)))); + } + @Override public void registerBufferedImageTexture(IdentifierRef i, BufferedImage bi) { IdentifierUtils.registerBufferedImageTextureFast(i, bi); diff --git a/versions/1.21.11/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java b/versions/1.21.11/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java index 8ac2333..20a50be 100644 --- a/versions/1.21.11/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java +++ b/versions/1.21.11/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java @@ -3,6 +3,11 @@ package org.saturnclient.impl.provider; import java.awt.image.BufferedImage; import java.util.UUID; +import net.fabricmc.loader.api.FabricLoader; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.toast.SystemToast; +import net.minecraft.text.Text; + import org.saturnclient.common.provider.SaturnProvider; import org.saturnclient.common.ref.asset.IdentifierRef; import org.saturnclient.common.ref.game.MinecraftClientRef; @@ -59,6 +64,23 @@ public class SaturnProviderImpl implements SaturnProvider { SaturnClient.LOGGER.error(message, throwable); } + /** Shown longer than the vanilla default, since these ask the player to act. */ + private static final SystemToast.Type WARNING_TOAST = new SystemToast.Type(15_000L); + + @Override + public String getModVersion() { + return FabricLoader.getInstance().getModContainer(SaturnClient.MOD_ID) + .map(mod -> mod.getMetadata().getVersion().getFriendlyString()) + .orElse("unknown"); + } + + @Override + public void showWarning(String title, String message) { + MinecraftClient client = MinecraftClient.getInstance(); + client.execute(() -> client.getToastManager().add( + SystemToast.create(client, WARNING_TOAST, Text.literal(title), Text.literal(message)))); + } + @Override public void registerBufferedImageTexture(IdentifierRef i, BufferedImage bi) { IdentifierUtils.registerBufferedImageTextureFast(i, bi); diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java index 3f2a9bf..b39c54c 100644 --- a/versions/1.21.4/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java +++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java @@ -3,6 +3,11 @@ package org.saturnclient.impl.provider; import java.awt.image.BufferedImage; import java.util.UUID; +import net.fabricmc.loader.api.FabricLoader; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.toast.SystemToast; +import net.minecraft.text.Text; + import org.saturnclient.common.provider.SaturnProvider; import org.saturnclient.common.ref.asset.IdentifierRef; import org.saturnclient.common.ref.game.MinecraftClientRef; @@ -65,6 +70,23 @@ public class SaturnProviderImpl implements SaturnProvider { SaturnClient.LOGGER.error(message, throwable); } + /** Shown longer than the vanilla default, since these ask the player to act. */ + private static final SystemToast.Type WARNING_TOAST = new SystemToast.Type(15_000L); + + @Override + public String getModVersion() { + return FabricLoader.getInstance().getModContainer(SaturnClient.MOD_ID) + .map(mod -> mod.getMetadata().getVersion().getFriendlyString()) + .orElse("unknown"); + } + + @Override + public void showWarning(String title, String message) { + MinecraftClient client = MinecraftClient.getInstance(); + client.execute(() -> client.getToastManager().add( + SystemToast.create(client, WARNING_TOAST, Text.literal(title), Text.literal(message)))); + } + @Override public void registerBufferedImageTexture(IdentifierRef i, BufferedImage bi) { IdentifierUtils.registerBufferedImageTextureFast(i, bi); diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java index 3f2a9bf..b39c54c 100644 --- a/versions/1.21.5/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java +++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java @@ -3,6 +3,11 @@ package org.saturnclient.impl.provider; import java.awt.image.BufferedImage; import java.util.UUID; +import net.fabricmc.loader.api.FabricLoader; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.toast.SystemToast; +import net.minecraft.text.Text; + import org.saturnclient.common.provider.SaturnProvider; import org.saturnclient.common.ref.asset.IdentifierRef; import org.saturnclient.common.ref.game.MinecraftClientRef; @@ -65,6 +70,23 @@ public class SaturnProviderImpl implements SaturnProvider { SaturnClient.LOGGER.error(message, throwable); } + /** Shown longer than the vanilla default, since these ask the player to act. */ + private static final SystemToast.Type WARNING_TOAST = new SystemToast.Type(15_000L); + + @Override + public String getModVersion() { + return FabricLoader.getInstance().getModContainer(SaturnClient.MOD_ID) + .map(mod -> mod.getMetadata().getVersion().getFriendlyString()) + .orElse("unknown"); + } + + @Override + public void showWarning(String title, String message) { + MinecraftClient client = MinecraftClient.getInstance(); + client.execute(() -> client.getToastManager().add( + SystemToast.create(client, WARNING_TOAST, Text.literal(title), Text.literal(message)))); + } + @Override public void registerBufferedImageTexture(IdentifierRef i, BufferedImage bi) { IdentifierUtils.registerBufferedImageTextureFast(i, bi); diff --git a/versions/1.21.6/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java b/versions/1.21.6/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java index 8ac2333..20a50be 100644 --- a/versions/1.21.6/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java +++ b/versions/1.21.6/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java @@ -3,6 +3,11 @@ package org.saturnclient.impl.provider; import java.awt.image.BufferedImage; import java.util.UUID; +import net.fabricmc.loader.api.FabricLoader; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.toast.SystemToast; +import net.minecraft.text.Text; + import org.saturnclient.common.provider.SaturnProvider; import org.saturnclient.common.ref.asset.IdentifierRef; import org.saturnclient.common.ref.game.MinecraftClientRef; @@ -59,6 +64,23 @@ public class SaturnProviderImpl implements SaturnProvider { SaturnClient.LOGGER.error(message, throwable); } + /** Shown longer than the vanilla default, since these ask the player to act. */ + private static final SystemToast.Type WARNING_TOAST = new SystemToast.Type(15_000L); + + @Override + public String getModVersion() { + return FabricLoader.getInstance().getModContainer(SaturnClient.MOD_ID) + .map(mod -> mod.getMetadata().getVersion().getFriendlyString()) + .orElse("unknown"); + } + + @Override + public void showWarning(String title, String message) { + MinecraftClient client = MinecraftClient.getInstance(); + client.execute(() -> client.getToastManager().add( + SystemToast.create(client, WARNING_TOAST, Text.literal(title), Text.literal(message)))); + } + @Override public void registerBufferedImageTexture(IdentifierRef i, BufferedImage bi) { IdentifierUtils.registerBufferedImageTextureFast(i, bi); diff --git a/versions/1.21.7/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java b/versions/1.21.7/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java index 8ac2333..20a50be 100644 --- a/versions/1.21.7/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java +++ b/versions/1.21.7/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java @@ -3,6 +3,11 @@ package org.saturnclient.impl.provider; import java.awt.image.BufferedImage; import java.util.UUID; +import net.fabricmc.loader.api.FabricLoader; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.toast.SystemToast; +import net.minecraft.text.Text; + import org.saturnclient.common.provider.SaturnProvider; import org.saturnclient.common.ref.asset.IdentifierRef; import org.saturnclient.common.ref.game.MinecraftClientRef; @@ -59,6 +64,23 @@ public class SaturnProviderImpl implements SaturnProvider { SaturnClient.LOGGER.error(message, throwable); } + /** Shown longer than the vanilla default, since these ask the player to act. */ + private static final SystemToast.Type WARNING_TOAST = new SystemToast.Type(15_000L); + + @Override + public String getModVersion() { + return FabricLoader.getInstance().getModContainer(SaturnClient.MOD_ID) + .map(mod -> mod.getMetadata().getVersion().getFriendlyString()) + .orElse("unknown"); + } + + @Override + public void showWarning(String title, String message) { + MinecraftClient client = MinecraftClient.getInstance(); + client.execute(() -> client.getToastManager().add( + SystemToast.create(client, WARNING_TOAST, Text.literal(title), Text.literal(message)))); + } + @Override public void registerBufferedImageTexture(IdentifierRef i, BufferedImage bi) { IdentifierUtils.registerBufferedImageTextureFast(i, bi); diff --git a/versions/1.21.8/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java b/versions/1.21.8/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java index 8ac2333..20a50be 100644 --- a/versions/1.21.8/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java +++ b/versions/1.21.8/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java @@ -3,6 +3,11 @@ package org.saturnclient.impl.provider; import java.awt.image.BufferedImage; import java.util.UUID; +import net.fabricmc.loader.api.FabricLoader; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.toast.SystemToast; +import net.minecraft.text.Text; + import org.saturnclient.common.provider.SaturnProvider; import org.saturnclient.common.ref.asset.IdentifierRef; import org.saturnclient.common.ref.game.MinecraftClientRef; @@ -59,6 +64,23 @@ public class SaturnProviderImpl implements SaturnProvider { SaturnClient.LOGGER.error(message, throwable); } + /** Shown longer than the vanilla default, since these ask the player to act. */ + private static final SystemToast.Type WARNING_TOAST = new SystemToast.Type(15_000L); + + @Override + public String getModVersion() { + return FabricLoader.getInstance().getModContainer(SaturnClient.MOD_ID) + .map(mod -> mod.getMetadata().getVersion().getFriendlyString()) + .orElse("unknown"); + } + + @Override + public void showWarning(String title, String message) { + MinecraftClient client = MinecraftClient.getInstance(); + client.execute(() -> client.getToastManager().add( + SystemToast.create(client, WARNING_TOAST, Text.literal(title), Text.literal(message)))); + } + @Override public void registerBufferedImageTexture(IdentifierRef i, BufferedImage bi) { IdentifierUtils.registerBufferedImageTextureFast(i, bi); diff --git a/versions/1.21.9/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java b/versions/1.21.9/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java index 8ac2333..20a50be 100644 --- a/versions/1.21.9/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java +++ b/versions/1.21.9/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java @@ -3,6 +3,11 @@ package org.saturnclient.impl.provider; import java.awt.image.BufferedImage; import java.util.UUID; +import net.fabricmc.loader.api.FabricLoader; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.toast.SystemToast; +import net.minecraft.text.Text; + import org.saturnclient.common.provider.SaturnProvider; import org.saturnclient.common.ref.asset.IdentifierRef; import org.saturnclient.common.ref.game.MinecraftClientRef; @@ -59,6 +64,23 @@ public class SaturnProviderImpl implements SaturnProvider { SaturnClient.LOGGER.error(message, throwable); } + /** Shown longer than the vanilla default, since these ask the player to act. */ + private static final SystemToast.Type WARNING_TOAST = new SystemToast.Type(15_000L); + + @Override + public String getModVersion() { + return FabricLoader.getInstance().getModContainer(SaturnClient.MOD_ID) + .map(mod -> mod.getMetadata().getVersion().getFriendlyString()) + .orElse("unknown"); + } + + @Override + public void showWarning(String title, String message) { + MinecraftClient client = MinecraftClient.getInstance(); + client.execute(() -> client.getToastManager().add( + SystemToast.create(client, WARNING_TOAST, Text.literal(title), Text.literal(message)))); + } + @Override public void registerBufferedImageTexture(IdentifierRef i, BufferedImage bi) { IdentifierUtils.registerBufferedImageTextureFast(i, bi);