full rebrand

This commit is contained in:
2025-03-05 19:19:23 +01:00
parent a962488fae
commit 159018d7c1
33 changed files with 153 additions and 150 deletions
+3 -2
View File
@@ -1,2 +1,3 @@
# AuraClient Cloaks
Thanks to `IIpho3nix` for making this mod.
# SaturnClient Cloaks
Thanks to `IIpho3nix` for making this mod.
+1 -1
View File
@@ -10,7 +10,7 @@ org.gradle.jvmargs=-Xmx1G
# Mod Properties
mod_version = 1.0.0
maven_group = me.iipho3nix
archives_base_name = auraclient
archives_base_name = saturnclient
# Dependencies
# check this on https://modmuss50.me/fabric.html
@@ -1,5 +0,0 @@
package org.auraclient.auraclient.auth;
public class AuraPlayer {
public String cloak = "";
}
@@ -1,43 +0,0 @@
package org.auraclient.auraclient.menus;
import org.auraclient.auraclient.widgets.AuraButton;
import org.auraclient.auraclient.widgets.AuraClientTexture;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.TextWidget;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
public class MainMenu extends Screen {
public MainMenu() {
super(Text.literal("Aura Client"));
}
@Override
protected void init() {
super.init();
int auraClientSize = 40;
int auraClientX = (this.width - auraClientSize) / 2;
int auraClientY = ((this.height - 110) - auraClientSize) / 2;
TextWidget auraClientText = new TextWidget(Text.literal("Saturn Client"), this.textRenderer);
auraClientText.setX((this.width - auraClientText.getWidth()) / 2);
auraClientText.setY(auraClientY + auraClientSize + 3);
addDrawable(auraClientText);
addDrawable(AuraClientTexture.builder(Identifier.of("auraclient", "icon.png"))
.dimensions(auraClientX, auraClientY, auraClientSize, auraClientSize));
int buttonWidth = 50;
int buttonHeight = 30;
addDrawableChild(
new AuraButton(Text.literal("Cloaks"), (_button) -> {
if (client.player != null) {
client.setScreen(new CloakSelector());
}
}, (this.width - buttonWidth) / 2, (this.height - buttonHeight) / 2, buttonWidth, buttonHeight));
}
}
@@ -1,18 +1,18 @@
package org.auraclient.auraclient;
package org.saturnclient.saturnclient;
import net.fabricmc.api.ModInitializer;
import org.auraclient.auraclient.cloaks.Cloaks;
import org.auraclient.auraclient.event.KeyInputHandler;
import org.auraclient.auraclient.auth.AuraApi;
import org.saturnclient.saturnclient.cloaks.Cloaks;
import org.saturnclient.saturnclient.event.KeyInputHandler;
import org.saturnclient.saturnclient.auth.SaturnApi;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Main class for the Aura Client mod.
* Originally created by IIpho3nix and modified for Aura Client by leo.
* Main class for the Saturn Client mod.
* Originally created by IIpho3nix and modified for Saturn Client by leo.
*/
public class AuraClient implements ModInitializer {
public static final String MOD_ID = "auraclient";
public class SaturnClient implements ModInitializer {
public static final String MOD_ID = "saturnclient";
public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);
@Override
@@ -20,7 +20,7 @@ public class AuraClient implements ModInitializer {
LOGGER.info("Initializing " + MOD_ID);
// Attempt authentication before initializing other features
if (AuraApi.authenticate()) {
if (SaturnApi.authenticate()) {
KeyInputHandler.register();
Cloaks.initialize();
LOGGER.info(MOD_ID + " initialization complete");
@@ -1,10 +1,10 @@
package org.auraclient.auraclient.auth;
package org.saturnclient.saturnclient.auth;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import net.minecraft.client.MinecraftClient;
import org.auraclient.auraclient.AuraClient;
import org.auraclient.auraclient.cloaks.Cloaks;
import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.saturnclient.cloaks.Cloaks;
import java.io.BufferedReader;
import java.io.InputStreamReader;
@@ -16,19 +16,19 @@ import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
public class AuraApi {
public class SaturnApi {
private static final String URL = "http://localhost:3000";
private static String token = null;
public static Map<String, AuraPlayer> players = new HashMap<>();
public static Map<String, SaturnPlayer> players = new HashMap<>();
public static Map<String, String> playerNames = new HashMap<>();
public static boolean authenticate() {
try {
MinecraftClient client = MinecraftClient.getInstance();
if (client.getSession() == null) {
AuraClient.LOGGER.error("No active Minecraft session found");
SaturnClient.LOGGER.error("No active Minecraft session found");
return false;
}
@@ -60,7 +60,7 @@ public class AuraApi {
playerNames.put(name, uuid);
if (success) {
AuraClient.LOGGER.info("Successfully authenticated");
SaturnClient.LOGGER.info("Successfully authenticated");
}
// Update available cloaks list
@@ -70,20 +70,20 @@ public class AuraApi {
String cloak = jsonResponse.get("cloak").getAsString();
if (cloak != null) {
AuraClient.LOGGER.info("Setting cloak to " + cloak + " for " + uuid);
SaturnClient.LOGGER.info("Setting cloak to " + cloak + " for " + uuid);
MinecraftClient.getInstance().execute(() -> Cloaks.setCloak(uuid, cloak));
}
return success;
} catch (Exception e) {
AuraClient.LOGGER.error("Authentication failed", e);
SaturnClient.LOGGER.error("Authentication failed", e);
return false;
}
}
public static void setCloak(String cloak) {
if (token == null) {
AuraClient.LOGGER.error("No token found");
SaturnClient.LOGGER.error("No token found");
return;
}
@@ -109,14 +109,14 @@ public class AuraApi {
boolean success = jsonResponse.get("success").getAsBoolean();
if (success) {
AuraClient.LOGGER.info("Successfully set cloak");
SaturnClient.LOGGER.info("Successfully set cloak");
} else {
AuraClient.LOGGER.error("Failed to set cloak");
AuraClient.LOGGER.error(jsonResponse.get("error").getAsString());
SaturnClient.LOGGER.error("Failed to set cloak");
SaturnClient.LOGGER.error(jsonResponse.get("error").getAsString());
}
} catch (Exception e) {
AuraClient.LOGGER.error("Failed to set cloak", e);
SaturnClient.LOGGER.error("Failed to set cloak", e);
}
}
}
@@ -0,0 +1,5 @@
package org.saturnclient.saturnclient.auth;
public class SaturnPlayer {
public String cloak = "";
}
@@ -1,11 +1,11 @@
package org.auraclient.auraclient.cloaks;
package org.saturnclient.saturnclient.cloaks;
import net.minecraft.util.Identifier;
import org.auraclient.auraclient.AuraClient;
import org.auraclient.auraclient.auth.AuraApi;
import org.auraclient.auraclient.auth.AuraPlayer;
import org.auraclient.auraclient.cloaks.utils.AnimatedCloakData;
import org.auraclient.auraclient.cloaks.utils.IdentifierUtils;
import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.saturnclient.auth.SaturnApi;
import org.saturnclient.saturnclient.auth.SaturnPlayer;
import org.saturnclient.saturnclient.cloaks.utils.AnimatedCloakData;
import org.saturnclient.saturnclient.cloaks.utils.IdentifierUtils;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
@@ -15,13 +15,13 @@ import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
/**
* Manages the cloak system for Aura Client.
* Manages the cloak system for Saturn Client.
* Handles loading and caching of player cloaks.
*/
public class Cloaks {
private static final String[] ANIMATED_CLOAKS = { "glitch" };
private static final String CLOAKS_RESOURCE_PATH = "assets/auraclient/textures/cloaks/";
private static final String CLOAKS_RESOURCE_PATH = "assets/saturnclient/textures/cloaks/";
public static final List<String> availableCloaks = new ArrayList<>();
public static Identifier cloakCacheIdentifier = null;
public static final Map<String, List<AnimatedCloakData>> animatedCloaks = new ConcurrentHashMap<>();
@@ -41,13 +41,13 @@ public class Cloaks {
* @param cloakName Name of the cloak file to load
*/
public static void setCloak(String uuid, String cloakName) {
AuraApi.setCloak(cloakName);
SaturnApi.setCloak(cloakName);
AuraPlayer player = AuraApi.players.get(uuid);
SaturnPlayer player = SaturnApi.players.get(uuid);
if (player == null) {
AuraPlayer newPlayer = new AuraPlayer();
SaturnPlayer newPlayer = new SaturnPlayer();
newPlayer.cloak = cloakName;
AuraApi.players.put(uuid, newPlayer);
SaturnApi.players.put(uuid, newPlayer);
} else {
player.cloak = cloakName;
}
@@ -76,17 +76,17 @@ public class Cloaks {
BufferedImage image = ImageIO.read(inputStream);
// Add debug logging for static cloak
AuraClient.LOGGER.info("Static cloak dimensions: " + image.getWidth() + "x" + image.getHeight());
SaturnClient.LOGGER.info("Static cloak dimensions: " + image.getWidth() + "x" + image.getHeight());
String safeFileName = fileName.toLowerCase(Locale.ROOT)
.replace(' ', '_')
.replaceAll("[^a-z0-9/._-]", "");
cloakCacheIdentifier = Identifier.of(AuraClient.MOD_ID, "cloaks_" + safeFileName);
cloakCacheIdentifier = Identifier.of(SaturnClient.MOD_ID, "cloaks_" + safeFileName);
IdentifierUtils.registerBufferedImageTexture(cloakCacheIdentifier, image);
}
} catch (IOException e) {
AuraClient.LOGGER.error("Failed to load static cloak from resources: " + fileName, e);
SaturnClient.LOGGER.error("Failed to load static cloak from resources: " + fileName, e);
}
}
@@ -111,7 +111,7 @@ public class Cloaks {
int delay = gif.getDelay(i) * 10;
String frameId = fileName.replace(".gif", "") + "_frame_" + i;
Identifier frameIdentifier = Identifier.of(AuraClient.MOD_ID, "cloaks_" + frameId);
Identifier frameIdentifier = Identifier.of(SaturnClient.MOD_ID, "cloaks_" + frameId);
IdentifierUtils.registerBufferedImageTexture(frameIdentifier, frame);
frames.add(new AnimatedCloakData(frameIdentifier, delay));
@@ -120,19 +120,19 @@ public class Cloaks {
animatedCloaks.put(uuid, frames);
lastFrameTime.put(uuid, System.currentTimeMillis());
AuraClient.LOGGER.info("Loaded " + frames.size() + " frames for animated cloak: " + fileName);
SaturnClient.LOGGER.info("Loaded " + frames.size() + " frames for animated cloak: " + fileName);
}
} catch (IOException e) {
AuraClient.LOGGER.error("Failed to load animated cloak from resources: " + fileName, e);
SaturnClient.LOGGER.error("Failed to load animated cloak from resources: " + fileName, e);
}
}
public static Identifier getCurrentCloakTexture(String uuid) {
if (!AuraApi.players.containsKey(uuid)) {
if (!SaturnApi.players.containsKey(uuid)) {
return null;
}
String cloakName = AuraApi.players.get(uuid).cloak;
String cloakName = SaturnApi.players.get(uuid).cloak;
if (cloakName.isEmpty()) {
return null;
@@ -165,7 +165,7 @@ public class Cloaks {
return frames.get(currentFrame).getTextureId();
} else {
return Identifier.of(AuraClient.MOD_ID, "textures/cloaks/" + cloakName + ".png");
return Identifier.of(SaturnClient.MOD_ID, "textures/cloaks/" + cloakName + ".png");
}
}
}
@@ -1,4 +1,4 @@
package org.auraclient.auraclient.cloaks;
package org.saturnclient.saturnclient.cloaks;
import java.awt.*;
import java.awt.image.BufferedImage;
@@ -1,4 +1,4 @@
package org.auraclient.auraclient.cloaks.utils;
package org.saturnclient.saturnclient.cloaks.utils;
import net.minecraft.util.Identifier;
@@ -1,4 +1,4 @@
package org.auraclient.auraclient.cloaks.utils;
package org.saturnclient.saturnclient.cloaks.utils;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.texture.NativeImage;
@@ -1,4 +1,4 @@
package org.auraclient.auraclient.cloaks.utils;
package org.saturnclient.saturnclient.cloaks.utils;
import java.util.Random;
@@ -1,21 +1,21 @@
package org.auraclient.auraclient.event;
package org.saturnclient.saturnclient.event;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
import net.minecraft.client.option.KeyBinding;
import net.minecraft.client.util.InputUtil;
import org.auraclient.auraclient.menus.MainMenu;
import org.saturnclient.saturnclient.menus.MainMenu;
import org.lwjgl.glfw.GLFW;
/**
* Handles keyboard input events for the Aura Client.
* Handles keyboard input events for the Saturn Client.
* Manages keybindings and their associated actions.
*/
public class KeyInputHandler {
private static final String KEY_CATEGORY = "key.category.auraclient";
private static final String MAIN_MENU_KEY_ID = "key.auraclient.main_menu";
private static final String KEY_CATEGORY = "key.category.saturnclient";
private static final String MAIN_MENU_KEY_ID = "key.saturnclient.main_menu";
private static final int DEFAULT_MENU_KEY = GLFW.GLFW_KEY_RIGHT_SHIFT;
private static KeyBinding mainMenuKeyBinding;
/**
@@ -25,11 +25,10 @@ public class KeyInputHandler {
public static void register() {
// Register the main menu key binding
mainMenuKeyBinding = KeyBindingHelper.registerKeyBinding(new KeyBinding(
MAIN_MENU_KEY_ID,
InputUtil.Type.KEYSYM,
DEFAULT_MENU_KEY,
KEY_CATEGORY
));
MAIN_MENU_KEY_ID,
InputUtil.Type.KEYSYM,
DEFAULT_MENU_KEY,
KEY_CATEGORY));
// Register the event handler for the main menu key
ClientTickEvents.END_CLIENT_TICK.register(client -> {
@@ -39,4 +38,3 @@ public class KeyInputHandler {
});
}
}
@@ -1,7 +1,7 @@
package org.auraclient.auraclient.menus;
package org.saturnclient.saturnclient.menus;
import org.auraclient.auraclient.cloaks.Cloaks;
import org.auraclient.auraclient.widgets.AuraButton;
import org.saturnclient.saturnclient.cloaks.Cloaks;
import org.saturnclient.saturnclient.widgets.SaturnButton;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.text.Text;
@@ -16,7 +16,7 @@ public class CloakSelector extends Screen {
int y = ((this.height - (35 * (Cloaks.availableCloaks.size()))) / 2);
for (String cloak : Cloaks.availableCloaks) {
addDrawableChild(new AuraButton(Text.literal(cloak), (__) -> {
addDrawableChild(new SaturnButton(Text.literal(cloak), (__) -> {
String uuid = client.player.getUuidAsString().replace("-", "");
Cloaks.setCloak(uuid, cloak);
}, (this.width - 50) / 2, y, 50, 30));
@@ -0,0 +1,43 @@
package org.saturnclient.saturnclient.menus;
import org.saturnclient.saturnclient.widgets.SaturnButton;
import org.saturnclient.saturnclient.widgets.SaturnClientTexture;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.TextWidget;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
public class MainMenu extends Screen {
public MainMenu() {
super(Text.literal("Saturn Client"));
}
@Override
protected void init() {
super.init();
int saturnClientSize = 40;
int saturnClientX = (this.width - saturnClientSize) / 2;
int saturnClientY = ((this.height - 110) - saturnClientSize) / 2;
TextWidget saturnClientText = new TextWidget(Text.literal("Saturn Client"), this.textRenderer);
saturnClientText.setX((this.width - saturnClientText.getWidth()) / 2);
saturnClientText.setY(saturnClientY + saturnClientSize + 3);
addDrawable(saturnClientText);
addDrawable(SaturnClientTexture.builder(Identifier.of("saturnclient", "icon.png"))
.dimensions(saturnClientX, saturnClientY, saturnClientSize, saturnClientSize));
int buttonWidth = 50;
int buttonHeight = 30;
addDrawableChild(
new SaturnButton(Text.literal("Cloaks"), (_button) -> {
if (client.player != null) {
client.setScreen(new CloakSelector());
}
}, (this.width - buttonWidth) / 2, (this.height - buttonHeight) / 2, buttonWidth, buttonHeight));
}
}
@@ -1,4 +1,4 @@
package org.auraclient.auraclient.mixin;
package org.saturnclient.saturnclient.mixin;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
@@ -6,7 +6,7 @@ import net.minecraft.client.network.AbstractClientPlayerEntity;
import net.minecraft.client.util.SkinTextures;
import net.minecraft.util.Identifier;
import org.auraclient.auraclient.cloaks.Cloaks;
import org.saturnclient.saturnclient.cloaks.Cloaks;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
@@ -1,4 +1,4 @@
package org.auraclient.auraclient.mixin;
package org.saturnclient.saturnclient.mixin;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
@@ -13,7 +13,7 @@ import net.minecraft.text.Text;
import net.minecraft.util.math.Vec3d;
import net.minecraft.client.render.LightmapTextureManager;
import org.auraclient.auraclient.auth.AuraApi;
import org.saturnclient.saturnclient.auth.SaturnApi;
import org.joml.Matrix4f;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
@@ -27,7 +27,7 @@ public abstract class NameTagMixin<S extends EntityRenderState> {
@Overwrite
public void renderLabelIfPresent(S state, Text text_o, MatrixStack matrices,
VertexConsumerProvider vertexConsumers, int light) {
Text text = isAura(state) ? Text.literal("" + "HexLeo") : text_o;
Text text = isSaturn(state) ? Text.literal("" + "HexLeo") : text_o;
Vec3d vec3d = state.nameLabelPos;
if (vec3d != null) {
@@ -52,10 +52,10 @@ public abstract class NameTagMixin<S extends EntityRenderState> {
}
}
private boolean isAura(S state) {
private boolean isSaturn(S state) {
if (state instanceof PlayerEntityRenderState) {
String name = ((PlayerEntityRenderState) state).name;
return AuraApi.playerNames.containsKey(name);
return SaturnApi.playerNames.containsKey(name);
}
return false;
}
@@ -1,6 +1,6 @@
package org.auraclient.auraclient.mixin;
package org.saturnclient.saturnclient.mixin;
import org.auraclient.auraclient.auth.AuraApi;
import org.saturnclient.saturnclient.auth.SaturnApi;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
@@ -17,6 +17,6 @@ public abstract class TabListMixin {
@Nullable
public Text getDisplayName() {
String name = displayName.getString();
return Text.literal(AuraApi.playerNames.containsKey(name) ? "" + name : name);
return Text.literal(SaturnApi.playerNames.containsKey(name) ? "" + name : name);
}
}
@@ -1,4 +1,4 @@
package org.auraclient.auraclient.widgets;
package org.saturnclient.saturnclient.widgets;
import java.awt.Color;
@@ -10,13 +10,13 @@ import net.minecraft.client.gui.widget.TexturedButtonWidget;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
public class AuraButton extends TexturedButtonWidget {
public class SaturnButton extends TexturedButtonWidget {
private TextWidget textWidget;
private static final ButtonTextures BUTTON_TEXTURES = new ButtonTextures(
Identifier.ofVanilla("widget/aura_button"), Identifier.ofVanilla("widget/aura_button_disabled"),
Identifier.ofVanilla("widget/aura_button_highlighted"));
Identifier.ofVanilla("widget/saturn_button"), Identifier.ofVanilla("widget/saturn_button_disabled"),
Identifier.ofVanilla("widget/saturn_button_highlighted"));
public AuraButton(Text message, PressAction onPress, int x, int y, int width, int height) {
public SaturnButton(Text message, PressAction onPress, int x, int y, int width, int height) {
super(x, y, width, height, BUTTON_TEXTURES, onPress);
setMessage(message);
@@ -1,4 +1,4 @@
package org.auraclient.auraclient.widgets;
package org.saturnclient.saturnclient.widgets;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.Drawable;
@@ -6,12 +6,12 @@ import net.minecraft.client.render.RenderLayer;
import net.minecraft.util.Identifier;
/**
* Represents a drawable texture in the Aura Client UI.
* Represents a drawable texture in the Saturn Client UI.
* Uses the builder pattern for flexible texture creation and configuration.
*/
public class AuraClientTexture implements Drawable {
public class SaturnClientTexture implements Drawable {
// Predefined textures
public static final Identifier BOX_1_1 = Identifier.of("auraclient", "textures/gui/box_1_1.png");
public static final Identifier BOX_1_1 = Identifier.of("saturnclient", "textures/gui/box_1_1.png");
private final Identifier sprite;
private int x;
@@ -21,9 +21,10 @@ public class AuraClientTexture implements Drawable {
/**
* Creates a new texture with the specified sprite.
*
* @param sprite The identifier for the texture sprite
*/
private AuraClientTexture(Identifier sprite) {
private SaturnClientTexture(Identifier sprite) {
this.sprite = sprite;
this.x = 0;
this.y = 0;
@@ -33,22 +34,24 @@ public class AuraClientTexture implements Drawable {
/**
* Creates a new builder instance for the texture.
*
* @param sprite The identifier for the texture sprite
* @return A new AuraClientTexture instance
* @return A new SaturnClientTexture instance
*/
public static AuraClientTexture builder(Identifier sprite) {
return new AuraClientTexture(sprite);
public static SaturnClientTexture builder(Identifier sprite) {
return new SaturnClientTexture(sprite);
}
/**
* Sets the dimensions and position of the texture.
* @param x The x coordinate
* @param y The y coordinate
* @param width The width of the texture
*
* @param x The x coordinate
* @param y The y coordinate
* @param width The width of the texture
* @param height The height of the texture
* @return This instance for method chaining
*/
public AuraClientTexture dimensions(int x, int y, int width, int height) {
public SaturnClientTexture dimensions(int x, int y, int width, int height) {
this.x = x;
this.y = y;
this.width = width;
@@ -58,10 +61,11 @@ public class AuraClientTexture implements Drawable {
/**
* Sets the focused state of the texture.
*
* @param focused The focused state
* @return This instance for method chaining
*/
public AuraClientTexture setFocused(boolean focused) {
public SaturnClientTexture setFocused(boolean focused) {
return this;
}

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Before

Width:  |  Height:  |  Size: 450 KiB

After

Width:  |  Height:  |  Size: 450 KiB

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Before

Width:  |  Height:  |  Size: 150 KiB

After

Width:  |  Height:  |  Size: 150 KiB

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 57 KiB

+6 -6
View File
@@ -1,21 +1,21 @@
{
"schemaVersion": 1,
"id": "auraclient",
"id": "saturnclient",
"version": "${version}",
"name": "auraclient",
"name": "saturnclient",
"description": "A Minecraft client mod",
"authors": ["IIpho3nix", "kleo-dev"],
"contact": {
"website": "https://kleo-dev.netlify.app",
"sources": "https://github.com/kleo-dev/auraclient"
"sources": "https://github.com/kleo-dev/saturnclient"
},
"license": "GPL-3.0",
"icon": "assets/auraclient/icon.png",
"icon": "assets/saturnclient/icon.png",
"environment": "client",
"entrypoints": {
"main": ["org.auraclient.auraclient.AuraClient"]
"main": ["org.saturnclient.saturnclient.SaturnClient"]
},
"mixins": ["auraclient.mixins.json"],
"mixins": ["saturnclient.mixins.json"],
"depends": {
"fabricloader": ">=${loader_version}",
"fabric": "*",
@@ -1,7 +1,7 @@
{
"required": true,
"minVersion": "0.8",
"package": "org.auraclient.auraclient.mixin",
"package": "org.saturnclient.saturnclient.mixin",
"compatibilityLevel": "JAVA_17",
"client": ["CapeRenderer", "TabListMixin", "NameTagMixin"],
"injectors": {