Compare commits

..
2 Commits
Author SHA1 Message Date
retuci0 ec3e633cec v2.4 2026-01-05 22:16:01 +01:00
retuci0 8f17bd8e67 v2.3 - sputnik rename 2026-01-04 17:46:51 +01:00
357 changed files with 2143 additions and 1496 deletions

No files matched your search

+5 -5
View File
@@ -5,19 +5,19 @@ mod para Minecraft Fabric 1.21.10 que añade algunas cosas QOL, mayormente relac
## instalación ## instalación
### para gente normal: ### para gente normal:
1. ir a [lanzamientos](https://github.com/retuci0/camera-tweaks/releases) 1. ir a [lanzamientos](https://github.com/retuci0/sputnik/releases)
2. selecionar la versión más reciente 2. selecionar la versión más reciente
3. descargar el .jar 3. descargar el .jar
4. moverlo a tu directorio de mods (probablemente `%appdata%/.minecraft/mods`) 4. moverlo a tu directorio de mods (probablemente `%appdata%/.minecraft/mods`)
asegúrate de tener una version de Minecraft y Fabric compatibles con el mod (MC `1.21.10`; Fabric `0.138.3`) asegúrate de tener una version de Minecraft y Fabric compatibles con el mod (MC `1.21.11`; Fabric `0.17.3`)
es posible que haya problemas al usarlo junto a otros mods, especialmente junto a otros clientes, pues pueden conflictar entre ellos. es posible que haya problemas al usarlo junto a otros mods, especialmente junto a otros clientes, pues pueden conflictar entre ellos.
### para frikis de 200 de iq ### para frikis de 200 de iq
1. clona el respositorio (`git clone https://github.com/retuci0/camera-tweaks`) 1. clona el respositorio (`git clone https://github.com/retuci0/sputnik`)
2. entra al directorio del repositorio (`cd camera-tweaks`) 2. entra al directorio del repositorio (`cd sputnik`)
3. `gradlew build` para Windows o `chmod +x gradlew` + `./gradlew build` para Linux (Mac es Linux) 3. `gradlew build` para Windows o `chmod +x gradlew` + `./gradlew build` para Linux (Mac es Linux)
4. el resultado estará en `/build/libs/camtweaks-X.X.jar` (el que no lleva "sources" en el nombre) 4. el resultado estará en `/build/libs/sputnik-X.X.jar` (el que no lleva "sources" en el nombre)
## uso ## uso
+1 -1
View File
@@ -29,7 +29,7 @@ dependencies {
} }
loom { loom {
accessWidenerPath = file("src/main/resources/camtweaks.accesswidener") accessWidenerPath = file("src/main/resources/sputnik.accesswidener")
} }
processResources { processResources {
+4 -11
View File
@@ -1,25 +1,18 @@
# v2.2 # v2.4
## novedades ## novedades
- elementos del hud con imágenes ahora se usa el formato binario (.dat) en vez de .json para guardar ajustes, lo que los hace más rápidos, y el archivo más liviano
### adiciones ### adiciones
- elementos del hud de dinosaurios (autismaxxing), echest (items del echest) y totems (totems restantes en el inventario)
#### módulos nuevos: #### módulos nuevos:
- conejo: haz el elytra-bounce más fácilmente - capas: cambia (solo visualmente, para ti) la capa que usas a una custom de las disponibles
### arreglos / mejoras ### arreglos / mejoras
- ya no te puedes mover con una interfaz abierta en modo cámara libre - renombrado bien todo que lo hice con prisa
- minar sin interrupción ya va
- destello de enchants ya funciona
- ahora no siempre se verá a traves de paredes al renderizar (ej.: superposición de luz)
- el renderizado de líneas ya se adapta bien a la posición de la cámara
- la superposición de daño ya funciona
## problemas reconocidos ## problemas reconocidos
+3 -3
View File
@@ -1,4 +1,4 @@
org.gradle.jvmargs=-Xmx1G org.gradle.jvmargs=-Xmx2G
org.gradle.parallel=true org.gradle.parallel=true
minecraft_version=1.21.11 minecraft_version=1.21.11
@@ -8,6 +8,6 @@ loom_version=1.13-SNAPSHOT
fabric_api_version=0.140.2+1.21.11 fabric_api_version=0.140.2+1.21.11
mod_version=2.2 mod_version=2.4
maven_group=me.retucio maven_group=me.retucio
archives_base_name=camtweaks archives_base_name=sputnik
BIN
View File
Binary file not shown.
@@ -1,9 +0,0 @@
package me.retucio.camtweaks.event.events;
import me.retucio.camtweaks.event.Event;
/**
* @see me.retucio.camtweaks.mixin.ChunkOcclusionDataBuilderMixin#onChunkOcclusion
*/
public class ChunkOcclusionEvent extends Event {}
@@ -1,12 +0,0 @@
package me.retucio.camtweaks.event.events;
import me.retucio.camtweaks.event.Event;
/**
* @see me.retucio.camtweaks.mixin.MinecraftClientMixin#onStop
*/
public class ShutdownEvent extends Event {
public ShutdownEvent() {}
}
@@ -1,14 +0,0 @@
package me.retucio.camtweaks.event.events;
import me.retucio.camtweaks.event.Event;
/**
* @see me.retucio.camtweaks.mixin.MinecraftClientMixin#onTickPre
* @see me.retucio.camtweaks.mixin.MinecraftClientMixin#onTickPost
*/
public class TickEvent {
public static class Pre extends Event {}
public static class Post extends Event {}
}
@@ -1,13 +0,0 @@
package me.retucio.camtweaks.util.interfaces;
import net.minecraft.client.gui.hud.ChatHudLine;
import net.minecraft.text.Text;
import java.util.List;
public interface IChatHud {
void smegma$add(Text message, int id);
List<ChatHudLine.Visible> smegma$getVisibleMessages();
}
@@ -1,14 +0,0 @@
package me.retucio.camtweaks.util.interfaces;
import com.mojang.authlib.GameProfile;
public interface IChatHudLine {
String smegma$getText();
int smegma$getId();
void smegma$setId(int id);
GameProfile smegma$getSender();
void smegma$setSender(GameProfile profile);
}
@@ -1,7 +0,0 @@
package me.retucio.camtweaks.util.interfaces;
public interface IChatHudLineVisible extends IChatHudLine {
boolean smegma$isStartOfEntry();
void smegma$setStartOfEntry(boolean start);
}
@@ -1,6 +0,0 @@
package me.retucio.camtweaks.util.interfaces;
public interface IConfirmScreen {
void smegma$setBypassAction(Runnable action);
}
@@ -1,8 +0,0 @@
package me.retucio.camtweaks.util.interfaces;
import com.mojang.authlib.GameProfile;
public interface IMessageHandler {
GameProfile smegma$getSender();
}
@@ -1,14 +0,0 @@
package me.retucio.camtweaks.util.interfaces;
import net.minecraft.util.math.Vec3i;
import org.joml.Vector3d;
public interface IVec3d {
void smegma$set(double x, double y, double z);
default void smegma$set(Vec3i vec) { smegma$set(vec.getX(), vec.getY(), vec.getZ()); }
default void semgma$set(Vector3d vec) { smegma$set(vec.x, vec.y, vec.z); }
void smegma$setXZ(double x, double z);
void smegma$setY(double y);
}
@@ -1,45 +1,44 @@
package me.retucio.camtweaks; package me.retucio.sputnik;
import me.retucio.camtweaks.command.CommandManager; import me.retucio.sputnik.cape.CapeManager;
import me.retucio.camtweaks.command.commands.BindCommand; import me.retucio.sputnik.command.CommandManager;
import me.retucio.sputnik.command.commands.BindCommand;
import me.retucio.camtweaks.config.ConfigManager; import me.retucio.sputnik.config.ConfigManager;
import me.retucio.camtweaks.event.EventBus; import me.retucio.sputnik.event.EventBus;
import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.sputnik.event.SubscribeEvent;
import me.retucio.camtweaks.event.events.ShutdownEvent; import me.retucio.sputnik.event.events.ShutdownEvent;
import me.retucio.sputnik.event.events.sputnik.LoadCapeManagerEvent;
import me.retucio.sputnik.event.events.sputnik.LoadClickGUIEvent;
import me.retucio.sputnik.event.events.sputnik.LoadCommandManagerEvent;
import me.retucio.sputnik.event.events.sputnik.LoadModuleManagerEvent;
import me.retucio.camtweaks.event.events.camtweaks.LoadClickGUIEvent; import me.retucio.sputnik.module.Module;
import me.retucio.camtweaks.event.events.camtweaks.LoadCommandManagerEvent; import me.retucio.sputnik.module.ModuleManager;
import me.retucio.camtweaks.event.events.camtweaks.LoadModuleManagerEvent; import me.retucio.sputnik.module.modules.client.HUD;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.client.HUD; import me.retucio.sputnik.ui.screen.ClickGUI;
import me.retucio.camtweaks.ui.screen.ClickGUI; import me.retucio.sputnik.ui.hud.HudEditorScreen;
import me.retucio.camtweaks.ui.hud.HudEditorScreen; import me.retucio.sputnik.ui.widgets.buttons.settings.BindButton;
import me.retucio.camtweaks.ui.hud.HudRenderer; import me.retucio.sputnik.ui.widgets.buttons.SettingButton;
import me.retucio.camtweaks.ui.widgets.buttons.settings.BindButton; import me.retucio.sputnik.ui.widgets.buttons.settings.TextButton;
import me.retucio.camtweaks.ui.widgets.buttons.SettingButton; import me.retucio.sputnik.ui.widgets.frames.settings.ClientSettingsFrame;
import me.retucio.camtweaks.ui.widgets.buttons.settings.TextButton; import me.retucio.sputnik.ui.widgets.frames.SettingsFrame;
import me.retucio.camtweaks.ui.widgets.frames.settings.ClientSettingsFrame; import me.retucio.sputnik.ui.widgets.Button;
import me.retucio.camtweaks.ui.widgets.frames.SettingsFrame;
import me.retucio.camtweaks.ui.widgets.Button; import me.retucio.sputnik.util.*;
import me.retucio.camtweaks.util.*; import me.retucio.sputnik.util.render.DrawUtil;
import me.retucio.sputnik.util.render.RenderUtil;
import me.retucio.camtweaks.util.render.DrawUtil;
import me.retucio.camtweaks.util.render.RenderUtil;
import net.fabricmc.api.ClientModInitializer; import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.SharedConstants; import net.minecraft.SharedConstants;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.ChatScreen; import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.ingame.AbstractCommandBlockScreen; import net.minecraft.client.gui.screen.ingame.AbstractCommandBlockScreen;
import net.minecraft.client.gui.screen.ingame.AbstractSignEditScreen; import net.minecraft.client.gui.screen.ingame.AbstractSignEditScreen;
import net.minecraft.client.gui.screen.ingame.AnvilScreen; import net.minecraft.client.gui.screen.ingame.AnvilScreen;
@@ -50,43 +49,33 @@ import org.lwjgl.glfw.GLFW;
public class CameraTweaks implements ClientModInitializer { public class Sputnik implements ClientModInitializer {
// cosas necesarias // cosas necesarias
public static final CameraTweaks INSTANCE = new CameraTweaks(); public static final Sputnik INSTANCE = new Sputnik();
public static final EventBus EVENT_BUS = new EventBus(); public static final EventBus EVENT_BUS = new EventBus();
public static final Logger LOGGER = LogManager.getLogger(CameraTweaks.class); public static final Logger LOGGER = LogManager.getLogger(Sputnik.class);
public static MinecraftClient mc; public static MinecraftClient mc;
// id y versión // id y versión
public static final String MOD_ID = "camtweaks"; public static final String MOD_ID = "sputnik";
public static final String MOD_VERSION; public static final String MOD_VERSION = FabricLoader.getInstance()
.getModContainer(MOD_ID)
static {
MOD_VERSION = FabricLoader.getInstance().getModContainer(MOD_ID)
.orElseThrow() .orElseThrow()
.getMetadata() .getMetadata()
.getVersion() .getVersion()
.getFriendlyString(); .getFriendlyString();
}
private Screen prevScreen; private Screen prevScreen;
public static boolean settingsApplied = false; public static boolean settingsApplied = false;
@Override @Override
public void onInitializeClient() { public void onInitializeClient() {
// por algún motivo aunque lo añada a los args de la JVM sigue siendo true a menos que haga esto??? puta vida
System.setProperty("java.awt.headless", "false");
mc = MinecraftClient.getInstance(); mc = MinecraftClient.getInstance();
ConfigManager.load(); ConfigManager.load();
EVENT_BUS.register(this); EVENT_BUS.register(this);
EVENT_BUS.register(HudRenderer.class);
EVENT_BUS.register(ChatUtil.class); EVENT_BUS.register(ChatUtil.class);
EVENT_BUS.register(DrawUtil.class); EVENT_BUS.register(DrawUtil.class);
EVENT_BUS.register(EntityUtil.class); EVENT_BUS.register(EntityUtil.class);
@@ -97,6 +86,9 @@ public class CameraTweaks implements ClientModInitializer {
Lists.init(); Lists.init();
CapeManager.INSTANCE = new CapeManager();
EVENT_BUS.post(new LoadCapeManagerEvent());
ModuleManager.INSTANCE = new ModuleManager(); ModuleManager.INSTANCE = new ModuleManager();
EVENT_BUS.post(new LoadModuleManagerEvent()); EVENT_BUS.post(new LoadModuleManagerEvent());
@@ -108,7 +100,6 @@ public class CameraTweaks implements ClientModInitializer {
EVENT_BUS.post(new LoadClickGUIEvent()); EVENT_BUS.post(new LoadClickGUIEvent());
Runtime.getRuntime().addShutdownHook(new Thread(() -> { Runtime.getRuntime().addShutdownHook(new Thread(() -> {
ConfigManager.save();
EVENT_BUS.post(new ShutdownEvent()); EVENT_BUS.post(new ShutdownEvent());
})); }));
} }
@@ -127,7 +118,7 @@ public class CameraTweaks implements ClientModInitializer {
// se ejecuta cada vez que se presiona una tecla // se ejecuta cada vez que se presiona una tecla
public void onKeyPress(int key, int action) { public void onKey(int key, int action) {
if (key == GLFW.GLFW_KEY_F3) return; // prevenir activación de módulos al usar combinaciones de F3 if (key == GLFW.GLFW_KEY_F3) return; // prevenir activación de módulos al usar combinaciones de F3
ModuleManager.INSTANCE.getEnabledModules().forEach(module -> module.onKey(key, action)); ModuleManager.INSTANCE.getEnabledModules().forEach(module -> module.onKey(key, action));
@@ -173,7 +164,7 @@ public class CameraTweaks implements ClientModInitializer {
// se ocupa de hacer los botones de ajustes que lo necesiten escuchar teclas // se ocupa de hacer los botones de ajustes que lo necesiten escuchar teclas
private void handleSettingButtonsKey(int key, int action) { private void handleSettingButtonsKey(int key, int action) {
for (SettingsFrame sf : ClickGUI.INSTANCE.getSettingsFrames()) { for (SettingsFrame sf : ClickGUI.INSTANCE.getSettingsFrames()) {
for (SettingButton sb : sf.getButtons()) { for (SettingButton<?> sb : sf.getButtons()) {
if (sb instanceof BindButton bb) bb.onKey(key, action); if (sb instanceof BindButton bb) bb.onKey(key, action);
if (sb instanceof TextButton tb) tb.onKey(key, action); if (sb instanceof TextButton tb) tb.onKey(key, action);
} }
@@ -0,0 +1,61 @@
package me.retucio.sputnik.cape;
import me.retucio.sputnik.Sputnik;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.texture.NativeImage;
import net.minecraft.client.texture.NativeImageBackedTexture;
import net.minecraft.util.Identifier;
import java.io.IOException;
import java.io.InputStream;
public class Cape {
private final MinecraftClient mc = MinecraftClient.getInstance();
private final String name;
private final Identifier id;
private NativeImage img;
private NativeImageBackedTexture texture;
public Cape(String name) {
this.name = name;
this.id = Identifier.of(Sputnik.MOD_ID, "textures/capes/" + name + ".png");
}
public void load() {
this.img = loadTexture(this.id);
}
public NativeImage loadTexture(Identifier id) {
try (InputStream inputStream = mc.getResourceManager().getResource(id).get().getInputStream()) {
return NativeImage.read(inputStream);
} catch (IOException e) {
Sputnik.LOGGER.error("ups: {}", e.getMessage());
return null;
}
}
public void register() {
texture = new NativeImageBackedTexture(null, img);
mc.getTextureManager().registerTexture(id, texture);
img = null;
}
public String getName() {
return name;
}
public Identifier getId() {
return id;
}
public NativeImageBackedTexture getTexture() {
return texture;
}
@Override
public String toString() {
return name.replace('-', ' ');
}
}
@@ -0,0 +1,87 @@
package me.retucio.sputnik.cape;
import java.util.ArrayList;
import java.util.List;
import static me.retucio.sputnik.Sputnik.mc;
public class CapeManager {
public static CapeManager INSTANCE;
private final List<Cape> capes = new ArrayList<>();
public CapeManager() {
addCapes();
}
public void addCapes() {
addCape("sputnik");
addCape("half-life");
addCape("hollow-knight");
addCape("cherry-blossom");
addCape("migrator");
addCape("minecraft");
addCape("pancakes");
addCape("vanilla");
addCape("tiktok");
addCape("twitch");
addCape("mojang");
addCape("mojang-old");
addCape("mojang-old-old");
addCape("minecon-2011");
addCape("minecon-2012");
addCape("minecon-2013");
addCape("minecon-2015");
addCape("minecon-2016");
addCape("experience-2025");
addCape("15th-anniversary");
addCape("bedrock");
addCape("birthday");
addCape("copper");
addCape("eye-blossom");
addCape("mcc-15");
addCape("prismarine");
addCape("turtle");
addCape("valentine");
addCape("chinese-translator");
addCape("cobalt");
addCape("mojira-mod");
addCape("millionth-customer");
addCape("realms-mapmaker");
addCape("scrolls-champion");
addCape("translator");
addCape("cheapsh0t");
addCape("dannybstyle");
addCape("julianclark");
addCape("mrmessiah");
for (Cape cape : capes) {
mc.execute(cape::load);
mc.execute(cape::register);
}
}
private void addCape(String name) {
capes.add(new Cape(name));
}
public Cape getCape(String name) {
for (Cape cape : capes)
if (cape.getName().equalsIgnoreCase(name))
return cape;
return null;
}
public List<Cape> getCapes() {
return capes;
}
}
@@ -1,4 +1,4 @@
package me.retucio.camtweaks.command; package me.retucio.sputnik.command;
import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.arguments.ArgumentType; import com.mojang.brigadier.arguments.ArgumentType;
@@ -65,7 +65,7 @@ public abstract class Command {
} }
public String toString() { public String toString() {
return me.retucio.camtweaks.command.CommandManager.INSTANCE.getPrefix() + name; return me.retucio.sputnik.command.CommandManager.INSTANCE.getPrefix() + name;
} }
public String toString(String... args) { public String toString(String... args) {
@@ -1,11 +1,10 @@
package me.retucio.camtweaks.command; package me.retucio.sputnik.command;
import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.CommandSyntaxException;
import me.retucio.camtweaks.CameraTweaks; import me.retucio.sputnik.Sputnik;
import me.retucio.camtweaks.command.commands.*; import me.retucio.sputnik.command.commands.*;
import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.sputnik.event.SubscribeEvent;
import me.retucio.camtweaks.module.Module;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.command.CommandSource; import net.minecraft.command.CommandSource;
@@ -49,7 +48,7 @@ public class CommandManager {
for (Command command : commands) { for (Command command : commands) {
for (Method method : command.getClass().getDeclaredMethods()) { for (Method method : command.getClass().getDeclaredMethods()) {
if (method.isAnnotationPresent(SubscribeEvent.class)) { if (method.isAnnotationPresent(SubscribeEvent.class)) {
CameraTweaks.EVENT_BUS.register(command); Sputnik.EVENT_BUS.register(command);
break; break;
} }
} }
@@ -1,4 +1,4 @@
package me.retucio.camtweaks.command.args; package me.retucio.sputnik.command.args;
import com.mojang.brigadier.StringReader; import com.mojang.brigadier.StringReader;
import com.mojang.brigadier.arguments.ArgumentType; import com.mojang.brigadier.arguments.ArgumentType;
@@ -8,19 +8,19 @@ import com.mojang.brigadier.exceptions.DynamicCommandExceptionType;
import com.mojang.brigadier.suggestion.Suggestions; import com.mojang.brigadier.suggestion.Suggestions;
import com.mojang.brigadier.suggestion.SuggestionsBuilder; import com.mojang.brigadier.suggestion.SuggestionsBuilder;
import me.retucio.camtweaks.util.EntityUtil; import me.retucio.sputnik.util.EntityUtil;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import javax.swing.*;
import java.util.*; import java.util.*;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.regex.Pattern; import java.util.regex.Pattern;
// para autocompletar entidades import static me.retucio.sputnik.Sputnik.mc;
import static me.retucio.camtweaks.CameraTweaks.mc;
// para autocompletar entidades
public class EntityArgumentType implements ArgumentType<Entity> { public class EntityArgumentType implements ArgumentType<Entity> {
public static final EntityArgumentType INSTANCE = new EntityArgumentType(); public static final EntityArgumentType INSTANCE = new EntityArgumentType();
@@ -1,4 +1,4 @@
package me.retucio.camtweaks.command.args; package me.retucio.sputnik.command.args;
import com.mojang.brigadier.StringReader; import com.mojang.brigadier.StringReader;
import com.mojang.brigadier.arguments.ArgumentType; import com.mojang.brigadier.arguments.ArgumentType;
@@ -7,8 +7,8 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException;
import com.mojang.brigadier.exceptions.DynamicCommandExceptionType; import com.mojang.brigadier.exceptions.DynamicCommandExceptionType;
import com.mojang.brigadier.suggestion.Suggestions; import com.mojang.brigadier.suggestion.Suggestions;
import com.mojang.brigadier.suggestion.SuggestionsBuilder; import com.mojang.brigadier.suggestion.SuggestionsBuilder;
import me.retucio.camtweaks.module.Module; import me.retucio.sputnik.module.Module;
import me.retucio.camtweaks.module.ModuleManager; import me.retucio.sputnik.module.ModuleManager;
import net.minecraft.command.CommandSource; import net.minecraft.command.CommandSource;
import net.minecraft.text.Text; import net.minecraft.text.Text;
@@ -1,4 +1,4 @@
package me.retucio.camtweaks.command.args; package me.retucio.sputnik.command.args;
import com.mojang.brigadier.StringReader; import com.mojang.brigadier.StringReader;
import com.mojang.brigadier.arguments.ArgumentType; import com.mojang.brigadier.arguments.ArgumentType;
@@ -15,7 +15,7 @@ import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import static me.retucio.camtweaks.CameraTweaks.mc; import static me.retucio.sputnik.Sputnik.mc;
// para autocompletar nombres de jugadores // para autocompletar nombres de jugadores
public class PlayerArgumentType implements ArgumentType<PlayerEntity> { public class PlayerArgumentType implements ArgumentType<PlayerEntity> {
@@ -1,12 +1,12 @@
package me.retucio.camtweaks.command.commands; package me.retucio.sputnik.command.commands;
import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import me.retucio.camtweaks.command.Command; import me.retucio.sputnik.command.Command;
import me.retucio.camtweaks.command.args.ModuleArgumentType; import me.retucio.sputnik.command.args.ModuleArgumentType;
import me.retucio.camtweaks.module.Module; import me.retucio.sputnik.module.Module;
import me.retucio.camtweaks.module.settings.KeySetting; import me.retucio.sputnik.module.settings.KeySetting;
import me.retucio.camtweaks.util.ChatUtil; import me.retucio.sputnik.util.ChatUtil;
import me.retucio.camtweaks.util.KeyUtil; import me.retucio.sputnik.util.KeyUtil;
import net.minecraft.command.CommandSource; import net.minecraft.command.CommandSource;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.util.Formatting; import net.minecraft.util.Formatting;
@@ -1,9 +1,9 @@
package me.retucio.camtweaks.command.commands; package me.retucio.sputnik.command.commands;
import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import me.retucio.camtweaks.command.Command; import me.retucio.sputnik.command.Command;
import me.retucio.camtweaks.module.ModuleManager; import me.retucio.sputnik.module.ModuleManager;
import me.retucio.camtweaks.module.modules.misc.ScreenshotPlus; import me.retucio.sputnik.module.modules.misc.ScreenshotPlus;
import net.minecraft.command.CommandSource; import net.minecraft.command.CommandSource;
// se usa principalmente para el módulo ScreenshotPlus, pero también se puede usar sin él supongo // se usa principalmente para el módulo ScreenshotPlus, pero también se puede usar sin él supongo
@@ -1,13 +1,12 @@
package me.retucio.camtweaks.command.commands; package me.retucio.sputnik.command.commands;
import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import me.retucio.camtweaks.CameraTweaks; import me.retucio.sputnik.command.Command;
import me.retucio.camtweaks.command.Command; import me.retucio.sputnik.event.SubscribeEvent;
import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.sputnik.event.events.TickEvent;
import me.retucio.camtweaks.event.events.TickEvent; import me.retucio.sputnik.ui.screen.PreviewScreen;
import me.retucio.camtweaks.ui.screen.PreviewScreen; import me.retucio.sputnik.util.ChatUtil;
import me.retucio.camtweaks.util.ChatUtil; import me.retucio.sputnik.util.InventoryUtil;
import me.retucio.camtweaks.util.InventoryUtil;
import net.minecraft.command.CommandSource; import net.minecraft.command.CommandSource;
// accede a los contenidos de tu enderchest // accede a los contenidos de tu enderchest
@@ -1,8 +1,8 @@
package me.retucio.camtweaks.command.commands; package me.retucio.sputnik.command.commands;
import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import me.retucio.camtweaks.command.Command; import me.retucio.sputnik.command.Command;
import me.retucio.camtweaks.util.ChatUtil; import me.retucio.sputnik.util.ChatUtil;
import net.minecraft.command.CommandSource; import net.minecraft.command.CommandSource;
import net.minecraft.text.Text; import net.minecraft.text.Text;
@@ -1,9 +1,9 @@
package me.retucio.camtweaks.command.commands; package me.retucio.sputnik.command.commands;
import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import me.retucio.camtweaks.command.Command; import me.retucio.sputnik.command.Command;
import me.retucio.camtweaks.command.args.PlayerArgumentType; import me.retucio.sputnik.command.args.PlayerArgumentType;
import me.retucio.camtweaks.util.MiscUtil; import me.retucio.sputnik.util.MiscUtil;
import net.minecraft.client.gui.screen.ingame.InventoryScreen; import net.minecraft.client.gui.screen.ingame.InventoryScreen;
import net.minecraft.command.CommandSource; import net.minecraft.command.CommandSource;
@@ -1,10 +1,10 @@
package me.retucio.camtweaks.command.commands; package me.retucio.sputnik.command.commands;
import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.arguments.StringArgumentType;
import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import me.retucio.camtweaks.command.Command; import me.retucio.sputnik.command.Command;
import me.retucio.camtweaks.ui.widgets.frames.settings.ClientSettingsFrame; import me.retucio.sputnik.ui.widgets.frames.settings.ClientSettingsFrame;
import me.retucio.camtweaks.util.ChatUtil; import me.retucio.sputnik.util.ChatUtil;
import net.minecraft.command.CommandSource; import net.minecraft.command.CommandSource;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.util.Formatting; import net.minecraft.util.Formatting;
@@ -1,9 +1,9 @@
package me.retucio.camtweaks.command.commands; package me.retucio.sputnik.command.commands;
import com.mojang.brigadier.arguments.IntegerArgumentType; import com.mojang.brigadier.arguments.IntegerArgumentType;
import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import me.retucio.camtweaks.command.Command; import me.retucio.sputnik.command.Command;
import me.retucio.camtweaks.util.interfaces.IChatHud; import me.retucio.sputnik.util.interfaces.IChatHud;
import net.minecraft.client.gui.hud.ChatHud; import net.minecraft.client.gui.hud.ChatHud;
import net.minecraft.client.gui.hud.ChatHudLine; import net.minecraft.client.gui.hud.ChatHudLine;
import net.minecraft.command.CommandSource; import net.minecraft.command.CommandSource;
@@ -31,7 +31,7 @@ public class PurgeCommand extends Command {
ChatHud chatHud = mc.inGameHud.getChatHud(); ChatHud chatHud = mc.inGameHud.getChatHud();
synchronized (chatHud) { synchronized (chatHud) {
List<ChatHudLine.Visible> visibleMessages = ((IChatHud) chatHud).smegma$getVisibleMessages(); List<ChatHudLine.Visible> visibleMessages = ((IChatHud) chatHud).sputnik$getVisibleMessages();
int toRemove = Math.min(amount, visibleMessages.size()); int toRemove = Math.min(amount, visibleMessages.size());
for (int i = 0; i < toRemove; i++) for (int i = 0; i < toRemove; i++)
visibleMessages.removeFirst(); visibleMessages.removeFirst();
@@ -1,10 +1,10 @@
package me.retucio.camtweaks.command.commands; package me.retucio.sputnik.command.commands;
import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import me.retucio.camtweaks.command.Command; import me.retucio.sputnik.command.Command;
import me.retucio.camtweaks.module.ModuleManager; import me.retucio.sputnik.module.ModuleManager;
import me.retucio.camtweaks.module.modules.misc.ScreenshotPlus; import me.retucio.sputnik.module.modules.misc.ScreenshotPlus;
import me.retucio.camtweaks.util.ChatUtil; import me.retucio.sputnik.util.ChatUtil;
import net.minecraft.command.CommandSource; import net.minecraft.command.CommandSource;
import java.io.IOException; import java.io.IOException;
@@ -1,9 +1,9 @@
package me.retucio.camtweaks.command.commands; package me.retucio.sputnik.command.commands;
import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.arguments.StringArgumentType;
import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import me.retucio.camtweaks.command.Command; import me.retucio.sputnik.command.Command;
import me.retucio.camtweaks.mixin.accessor.ClientPlayNetworkHandlerAccessor; import me.retucio.sputnik.mixin.accessor.ClientPlayNetworkHandlerAccessor;
import net.minecraft.client.network.ClientPlayNetworkHandler; import net.minecraft.client.network.ClientPlayNetworkHandler;
import net.minecraft.command.CommandSource; import net.minecraft.command.CommandSource;
import net.minecraft.network.encryption.NetworkEncryptionUtils; import net.minecraft.network.encryption.NetworkEncryptionUtils;
@@ -11,7 +11,6 @@ import net.minecraft.network.message.LastSeenMessagesCollector;
import net.minecraft.network.message.MessageBody; import net.minecraft.network.message.MessageBody;
import net.minecraft.network.message.MessageSignatureData; import net.minecraft.network.message.MessageSignatureData;
import net.minecraft.network.packet.c2s.play.ChatMessageC2SPacket; import net.minecraft.network.packet.c2s.play.ChatMessageC2SPacket;
import net.minecraft.text.Text;
import java.time.Instant; import java.time.Instant;
@@ -1,12 +1,11 @@
package me.retucio.camtweaks.command.commands; package me.retucio.sputnik.command.commands;
import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import me.retucio.camtweaks.command.Command; import me.retucio.sputnik.command.Command;
import me.retucio.camtweaks.command.args.EntityArgumentType; import me.retucio.sputnik.command.args.EntityArgumentType;
import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.sputnik.event.SubscribeEvent;
import me.retucio.camtweaks.event.events.KeyEvent; import me.retucio.sputnik.event.events.KeyEvent;
import me.retucio.camtweaks.util.EntityUtil; import me.retucio.sputnik.util.EntityUtil;
import me.retucio.camtweaks.util.MiscUtil;
import net.minecraft.command.CommandSource; import net.minecraft.command.CommandSource;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import org.lwjgl.glfw.GLFW; import org.lwjgl.glfw.GLFW;
@@ -1,10 +1,10 @@
package me.retucio.camtweaks.command.commands; package me.retucio.sputnik.command.commands;
import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import me.retucio.camtweaks.command.Command; import me.retucio.sputnik.command.Command;
import me.retucio.camtweaks.command.args.ModuleArgumentType; import me.retucio.sputnik.command.args.ModuleArgumentType;
import me.retucio.camtweaks.module.Module; import me.retucio.sputnik.module.Module;
import me.retucio.camtweaks.module.ModuleManager; import me.retucio.sputnik.module.ModuleManager;
import net.minecraft.command.CommandSource; import net.minecraft.command.CommandSource;
// porque usar el ratón es más lento que escribir, a menos que tengas toque con el teclado como yo // porque usar el ratón es más lento que escribir, a menos que tengas toque con el teclado como yo
@@ -0,0 +1,357 @@
package me.retucio.sputnik.config;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
public class BinarySerializer {
private static final int MAGIC_NUMBER = 0x53505554; // "SPUT"
private static final int VERSION = 1;
private static final byte TYPE_NULL = 0;
private static final byte TYPE_BOOLEAN = 1;
private static final byte TYPE_INT = 2;
private static final byte TYPE_DOUBLE = 3;
private static final byte TYPE_STRING = 4;
private static final byte TYPE_MAP = 5;
private static final byte TYPE_INT_ARRAY = 6;
private static final byte TYPE_FRAME_DATA = 7;
public static void writeConfig(ClientConfig config, File file)
throws IOException {
try (DataOutputStream out = new DataOutputStream(
new BufferedOutputStream(new FileOutputStream(file)))) {
// cabezal
out.writeInt(MAGIC_NUMBER);
out.writeInt(VERSION);
// mapas
writeStringBooleanMap(out, config.moduleStates);
writeSettingsMap(out, config.settings);
writeStringIntArrayMap(out, config.settingsFrames);
writeExtendableFrames(out, config.extendableFrames);
writeStringIntArrayMap(out, config.hudPositions);
writeStringBooleanMap(out, config.hudVisibilities);
writeStringStringMap(out, config.hudImagePaths);
// posición de la barra de búsqueda
if (config.searchBarPosition != null) {
out.writeBoolean(true);
out.writeInt(config.searchBarPosition[0]);
out.writeInt(config.searchBarPosition[1]);
} else {
out.writeBoolean(false);
}
}
}
public static ClientConfig readConfig(File file)
throws IOException {
if (!file.exists() || file.length() == 0) {
throw new IOException("archivo de config. vacío o inexistente");
}
try (DataInputStream in = new DataInputStream(
new BufferedInputStream(new FileInputStream(file)))) {
if (file.length() < 8) {
throw new IOException("archivo demasiado pequeño para ser válido");
}
// verificar cabezal
int magic = in.readInt();
if (magic != MAGIC_NUMBER) {
throw new IOException("formato de archivo inválido: " + magic);
}
int version = in.readInt();
if (version != VERSION) {
throw new IOException("versión inválida: " + version);
}
ClientConfig config = new ClientConfig();
// leer mapas
config.moduleStates = readStringBooleanMap(in);
config.settings = readSettingsMap(in);
config.settingsFrames = readStringIntArrayMap(in);
config.extendableFrames = readExtendableFrames(in);
config.hudPositions = readStringIntArrayMap(in);
config.hudVisibilities = readStringBooleanMap(in);
config.hudImagePaths = readStringStringMap(in);
// leer pos. de la barra de búsqueda
if (in.readBoolean()) {
config.searchBarPosition = new int[]{in.readInt(), in.readInt()};
}
return config;
}
}
private static void writeStringBooleanMap(DataOutputStream out, Map<String, Boolean> map)
throws IOException {
if (map == null) {
out.writeInt(0);
return;
}
out.writeInt(map.size());
for (Map.Entry<String, Boolean> entry : map.entrySet()) {
writeString(out, entry.getKey());
out.writeBoolean(entry.getValue());
}
}
private static Map<String, Boolean> readStringBooleanMap(DataInputStream in)
throws IOException {
int size = in.readInt();
Map<String, Boolean> map = new HashMap<>(size);
for (int i = 0; i < size; i++) {
String key = readString(in);
boolean value = in.readBoolean();
map.put(key, value);
}
return map;
}
private static void writeSettingsMap(DataOutputStream out, Map<String, Object> map)
throws IOException {
if (map == null) {
out.writeInt(0);
return;
}
out.writeInt(map.size());
for (Map.Entry<String, Object> entry : map.entrySet()) {
writeString(out, entry.getKey());
writeSettingValue(out, entry.getValue());
}
}
private static Map<String, Object> readSettingsMap(DataInputStream in)
throws IOException {
int size = in.readInt();
Map<String, Object> map = new HashMap<>(size);
for (int i = 0; i < size; i++) {
String key = readString(in);
Object value = readSettingValue(in);
map.put(key, value);
}
return map;
}
private static void writeSettingValue(DataOutputStream out, Object value)
throws IOException {
switch (value) {
case Boolean b -> {
out.writeByte(TYPE_BOOLEAN);
out.writeBoolean(b);
}
case Integer i -> {
out.writeByte(TYPE_INT);
out.writeInt(i);
}
case Double v -> {
out.writeByte(TYPE_DOUBLE);
out.writeDouble(v);
}
case String s -> {
out.writeByte(TYPE_STRING);
writeString(out, s);
}
case Map<?, ?> map -> {
out.writeByte(TYPE_MAP);
writeGenericMap(out, map);
} // fallback
case null, default -> out.writeByte(TYPE_NULL);
}
}
private static Object readSettingValue(DataInputStream in) throws IOException {
byte type = in.readByte();
return switch (type) {
case TYPE_BOOLEAN -> in.readBoolean();
case TYPE_INT -> in.readInt();
case TYPE_DOUBLE -> in.readDouble();
case TYPE_STRING -> readString(in);
case TYPE_MAP -> readGenericMap(in);
default -> null;
};
}
private static void writeGenericMap(DataOutputStream out, Map<?, ?> map)
throws IOException {
if (map == null) {
out.writeInt(0);
return;
}
out.writeInt(map.size());
for (Map.Entry<?, ?> entry : map.entrySet()) {
writeObject(out, entry.getKey());
writeObject(out, entry.getValue());
}
}
private static Map<Object, Object> readGenericMap(DataInputStream in)
throws IOException {
int size = in.readInt();
Map<Object, Object> map = new HashMap<>(size);
for (int i = 0; i < size; i++) {
Object key = readObject(in);
Object value = readObject(in);
map.put(key, value);
}
return map;
}
private static void writeObject(DataOutputStream out, Object obj)
throws IOException {
switch (obj) {
case String s -> {
out.writeByte(TYPE_STRING);
writeString(out, s);
}
case Boolean b -> {
out.writeByte(TYPE_BOOLEAN);
out.writeBoolean(b);
}
case Number number -> {
if (obj instanceof Integer) {
out.writeByte(TYPE_INT);
out.writeInt((Integer) obj);
} else if (obj instanceof Double) {
out.writeByte(TYPE_DOUBLE);
out.writeDouble((Double) obj);
}
}
default -> {
out.writeByte(TYPE_STRING);
writeString(out, obj.toString());
}
}
}
private static Object readObject(DataInputStream in) throws IOException {
byte type = in.readByte();
return switch (type) {
case TYPE_STRING -> readString(in);
case TYPE_BOOLEAN -> in.readBoolean();
case TYPE_INT -> in.readInt();
case TYPE_DOUBLE -> in.readDouble();
default -> null;
};
}
private static void writeStringIntArrayMap(DataOutputStream out, Map<String, int[]> map)
throws IOException {
if (map == null) {
out.writeInt(0);
return;
}
out.writeInt(map.size());
for (Map.Entry<String, int[]> entry : map.entrySet()) {
writeString(out, entry.getKey());
int[] array = entry.getValue();
if (array == null) {
out.writeInt(0);
} else {
out.writeInt(array.length);
for (int value : array) {
out.writeInt(value);
}
}
}
}
private static Map<String, int[]> readStringIntArrayMap(DataInputStream in)
throws IOException {
int size = in.readInt();
Map<String, int[]> map = new HashMap<>(size);
for (int i = 0; i < size; i++) {
String key = readString(in);
int arraySize = in.readInt();
int[] array = new int[arraySize];
for (int j = 0; j < arraySize; j++) {
array[j] = in.readInt();
}
map.put(key, array);
}
return map;
}
private static void writeExtendableFrames(DataOutputStream out, Map<String, ClientConfig.FrameData> map)
throws IOException {
if (map == null) {
out.writeInt(0);
return;
}
out.writeInt(map.size());
for (Map.Entry<String, ClientConfig.FrameData> entry : map.entrySet()) {
writeString(out, entry.getKey());
ClientConfig.FrameData data = entry.getValue();
out.writeInt(data.x());
out.writeInt(data.y());
out.writeBoolean(data.extended());
}
}
private static Map<String, ClientConfig.FrameData> readExtendableFrames(DataInputStream in)
throws IOException {
int size = in.readInt();
Map<String, ClientConfig.FrameData> map = new HashMap<>(size);
for (int i = 0; i < size; i++) {
String key = readString(in);
int x = in.readInt();
int y = in.readInt();
boolean extended = in.readBoolean();
map.put(key, new ClientConfig.FrameData(x, y, extended));
}
return map;
}
private static void writeStringStringMap(DataOutputStream out, Map<String, String> map)
throws IOException {
if (map == null) {
out.writeInt(0);
return;
}
out.writeInt(map.size());
for (Map.Entry<String, String> entry : map.entrySet()) {
writeString(out, entry.getKey());
writeString(out, entry.getValue());
}
}
private static Map<String, String> readStringStringMap(DataInputStream in)
throws IOException {
int size = in.readInt();
Map<String, String> map = new HashMap<>(size);
for (int i = 0; i < size; i++) {
String key = readString(in);
String value = readString(in);
map.put(key, value);
}
return map;
}
// Optimized string writing (UTF-8 with length prefix)
private static void writeString(DataOutputStream out, String str) throws IOException {
if (str == null) {
out.writeInt(-1);
return;
}
byte[] bytes = str.getBytes(StandardCharsets.UTF_8);
out.writeInt(bytes.length);
out.write(bytes);
}
private static String readString(DataInputStream in) throws IOException {
int length = in.readInt();
if (length == -1) return null;
byte[] bytes = new byte[length];
in.readFully(bytes);
return new String(bytes, "UTF-8");
}
}
@@ -1,15 +1,17 @@
package me.retucio.camtweaks.config; package me.retucio.sputnik.config;
import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.sputnik.event.SubscribeEvent;
import me.retucio.camtweaks.event.events.camtweaks.*; import me.retucio.sputnik.event.events.sputnik.*;
import me.retucio.camtweaks.module.settings.*; import me.retucio.sputnik.module.settings.*;
import me.retucio.camtweaks.ui.screen.ClickGUI; import me.retucio.sputnik.ui.screen.ClickGUI;
import java.io.Serial;
import java.io.Serializable;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import static me.retucio.camtweaks.CameraTweaks.EVENT_BUS; import static me.retucio.sputnik.Sputnik.EVENT_BUS;
import static me.retucio.camtweaks.CameraTweaks.mc; import static me.retucio.sputnik.Sputnik.mc;
// clase donde se guardan las configuraciones temporalmente hasta escribirlas en camera_tweaks.json // clase donde se guardan las configuraciones temporalmente hasta escribirlas en camera_tweaks.json
public class ClientConfig { public class ClientConfig {
@@ -62,7 +64,7 @@ public class ClientConfig {
case StringSetting s: value = s.getValue(); break; case StringSetting s: value = s.getValue(); break;
case ListSetting l: value = l.getConfigValues(); break; case ListSetting l: value = l.getConfigValues(); break;
case ColorSetting c: value = c.getConfigValue(); break; case ColorSetting c: value = c.getConfigValue(); break;
case OptionSetting o: value = o.getIndex(); break; case OptionSetting o: value = o.getDisplayName(); break;
default: break; default: break;
} }
@@ -71,7 +73,6 @@ public class ClientConfig {
@SubscribeEvent @SubscribeEvent
public void onOpenSettingsFrame(SettingsFrameEvent.Open event) { public void onOpenSettingsFrame(SettingsFrameEvent.Open event) {
if (settingsFrames.containsKey(event.getFrame().module.getName())) return;
ConfigManager.setFramePosition(event.getFrame()); ConfigManager.setFramePosition(event.getFrame());
} }
@@ -119,5 +120,7 @@ public class ClientConfig {
ClickGUI.INSTANCE.getGuiSettingsFrame().extended)); ClickGUI.INSTANCE.getGuiSettingsFrame().extended));
} }
public record FrameData(int x, int y, boolean extended) {} public record FrameData(int x, int y, boolean extended) implements Serializable {
@Serial private static final long serialVersionUID = 1L;
}
} }
@@ -1,29 +1,30 @@
package me.retucio.camtweaks.config; package me.retucio.sputnik.config;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
import me.retucio.camtweaks.CameraTweaks; import me.retucio.sputnik.Sputnik;
import me.retucio.camtweaks.module.Module; import me.retucio.sputnik.module.Module;
import me.retucio.camtweaks.module.ModuleManager; import me.retucio.sputnik.module.ModuleManager;
import me.retucio.camtweaks.module.settings.*; import me.retucio.sputnik.module.settings.*;
import me.retucio.camtweaks.ui.widgets.frames.ModuleFrame; import me.retucio.sputnik.ui.widgets.Frame;
import me.retucio.camtweaks.ui.screen.ClickGUI; import me.retucio.sputnik.ui.widgets.frames.ModuleFrame;
import me.retucio.camtweaks.ui.widgets.frames.settings.ClientSettingsFrame; import me.retucio.sputnik.ui.screen.ClickGUI;
import me.retucio.camtweaks.ui.widgets.frames.SettingsFrame; import me.retucio.sputnik.ui.widgets.frames.settings.ClientSettingsFrame;
import me.retucio.sputnik.ui.widgets.frames.SettingsFrame;
import me.retucio.sputnik.util.ChatUtil;
import java.io.File; import java.io.File;
import java.io.FileReader; import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
// se ocupa de guardar, cargar y aplicar ajustes // se ocupa de guardar, cargar y aplicar ajustes
// pues no me ha dado dolores de cabeza el coso este con los NPE de los cojones...
public class ConfigManager { public class ConfigManager {
private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create(); private static final File CONFIG_FILE = new File("sputnik.dat");
private static final File CONFIG_FILE = new File("camera_tweaks.json"); private static final File LEGACY_JSON_FILE = new File("sputnik.json");
private static boolean loaded = false; private static boolean loaded = false;
private static ClientConfig config = null; private static ClientConfig config = null;
@@ -33,33 +34,47 @@ public class ConfigManager {
// guardar configuraciones // guardar configuraciones
public static void save() { public static void save() {
if (!loaded) return;
ensureConfig(); ensureConfig();
try (FileWriter writer = new FileWriter(CONFIG_FILE)) { try {
GSON.toJson(config, writer); BinarySerializer.writeConfig(config, CONFIG_FILE);
CameraTweaks.LOGGER.info("ajustes guardados"); Sputnik.LOGGER.info("ajustes guardados");
} catch (IOException e) { } catch (IOException e) {
CameraTweaks.LOGGER.error("error al guardar ajustes", e); Sputnik.LOGGER.error("error al guardar ajustes", e);
} }
} }
// cargar configuraciones
public static void load() { public static void load() {
CameraTweaks.LOGGER.info("cargando ajustes..."); Sputnik.LOGGER.info("cargando ajustes...");
if (!CONFIG_FILE.exists()) { if (CONFIG_FILE.exists()) {
ensureConfig(); try {
save(); config = BinarySerializer.readConfig(CONFIG_FILE);
return; Sputnik.LOGGER.info("ajustes cargados");
return;
} catch (IOException e) {
Sputnik.LOGGER.error("error cargando ajustes, intentando json", e);
}
} }
try (FileReader reader = new FileReader(CONFIG_FILE)) { // Fallback to legacy JSON
config = GSON.fromJson(reader, ClientConfig.class); if (LEGACY_JSON_FILE.exists()) {
CameraTweaks.LOGGER.info("ajustes cargados"); try (FileReader reader = new FileReader(LEGACY_JSON_FILE)) {
} catch (IOException e) { Gson gson = new GsonBuilder().setPrettyPrinting().create();
CameraTweaks.LOGGER.error("no se pudieron cargar los ajustes, usando ajustes por defecto", e); config = gson.fromJson(reader, ClientConfig.class);
ensureConfig(); Sputnik.LOGGER.info("ajustes json cargados (migración)");
save();
return;
} catch (IOException e) {
Sputnik.LOGGER.error("error cargando json, usando defaults", e);
}
} }
// crear nuevo config
ensureConfig();
save();
} }
// aplicar configuraciones cargadas // aplicar configuraciones cargadas
@@ -74,7 +89,7 @@ public class ConfigManager {
applyExtendableFrames(); applyExtendableFrames();
loaded = true; loaded = true;
CameraTweaks.LOGGER.info("ajustes aplicados"); Sputnik.LOGGER.info("ajustes aplicados");
} }
// obtener configuración actual // obtener configuración actual
@@ -100,7 +115,10 @@ public class ConfigManager {
public static void setFramePosition(SettingsFrame frame) { public static void setFramePosition(SettingsFrame frame) {
ensureConfig(); ensureConfig();
config.settingsFrames.put(frame.module.getName(), new int[] {frame.getX(), frame.getY()}); if (!config.settingsFrames.containsKey(frame.module.getName()))
config.settingsFrames.put(frame.module.getName(), new int[] {frame.getX(), frame.getY()});
else
config.settingsFrames.replace(frame.module.getName(), new int[] {frame.getX(), frame.getY()});
save(); save();
} }
@@ -159,7 +177,7 @@ public class ConfigManager {
case ListSetting listSetting -> applyListSetting(listSetting, value); case ListSetting listSetting -> applyListSetting(listSetting, value);
case ColorSetting colorSetting -> applyColorSetting(colorSetting, value); case ColorSetting colorSetting -> applyColorSetting(colorSetting, value);
case OptionSetting optionSetting -> applyOptionSetting(optionSetting, value); case OptionSetting optionSetting -> applyOptionSetting(optionSetting, value);
default -> CameraTweaks.LOGGER.warn("watafac queseso: {}", setting.getClass().getSimpleName()); default -> Sputnik.LOGGER.warn("watafac queseso: {}", setting.getClass().getSimpleName());
} }
} }
@@ -169,14 +187,14 @@ public class ConfigManager {
module.setEnabled(config.moduleStates.get(module.getName())); module.setEnabled(config.moduleStates.get(module.getName()));
} }
}); });
CameraTweaks.LOGGER.info("estados de módulos aplicados"); Sputnik.LOGGER.info("estados de módulos aplicados");
} }
private static void applyModuleSettings() { private static void applyModuleSettings() {
ModuleManager.INSTANCE.getModules().forEach(module -> { ModuleManager.INSTANCE.getModules().forEach(module -> {
module.getSettings().forEach(setting -> applySetting(module, setting)); module.getSettings().forEach(setting -> applySetting(module, setting));
}); });
CameraTweaks.LOGGER.info("ajustes de módulos aplicados"); Sputnik.LOGGER.info("ajustes de módulos aplicados");
} }
private static void applySettingsFrames() { private static void applySettingsFrames() {
@@ -184,7 +202,7 @@ public class ConfigManager {
Module module = ModuleManager.INSTANCE.getModuleByName(moduleName); Module module = ModuleManager.INSTANCE.getModuleByName(moduleName);
ClickGUI.INSTANCE.openSettingsFrame(module, position[0], position[1]); ClickGUI.INSTANCE.openSettingsFrame(module, position[0], position[1]);
}); });
CameraTweaks.LOGGER.info("estados de marcos de ajustes aplicados"); Sputnik.LOGGER.info("estados de marcos de ajustes aplicados");
} }
private static void applySearchBarPosition() { private static void applySearchBarPosition() {
@@ -192,7 +210,7 @@ public class ConfigManager {
ClickGUI.INSTANCE.getSearchBar().setX(config.searchBarPosition[0]); ClickGUI.INSTANCE.getSearchBar().setX(config.searchBarPosition[0]);
ClickGUI.INSTANCE.getSearchBar().setY(config.searchBarPosition[1]); ClickGUI.INSTANCE.getSearchBar().setY(config.searchBarPosition[1]);
} }
CameraTweaks.LOGGER.info("posición de la barra de búsqueda aplicada"); Sputnik.LOGGER.info("posición de la barra de búsqueda aplicada");
} }
private static void applyGuiSettings() { private static void applyGuiSettings() {
@@ -200,32 +218,33 @@ public class ConfigManager {
ClientSettingsFrame.guiSettings.getSettings().forEach(setting -> { ClientSettingsFrame.guiSettings.getSettings().forEach(setting -> {
applySetting(ClientSettingsFrame.guiSettings, setting); applySetting(ClientSettingsFrame.guiSettings, setting);
}); });
CameraTweaks.LOGGER.info("ajustes del cliente aplicados"); Sputnik.LOGGER.info("ajustes del cliente aplicados");
} }
private static void applyExtendableFrames() { private static void applyExtendableFrames() {
applyExtendableFrame(ClickGUI.INSTANCE.getModulesFrame()); applyExtendableFrame(ClickGUI.INSTANCE.getModulesFrame());
applyExtendableFrame(ClickGUI.INSTANCE.getGuiSettingsFrame()); applyExtendableFrame(ClickGUI.INSTANCE.getGuiSettingsFrame());
CameraTweaks.LOGGER.info("posiciones de marcos extendibles aplicadasa"); Sputnik.LOGGER.info("posiciones de marcos extendibles aplicadas");
ClickGUI.INSTANCE.refreshListButtons(); ClickGUI.INSTANCE.refreshListButtons();
} }
private static void applyExtendableFrame(ModuleFrame frame) { private static void applyExtendableFrame(Frame<?> frame) {
ClientConfig.FrameData frameData = config.extendableFrames.get("M"); ClientConfig.FrameData frameData = null;
if (frameData != null) { if (frame instanceof ModuleFrame)
frame.setX(frameData.x()); frameData = config.extendableFrames.get("M");
frame.setY(frameData.y());
frame.extended = frameData.extended(); if (frame instanceof ClientSettingsFrame)
} frameData = config.extendableFrames.get("S");
}
private static void applyExtendableFrame(ClientSettingsFrame frame) {
ClientConfig.FrameData frameData = config.extendableFrames.get("S");
if (frameData != null) { if (frameData != null) {
frame.setX(frameData.x()); frame.setX(frameData.x());
frame.setY(frameData.y()); frame.setY(frameData.y());
frame.extended = frameData.extended();
if (frame instanceof ModuleFrame mFrame)
mFrame.extended = frameData.extended();
if (frame instanceof ClientSettingsFrame sFrame)
sFrame.extended = frameData.extended();
} }
} }
@@ -297,9 +316,8 @@ public class ConfigManager {
} }
private static <T> void applyOptionSetting(OptionSetting<T> setting, Object value) { private static <T> void applyOptionSetting(OptionSetting<T> setting, Object value) {
if (value instanceof Double) { if (value instanceof String name) {
int index = ((Double) value).intValue(); setting.setValueByName(name);
setting.setValue(setting.getOption(index));
} }
} }
@@ -314,10 +332,9 @@ public class ConfigManager {
// ------------------ MÉTODOS DE AYUDA ------------------ // ------------------ MÉTODOS DE AYUDA ------------------
private static boolean shouldApply() { private static boolean shouldApply() {
return CameraTweaks.mc != null && ModuleManager.INSTANCE != null && config != null; return Sputnik.mc != null && ModuleManager.INSTANCE != null && config != null;
} }
private static void ensureConfig() { private static void ensureConfig() {
if (config == null) config = new ClientConfig(); if (config == null) config = new ClientConfig();
} }
@@ -329,4 +346,4 @@ public class ConfigManager {
public static boolean hasLoaded() { public static boolean hasLoaded() {
return loaded; return loaded;
} }
} }
@@ -1,4 +1,4 @@
package me.retucio.camtweaks.event; package me.retucio.sputnik.event;
// evento base, cancelable (usado en mixins) // evento base, cancelable (usado en mixins)
public class Event { public class Event {
@@ -1,4 +1,4 @@
package me.retucio.camtweaks.event; package me.retucio.sputnik.event;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.lang.reflect.Modifier; import java.lang.reflect.Modifier;
@@ -1,4 +1,4 @@
package me.retucio.camtweaks.event; package me.retucio.sputnik.event;
public enum Stage { public enum Stage {
PRE, // antes de que haya sucedido PRE, // antes de que haya sucedido
@@ -1,4 +1,4 @@
package me.retucio.camtweaks.event; package me.retucio.sputnik.event;
import java.lang.annotation.*; import java.lang.annotation.*;
@@ -1,11 +1,11 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
/** /**
* @see me.retucio.camtweaks.mixin.ClientWorldMixin#onAddEntity * @see me.retucio.sputnik.mixin.ClientWorldMixin#onAddEntity
*/ */
public class AddEntityEvent extends Event { public class AddEntityEvent extends Event {
@@ -1,11 +1,11 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
/** /**
* @see me.retucio.camtweaks.mixin.ClientPlayerInteractionManagerMixin#onAttackEntity * @see me.retucio.sputnik.mixin.ClientPlayerInteractionManagerMixin#onAttackEntity
*/ */
public class AttackEntityEvent extends Event { public class AttackEntityEvent extends Event {
@@ -1,11 +1,11 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
/** /**
* @see me.retucio.camtweaks.mixin.ClientPlayerInteractionManagerMixin#onBlockBreak * @see me.retucio.sputnik.mixin.ClientPlayerInteractionManagerMixin#onBlockBreak
*/ */
public class BreakBlockEvent extends Event { public class BreakBlockEvent extends Event {
@@ -1,12 +1,12 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
/** /**
* @see me.retucio.camtweaks.mixin.EntityMixin#onRotation * @see me.retucio.sputnik.mixin.EntityMixin#onRotation
* @see me.retucio.camtweaks.mixin.EntityMixin#onChangeYaw * @see me.retucio.sputnik.mixin.EntityMixin#onChangeYaw
* @see me.retucio.camtweaks.mixin.EntityMixin#onChangePitch * @see me.retucio.sputnik.mixin.EntityMixin#onChangePitch
*/ */
public class ChangeRotationEvent extends Event { public class ChangeRotationEvent extends Event {
@@ -0,0 +1,9 @@
package me.retucio.sputnik.event.events;
import me.retucio.sputnik.event.Event;
/**
* @see me.retucio.sputnik.mixin.ChunkOcclusionDataBuilderMixin#onChunkOcclusion
*/
public class ChunkOcclusionEvent extends Event {}
@@ -1,6 +1,6 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import me.retucio.camtweaks.module.modules.misc.ChatPlus; import me.retucio.sputnik.module.modules.misc.ChatPlus;
import net.minecraft.text.ClickEvent; import net.minecraft.text.ClickEvent;
@@ -1,6 +1,6 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
public class ClipAtLedgeEvent extends Event { public class ClipAtLedgeEvent extends Event {
@@ -1,11 +1,11 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
/** /**
* @see me.retucio.camtweaks.mixin.ItemStackMixin#onDamage * @see me.retucio.sputnik.mixin.ItemStackMixin#onDamage
*/ */
public class DamageItemEvent extends Event { public class DamageItemEvent extends Event {
@@ -1,12 +1,12 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
import net.minecraft.client.network.ServerInfo; import net.minecraft.client.network.ServerInfo;
import net.minecraft.network.DisconnectionInfo; import net.minecraft.network.DisconnectionInfo;
/** /**
* @see me.retucio.camtweaks.mixin.ClientConnectionMixin#onDisconnect * @see me.retucio.sputnik.mixin.ClientConnectionMixin#onDisconnect
*/ */
public class DisconnectEvent extends Event { public class DisconnectEvent extends Event {
@@ -1,10 +1,10 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
/** /**
* @see me.retucio.camtweaks.mixin.GameRendererMixin#modifyFov * @see me.retucio.sputnik.mixin.GameRendererMixin#modifyFov
*/ */
public class GetFOVEvent extends Event { public class GetFOVEvent extends Event {
@@ -1,12 +1,12 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.util.Hand; import net.minecraft.util.Hand;
/** /**
* @see me.retucio.camtweaks.mixin.ClientPlayerInteractionManagerMixin#onEntityInteract * @see me.retucio.sputnik.mixin.ClientPlayerInteractionManagerMixin#onEntityInteract
*/ */
public class InteractEntityEvent extends Event { public class InteractEntityEvent extends Event {
@@ -1,11 +1,11 @@
package me.retucio.camtweaks.event; package me.retucio.sputnik.event.events;
import me.retucio.sputnik.event.Event;
import net.minecraft.client.world.ClientWorld; import net.minecraft.client.world.ClientWorld;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
/** /**
* @see me.retucio.camtweaks.mixin.MinecraftClientMixin#onJoinWorld * @see me.retucio.sputnik.mixin.MinecraftClientMixin#onJoinWorld
*/ */
public class JoinWorldEvent extends Event { public class JoinWorldEvent extends Event {
@@ -1,10 +1,10 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
/** /**
* @see me.retucio.camtweaks.mixin.KeyboardMixin#onKeyPress * @see me.retucio.sputnik.mixin.KeyboardMixin#onKeyPress
*/ */
public class KeyEvent extends Event { public class KeyEvent extends Event {
@@ -1,10 +1,10 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
/** /**
* @see me.retucio.camtweaks.mixin.MouseMixin#onMouseButton * @see me.retucio.sputnik.mixin.MouseMixin#onMouseButton
*/ */
public class MouseClickEvent extends Event { public class MouseClickEvent extends Event {
@@ -1,10 +1,10 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
/** /**
* @see me.retucio.camtweaks.mixin.MouseMixin#onMouseScroll * @see me.retucio.sputnik.mixin.MouseMixin#onMouseScroll
*/ */
public class MouseScrollEvent extends Event { public class MouseScrollEvent extends Event {
@@ -1,11 +1,11 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.Screen;
/** /**
* @see me.retucio.camtweaks.mixin.MinecraftClientMixin#onOpenScreen * @see me.retucio.sputnik.mixin.MinecraftClientMixin#onOpenScreen
*/ */
public class OpenScreenEvent extends Event { public class OpenScreenEvent extends Event {
@@ -1,16 +1,14 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import io.netty.channel.ChannelFutureListener; import me.retucio.sputnik.event.Event;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Stage;
import me.retucio.camtweaks.event.Stage;
import net.minecraft.network.packet.Packet; import net.minecraft.network.packet.Packet;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
/** /**
* @see me.retucio.camtweaks.mixin.ClientConnectionMixin#onSendPacketPre * @see me.retucio.sputnik.mixin.ClientConnectionMixin#onSendPacketPre
* @see me.retucio.camtweaks.mixin.ClientConnectionMixin#onSendPacketPost * @see me.retucio.sputnik.mixin.ClientConnectionMixin#onSendPacketPost
* @see me.retucio.camtweaks.mixin.ClientConnectionMixin#onReceivePacket * @see me.retucio.sputnik.mixin.ClientConnectionMixin#onReceivePacket
*/ */
public class PacketEvent { public class PacketEvent {
@@ -1,11 +1,11 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
import net.minecraft.client.option.Perspective; import net.minecraft.client.option.Perspective;
/** /**
* @see me.retucio.camtweaks.mixin.GameOptionsMixin#changePerspective * @see me.retucio.sputnik.mixin.GameOptionsMixin#changePerspective
*/ */
public class PerspectiveChangeEvent extends Event { public class PerspectiveChangeEvent extends Event {
@@ -1,12 +1,12 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
import net.minecraft.util.Hand; import net.minecraft.util.Hand;
import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.hit.BlockHitResult;
/** /**
* @see me.retucio.camtweaks.mixin.ClientPlayerInteractionManagerMixin#onBlockPlace * @see me.retucio.sputnik.mixin.ClientPlayerInteractionManagerMixin#onBlockPlace
*/ */
public class PlaceBlockEvent extends Event { public class PlaceBlockEvent extends Event {
@@ -1,11 +1,11 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
import net.minecraft.client.gui.hud.MessageIndicator; import net.minecraft.client.gui.hud.MessageIndicator;
import net.minecraft.text.Text; import net.minecraft.text.Text;
/** /**
* @see me.retucio.camtweaks.mixin.ChatHudMixin#onAddMessage * @see me.retucio.sputnik.mixin.ChatHudMixin#onAddMessage
*/ */
public class ReceiveMessageEvent extends Event { public class ReceiveMessageEvent extends Event {
@@ -1,11 +1,11 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
/** /**
* @see me.retucio.camtweaks.mixin.ClientWorldMixin#onRemoveEntity * @see me.retucio.sputnik.mixin.ClientWorldMixin#onRemoveEntity
*/ */
public class RemoveEntityEvent extends Event { public class RemoveEntityEvent extends Event {
@@ -1,12 +1,12 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.Hand; import net.minecraft.util.Hand;
/** /**
* @see me.retucio.camtweaks.mixin.HeldItemRendererMixin#onRenderArm * @see me.retucio.sputnik.mixin.HeldItemRendererMixin#onRenderArm
*/ */
public class RenderArmEvent extends Event { public class RenderArmEvent extends Event {
@@ -1,6 +1,6 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
import net.minecraft.client.gui.hud.ClientBossBar; import net.minecraft.client.gui.hud.ClientBossBar;
import net.minecraft.text.Text; import net.minecraft.text.Text;
@@ -8,9 +8,9 @@ import java.util.Iterator;
/** /**
* @see me.retucio.camtweaks.mixin.BossBarHudMixin#modifyBossBarIterator * @see me.retucio.sputnik.mixin.BossBarHudMixin#modifyBossBarIterator
* @see me.retucio.camtweaks.mixin.BossBarHudMixin#modifyBossBarName * @see me.retucio.sputnik.mixin.BossBarHudMixin#modifyBossBarName
* @see me.retucio.camtweaks.mixin.BossBarHudMixin#modifySpacingConstant * @see me.retucio.sputnik.mixin.BossBarHudMixin#modifySpacingConstant
*/ */
public class RenderBossbarEvent { public class RenderBossbarEvent {
@@ -1,12 +1,12 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.Hand; import net.minecraft.util.Hand;
/** /**
* @see me.retucio.camtweaks.mixin.HeldItemRendererMixin#onRenderItem * @see me.retucio.sputnik.mixin.HeldItemRendererMixin#onRenderItem
*/ */
public class RenderHeldItemEvent extends Event { public class RenderHeldItemEvent extends Event {
@@ -1,13 +1,13 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
import net.minecraft.client.render.Camera; import net.minecraft.client.render.Camera;
import net.minecraft.client.render.RenderTickCounter; import net.minecraft.client.render.RenderTickCounter;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
/** /**
* @see me.retucio.camtweaks.mixin.WorldRendererMixin#render * @see me.retucio.sputnik.mixin.WorldRendererMixin#render
*/ */
public class RenderWorldEvent extends Event { public class RenderWorldEvent extends Event {
@@ -1,10 +1,10 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
/** /**
* @see me.retucio.camtweaks.mixin.ClientPlayNetworkHandlerMixin#onSendMessage * @see me.retucio.sputnik.mixin.ClientPlayNetworkHandlerMixin#onSendMessage
*/ */
public class SendMessageEvent extends Event { public class SendMessageEvent extends Event {
@@ -0,0 +1,12 @@
package me.retucio.sputnik.event.events;
import me.retucio.sputnik.event.Event;
/**
* @see me.retucio.sputnik.mixin.MinecraftClientMixin#onStop
*/
public class ShutdownEvent extends Event {
public ShutdownEvent() {}
}
@@ -0,0 +1,14 @@
package me.retucio.sputnik.event.events;
import me.retucio.sputnik.event.Event;
/**
* @see me.retucio.sputnik.mixin.MinecraftClientMixin#onTickPre
* @see me.retucio.sputnik.mixin.MinecraftClientMixin#onTickPost
*/
public class TickEvent {
public static class Pre extends Event {}
public static class Post extends Event {}
}
@@ -1,12 +1,12 @@
package me.retucio.camtweaks.event.events; package me.retucio.sputnik.event.events;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.Hand; import net.minecraft.util.Hand;
/** /**
* @see me.retucio.camtweaks.mixin.MinecraftClientMixin#onUseItem * @see me.retucio.sputnik.mixin.MinecraftClientMixin#onUseItem
*/ */
public class UseItemEvent extends Event { public class UseItemEvent extends Event {
@@ -1,6 +1,6 @@
package me.retucio.camtweaks.event.events.camtweaks; package me.retucio.sputnik.event.events.sputnik;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
// se genera cada que se interactúa con el marco de ajustes de la interfaz // se genera cada que se interactúa con el marco de ajustes de la interfaz
public class GUISettingsFrameEvent { public class GUISettingsFrameEvent {
@@ -0,0 +1,6 @@
package me.retucio.sputnik.event.events.sputnik;
import me.retucio.sputnik.event.Event;
// se genera cuando carga el gestor de capas
public class LoadCapeManagerEvent extends Event {}
@@ -1,6 +1,6 @@
package me.retucio.camtweaks.event.events.camtweaks; package me.retucio.sputnik.event.events.sputnik;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
// se genera cuando carga la interfaz del mod // se genera cuando carga la interfaz del mod
public class LoadClickGUIEvent extends Event {} public class LoadClickGUIEvent extends Event {}
@@ -1,6 +1,6 @@
package me.retucio.camtweaks.event.events.camtweaks; package me.retucio.sputnik.event.events.sputnik;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
// se genera cuando carga el gestor de comandos // se genera cuando carga el gestor de comandos
public class LoadCommandManagerEvent extends Event {} public class LoadCommandManagerEvent extends Event {}
@@ -0,0 +1,23 @@
package me.retucio.sputnik.event.events.sputnik;
import me.retucio.sputnik.event.Event;
public class LoadConfigEvent extends Event {
private final boolean failed;
private final boolean fileExisted;
public LoadConfigEvent(boolean failed, boolean fileExisted) {
this.failed = failed;
this.fileExisted = fileExisted;
}
public boolean hasFailed() {
return failed;
}
public boolean didFileExist() {
return fileExisted;
}
}
@@ -1,6 +1,6 @@
package me.retucio.camtweaks.event.events.camtweaks; package me.retucio.sputnik.event.events.sputnik;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
// se genera cuando carga el gestor de módulos // se genera cuando carga el gestor de módulos
public class LoadModuleManagerEvent extends Event {} public class LoadModuleManagerEvent extends Event {}
@@ -1,6 +1,6 @@
package me.retucio.camtweaks.event.events.camtweaks; package me.retucio.sputnik.event.events.sputnik;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
// se genera cada que se interactúa con el marco de módulos // se genera cada que se interactúa con el marco de módulos
public class ModuleFrameEvent { public class ModuleFrameEvent {
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.event.events.camtweaks; package me.retucio.sputnik.event.events.sputnik;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
import me.retucio.camtweaks.ui.widgets.frames.SettingsFrame; import me.retucio.sputnik.ui.widgets.frames.SettingsFrame;
// se genera cada que se interactúa con un marco de ajustes de un módulo // se genera cada que se interactúa con un marco de ajustes de un módulo
public class SettingsFrameEvent { public class SettingsFrameEvent {
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.event.events.camtweaks; package me.retucio.sputnik.event.events.sputnik;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
import me.retucio.camtweaks.module.Module; import me.retucio.sputnik.module.Module;
// se genera cada que se enciende o apaga un módulo // se genera cada que se enciende o apaga un módulo
public class ToggleModuleEvent extends Event { public class ToggleModuleEvent extends Event {
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.event.events.camtweaks; package me.retucio.sputnik.event.events.sputnik;
import me.retucio.camtweaks.event.Event; import me.retucio.sputnik.event.Event;
import me.retucio.camtweaks.module.settings.Setting; import me.retucio.sputnik.module.settings.Setting;
// se genera cada que se cambia el valor de un ajuste // se genera cada que se cambia el valor de un ajuste
public class UpdateSettingEvent extends Event { public class UpdateSettingEvent extends Event {
@@ -1,8 +1,8 @@
package me.retucio.camtweaks.mixin; package me.retucio.sputnik.mixin;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import com.llamalad7.mixinextras.sugar.Local; import com.llamalad7.mixinextras.sugar.Local;
import me.retucio.camtweaks.event.events.RenderBossbarEvent; import me.retucio.sputnik.event.events.RenderBossbarEvent;
import net.minecraft.client.gui.hud.BossBarHud; import net.minecraft.client.gui.hud.BossBarHud;
import net.minecraft.client.gui.hud.ClientBossBar; import net.minecraft.client.gui.hud.ClientBossBar;
import net.minecraft.text.Text; import net.minecraft.text.Text;
@@ -13,7 +13,7 @@ import org.spongepowered.asm.mixin.injection.ModifyConstant;
import java.util.Iterator; import java.util.Iterator;
import static me.retucio.camtweaks.CameraTweaks.EVENT_BUS; import static me.retucio.sputnik.Sputnik.EVENT_BUS;
@Mixin(BossBarHud.class) @Mixin(BossBarHud.class)
public abstract class BossBarHudMixin { public abstract class BossBarHudMixin {
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.mixin; package me.retucio.sputnik.mixin;
import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap; import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap;
import me.retucio.camtweaks.util.render.GlintRenderLayer; import me.retucio.sputnik.util.render.GlintRenderLayer;
import net.minecraft.client.render.BufferBuilderStorage; import net.minecraft.client.render.BufferBuilderStorage;
import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.RenderLayer;
import net.minecraft.client.util.BufferAllocator; import net.minecraft.client.util.BufferAllocator;
@@ -1,9 +1,9 @@
package me.retucio.camtweaks.mixin; package me.retucio.sputnik.mixin;
import me.retucio.camtweaks.module.ModuleManager; import me.retucio.sputnik.module.ModuleManager;
import me.retucio.camtweaks.module.modules.camera.Freelook; import me.retucio.sputnik.module.modules.camera.Freelook;
import me.retucio.camtweaks.module.modules.camera.Freecam; import me.retucio.sputnik.module.modules.camera.Freecam;
import me.retucio.camtweaks.module.modules.camera.PerspectivePlus; import me.retucio.sputnik.module.modules.camera.PerspectivePlus;
import net.minecraft.client.render.Camera; import net.minecraft.client.render.Camera;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.world.World; import net.minecraft.world.World;
@@ -0,0 +1,26 @@
package me.retucio.sputnik.mixin;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import me.retucio.sputnik.module.ModuleManager;
import me.retucio.sputnik.module.modules.player.Capes;
import net.minecraft.client.render.command.OrderedRenderCommandQueue;
import net.minecraft.client.render.entity.feature.CapeFeatureRenderer;
import net.minecraft.client.render.entity.state.PlayerEntityRenderState;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.AssetInfo;
import net.minecraft.util.Identifier;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@Mixin(CapeFeatureRenderer.class)
public abstract class CapeFeatureRendererMixin {
@ModifyExpressionValue(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;ILnet/minecraft/client/render/entity/state/PlayerEntityRenderState;FF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/SkinTextures;cape()Lnet/minecraft/util/AssetInfo$TextureAsset;"))
private AssetInfo.TextureAsset modifyCapeTexture(AssetInfo.TextureAsset original, MatrixStack matrices, OrderedRenderCommandQueue entityRenderCommandQueue, int i, PlayerEntityRenderState state, float f, float g) {
Capes capes = ModuleManager.INSTANCE.getModuleByClass(Capes.class);
if (!capes.isEnabled()) return original;
Identifier id = capes.cape.getValue().getId();
return id == null ? original : new AssetInfo.TextureAssetInfo(id, id);
}
}
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.mixin; package me.retucio.sputnik.mixin;
import com.mojang.authlib.GameProfile; import com.mojang.authlib.GameProfile;
import me.retucio.camtweaks.util.interfaces.IChatHudLine; import me.retucio.sputnik.util.interfaces.IChatHudLine;
import net.minecraft.client.gui.hud.ChatHudLine; import net.minecraft.client.gui.hud.ChatHudLine;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Final;
@@ -22,17 +22,17 @@ public class ChatHudLineMixin implements IChatHudLine {
private GameProfile sender; private GameProfile sender;
@Override @Override
public String smegma$getText() { return content.toString(); } public String sputnik$getText() { return content.toString(); }
@Override @Override
public int smegma$getId() { return id; } public int sputnik$getId() { return id; }
@Override @Override
public void smegma$setId(int id) { this.id = id; } public void sputnik$setId(int id) { this.id = id; }
@Override @Override
public GameProfile smegma$getSender() { return sender; } public GameProfile sputnik$getSender() { return sender; }
@Override @Override
public void smegma$setSender(GameProfile profile) { this.sender = profile; } public void sputnik$setSender(GameProfile profile) { this.sender = profile; }
} }
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.mixin; package me.retucio.sputnik.mixin;
import com.mojang.authlib.GameProfile; import com.mojang.authlib.GameProfile;
import me.retucio.camtweaks.util.interfaces.IChatHudLineVisible; import me.retucio.sputnik.util.interfaces.IChatHudLineVisible;
import net.minecraft.client.gui.hud.ChatHudLine; import net.minecraft.client.gui.hud.ChatHudLine;
import net.minecraft.text.OrderedText; import net.minecraft.text.OrderedText;
import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Final;
@@ -25,7 +25,7 @@ public class ChatHudLineVisibleMixin implements IChatHudLineVisible {
private boolean startOfEntry; private boolean startOfEntry;
@Override @Override
public String smegma$getText() { public String sputnik$getText() {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
content.accept((index, style, codePoint) -> { content.accept((index, style, codePoint) -> {
@@ -36,20 +36,20 @@ public class ChatHudLineVisibleMixin implements IChatHudLineVisible {
} }
@Override @Override
public int smegma$getId() { return id; } public int sputnik$getId() { return id; }
@Override @Override
public void smegma$setId(int id) { this.id = id; } public void sputnik$setId(int id) { this.id = id; }
@Override @Override
public GameProfile smegma$getSender() { return sender; } public GameProfile sputnik$getSender() { return sender; }
@Override @Override
public void smegma$setSender(GameProfile profile) { this.sender = profile; } public void sputnik$setSender(GameProfile profile) { this.sender = profile; }
@Override @Override
public boolean smegma$isStartOfEntry() { return startOfEntry; } public boolean sputnik$isStartOfEntry() { return startOfEntry; }
@Override @Override
public void smegma$setStartOfEntry(boolean start) { this.startOfEntry = start; } public void sputnik$setStartOfEntry(boolean start) { this.startOfEntry = start; }
} }
@@ -1,14 +1,14 @@
package me.retucio.camtweaks.mixin; package me.retucio.sputnik.mixin;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import com.llamalad7.mixinextras.sugar.Local; import com.llamalad7.mixinextras.sugar.Local;
import me.retucio.camtweaks.event.events.ReceiveMessageEvent; import me.retucio.sputnik.event.events.ReceiveMessageEvent;
import me.retucio.camtweaks.module.ModuleManager; import me.retucio.sputnik.module.ModuleManager;
import me.retucio.camtweaks.module.modules.misc.ChatPlus; import me.retucio.sputnik.module.modules.misc.ChatPlus;
import me.retucio.camtweaks.util.interfaces.IChatHud; import me.retucio.sputnik.util.interfaces.IChatHud;
import me.retucio.camtweaks.util.interfaces.IChatHudLine; import me.retucio.sputnik.util.interfaces.IChatHudLine;
import me.retucio.camtweaks.util.interfaces.IChatHudLineVisible; import me.retucio.sputnik.util.interfaces.IChatHudLineVisible;
import me.retucio.camtweaks.util.interfaces.IMessageHandler; import me.retucio.sputnik.util.interfaces.IMessageHandler;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.hud.ChatHud; import net.minecraft.client.gui.hud.ChatHud;
import net.minecraft.client.gui.hud.ChatHudLine; import net.minecraft.client.gui.hud.ChatHudLine;
@@ -27,7 +27,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import java.util.List; import java.util.List;
import static me.retucio.camtweaks.CameraTweaks.*; import static me.retucio.sputnik.Sputnik.*;
@Mixin(ChatHud.class) @Mixin(ChatHud.class)
public abstract class ChatHudMixin implements IChatHud { public abstract class ChatHudMixin implements IChatHud {
@@ -62,7 +62,7 @@ public abstract class ChatHudMixin implements IChatHud {
// métodos relacionados a las interfaces IChatHud, IChatHudLine, IChadHudLineVisible y IMessageHandler // métodos relacionados a las interfaces IChatHud, IChatHudLine, IChadHudLineVisible y IMessageHandler
@Override @Override
public void smegma$add(Text message, int id) { public void sputnik$add(Text message, int id) {
nextId = id; nextId = id;
addMessage(message); addMessage(message);
nextId = 0; nextId = 0;
@@ -70,12 +70,12 @@ public abstract class ChatHudMixin implements IChatHud {
@Inject(method = "addVisibleMessage", at = @At(value = "INVOKE", target = "Ljava/util/List;addFirst(Ljava/lang/Object;)V", shift = At.Shift.AFTER)) @Inject(method = "addVisibleMessage", at = @At(value = "INVOKE", target = "Ljava/util/List;addFirst(Ljava/lang/Object;)V", shift = At.Shift.AFTER))
private void onAddMessageAfterNewChatHudLineVisible(ChatHudLine message, CallbackInfo ci) { private void onAddMessageAfterNewChatHudLineVisible(ChatHudLine message, CallbackInfo ci) {
((IChatHudLine) (Object) visibleMessages.getFirst()).smegma$setId(nextId); ((IChatHudLine) (Object) visibleMessages.getFirst()).sputnik$setId(nextId);
} }
@Inject(method = "addMessage(Lnet/minecraft/client/gui/hud/ChatHudLine;)V", at = @At(value = "INVOKE", target = "Ljava/util/List;addFirst(Ljava/lang/Object;)V", shift = At.Shift.AFTER)) @Inject(method = "addMessage(Lnet/minecraft/client/gui/hud/ChatHudLine;)V", at = @At(value = "INVOKE", target = "Ljava/util/List;addFirst(Ljava/lang/Object;)V", shift = At.Shift.AFTER))
private void onAddMessageAfterNewChatHudLine(ChatHudLine message, CallbackInfo ci) { private void onAddMessageAfterNewChatHudLine(ChatHudLine message, CallbackInfo ci) {
((IChatHudLine) (Object) messages.getFirst()).smegma$setId(nextId); ((IChatHudLine) (Object) messages.getFirst()).sputnik$setId(nextId);
} }
@SuppressWarnings("DataFlowIssue") @SuppressWarnings("DataFlowIssue")
@@ -86,8 +86,8 @@ public abstract class ChatHudMixin implements IChatHud {
IChatHudLineVisible iLine = (IChatHudLineVisible) (Object) line; IChatHudLineVisible iLine = (IChatHudLineVisible) (Object) line;
iLine.smegma$setSender(handler.smegma$getSender()); iLine.sputnik$setSender(handler.sputnik$getSender());
iLine.smegma$setStartOfEntry(j == 0); iLine.sputnik$setStartOfEntry(j == 0);
return line; return line;
} }
@@ -97,12 +97,12 @@ public abstract class ChatHudMixin implements IChatHud {
IMessageHandler handler = (IMessageHandler) mc.getMessageHandler(); IMessageHandler handler = (IMessageHandler) mc.getMessageHandler();
if (handler == null) return line; if (handler == null) return line;
((IChatHudLine) (Object) line).smegma$setSender(handler.smegma$getSender()); ((IChatHudLine) (Object) line).sputnik$setSender(handler.sputnik$getSender());
return line; return line;
} }
@Override @Override
public List<ChatHudLine.Visible> smegma$getVisibleMessages() { public List<ChatHudLine.Visible> sputnik$getVisibleMessages() {
return visibleMessages; return visibleMessages;
} }
@@ -118,10 +118,10 @@ public abstract class ChatHudMixin implements IChatHud {
if (event.isCancelled()) { if (event.isCancelled()) {
ci.cancel(); ci.cancel();
} else { } else {
visibleMessages.removeIf(msg -> ((IChatHudLine) (Object) msg).smegma$getId() == nextId && nextId != 0); visibleMessages.removeIf(msg -> ((IChatHudLine) (Object) msg).sputnik$getId() == nextId && nextId != 0);
for (int i = messages.size() - 1; i > -1; i--) { for (int i = messages.size() - 1; i > -1; i--) {
if (((IChatHudLine) (Object) messages.get(i)).smegma$getId() == nextId && nextId != 0) { if (((IChatHudLine) (Object) messages.get(i)).sputnik$getId() == nextId && nextId != 0) {
messages.remove(i); messages.remove(i);
chatPlus.removeLine(i); chatPlus.removeLine(i);
} }
@@ -1,10 +1,10 @@
package me.retucio.camtweaks.mixin; package me.retucio.sputnik.mixin;
import com.llamalad7.mixinextras.sugar.Local; import com.llamalad7.mixinextras.sugar.Local;
import com.mojang.brigadier.ParseResults; import com.mojang.brigadier.ParseResults;
import com.mojang.brigadier.StringReader; import com.mojang.brigadier.StringReader;
import com.mojang.brigadier.suggestion.Suggestions; import com.mojang.brigadier.suggestion.Suggestions;
import me.retucio.camtweaks.command.CommandManager; import me.retucio.sputnik.command.CommandManager;
import net.minecraft.client.gui.screen.ChatInputSuggestor; import net.minecraft.client.gui.screen.ChatInputSuggestor;
import net.minecraft.client.gui.widget.TextFieldWidget; import net.minecraft.client.gui.widget.TextFieldWidget;
import net.minecraft.command.CommandSource; import net.minecraft.command.CommandSource;
@@ -17,7 +17,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import static me.retucio.camtweaks.CameraTweaks.mc; import static me.retucio.sputnik.Sputnik.mc;
@Mixin(ChatInputSuggestor.class) @Mixin(ChatInputSuggestor.class)
public abstract class ChatInputSuggestorMixin { public abstract class ChatInputSuggestorMixin {
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.mixin; package me.retucio.sputnik.mixin;
import me.retucio.camtweaks.module.ModuleManager; import me.retucio.sputnik.module.ModuleManager;
import me.retucio.camtweaks.module.modules.misc.ChatPlus; import me.retucio.sputnik.module.modules.misc.ChatPlus;
import net.minecraft.client.gui.screen.ChatScreen; import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.gui.widget.TextFieldWidget; import net.minecraft.client.gui.widget.TextFieldWidget;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
@@ -1,8 +1,8 @@
package me.retucio.camtweaks.mixin; package me.retucio.sputnik.mixin;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import me.retucio.camtweaks.module.ModuleManager; import me.retucio.sputnik.module.ModuleManager;
import me.retucio.camtweaks.module.modules.camera.Freecam; import me.retucio.sputnik.module.modules.camera.Freecam;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.debug.ChunkBorderDebugRenderer; import net.minecraft.client.render.debug.ChunkBorderDebugRenderer;
import net.minecraft.util.math.ChunkSectionPos; import net.minecraft.util.math.ChunkSectionPos;
@@ -1,6 +1,6 @@
package me.retucio.camtweaks.mixin; package me.retucio.sputnik.mixin;
import me.retucio.camtweaks.event.events.ChunkOcclusionEvent; import me.retucio.sputnik.event.events.ChunkOcclusionEvent;
import net.minecraft.client.render.chunk.ChunkOcclusionDataBuilder; import net.minecraft.client.render.chunk.ChunkOcclusionDataBuilder;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
@@ -8,7 +8,7 @@ import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import static me.retucio.camtweaks.CameraTweaks.EVENT_BUS; import static me.retucio.sputnik.Sputnik.EVENT_BUS;
@Mixin(ChunkOcclusionDataBuilder.class) @Mixin(ChunkOcclusionDataBuilder.class)
public abstract class ChunkOcclusionDataBuilderMixin { public abstract class ChunkOcclusionDataBuilderMixin {
@@ -1,10 +1,10 @@
package me.retucio.camtweaks.mixin; package me.retucio.sputnik.mixin;
import me.retucio.camtweaks.mixin.accessor.ConfirmServerResourcePackScreenAccessor; import me.retucio.sputnik.mixin.accessor.ConfirmServerResourcePackScreenAccessor;
import me.retucio.camtweaks.mixin.accessor.PackAccessor; import me.retucio.sputnik.mixin.accessor.PackAccessor;
import me.retucio.camtweaks.module.ModuleManager; import me.retucio.sputnik.module.ModuleManager;
import me.retucio.camtweaks.module.modules.network.RPackBypass; import me.retucio.sputnik.module.modules.network.RPackBypass;
import me.retucio.camtweaks.util.interfaces.IConfirmScreen; import me.retucio.sputnik.util.interfaces.IConfirmScreen;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.network.ClientCommonNetworkHandler; import net.minecraft.client.network.ClientCommonNetworkHandler;
@@ -45,7 +45,7 @@ public abstract class ClientCommonNetworkHandlerMixin {
if (!bypassPack.isEnabled()) return; if (!bypassPack.isEnabled()) return;
final Screen screen = cir.getReturnValue(); final Screen screen = cir.getReturnValue();
((IConfirmScreen) screen).smegma$setBypassAction(() -> { ((IConfirmScreen) screen).sputnik$setBypassAction(() -> {
client.setScreen(((ConfirmServerResourcePackScreenAccessor) screen).getParentScreen()); client.setScreen(((ConfirmServerResourcePackScreenAccessor) screen).getParentScreen());
if (this.serverInfo != null) { if (this.serverInfo != null) {
this.serverInfo.setResourcePackPolicy(bypassPack.getPolicy()); this.serverInfo.setResourcePackPolicy(bypassPack.getPolicy());
@@ -1,10 +1,10 @@
package me.retucio.camtweaks.mixin; package me.retucio.sputnik.mixin;
import io.netty.channel.ChannelFutureListener; import io.netty.channel.ChannelFutureListener;
import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelHandlerContext;
import me.retucio.camtweaks.event.Stage; import me.retucio.sputnik.event.Stage;
import me.retucio.camtweaks.event.events.DisconnectEvent; import me.retucio.sputnik.event.events.DisconnectEvent;
import me.retucio.camtweaks.event.events.PacketEvent; import me.retucio.sputnik.event.events.PacketEvent;
import net.minecraft.network.ClientConnection; import net.minecraft.network.ClientConnection;
import net.minecraft.network.DisconnectionInfo; import net.minecraft.network.DisconnectionInfo;
import net.minecraft.network.packet.Packet; import net.minecraft.network.packet.Packet;
@@ -13,8 +13,8 @@ import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import static me.retucio.camtweaks.CameraTweaks.EVENT_BUS; import static me.retucio.sputnik.Sputnik.EVENT_BUS;
import static me.retucio.camtweaks.CameraTweaks.mc; import static me.retucio.sputnik.Sputnik.mc;
@Mixin(ClientConnection.class) @Mixin(ClientConnection.class)
public abstract class ClientConnectionMixin { public abstract class ClientConnectionMixin {
@@ -1,11 +1,11 @@
package me.retucio.camtweaks.mixin; package me.retucio.sputnik.mixin;
import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.CommandSyntaxException;
import me.retucio.camtweaks.command.CommandManager; import me.retucio.sputnik.command.CommandManager;
import me.retucio.camtweaks.event.events.SendMessageEvent; import me.retucio.sputnik.event.events.SendMessageEvent;
import me.retucio.camtweaks.module.ModuleManager; import me.retucio.sputnik.module.ModuleManager;
import me.retucio.camtweaks.module.modules.render.NoRender; import me.retucio.sputnik.module.modules.render.NoRender;
import me.retucio.camtweaks.util.ChatUtil; import me.retucio.sputnik.util.ChatUtil;
import net.minecraft.client.network.ClientPlayNetworkHandler; import net.minecraft.client.network.ClientPlayNetworkHandler;
import net.minecraft.client.render.GameRenderer; import net.minecraft.client.render.GameRenderer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@@ -17,7 +17,7 @@ import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import static me.retucio.camtweaks.CameraTweaks.*; import static me.retucio.sputnik.Sputnik.*;
@Mixin(ClientPlayNetworkHandler.class) @Mixin(ClientPlayNetworkHandler.class)
public abstract class ClientPlayNetworkHandlerMixin { public abstract class ClientPlayNetworkHandlerMixin {
@@ -1,11 +1,11 @@
package me.retucio.camtweaks.mixin; package me.retucio.sputnik.mixin;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import com.llamalad7.mixinextras.injector.ModifyReturnValue; import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import com.llamalad7.mixinextras.sugar.Local; import com.llamalad7.mixinextras.sugar.Local;
import me.retucio.camtweaks.module.ModuleManager; import me.retucio.sputnik.module.ModuleManager;
import me.retucio.camtweaks.module.modules.world.NoMiningInterruptions; import me.retucio.sputnik.module.modules.world.NoMiningInterruptions;
import me.retucio.camtweaks.module.modules.player.PortalGUI; import me.retucio.sputnik.module.modules.player.PortalGUI;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.util.hit.EntityHitResult; import net.minecraft.util.hit.EntityHitResult;
@@ -16,7 +16,7 @@ import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
import static me.retucio.camtweaks.CameraTweaks.mc; import static me.retucio.sputnik.Sputnik.mc;
@Mixin(ClientPlayerEntity.class) @Mixin(ClientPlayerEntity.class)
public abstract class ClientPlayerEntityMixin { public abstract class ClientPlayerEntityMixin {
@@ -1,11 +1,11 @@
package me.retucio.camtweaks.mixin; package me.retucio.sputnik.mixin;
import me.retucio.camtweaks.event.events.AttackEntityEvent; import me.retucio.sputnik.event.events.AttackEntityEvent;
import me.retucio.camtweaks.event.events.BreakBlockEvent; import me.retucio.sputnik.event.events.BreakBlockEvent;
import me.retucio.camtweaks.event.events.InteractEntityEvent; import me.retucio.sputnik.event.events.InteractEntityEvent;
import me.retucio.camtweaks.event.events.PlaceBlockEvent; import me.retucio.sputnik.event.events.PlaceBlockEvent;
import me.retucio.camtweaks.module.ModuleManager; import me.retucio.sputnik.module.ModuleManager;
import me.retucio.camtweaks.module.modules.camera.Freecam; import me.retucio.sputnik.module.modules.camera.Freecam;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.network.ClientPlayNetworkHandler; import net.minecraft.client.network.ClientPlayNetworkHandler;
import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.client.network.ClientPlayerEntity;
@@ -25,8 +25,8 @@ import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import static me.retucio.camtweaks.CameraTweaks.EVENT_BUS; import static me.retucio.sputnik.Sputnik.EVENT_BUS;
import static me.retucio.camtweaks.CameraTweaks.mc; import static me.retucio.sputnik.Sputnik.mc;
@Mixin(ClientPlayerInteractionManager.class) @Mixin(ClientPlayerInteractionManager.class)
public abstract class ClientPlayerInteractionManagerMixin { public abstract class ClientPlayerInteractionManagerMixin {
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.mixin; package me.retucio.sputnik.mixin;
import me.retucio.camtweaks.event.events.AddEntityEvent; import me.retucio.sputnik.event.events.AddEntityEvent;
import me.retucio.camtweaks.event.events.RemoveEntityEvent; import me.retucio.sputnik.event.events.RemoveEntityEvent;
import net.minecraft.client.world.ClientWorld; import net.minecraft.client.world.ClientWorld;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@@ -11,7 +11,7 @@ import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import static me.retucio.camtweaks.CameraTweaks.EVENT_BUS; import static me.retucio.sputnik.Sputnik.EVENT_BUS;
@Mixin(ClientWorld.class) @Mixin(ClientWorld.class)
public abstract class ClientWorldMixin { public abstract class ClientWorldMixin {
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.mixin; package me.retucio.sputnik.mixin;
import me.retucio.camtweaks.module.ModuleManager; import me.retucio.sputnik.module.ModuleManager;
import me.retucio.camtweaks.module.modules.world.TimeChanger; import me.retucio.sputnik.module.modules.world.TimeChanger;
import net.minecraft.client.world.ClientWorld; import net.minecraft.client.world.ClientWorld;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
@@ -1,8 +1,8 @@
package me.retucio.camtweaks.mixin; package me.retucio.sputnik.mixin;
import me.retucio.camtweaks.module.ModuleManager; import me.retucio.sputnik.module.ModuleManager;
import me.retucio.camtweaks.module.modules.network.RPackBypass; import me.retucio.sputnik.module.modules.network.RPackBypass;
import me.retucio.camtweaks.util.interfaces.IConfirmScreen; import me.retucio.sputnik.util.interfaces.IConfirmScreen;
import net.minecraft.client.gui.screen.ConfirmScreen; import net.minecraft.client.gui.screen.ConfirmScreen;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.gui.widget.ButtonWidget;
@@ -33,7 +33,7 @@ public abstract class ConfirmScreenMixin extends Screen implements IConfirmScree
} }
@Override @Override
public void smegma$setBypassAction(Runnable bypass) { public void sputnik$setBypassAction(Runnable bypass) {
this.bypassAction = bypass; this.bypassAction = bypass;
} }
} }
@@ -1,8 +1,8 @@
package me.retucio.camtweaks.mixin; package me.retucio.sputnik.mixin;
import com.llamalad7.mixinextras.injector.ModifyReturnValue; import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import me.retucio.camtweaks.module.ModuleManager; import me.retucio.sputnik.module.ModuleManager;
import me.retucio.camtweaks.module.modules.render.CritsPlus; import me.retucio.sputnik.module.modules.render.CritsPlus;
import net.minecraft.client.particle.BillboardParticle; import net.minecraft.client.particle.BillboardParticle;
import net.minecraft.client.particle.DamageParticle; import net.minecraft.client.particle.DamageParticle;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
@@ -14,7 +14,9 @@ public abstract class DamageParticleMixin {
@ModifyReturnValue(method = "getRenderType", at = @At("RETURN")) @ModifyReturnValue(method = "getRenderType", at = @At("RETURN"))
private BillboardParticle.RenderType makeCritsTranslucent(BillboardParticle.RenderType original) { private BillboardParticle.RenderType makeCritsTranslucent(BillboardParticle.RenderType original) {
if (ModuleManager.INSTANCE.getModuleByClass(CritsPlus.class).isEnabled()) return BillboardParticle.RenderType.PARTICLE_ATLAS_TRANSLUCENT; if (ModuleManager.INSTANCE.getModuleByClass(CritsPlus.class).isEnabled())
return BillboardParticle.RenderType.PARTICLE_ATLAS_TRANSLUCENT;
return original; return original;
} }
} }
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.mixin; package me.retucio.sputnik.mixin;
import me.retucio.camtweaks.module.ModuleManager; import me.retucio.sputnik.module.ModuleManager;
import me.retucio.camtweaks.module.modules.network.Reconnect; import me.retucio.sputnik.module.modules.network.Reconnect;
import net.minecraft.client.gui.screen.DisconnectedScreen; import net.minecraft.client.gui.screen.DisconnectedScreen;
import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.gui.widget.ButtonWidget;
Loaded 100 of 357 files, more files were not shown because too many files have changed in this diff. Show more