This commit is contained in:
retuci0 committed 2026-01-02 13:59:08 +01:00
1 parent 48899f85f9
commit 94a9b1dade
127 files changed
+716 -540

No files matched your search

+1
View File
@@ -54,6 +54,7 @@ algunos módulos tienen teclas asignadas por defecto, asígnales `ESC` para desa
<img src="screenshots/fullbright.png" alt="fullbright en modo gamma cambiando el color de los shaders">
<img src="screenshots/hud.png" alt="HUD">
<img src="screenshots/hudeditor.png" alt="editor de HUD">
<img src="screenshots/colorpicker.png" alt="selector de colores">
## contibuciones
+1 -1
View File
@@ -24,7 +24,7 @@ dependencies {
mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}"
}
+15 -14
View File
@@ -1,28 +1,29 @@
# v2.0
# v2.1 (roto)
## novedades
- actualizado a la 1.21.11 (maomeno)
### adiciones
- ajuste de opción: similar a enumsetting, pero abre un marco de selección, igual que listsetting.
- categorías de módulos: ahora puedes buscar "cámara", "jugador", "mundo", "renderizado", "red", "cliente" o "misc" para que se filtren los módulos de esas categorías, respectivamente
#### módulos nuevos:
- resaltado de bloques: resalta bloques de cierto tipo renderizando una caja con su forma, visible a través de paredes
- delay de paquetes: simula un ping alto añadiendo delay a los paquetes
- inventario plus: te permite mover items a cualquier slot del inventario mediante teclas (ej.: d + tecla para slot 4);
- progreso de minado: muestra el progreso de minado de un bloque de una manera más visual, mediante cajas de color
- mano secundaria: equipa de manera automática un ítem en tu mano secundaria
- moverse en interfaz: te permite utilizar las teclas de movimiento con ciertas interfaces abiertas (configurable)
- muletas: hace te no te caigas (de bloques), como cuando estás agachado, pero sin agacharte
### arreglos / mejoras
- ahora se pueden mostrar también las coordenadas del nether en el elemento del hud para coordenadas
- ahora ChatPlus utilizará los corchetes [] para mostrar la hora (antes era <>), además de también detectar cuando un jugador se une a la hora de dibujar las cabezas
- ahora puedes elegir el sonido en aviso de baja dur., junto a la altura y volumen de este
- ya no se pueden abrir interfaces del mod estando en pantallas donde se suele escribir (chat, carteles, etc.)
- arreglado algunos problemas con las configuraciones
- ahora ya puedes escribir espacios en la barra de búsqueda
- ahora se ignoran las tildes al buscar en la barra de búsqueda
- aviso de baja dur. ya no te avisa al reparar objetos dañados por debajo del límite
- creo que cielo custom ya funciona por completo (las fases lunares)
## problemas reconocidos
- muchos, pero repórtalos en la página de problemas si quieres para que queden bien registrados
- muchos, pero repórtalos en la página de problemas si quieres para que queden bien registrados
- de esta actualización:
- superposición de daño no funciona porque no lo he podido actualizar porque han cambiado cosas relacionadas a la renderización
- la renderización de líneas (no rellenos) está rota, por el mismo motivo
- por el mismo motivo, destello de enchants no funciona
- minar sin interrupción no funciona
+7 -7
View File
@@ -1,13 +1,13 @@
org.gradle.jvmargs=-Xmx1G
org.gradle.parallel=true
minecraft_version=1.21.10
yarn_mappings=1.21.10+build.2
loader_version=0.17.3
loom_version=1.11-SNAPSHOT
minecraft_version=1.21.11
yarn_mappings=1.21.11+build.3
loader_version=0.18.4
loom_version=1.13-SNAPSHOT
fabric_api_version=0.140.2+1.21.11
mod_version=2.1
maven_group=me.retucio
archives_base_name=camtweaks
fabric_version=0.135.0+1.21.10
archives_base_name=camtweaks
Binary file not shown.

After

Width:  |  Height:  |  Size: 915 KiB

@@ -16,7 +16,7 @@ import me.retucio.camtweaks.event.events.camtweaks.LoadModuleManagerEvent;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.HUD;
import me.retucio.camtweaks.module.modules.client.HUD;
import me.retucio.camtweaks.ui.screen.ClickGUI;
import me.retucio.camtweaks.ui.hud.HudEditorScreen;
import me.retucio.camtweaks.ui.hud.HudRenderer;
@@ -3,7 +3,7 @@ package me.retucio.camtweaks.command.commands;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import me.retucio.camtweaks.command.Command;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.ScreenshotPlus;
import me.retucio.camtweaks.module.modules.misc.ScreenshotPlus;
import net.minecraft.command.CommandSource;
// se usa principalmente para el módulo ScreenshotPlus, pero también se puede usar sin él supongo
@@ -3,7 +3,7 @@ package me.retucio.camtweaks.command.commands;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import me.retucio.camtweaks.command.Command;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.ScreenshotPlus;
import me.retucio.camtweaks.module.modules.misc.ScreenshotPlus;
import me.retucio.camtweaks.util.ChatUtil;
import net.minecraft.command.CommandSource;
@@ -1,10 +1,11 @@
package me.retucio.camtweaks.event.events;
import me.retucio.camtweaks.module.modules.misc.ChatPlus;
import net.minecraft.text.ClickEvent;
/** este evento es solo para asegurarse de que comandos del mod se puedan ejecutar solo desde el lado del cliente
* @see me.retucio.camtweaks.module.modules.ChatPlus#getSendButton
* @see ChatPlus#getSendButton
*/
public class ClientClickEvent implements ClickEvent {
@@ -0,0 +1,20 @@
package me.retucio.camtweaks.event.events;
import me.retucio.camtweaks.event.Event;
public class ClipAtLedgeEvent extends Event {
private boolean clipping;
public ClipAtLedgeEvent(boolean clipping) {
this.clipping = clipping;
}
public boolean isClipping() {
return clipping;
}
public void setClipping(boolean clipping) {
this.clipping = clipping;
}
}
@@ -1,12 +1,12 @@
package me.retucio.camtweaks.mixin;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.Freelook;
import me.retucio.camtweaks.module.modules.Freecam;
import me.retucio.camtweaks.module.modules.PerspectivePlus;
import me.retucio.camtweaks.module.modules.camera.Freelook;
import me.retucio.camtweaks.module.modules.camera.Freecam;
import me.retucio.camtweaks.module.modules.camera.PerspectivePlus;
import net.minecraft.client.render.Camera;
import net.minecraft.entity.Entity;
import net.minecraft.world.BlockView;
import net.minecraft.world.World;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
@@ -44,7 +44,7 @@ public abstract class CameraMixin {
}
@Inject(method = "update", at = @At("HEAD"))
private void onUpdateHead(BlockView area, Entity focusedEntity, boolean thirdPerson, boolean inverseView, float tickDelta, CallbackInfo info) {
private void onUpdateHead(World area, Entity focusedEntity, boolean thirdPerson, boolean inverseView, float tickDelta, CallbackInfo ci) {
this.tickDelta = tickDelta;
}
@@ -67,7 +67,7 @@ public abstract class CameraMixin {
// cámara libre
@Inject(method = "update", at = @At("TAIL"))
private void onUpdateTail(BlockView area, Entity focusedEntity, boolean thirdPerson, boolean inverseView, float tickDelta, CallbackInfo info) {
private void onUpdateTail(World area, Entity focusedEntity, boolean thirdPerson, boolean inverseView, float tickProgress, CallbackInfo ci) {
if (freecam.isEnabled())
this.thirdPerson = true;
}
@@ -1,18 +1,15 @@
package me.retucio.camtweaks.mixin;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import com.llamalad7.mixinextras.injector.ModifyReceiver;
import com.llamalad7.mixinextras.sugar.Local;
import me.retucio.camtweaks.event.events.ReceiveMessageEvent;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.ChatPlus;
import me.retucio.camtweaks.module.modules.misc.ChatPlus;
import me.retucio.camtweaks.util.interfaces.IChatHud;
import me.retucio.camtweaks.util.interfaces.IChatHudLine;
import me.retucio.camtweaks.util.interfaces.IChatHudLineVisible;
import me.retucio.camtweaks.util.interfaces.IMessageHandler;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.hud.ChatHud;
import net.minecraft.client.gui.hud.ChatHudLine;
import net.minecraft.client.gui.hud.MessageIndicator;
@@ -71,12 +68,12 @@ public abstract class ChatHudMixin implements IChatHud {
nextId = 0;
}
@Inject(method = "addVisibleMessage", at = @At(value = "INVOKE", target = "Ljava/util/List;add(ILjava/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) {
((IChatHudLine) (Object) visibleMessages.getFirst()).smegma$setId(nextId);
}
@Inject(method = "addMessage(Lnet/minecraft/client/gui/hud/ChatHudLine;)V", at = @At(value = "INVOKE", target = "Ljava/util/List;add(ILjava/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) {
((IChatHudLine) (Object) messages.getFirst()).smegma$setId(nextId);
}
@@ -144,23 +141,11 @@ public abstract class ChatHudMixin implements IChatHud {
// cabezas
@ModifyExpressionValue(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/MathHelper;ceil(F)I"))
@ModifyExpressionValue(method = "render(Lnet/minecraft/client/gui/hud/ChatHud$Backend;IIZ)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/MathHelper;ceil(F)I"))
private int onRender_modifyWidth(int width) {
return (chatPlus.isEnabled() && chatPlus.showHeads.isEnabled()) ? width + 10 : width;
}
@ModifyReceiver(method = "method_71991", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/DrawContext;drawTextWithShadow(Lnet/minecraft/client/font/TextRenderer;Lnet/minecraft/text/OrderedText;III)V"))
private DrawContext onRender_beforeDrawTextWithShadow(DrawContext context, TextRenderer textRenderer, OrderedText text, int x, int y, int color, @Local(argsOnly = true) ChatHudLine.Visible line) {
chatPlus.beforeDrawMessage(context, line, y, color);
return context;
}
@Inject(method = "method_71991", at = @At("TAIL"))
private void onRender_afterDrawTextWithShadow(int i, DrawContext context, float f, int j, int k, int l, ChatHudLine.Visible visible, int m, float g, CallbackInfo info) {
chatPlus.afterDrawMessage(context);
}
// historial (registro) del chat
@@ -181,7 +166,7 @@ public abstract class ChatHudMixin implements IChatHud {
chatPlus.lines.addFirst(list.size());
}
@Inject(method = "addMessage(Lnet/minecraft/client/gui/hud/ChatHudLine;)V", at = @At(value = "INVOKE", target = "Ljava/util/List;remove(I)Ljava/lang/Object;"))
@Inject(method = "addMessage(Lnet/minecraft/client/gui/hud/ChatHudLine;)V", at = @At(value = "INVOKE", target = "Ljava/util/List;removeLast()Ljava/lang/Object;"))
private void onRemoveMessage(ChatHudLine message, CallbackInfo ci) {
int extra = chatPlus.chatHistoryExtraLength.getIntValue();
int size = chatPlus.lines.size();
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.mixin;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.ChatPlus;
import me.retucio.camtweaks.module.modules.misc.ChatPlus;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.gui.widget.TextFieldWidget;
import org.spongepowered.asm.mixin.Mixin;
@@ -1,18 +1,15 @@
package me.retucio.camtweaks.mixin;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import me.retucio.camtweaks.CameraTweaks;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.Freecam;
import me.retucio.camtweaks.module.modules.camera.Freecam;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.debug.ChunkBorderDebugRenderer;
import net.minecraft.util.math.ChunkPos;
import net.minecraft.util.math.ChunkSectionPos;
import net.minecraft.util.math.MathHelper;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
@Mixin(ChunkBorderDebugRenderer.class)
@@ -21,14 +18,16 @@ public abstract class ChunkBorderDebugRendererMixin {
@Shadow @Final
private MinecraftClient client;
@ModifyExpressionValue(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;getChunkPos()Lnet/minecraft/util/math/ChunkPos;"))
private ChunkPos getChunkPos(ChunkPos chunkPos) {
@ModifyExpressionValue(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/ChunkSectionPos;from(Lnet/minecraft/util/math/BlockPos;)Lnet/minecraft/util/math/ChunkSectionPos;"))
private ChunkSectionPos getChunkPos(ChunkSectionPos chunkPos) {
Freecam freecam = ModuleManager.INSTANCE.getModuleByClass(Freecam.class);
if (!freecam.isEnabled()) return chunkPos;
float delta = client.getRenderTickCounter().getTickProgress(true);
return new ChunkPos(
return ChunkSectionPos.from(
ChunkSectionPos.getSectionCoord(MathHelper.floor(freecam.getX(delta))),
ChunkSectionPos.getSectionCoord(MathHelper.floor(freecam.getZ(delta))));
ChunkSectionPos.getSectionCoord(MathHelper.floor(freecam.getY(delta))),
ChunkSectionPos.getSectionCoord(MathHelper.floor(freecam.getZ(delta)))
);
}
}
@@ -3,7 +3,7 @@ package me.retucio.camtweaks.mixin;
import me.retucio.camtweaks.mixin.accessor.ConfirmServerResourcePackScreenAccessor;
import me.retucio.camtweaks.mixin.accessor.PackAccessor;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.RPackBypass;
import me.retucio.camtweaks.module.modules.network.RPackBypass;
import me.retucio.camtweaks.util.interfaces.IConfirmScreen;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.Screen;
@@ -4,12 +4,11 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException;
import me.retucio.camtweaks.command.CommandManager;
import me.retucio.camtweaks.event.events.SendMessageEvent;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.NoRender;
import me.retucio.camtweaks.module.modules.render.NoRender;
import me.retucio.camtweaks.util.ChatUtil;
import net.minecraft.client.network.ClientPlayNetworkHandler;
import net.minecraft.client.render.GameRenderer;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
@@ -1,19 +1,38 @@
package me.retucio.camtweaks.mixin;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import com.llamalad7.mixinextras.sugar.Local;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.PortalGUI;
import me.retucio.camtweaks.module.modules.world.NoMiningInterruptions;
import me.retucio.camtweaks.module.modules.player.PortalGUI;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.util.hit.EntityHitResult;
import net.minecraft.util.hit.HitResult;
import org.objectweb.asm.Opcodes;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@Mixin(ClientPlayerEntity.class)
public abstract class ClientPlayerEntityMixin {
@ModifyExpressionValue(method = "tickNausea", at = @At(value = "FIELD", target = "Lnet/minecraft/client/MinecraftClient;currentScreen:Lnet/minecraft/client/gui/screen/Screen;"))
@ModifyExpressionValue(method = "tickNausea", at = @At(value = "FIELD", target = "Lnet/minecraft/client/MinecraftClient;currentScreen:Lnet/minecraft/client/gui/screen/Screen;", opcode = Opcodes.GETFIELD))
private Screen allowScreensInPortals(Screen original) {
if (ModuleManager.INSTANCE.getModuleByClass(PortalGUI.class).isEnabled()) return null;
return original;
}
@ModifyReturnValue(method = "getCrosshairTarget(FLnet/minecraft/entity/Entity;)Lnet/minecraft/util/hit/HitResult;", at = @At("RETURN"))
private static HitResult onGetCrosshairTarget(HitResult original, @Local HitResult hitResult) {
NoMiningInterruptions nmi = ModuleManager.INSTANCE.getModuleByClass(NoMiningInterruptions.class);
if (original instanceof EntityHitResult ehr) {
if (nmi.shouldIgnoreEntity(ehr.getEntity())
&& hitResult.getType() == HitResult.Type.BLOCK) {
return hitResult;
}
}
return original;
}
}
@@ -1,14 +1,11 @@
package me.retucio.camtweaks.mixin;
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import com.llamalad7.mixinextras.sugar.Local;
import me.retucio.camtweaks.event.events.AttackEntityEvent;
import me.retucio.camtweaks.event.events.BreakBlockEvent;
import me.retucio.camtweaks.event.events.InteractEntityEvent;
import me.retucio.camtweaks.event.events.PlaceBlockEvent;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.Freecam;
import me.retucio.camtweaks.util.ChatUtil;
import me.retucio.camtweaks.module.modules.camera.Freecam;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.network.ClientPlayNetworkHandler;
import net.minecraft.client.network.ClientPlayerEntity;
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.mixin;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.TimeChanger;
import me.retucio.camtweaks.module.modules.world.TimeChanger;
import net.minecraft.client.world.ClientWorld;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.mixin;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.RPackBypass;
import me.retucio.camtweaks.module.modules.network.RPackBypass;
import me.retucio.camtweaks.util.interfaces.IConfirmScreen;
import net.minecraft.client.gui.screen.ConfirmScreen;
import net.minecraft.client.gui.screen.Screen;
@@ -2,15 +2,13 @@ package me.retucio.camtweaks.mixin;
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.CritsPlus;
import me.retucio.camtweaks.module.modules.render.CritsPlus;
import net.minecraft.client.particle.BillboardParticle;
import net.minecraft.client.particle.DamageParticle;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.ModifyVariable;
import java.awt.*;
@Mixin(DamageParticle.class)
public abstract class DamageParticleMixin {
@@ -1,30 +0,0 @@
package me.retucio.camtweaks.mixin;
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import com.llamalad7.mixinextras.sugar.Local;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.TimeChanger;
import me.retucio.camtweaks.util.ChatUtil;
import net.minecraft.world.dimension.DimensionType;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import static me.retucio.camtweaks.CameraTweaks.mc;
@Mixin(DimensionType.class)
public abstract class DimensionTypeMixin {
// no consigo arreglar lo de que la fase lunar por defecto siempre sea luna llena
@ModifyReturnValue(method = "getMoonPhase", at = @At("RETURN"))
private int overrideMoonPhase(int original, @Local(argsOnly = true) long time) {
TimeChanger timeChanger = ModuleManager.INSTANCE.getModuleByClass(TimeChanger.class);
if (timeChanger == null || !timeChanger.isEnabled() || mc.world == null) {
return original;
}
if (timeChanger.moonPhase.is(TimeChanger.MoonPhases.DEFAULT))
return (int) (time / 24000L % 8L + 8L) % 8;
return timeChanger.getMoonPhase();
}
}
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.mixin;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.Reconnect;
import me.retucio.camtweaks.module.modules.network.Reconnect;
import net.minecraft.client.gui.screen.DisconnectedScreen;
import net.minecraft.client.gui.widget.ButtonWidget;
@@ -3,7 +3,11 @@ package me.retucio.camtweaks.mixin;
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import me.retucio.camtweaks.event.events.ChangeRotationEvent;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.*;
import me.retucio.camtweaks.module.modules.camera.Freecam;
import me.retucio.camtweaks.module.modules.camera.Freelook;
import me.retucio.camtweaks.module.modules.camera.Rotations;
import me.retucio.camtweaks.module.modules.misc.AntiInvis;
import me.retucio.camtweaks.module.modules.render.Nametags;
import net.minecraft.entity.*;
import net.minecraft.entity.passive.TameableEntity;
import net.minecraft.entity.player.PlayerEntity;
@@ -31,10 +35,14 @@ public abstract class EntityMixin {
@Shadow private float yaw;
@Shadow private float pitch;
@Unique Freecam freecam;
@Unique Freelook freelook;
@Unique Nametags nametags;
@Unique Rotations rotations;
@Unique
Freecam freecam;
@Unique
Freelook freelook;
@Unique
Nametags nametags;
@Unique
Rotations rotations;
@SuppressWarnings("rawtypes")
@Inject(method = "<init>", at = @At("TAIL"))
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.mixin;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.GlintPlus;
import me.retucio.camtweaks.module.modules.render.GlintPlus;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.client.render.entity.equipment.EquipmentRenderer;
import org.spongepowered.asm.mixin.Mixin;
@@ -11,7 +11,7 @@ import org.spongepowered.asm.mixin.injection.Redirect;
@Mixin(EquipmentRenderer.class)
public abstract class EquipmentRendererMixin {
@Redirect(method = "render(Lnet/minecraft/client/render/entity/equipment/EquipmentModel$LayerType;Lnet/minecraft/registry/RegistryKey;Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;ILnet/minecraft/util/Identifier;II)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/RenderLayer;getArmorEntityGlint()Lnet/minecraft/client/render/RenderLayer;"))
@Redirect(method = "render(Lnet/minecraft/client/render/entity/equipment/EquipmentModel$LayerType;Lnet/minecraft/registry/RegistryKey;Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;ILnet/minecraft/util/Identifier;II)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/RenderLayers;armorEntityGlint()Lnet/minecraft/client/render/RenderLayer;"))
private RenderLayer redirectArmorEntityGlint() {
GlintPlus glintPlus = ModuleManager.INSTANCE.getModuleByClass(GlintPlus.class);
return glintPlus.getArmorEntityGlint();
@@ -3,7 +3,7 @@ package me.retucio.camtweaks.mixin;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.NoRender;
import me.retucio.camtweaks.module.modules.render.NoRender;
import net.minecraft.block.enums.CameraSubmersionType;
import net.minecraft.client.render.Camera;
import net.minecraft.client.render.fog.FogModifier;
@@ -28,7 +28,7 @@ public abstract class FogRendererMixin {
noRender = ModuleManager.INSTANCE.getModuleByClass(NoRender.class);
}
@Redirect(method = "applyFog(Lnet/minecraft/client/render/Camera;IZLnet/minecraft/client/render/RenderTickCounter;FLnet/minecraft/client/world/ClientWorld;)Lorg/joml/Vector4f;", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/fog/FogModifier;shouldApply(Lnet/minecraft/block/enums/CameraSubmersionType;Lnet/minecraft/entity/Entity;)Z"))
@Redirect(method = "applyFog(Lnet/minecraft/client/render/Camera;ILnet/minecraft/client/render/RenderTickCounter;FLnet/minecraft/client/world/ClientWorld;)Lorg/joml/Vector4f;", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/fog/FogModifier;shouldApply(Lnet/minecraft/block/enums/CameraSubmersionType;Lnet/minecraft/entity/Entity;)Z"))
private boolean noRenderFogs(FogModifier instance, CameraSubmersionType cameraSubmersionType, Entity entity) {
if (!noRender.isEnabled()) return instance.shouldApply(cameraSubmersionType, entity);
String className = instance.getClass().getSimpleName();
@@ -2,7 +2,7 @@ package me.retucio.camtweaks.mixin;
import me.retucio.camtweaks.event.events.PerspectiveChangeEvent;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.Freecam;
import me.retucio.camtweaks.module.modules.camera.Freecam;
import net.minecraft.client.option.GameOptions;
import net.minecraft.client.option.Perspective;
import org.spongepowered.asm.mixin.Mixin;
@@ -1,13 +1,11 @@
package me.retucio.camtweaks.mixin;
import com.llamalad7.mixinextras.sugar.Local;
import me.retucio.camtweaks.event.events.GetFOVEvent;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.Freecam;
import me.retucio.camtweaks.module.modules.NoMiningInterruptions;
import me.retucio.camtweaks.module.modules.NoRender;
import me.retucio.camtweaks.module.modules.Zoom;
import me.retucio.camtweaks.module.modules.camera.Freecam;
import me.retucio.camtweaks.module.modules.render.NoRender;
import me.retucio.camtweaks.module.modules.camera.Zoom;
import me.retucio.camtweaks.util.interfaces.IVec3d;
import net.minecraft.client.MinecraftClient;
@@ -17,8 +15,6 @@ import net.minecraft.client.render.block.BlockRenderManager;
import net.minecraft.client.render.item.HeldItemRenderer;
import net.minecraft.entity.Entity;
import net.minecraft.util.hit.EntityHitResult;
import net.minecraft.util.hit.HitResult;
import org.joml.Matrix4f;
import org.joml.Vector3d;
@@ -123,15 +119,4 @@ public abstract class GameRendererMixin {
private float noRenderNauseaDistortion(float scaledNauseaEffectFactor) {
return (noRender.isEnabled() && !noRender.nauseaEffect.isEnabled()) ? 0 : scaledNauseaEffectFactor;
}
@ModifyReturnValue(method = "findCrosshairTarget", at = @At("RETURN"))
private HitResult onTargetEntity(HitResult original, @Local HitResult hitResult) {
NoMiningInterruptions nmi = ModuleManager.INSTANCE.getModuleByClass(NoMiningInterruptions.class);
Entity entity = original instanceof EntityHitResult result ? result.getEntity() : null;
if (nmi.shouldIgnoreEntity(entity) && hitResult.getType() == HitResult.Type.BLOCK)
return hitResult;
return original;
}
}
@@ -5,7 +5,7 @@ import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import me.retucio.camtweaks.CameraTweaks;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.BungeecordSpoofer;
import me.retucio.camtweaks.module.modules.network.BungeecordSpoofer;
import net.minecraft.network.packet.c2s.handshake.ConnectionIntent;
import net.minecraft.network.packet.c2s.handshake.HandshakeC2SPacket;
import org.spongepowered.asm.mixin.*;
@@ -4,15 +4,13 @@ import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import me.retucio.camtweaks.event.events.RenderHeldItemEvent;
import me.retucio.camtweaks.event.events.RenderArmEvent;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.HandView;
import me.retucio.camtweaks.module.modules.player.HandView;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.item.ItemModelManager;
import net.minecraft.client.network.AbstractClientPlayerEntity;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.command.OrderedRenderCommandQueue;
import net.minecraft.client.render.entity.EntityRenderManager;
import net.minecraft.client.render.item.HeldItemRenderer;
import net.minecraft.client.render.item.ItemRenderer;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
@@ -50,7 +48,7 @@ public abstract class HeldItemRendererMixin {
protected abstract boolean shouldSkipHandAnimationOnSwap(ItemStack from, ItemStack to);
@Inject(method = "<init>", at = @At("TAIL"))
private void getModules(MinecraftClient client, EntityRenderManager entityRenderDispatcher, ItemRenderer itemRenderer, ItemModelManager itemModelManager, CallbackInfo ci) {
private void getModules(MinecraftClient client, EntityRenderManager entityRenderDispatcher, ItemModelManager itemModelManager, CallbackInfo ci) {
handView = ModuleManager.INSTANCE.getModuleByClass(HandView.class);
}
@@ -2,9 +2,9 @@ package me.retucio.camtweaks.mixin;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.ChatPlus;
import me.retucio.camtweaks.module.modules.Freecam;
import me.retucio.camtweaks.module.modules.NoRender;
import me.retucio.camtweaks.module.modules.misc.ChatPlus;
import me.retucio.camtweaks.module.modules.camera.Freecam;
import me.retucio.camtweaks.module.modules.render.NoRender;
import me.retucio.camtweaks.ui.hud.HudRenderer;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawContext;
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.mixin;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.NoRender;
import me.retucio.camtweaks.module.modules.render.NoRender;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.hud.InGameOverlayRenderer;
import net.minecraft.client.render.VertexConsumerProvider;
@@ -2,7 +2,7 @@ package me.retucio.camtweaks.mixin;
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.Nametags;
import me.retucio.camtweaks.module.modules.render.Nametags;
import net.minecraft.entity.ItemEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.text.MutableText;
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.mixin;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.ShulkerPeek;
import me.retucio.camtweaks.module.modules.misc.ShulkerPeek;
import net.minecraft.block.ShulkerBoxBlock;
import net.minecraft.component.type.TooltipDisplayComponent;
import net.minecraft.item.BlockItem;
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.mixin;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.GlintPlus;
import me.retucio.camtweaks.module.modules.render.GlintPlus;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.client.render.item.ItemRenderer;
import org.spongepowered.asm.mixin.Mixin;
@@ -22,12 +22,12 @@ public abstract class ItemRendererMixin {
glintPlus = ModuleManager.INSTANCE.getModuleByClass(GlintPlus.class);
}
@Redirect(method = "getItemGlintConsumer", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/RenderLayer;getGlint()Lnet/minecraft/client/render/RenderLayer;"))
@Redirect(method = "getItemGlintConsumer", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/RenderLayers;glint()Lnet/minecraft/client/render/RenderLayer;"))
private static RenderLayer getGlint() {
return glintPlus.getGlint();
}
@Redirect(method = "getItemGlintConsumer", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/RenderLayer;getEntityGlint()Lnet/minecraft/client/render/RenderLayer;"))
@Redirect(method = "getItemGlintConsumer", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/RenderLayers;entityGlint()Lnet/minecraft/client/render/RenderLayer;"))
private static RenderLayer getEntityGlint() {
return glintPlus.getEntityGlint();
}
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.mixin;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.Freecam;
import me.retucio.camtweaks.module.modules.camera.Freecam;
import net.minecraft.client.input.Input;
import net.minecraft.client.input.KeyboardInput;
import net.minecraft.util.PlayerInput;
@@ -4,8 +4,8 @@ import com.llamalad7.mixinextras.sugar.Local;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.textures.GpuTexture;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.Fullbright;
import me.retucio.camtweaks.module.modules.NoRender;
import me.retucio.camtweaks.module.modules.camera.Fullbright;
import me.retucio.camtweaks.module.modules.render.NoRender;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.GameRenderer;
import net.minecraft.client.render.LightmapTextureManager;
@@ -4,8 +4,8 @@ import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import com.llamalad7.mixinextras.sugar.Local;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.Freecam;
import me.retucio.camtweaks.module.modules.Nametags;
import me.retucio.camtweaks.module.modules.camera.Freecam;
import me.retucio.camtweaks.module.modules.render.Nametags;
import net.minecraft.client.render.entity.EntityRendererFactory;
import net.minecraft.client.render.entity.LivingEntityRenderer;
import net.minecraft.client.render.entity.model.EntityModel;
@@ -1,7 +1,5 @@
package me.retucio.camtweaks.mixin;
import com.ibm.icu.util.CodePointTrie;
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import com.llamalad7.mixinextras.sugar.Local;
import me.retucio.camtweaks.CameraTweaks;
import me.retucio.camtweaks.event.JoinWorldEvent;
@@ -10,7 +8,7 @@ import me.retucio.camtweaks.event.events.ShutdownEvent;
import me.retucio.camtweaks.event.events.TickEvent;
import me.retucio.camtweaks.event.events.UseItemEvent;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.FastUse;
import me.retucio.camtweaks.module.modules.player.FastUse;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.world.ClientWorld;
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.mixin;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.DamageOverlay;
import me.retucio.camtweaks.module.modules.render.DamageOverlay;
import net.minecraft.client.render.OverlayTexture;
import net.minecraft.client.texture.NativeImageBackedTexture;
import org.spongepowered.asm.mixin.Final;
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.mixin;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.NoRender;
import me.retucio.camtweaks.module.modules.render.NoRender;
import net.minecraft.client.particle.Particle;
import net.minecraft.client.particle.ParticleManager;
import net.minecraft.particle.ParticleEffect;
@@ -1,8 +1,10 @@
package me.retucio.camtweaks.mixin;
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import me.retucio.camtweaks.CameraTweaks;
import me.retucio.camtweaks.event.events.ClipAtLedgeEvent;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.Nametags;
import me.retucio.camtweaks.module.modules.render.Nametags;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
@@ -11,6 +13,8 @@ import net.minecraft.util.Formatting;
import net.minecraft.world.World;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(PlayerEntity.class)
public abstract class PlayerEntityMixin extends LivingEntity {
@@ -49,4 +53,11 @@ public abstract class PlayerEntityMixin extends LivingEntity {
return original.copy().append(text);
}
@Inject(method = "clipAtLedge", at = @At("HEAD"), cancellable = true)
private void clipAtLedge(CallbackInfoReturnable<Boolean> cir) {
if (!getEntityWorld().isClient()) return;
ClipAtLedgeEvent event = CameraTweaks.EVENT_BUS.post(new ClipAtLedgeEvent(isSneaking()));
cir.setReturnValue(event.isClipping());
}
}
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.mixin;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.RPackBypass;
import me.retucio.camtweaks.module.modules.network.RPackBypass;
import net.minecraft.client.network.ServerInfo;
import net.minecraft.text.Text;
import org.spongepowered.asm.mixin.Mixin;
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.mixin;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.ScreenshotPlus;
import me.retucio.camtweaks.module.modules.misc.ScreenshotPlus;
import net.minecraft.client.texture.NativeImage;
import net.minecraft.client.util.ScreenshotRecorder;
import net.minecraft.text.Text;
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.mixin;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.RPackBypass;
import me.retucio.camtweaks.module.modules.network.RPackBypass;
import net.minecraft.client.network.ServerInfo;
import net.minecraft.client.resource.server.ServerResourcePackManager;
import org.spongepowered.asm.mixin.Mixin;
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.mixin;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.RPackBypass;
import me.retucio.camtweaks.module.modules.network.RPackBypass;
import net.minecraft.client.network.ServerInfo;
import net.minecraft.nbt.NbtCompound;
import org.spongepowered.asm.mixin.Mixin;
@@ -1,20 +1,17 @@
package me.retucio.camtweaks.mixin;
import com.mojang.blaze3d.buffers.GpuBuffer;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.NoRender;
import me.retucio.camtweaks.module.modules.PerspectivePlus;
import me.retucio.camtweaks.module.modules.TimeChanger;
import me.retucio.camtweaks.util.ChatUtil;
import me.retucio.camtweaks.module.modules.render.NoRender;
import me.retucio.camtweaks.module.modules.world.TimeChanger;
import net.minecraft.client.render.SkyRendering;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.world.MoonPhase;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.ModifyArg;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(SkyRendering.class)
public abstract class SkyRendererMixin {
@@ -33,8 +30,17 @@ public abstract class SkyRendererMixin {
}
@Inject(method = "renderMoon", at = @At("HEAD"), cancellable = true)
private void onRenderMoon(int phase, float alpha, MatrixStack matrixStack, CallbackInfo ci) {
if (timeChanger.isEnabled() && !timeChanger.renderMoon.isEnabled()) ci.cancel();
private void onRenderMoon(MoonPhase moonPhase, float alpha, MatrixStack matrices, CallbackInfo ci) {
if (!timeChanger.isEnabled()) return;
if (!timeChanger.renderMoon.isEnabled()) ci.cancel();
}
@ModifyArg(method = "renderCelestialBodies", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/SkyRendering;renderMoon(Lnet/minecraft/world/MoonPhase;FLnet/minecraft/client/util/math/MatrixStack;)V"))
private MoonPhase timeChangerMoonPhase(MoonPhase original) {
if (!timeChanger.isEnabled() || timeChanger.moonPhase.is(TimeChanger.MoonPhases.DEFAULT)) return original;
int phase = timeChanger.moonPhase.getIndex();
if (timeChanger.moonPhase.is(TimeChanger.MoonPhases.DEFAULT)) phase = original.getIndex();
return MoonPhase.values()[phase];
}
@Inject(method = "renderStars", at = @At("HEAD"), cancellable = true)
@@ -2,7 +2,7 @@ package me.retucio.camtweaks.mixin;
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.NoRender;
import me.retucio.camtweaks.module.modules.render.NoRender;
import net.minecraft.client.render.fog.StatusEffectFogModifier;
import net.minecraft.entity.effect.StatusEffect;
import net.minecraft.entity.effect.StatusEffects;
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.mixin;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.ChatPlus;
import me.retucio.camtweaks.module.modules.misc.ChatPlus;
import net.minecraft.util.StringHelper;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@@ -2,7 +2,7 @@ package me.retucio.camtweaks.mixin;
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.NoRender;
import me.retucio.camtweaks.module.modules.render.NoRender;
import net.minecraft.client.render.entity.feature.StuckArrowsFeatureRenderer;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@@ -1,22 +1,15 @@
package me.retucio.camtweaks.mixin;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.NoRender;
import net.minecraft.client.font.BakedGlyph;
import net.minecraft.client.font.GlyphProvider;
import me.retucio.camtweaks.module.modules.render.NoRender;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.text.Style;
import net.minecraft.text.TextColor;
import net.minecraft.util.math.MathHelper;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.*;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import static me.retucio.camtweaks.CameraTweaks.mc;
// falta italics pero no sé dónde se comprueba eso, no es aquí :P
@Mixin(TextRenderer.Drawer.class)
public abstract class TextRendererDrawerMixin {
@@ -24,8 +17,8 @@ public abstract class TextRendererDrawerMixin {
@Unique
NoRender noRender;
@Inject(method = "<init>(Lnet/minecraft/client/font/TextRenderer;FFIIZ)V", at = @At("TAIL"))
private void getModules(TextRenderer textRenderer, float x, float y, int color, int backgroundColor, boolean shadow, CallbackInfo ci) {
@Inject(method = "<init>(Lnet/minecraft/client/font/TextRenderer;FFIIZZ)V", at = @At("TAIL"))
private void getModules(TextRenderer textRenderer, float x, float y, int color, int backgroundColor, boolean shadow, boolean trackEmpty, CallbackInfo ci) {
noRender = ModuleManager.INSTANCE.getModuleByClass(NoRender.class);
}
@@ -2,7 +2,7 @@ package me.retucio.camtweaks.mixin;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.NoRender;
import me.retucio.camtweaks.module.modules.render.NoRender;
import net.minecraft.client.font.TextRenderer;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@@ -1,7 +1,7 @@
package me.retucio.camtweaks.mixin;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.NoRender;
import me.retucio.camtweaks.module.modules.render.NoRender;
import net.minecraft.client.render.Camera;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.WeatherRendering;
@@ -15,8 +15,6 @@ import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import java.util.List;
@Mixin(WeatherRendering.class)
public abstract class WeatherRenderingMixin {
@@ -30,7 +28,7 @@ public abstract class WeatherRenderingMixin {
}
@Inject(method = "addParticlesAndSound", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/world/ClientWorld;addParticleClient(Lnet/minecraft/particle/ParticleEffect;DDDDDD)V"), cancellable = true)
private void noRainParticles(ClientWorld world, Camera camera, int ticks, ParticlesMode particlesMode, CallbackInfo ci) {
private void noRainParticles(ClientWorld world, Camera camera, int ticks, ParticlesMode particlesMode, int weatherRadius, CallbackInfo ci) {
if (noRender.isEnabled() && !noRender.rain.isEnabled()) ci.cancel();
}
@@ -5,19 +5,15 @@ import com.mojang.blaze3d.buffers.GpuBufferSlice;
import me.retucio.camtweaks.CameraTweaks;
import me.retucio.camtweaks.event.events.RenderWorldEvent;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.BlockOutline;
import me.retucio.camtweaks.module.modules.Freecam;
import me.retucio.camtweaks.module.modules.NoRender;
import me.retucio.camtweaks.util.Colors;
import net.minecraft.client.MinecraftClient;
import me.retucio.camtweaks.module.modules.render.BlockOutline;
import me.retucio.camtweaks.module.modules.camera.Freecam;
import me.retucio.camtweaks.module.modules.render.NoRender;
import net.minecraft.client.render.*;
import net.minecraft.client.render.state.WorldRenderState;
import net.minecraft.client.util.ObjectAllocator;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.math.ColorHelper;
import net.minecraft.util.math.Direction;
import net.minecraft.util.math.RotationAxis;
import net.minecraft.util.math.Vec3d;
import net.minecraft.util.profiler.Profiler;
import org.joml.Matrix4f;
import org.joml.Vector4f;
@@ -29,15 +25,13 @@ import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import java.awt.*;
import static me.retucio.camtweaks.CameraTweaks.EVENT_BUS;
import static me.retucio.camtweaks.CameraTweaks.mc;
@Mixin(WorldRenderer.class)
public abstract class WorldRendererMixin {
@ModifyArg(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/WorldRenderer;method_74752(Lnet/minecraft/client/render/Camera;Lnet/minecraft/client/render/Frustum;Z)V"), index = 2)
@ModifyArg(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/WorldRenderer;updateCamera(Lnet/minecraft/client/render/Camera;Lnet/minecraft/client/render/Frustum;Z)V"), index = 2)
private boolean renderSetupTerrainModifyArg(boolean spectator) {
return ModuleManager.INSTANCE.getModuleByClass(Freecam.class).isEnabled() || spectator;
}
@@ -72,10 +66,10 @@ public abstract class WorldRendererMixin {
if (!noRender.blindnessEffect.isEnabled() || !noRender.darknessEffect.isEnabled()) cir.setReturnValue(null);
}
@Redirect(method = "renderTargetBlockOutline", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/ColorHelper;withAlpha(II)I"))
private int modifyBlockOutlineColor(int alpha, int rgb) {
@Redirect(method = "renderTargetBlockOutline", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/ColorHelper;toAlpha(I)I"))
private int modifyBlockOutlineColor(int alpha) {
BlockOutline outline = ModuleManager.INSTANCE.getModuleByClass(BlockOutline.class);
if (!outline.isEnabled()) return ColorHelper.withAlpha(alpha, rgb);
if (!outline.isEnabled()) return ColorHelper.toAlpha(alpha);
return outline.color.getRGB();
}
@@ -0,0 +1,19 @@
package me.retucio.camtweaks.module;
public enum Category {
PLAYER("jugador"),
WORLD("mundo"),
CAMERA("cámara"),
RENDER("renderizado"),
NETWORK("red"),
CLIENT("cliente"),
MISC("misc.");
private final String name;
Category(String name) { this.name = name; }
@Override public String toString() { return name; }
}
@@ -23,6 +23,8 @@ public class Module {
// atributos
private String name;
private String description;
private Category category;
private boolean enabled;
private boolean saveSettings = true;
private boolean searchMatch = true;
@@ -36,20 +38,23 @@ public class Module {
protected MinecraftClient mc = MinecraftClient.getInstance();
public Module(String name, String description) {
public Module(String name, String description, Category category) {
this.name = name;
this.description = description;
this.category = category;
addSettings(bind, keyMode, notify);
}
public Module(String name, String description, int key) {
public Module(String name, String description, Category category, int key) {
this.name = name;
this.description = description;
this.category = category;
addSettings(bind, keyMode, notify);
this.bind.setDefaultKey(key);
// puto marcos
if (ConfigManager.getConfig().settings.get(this.getName() + ":" + bind.getName()) == null)
if (ConfigManager.getConfig().settings
.get(this.getName() + ":" + bind.getName()) == null)
this.bind.setKey(key);
}
@@ -115,6 +120,14 @@ public class Module {
this.description = description;
}
public Category getCategory() {
return category;
}
public void setCategory(Category category) {
this.category = category;
}
public boolean isEnabled() {
return enabled;
}
@@ -1,9 +1,15 @@
package me.retucio.camtweaks.module;
import me.retucio.camtweaks.CameraTweaks;
import me.retucio.camtweaks.event.EventBus;
import me.retucio.camtweaks.event.SubscribeEvent;
import me.retucio.camtweaks.module.modules.*;
import me.retucio.camtweaks.module.modules.camera.*;
import me.retucio.camtweaks.module.modules.client.HUD;
import me.retucio.camtweaks.module.modules.misc.*;
import me.retucio.camtweaks.module.modules.network.*;
import me.retucio.camtweaks.module.modules.player.*;
import me.retucio.camtweaks.module.modules.render.*;
import me.retucio.camtweaks.module.modules.render.CritsPlus;
import me.retucio.camtweaks.module.modules.world.*;
import java.lang.reflect.Method;
import java.util.ArrayList;
@@ -60,6 +66,7 @@ public class ModuleManager {
modules.add(new Reconnect());
modules.add(new Rotations());
modules.add(new RPackBypass());
modules.add(new SafeWalk());
modules.add(new ScreenshotPlus());
modules.add(new ShulkerPeek());
modules.add(new TimeChanger());
@@ -1,14 +0,0 @@
package me.retucio.camtweaks.module.modules;
import me.retucio.camtweaks.module.Module;
/** continúa en:
* @see me.retucio.camtweaks.mixin.EntityMixin
*/
public class AntiInvis extends Module {
public AntiInvis() {
super("anti invis", "te permite ver a los jugadores invisibles");
}
}
@@ -1,16 +0,0 @@
package me.retucio.camtweaks.module.modules;
import me.retucio.camtweaks.module.Module;
public class Headhitters extends Module {
public Headhitters() {
super("headhitters", "mantén pulsado el espacio para hacer headhitting sin tener que espamearlo");
}
@Override
public void onTick() {
if (mc.player == null) return;
mc.player.jumpingCooldown = 0;
}
}
@@ -1,24 +0,0 @@
package me.retucio.camtweaks.module.modules;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.BooleanSetting;
import net.minecraft.entity.Entity;
import net.minecraft.registry.tag.ItemTags;
public class NoMiningInterruptions extends Module {
public BooleanSetting withPickaxeOnly = addSetting(new BooleanSetting("solo con pico", "ignorar entidades solamente cuando se sujeta un pico", false));
public NoMiningInterruptions() {
super("minar sin interrupción", "te permite minar bloques a través de entidades");
}
public boolean shouldIgnoreEntity(Entity entity) {
if (entity == null || !this.isEnabled()) return false;
if (withPickaxeOnly.isEnabled())
return (mc.player.getMainHandStack().isIn(ItemTags.PICKAXES) || mc.player.getOffHandStack().isIn(ItemTags.PICKAXES));
return true;
}
}
@@ -1,14 +0,0 @@
package me.retucio.camtweaks.module.modules;
import me.retucio.camtweaks.module.Module;
/** continúa en:
* @see me.retucio.camtweaks.mixin.ClientPlayerEntityMixin
*/
public class PortalGUI extends Module {
public PortalGUI() {
super("interfaz en portales", "te permite abrir interfaces dentro de portales, como el chat o el inventario");
}
}
@@ -1,8 +1,9 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.camera;
import me.retucio.camtweaks.event.Stage;
import me.retucio.camtweaks.event.SubscribeEvent;
import me.retucio.camtweaks.event.events.*;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.BooleanSetting;
import me.retucio.camtweaks.module.settings.KeySetting;
@@ -69,7 +70,11 @@ public class Freecam extends Module {
private float yaw, pitch;
public Freecam() {
super("cámara libre", "permite a la cámara moverse independientemente del jugador. útil para explorar alrededores", GLFW.GLFW_KEY_V);
super("cámara libre",
"permite a la cámara moverse independientemente del jugador. útil para explorar alrededores",
Category.CAMERA,
GLFW.GLFW_KEY_V);
speedSetting.onUpdate(newSpeed -> speed = newSpeed);
}
@@ -1,5 +1,6 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.camera;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.EnumSetting;
import me.retucio.camtweaks.module.settings.NumberSetting;
@@ -29,7 +30,10 @@ public class Freelook extends Module {
private Perspective prevPerspective;
public Freelook() {
super("perspectiva libre", "te permite mover la cámara de la perspectiva sin mover la del jugador, o vice versa", GLFW.GLFW_KEY_B);
super("perspectiva libre",
"te permite mover la cámara de la perspectiva sin mover la del jugador, o vice versa",
Category.CAMERA,
GLFW.GLFW_KEY_B);
keyMode.setDefaultValue(KeyModes.HOLD);
keyMode.setValue(KeyModes.HOLD);
@@ -1,10 +1,10 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.camera;
import me.retucio.camtweaks.mixin.accessor.StatusEffectInstanceAccessor;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.ColorSetting;
import me.retucio.camtweaks.module.settings.EnumSetting;
import me.retucio.camtweaks.module.settings.NumberSetting;
import net.minecraft.entity.effect.StatusEffectInstance;
import net.minecraft.entity.effect.StatusEffects;
import net.minecraft.registry.Registries;
@@ -23,7 +23,10 @@ public class Fullbright extends Module {
public ColorSetting color = addSetting(new ColorSetting("filtro", "filtro de color", new Color(255, 255, 255, 255), false));
public Fullbright() {
super("brilli brilli", "deshabilita la oscuridad (y aplica colores a los shaders)", GLFW.GLFW_KEY_K);
super("brilli brilli",
"deshabilita la oscuridad (y aplica colores a los shaders)",
Category.CAMERA,
GLFW.GLFW_KEY_K);
mode.onUpdate(mode -> { if (mode != Modes.POTION) disableNightVision(); });
mode.onUpdate(mode -> {
boolean v = mode.equals(Modes.GAMMA);
@@ -1,8 +1,9 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.camera;
import me.retucio.camtweaks.event.SubscribeEvent;
import me.retucio.camtweaks.event.events.MouseScrollEvent;
import me.retucio.camtweaks.event.events.PerspectiveChangeEvent;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.*;
import me.retucio.camtweaks.util.KeyUtil;
@@ -28,7 +29,9 @@ public class PerspectivePlus extends Module {
public KeySetting scrollKey = addSetting(new KeySetting("tecla del scroll", "qué tecla mantener para usar la rueda del ratón", GLFW.GLFW_KEY_LEFT_ALT));
public PerspectivePlus() {
super("perspectiva plus", "añade cositas chulas al cambio de perspectiva");
super("perspectiva plus",
"añade cositas chulas al cambio de perspectiva",
Category.CAMERA);
}
@Override
@@ -1,7 +1,8 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.camera;
import me.retucio.camtweaks.event.SubscribeEvent;
import me.retucio.camtweaks.event.events.ChangeRotationEvent;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.BooleanSetting;
import me.retucio.camtweaks.module.settings.NumberSetting;
@@ -16,7 +17,9 @@ public class Rotations extends Module {
public BooleanSetting serverSide = addSetting(new BooleanSetting("serverside", "espamea paquetes de rotación al servidor", false));
public Rotations() {
super("rotaciones", "te permite forzar una rotación específica");
super("rotaciones",
"te permite forzar una rotación específica",
Category.CAMERA);
}
@Override
@@ -1,8 +1,9 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.camera;
import me.retucio.camtweaks.event.SubscribeEvent;
import me.retucio.camtweaks.event.events.GetFOVEvent;
import me.retucio.camtweaks.event.events.MouseScrollEvent;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.BooleanSetting;
import me.retucio.camtweaks.module.settings.KeySetting;
@@ -36,7 +37,10 @@ public class Zoom extends Module {
private double value;
public Zoom() {
super("zoom", "lupa", GLFW.GLFW_KEY_F);
super("zoom",
"lupa",
Category.CAMERA,
GLFW.GLFW_KEY_F);
keyMode.setDefaultValue(KeyModes.HOLD);
keyMode.setValue(KeyModes.HOLD);
@@ -1,4 +1,4 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.client;
import me.retucio.camtweaks.CameraTweaks;
import me.retucio.camtweaks.command.CommandManager;
@@ -6,8 +6,10 @@ import me.retucio.camtweaks.event.SubscribeEvent;
import me.retucio.camtweaks.event.events.TickEvent;
import me.retucio.camtweaks.event.events.camtweaks.LoadClickGUIEvent;
import me.retucio.camtweaks.event.events.camtweaks.LoadCommandManagerEvent;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.misc.ChatPlus;
import me.retucio.camtweaks.module.settings.BooleanSetting;
import me.retucio.camtweaks.module.settings.ColorSetting;
import me.retucio.camtweaks.module.settings.NumberSetting;
@@ -42,7 +44,10 @@ public class GUI extends Module {
public BooleanSetting multipleKeybinds = addSetting(new BooleanSetting("teclas multimódulo", "permitir asignar la misma tecla a más de un módulo", false));
public GUI() {
super("interfaz", "ajustes de la interfaz, y otros misceláneos", GLFW.GLFW_KEY_RIGHT_SHIFT);
super("interfaz",
"ajustes de la interfaz, y otros misceláneos",
Category.CLIENT,
GLFW.GLFW_KEY_RIGHT_SHIFT);
CameraTweaks.EVENT_BUS.register(this);
keyMode.setVisible(false);
@@ -1,8 +1,8 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.client;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.*;
import me.retucio.camtweaks.ui.hud.CoordsElement;
import me.retucio.camtweaks.ui.hud.HudElement;
import me.retucio.camtweaks.ui.hud.HudRenderer;
import me.retucio.camtweaks.ui.hud.HudEditorScreen;
@@ -34,7 +34,11 @@ public class HUD extends Module {
public EnumSetting<CoordsMode> coordsMode = addSetting(new EnumSetting<>("modo de coordenadas", "qué coordenadas mostrar", CoordsMode.class, CoordsMode.OVERWORLD));
public HUD() {
super("HUD", "superposición de la pantalla con info. adicional");
super("HUD",
"superposición de la pantalla con info. adicional",
Category.CLIENT,
GLFW.GLFW_KEY_F12
);
}
public enum TimeFormat {
@@ -0,0 +1,17 @@
package me.retucio.camtweaks.module.modules.misc;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
/** continúa en:
* @see me.retucio.camtweaks.mixin.EntityMixin
*/
public class AntiInvis extends Module {
public AntiInvis() {
super("anti invis",
"te permite ver a los jugadores invisibles",
Category.MISC);
}
}
@@ -1,12 +1,13 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.misc;
import me.retucio.camtweaks.mixin.accessor.AnvilScreenAccessor;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.EnumSetting;
import net.minecraft.client.gui.screen.ingame.AnvilScreen;
import net.minecraft.client.gui.widget.TextFieldWidget;
import me.retucio.camtweaks.module.modules.AnvilFont.CustomFont.CharMap;
import me.retucio.camtweaks.module.modules.misc.AnvilFont.CustomFont.CharMap;
import java.util.Arrays;
import java.util.HashMap;
@@ -66,7 +67,9 @@ public class AnvilFont extends Module {
);
public AnvilFont() {
super("yunques con pluma", "te permite tipografías distintas al renombrar items en un yunque");
super("yunques con pluma",
"te permite tipografías distintas al renombrar items en un yunque",
Category.MISC);
}
@Override
@@ -1,7 +1,8 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.misc;
import me.retucio.camtweaks.event.events.RenderBossbarEvent;
import me.retucio.camtweaks.event.SubscribeEvent;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.BooleanSetting;
import me.retucio.camtweaks.module.settings.NumberSetting;
@@ -22,7 +23,9 @@ public class BossbarStack extends Module {
private final Map<ClientBossBar, Integer> bossBarMap = new WeakHashMap<>();
public BossbarStack() {
super("apilar bossbars", "apila bossbars para reducir el espacio que ocupan en pantalla");
super("apilar bossbars",
"apila bossbars para reducir el espacio que ocupan en pantalla",
Category.MISC);
}
@SubscribeEvent
@@ -1,4 +1,4 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.misc;
import com.mojang.authlib.GameProfile;
import it.unimi.dsi.fastutil.ints.IntArrayList;
@@ -9,6 +9,7 @@ import me.retucio.camtweaks.event.SubscribeEvent;
import me.retucio.camtweaks.event.events.ClientClickEvent;
import me.retucio.camtweaks.event.events.ReceiveMessageEvent;
import me.retucio.camtweaks.event.events.SendMessageEvent;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.BooleanSetting;
import me.retucio.camtweaks.module.settings.NumberSetting;
@@ -55,7 +56,9 @@ public class ChatPlus extends Module {
0, 0, 1000, 1));
public ChatPlus() {
super("chat plus", "mejoras para el chat");
super("chat plus",
"mejoras para el chat",
Category.MISC);
updateDateFormat();
updateClientName();
timestamps.onUpdate(v -> timestampSecs.setVisible(v));
@@ -1,6 +1,7 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.misc;
import com.mojang.authlib.GameProfile;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.StringSetting;
import net.minecraft.client.network.OtherClientPlayerEntity;
@@ -16,7 +17,9 @@ public class FakePlayer extends Module {
private OtherClientPlayerEntity player = null;
public FakePlayer() {
super("jugador falso", "invoca una entidad de jugador falsa por motivos de testeo");
super("jugador falso",
"invoca una entidad de jugador falsa por motivos de testeo",
Category.MISC);
}
@Override
@@ -1,7 +1,8 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.misc;
import me.retucio.camtweaks.command.CommandManager;
import me.retucio.camtweaks.event.events.ClientClickEvent;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.BooleanSetting;
import me.retucio.camtweaks.module.settings.EnumSetting;
@@ -41,7 +42,9 @@ public class ScreenshotPlus extends Module {
private File screenshotFile;
public ScreenshotPlus() {
super("capturas de pantalla", "elige qué hacer tras tomar una captura de pantalla");
super("capturas de pantalla",
"elige qué hacer tras tomar una captura de pantalla",
Category.MISC);
}
public void sendScreenshotMessage() {
@@ -1,8 +1,9 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.misc;
import me.retucio.camtweaks.event.SubscribeEvent;
import me.retucio.camtweaks.event.events.KeyEvent;
import me.retucio.camtweaks.mixin.accessor.HandledScreenAccessor;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.BooleanSetting;
import me.retucio.camtweaks.module.settings.KeySetting;
@@ -11,9 +12,7 @@ import me.retucio.camtweaks.util.ChatUtil;
import me.retucio.camtweaks.util.Colors;
import me.retucio.camtweaks.util.InventoryUtil;
import me.retucio.camtweaks.util.MiscUtil;
import net.minecraft.block.ShulkerBoxBlock;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.ingame.HandledScreen;
import net.minecraft.component.DataComponentTypes;
import net.minecraft.component.type.ContainerComponent;
@@ -21,7 +20,6 @@ import net.minecraft.item.BlockItem;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.screen.slot.Slot;
import org.lwjgl.glfw.GLFW;
@@ -37,7 +35,9 @@ public class ShulkerPeek extends Module {
public static final HashMap<Item, Color> SHULKER_COLORS = new HashMap<>();
public ShulkerPeek() {
super("prev. de shulkers", "te permite previsualizar el contenido de shulkers desde el inventario");
super("prev. de shulkers",
"te permite previsualizar el contenido de shulkers desde el inventario",
Category.MISC);
// colores y tal (https://github.com/kgriff0n/shulker-preview)
SHULKER_COLORS.put(Items.SHULKER_BOX, Colors.LAVENDER);
@@ -1,5 +1,6 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.network;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.StringSetting;
import me.retucio.camtweaks.util.ChatUtil;
@@ -9,7 +10,9 @@ public class BungeecordSpoofer extends Module {
public StringSetting address = addSetting(new StringSetting("dirección", "la dirección IP que será enviada al server", "127.0.0.1", 15));
public BungeecordSpoofer() {
super("spoofer de bungeecord", "te permite conectarte a los servidores backend de un server bungeecord mal configurado");
super("spoofer de bungeecord",
"te permite conectarte a los servidores backend de un server bungeecord mal configurado",
Category.NETWORK);
address.onUpdate(text -> {
if (!text.matches("^[0-9a-f\\\\.:]{0,45}$")) {
@@ -1,14 +1,14 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.network;
import me.retucio.camtweaks.event.SubscribeEvent;
import me.retucio.camtweaks.event.events.AddEntityEvent;
import me.retucio.camtweaks.event.events.RenderWorldEvent;
import me.retucio.camtweaks.event.events.TickEvent;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.ModuleManager;
import me.retucio.camtweaks.module.modules.misc.FakePlayer;
import me.retucio.camtweaks.module.settings.BooleanSetting;
import me.retucio.camtweaks.module.settings.ColorSetting;
import me.retucio.camtweaks.module.settings.EnumSetting;
import me.retucio.camtweaks.module.settings.NumberSetting;
import me.retucio.camtweaks.util.MiscUtil;
import me.retucio.camtweaks.util.render.RenderUtil;
@@ -21,10 +21,6 @@ import net.minecraft.util.math.Box;
import net.minecraft.world.dimension.DimensionType;
import java.awt.*;
import java.time.Instant;
import java.time.LocalTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
@@ -52,7 +48,9 @@ public class LogoutSpots extends Module {
private DimensionType lastDimension;
public LogoutSpots() {
super("puntos de desconexión", "te muestra los puntos donde otros jugadores se desconectan");
super("puntos de desconexión",
"te muestra los puntos donde otros jugadores se desconectan",
Category.NETWORK);
outlines.onUpdate(v -> {
outlineColor.setVisible(v);
@@ -1,9 +1,9 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.network;
import me.retucio.camtweaks.event.JoinWorldEvent;
import me.retucio.camtweaks.event.SubscribeEvent;
import me.retucio.camtweaks.event.events.DisconnectEvent;
import me.retucio.camtweaks.event.events.PacketEvent;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.EnumSetting;
import me.retucio.camtweaks.module.settings.NumberSetting;
@@ -12,9 +12,7 @@ import me.retucio.camtweaks.util.NetworkUtil;
import net.minecraft.network.ClientConnection;
import net.minecraft.network.listener.PacketListener;
import net.minecraft.network.message.SentMessage;
import net.minecraft.network.packet.Packet;
import net.minecraft.network.packet.c2s.common.CustomPayloadC2SPacket;
import net.minecraft.network.packet.c2s.common.KeepAliveC2SPacket;
import net.minecraft.network.packet.s2c.common.KeepAliveS2CPacket;
@@ -34,7 +32,9 @@ public class PacketDelay extends Module {
private long lastProcessTime = 0;
public PacketDelay() {
super("delay de paquetes", "aplica un delay a los paquetes");
super("delay de paquetes",
"aplica un delay a los paquetes",
Category.NETWORK);
}
@Override
@@ -1,5 +1,6 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.network;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import net.minecraft.client.network.ServerInfo;
import net.minecraft.text.Text;
@@ -20,7 +21,9 @@ public class RPackBypass extends Module {
public Text BYPASS_TEXT = Text.literal("nuh uh");
public RPackBypass() {
super("bypassear packs", "te permite omitir packs de recursos forzados por servers");
super("bypassear packs",
"te permite omitir packs de recursos forzados por servers",
Category.NETWORK);
}
public ServerInfo.ResourcePackPolicy getPolicy() {
@@ -1,7 +1,8 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.network;
import me.retucio.camtweaks.event.SubscribeEvent;
import me.retucio.camtweaks.event.events.DisconnectEvent;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import net.minecraft.client.gui.screen.multiplayer.ConnectScreen;
import net.minecraft.client.network.ServerAddress;
@@ -12,7 +13,9 @@ public class Reconnect extends Module {
private ServerInfo lastServer = null;
public Reconnect() {
super("reconectar", "añade un botón para reconectarse a un servidor tras ser desconectado");
super("reconectar",
"añade un botón para reconectarse a un servidor tras ser desconectado",
Category.NETWORK);
}
@SubscribeEvent
@@ -1,7 +1,8 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.player;
import me.retucio.camtweaks.event.SubscribeEvent;
import me.retucio.camtweaks.event.events.AttackEntityEvent;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.BooleanSetting;
import me.retucio.camtweaks.module.settings.NumberSetting;
@@ -16,7 +17,9 @@ public class AttributeSwapper extends Module {
private int prevSlot = -1;
public AttributeSwapper() {
super("attribute-swapper", "utiliza el \"attribute swapping\" entre dos herramientas para negar daño de durabilidad o aplicar encantamientos adicionales a estas");
super("attribute-swapper",
"utiliza el \"attribute swapping\" entre dos herramientas para negar daño de durabilidad o aplicar encantamientos adicionales a estas",
Category.PLAYER);
}
@Override
@@ -1,5 +1,6 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.player;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.BooleanSetting;
import me.retucio.camtweaks.module.settings.NumberSetting;
@@ -15,7 +16,9 @@ public class FastUse extends Module {
public NumberSetting blockCooldown = addSetting(new NumberSetting("cooldown de bloques", "cooldown para colocar bloques en ticks", 0, 0, 4, 1));
public FastUse() {
super("precoz", "hace cosas como usar items o colocar bloques más rápido");
super("precoz",
"hace cosas como usar items o colocar bloques más rápido",
Category.PLAYER);
items.onUpdate(v -> itemCooldown.setVisible(v));
blocks.onUpdate(v -> blockCooldown.setVisible(v));
@@ -1,8 +1,9 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.player;
import me.retucio.camtweaks.event.SubscribeEvent;
import me.retucio.camtweaks.event.events.RenderHeldItemEvent;
import me.retucio.camtweaks.event.events.RenderArmEvent;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.BooleanSetting;
import me.retucio.camtweaks.module.settings.NumberSetting;
@@ -89,7 +90,9 @@ public class HandView extends Module {
0, -180, 180, 1));
public HandView() {
super("manos", "modifica la manera en la que se renderizan las manos");
super("manos",
"modifica la manera en la que se renderizan las manos",
Category.PLAYER);
}
@SubscribeEvent
@@ -0,0 +1,19 @@
package me.retucio.camtweaks.module.modules.player;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
public class Headhitters extends Module {
public Headhitters() {
super("headhitters",
"mantén pulsado el espacio para hacer headhitting sin tener que espamearlo",
Category.PLAYER);
}
@Override
public void onTick() {
if (mc.player == null) return;
mc.player.jumpingCooldown = 0;
}
}
@@ -1,10 +1,11 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.player;
import me.retucio.camtweaks.event.Event;
import me.retucio.camtweaks.event.SubscribeEvent;
import me.retucio.camtweaks.event.events.KeyEvent;
import me.retucio.camtweaks.event.events.MouseClickEvent;
import me.retucio.camtweaks.mixin.accessor.HandledScreenAccessor;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.KeySetting;
import me.retucio.camtweaks.util.InventoryUtil;
@@ -20,7 +21,9 @@ public class InventoryPlus extends Module {
public KeySetting row3key = addSetting(new KeySetting("fila 3", "tecla para mover items a la tercera fila", GLFW.GLFW_KEY_D));
public InventoryPlus() {
super("inventario plus", "mueve ítems del inventario usando solo el teclado");
super("inventario plus",
"mueve ítems del inventario usando solo el teclado",
Category.PLAYER);
}
@SubscribeEvent
@@ -1,5 +1,6 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.player;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.BooleanSetting;
import me.retucio.camtweaks.module.settings.NumberSetting;
@@ -25,7 +26,9 @@ public class Offhand extends Module {
private boolean holdingItem;
public Offhand() {
super("mano secundaria", "automáticamente equipa un ítem en la mano secundaria");
super("mano secundaria",
"automáticamente equipa un ítem en la mano secundaria",
Category.PLAYER);
}
@Override
@@ -0,0 +1,17 @@
package me.retucio.camtweaks.module.modules.player;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
/** continúa en:
* @see me.retucio.camtweaks.mixin.ClientPlayerEntityMixin
*/
public class PortalGUI extends Module {
public PortalGUI() {
super("interfaz en portales",
"te permite abrir interfaces dentro de portales, como el chat o el inventario",
Category.PLAYER);
}
}
@@ -0,0 +1,55 @@
package me.retucio.camtweaks.module.modules.player;
import me.retucio.camtweaks.event.SubscribeEvent;
import me.retucio.camtweaks.event.events.ClipAtLedgeEvent;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.NumberSetting;
import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.hit.HitResult;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.Heightmap;
import net.minecraft.world.RaycastContext;
public class SafeWalk extends Module {
public NumberSetting fallDistance = addSetting(new NumberSetting("distancia de caída", "distancia de caída máxima permitida", 1, 0, 10, 0.1));
public SafeWalk() {
super("muletas",
"te ayuda a no caerte de bloques, sin agacharte",
Category.PLAYER);
}
@SubscribeEvent
public void onClipAtLedge(ClipAtLedgeEvent event) {
if (mc.player == null || mc.world == null) return;
if (fallDistance.getValue() > 1) {
int surface = mc.world.getWorldChunk(
mc.player.getBlockPos())
.getHeightmap(Heightmap.Type.MOTION_BLOCKING)
.get(mc.player.getBlockX() & 15, mc.player.getBlockZ() & 15);
if (mc.player.getBlockY() >= surface)
if (mc.player.getBlockY() - surface < fallDistance.getValue()) return;
else {
BlockHitResult raycastResult = mc.world.raycast(new RaycastContext(
mc.player.getEntityPos(),
new Vec3d(mc.player.getX(),
mc.world.getBottomY(),
mc.player.getZ()),
RaycastContext.ShapeType.COLLIDER,
RaycastContext.FluidHandling.WATER,
mc.player));
if (raycastResult.getType() != HitResult.Type.MISS)
if ((int) (mc.player.getY() - raycastResult.getBlockPos().up().getY()) < fallDistance.getValue()) return;
}
}
if (!mc.player.isSneaking())
event.setClipping(true);
}
}
@@ -1,6 +1,7 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.player;
import me.retucio.camtweaks.mixin.accessor.KeyBindingAccessor;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.ListSetting;
import me.retucio.camtweaks.ui.screen.ClickGUI;
@@ -29,7 +30,10 @@ public class UIMove extends Module {
"camtweaks_clickgui", GenericContainerScreenHandler::createGeneric9x3); // 9x3 porque no importa (creo)
public UIMove() {
super("moverse en interfaz", "te permite seguir usando las teclas de movimiento aún estando en ciertas interfaces");
super("moverse en interfaz",
"te permite seguir usando las teclas de movimiento aún estando en ciertas interfaces",
Category.PLAYER);
screens.addOption(inventoryHandlerType, true, "inventario");
screens.addOption(clickGuiHandlerType, true, "interfaz del mod");
@@ -1,5 +1,6 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.player;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.BooleanSetting;
import me.retucio.camtweaks.module.settings.NumberSetting;
@@ -32,9 +33,12 @@ public class WarnLowDurability extends Module {
public NumberSetting pitch = addSetting(new NumberSetting("frecuencia", "altura del sonido", 70, 0, 125, 1));
private final List<ItemStack> warned = new ArrayList<>();
private float prevPercentage = -1;
public WarnLowDurability() {
super("aviso de baja dur.", "te avisa cuando la herramienta que sostengas sobrepase un límite de durabilidad");
super("aviso de baja dur.",
"te avisa cuando la herramienta que sostengas sobrepase un límite de durabilidad",
Category.PLAYER);
playSound.onUpdate(v -> {
sound.setVisible(v);
@@ -51,7 +55,7 @@ public class WarnLowDurability extends Module {
float percentage = (1 - (float) stack.getDamage() / stack.getMaxDamage()) * 100;
if (percentage <= limitPercentage.getValue()) {
if (percentage <= limitPercentage.getValue() && percentage < prevPercentage) {
if (playSound.isEnabled())
mc.world.playSound(mc.player, mc.player.getBlockPos(),
sound.getValue(),
@@ -71,6 +75,8 @@ public class WarnLowDurability extends Module {
warned.add(stack);
}
prevPercentage = percentage;
}
@Override
@@ -1,7 +1,8 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.render;
import me.retucio.camtweaks.event.SubscribeEvent;
import me.retucio.camtweaks.event.events.RenderWorldEvent;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.BooleanSetting;
import me.retucio.camtweaks.module.settings.ColorSetting;
@@ -36,7 +37,9 @@ public class BlockESP extends Module {
public BlockESP() {
super("resaltado de bloques", "te muestra la posición de cierto tipo de bloque renderizando una caja con su forma");
super("resaltado de bloques",
"te muestra la posición de cierto tipo de bloque renderizando una caja con su forma",
Category.RENDER);
outlines.onUpdate(v -> {
outlineColor.setVisible(v);
@@ -1,9 +1,8 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.render;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.BooleanSetting;
import me.retucio.camtweaks.module.settings.ColorSetting;
import me.retucio.camtweaks.module.settings.NumberSetting;
import java.awt.*;
@@ -17,6 +16,8 @@ public class BlockOutline extends Module {
new Color(0, 0, 0, 102), true));
public BlockOutline() {
super("contorno", "customiza el contorno de los bloques");
super("contorno",
"customiza el contorno de los bloques",
Category.RENDER);
}
}
@@ -1,7 +1,8 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.render;
import me.retucio.camtweaks.event.SubscribeEvent;
import me.retucio.camtweaks.event.events.RenderWorldEvent;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.BooleanSetting;
import me.retucio.camtweaks.module.settings.ColorSetting;
@@ -30,7 +31,9 @@ public class BreakingProgress extends Module {
new Color(0, 255, 0, 60), false));
public BreakingProgress() {
super("progreso de minado", "te muestra el progreso de minado de un bloque de manera más visible");
super("progreso de minado",
"te muestra el progreso de minado de un bloque de manera más visible",
Category.RENDER);
}
@SubscribeEvent
@@ -1,5 +1,6 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.render;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.BooleanSetting;
import me.retucio.camtweaks.module.settings.ColorSetting;
@@ -24,6 +25,8 @@ public class CritsPlus extends Module {
public BooleanSetting collide = addSetting(new BooleanSetting("colisionar", "colisionar con bloques", false));
public CritsPlus() {
super("críticos", "cambia la apariencia de los críticos al gusto");
super("críticos",
"cambia la apariencia de los críticos al gusto",
Category.RENDER);
}
}
@@ -1,10 +1,8 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.render;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.textures.GpuTextureView;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.ColorSetting;
import me.retucio.camtweaks.module.settings.NumberSetting;
import net.minecraft.client.texture.NativeImage;
import net.minecraft.client.texture.NativeImageBackedTexture;
@@ -21,7 +19,10 @@ public class DamageOverlay extends Module {
private NativeImageBackedTexture texture = null;
public DamageOverlay() {
super("superposición de daño", "modifica el color en el que se renderiza la superposición de recibir daño");
super("superposición de daño",
"modifica el color en el que se renderiza la superposición de recibir daño",
Category.RENDER);
colorSetting.onUpdate(v -> reloadOverlayIfReady());
}
@@ -69,12 +70,12 @@ public class DamageOverlay extends Module {
// resubir las texturas
private void uploadTexture() {
GpuTextureView overlayTex = RenderSystem.getShaderTexture(33985);
RenderSystem.setShaderTexture(33985, overlayTex);
texture.upload();
GpuTextureView mainTex = RenderSystem.getShaderTexture(33984);
RenderSystem.setShaderTexture(33984, mainTex);
// GpuTextureView overlayTex = RenderSystem.getDevice().getShaderTexture(33985);
// RenderSystem.setShaderTexture(33985, overlayTex);
//
// texture.upload();
//
// GpuTextureView mainTex = RenderSystem.getShaderTexture(33984);
// RenderSystem.setShaderTexture(33984, mainTex);
}
}
@@ -1,14 +1,14 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.render;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.BooleanSetting;
import me.retucio.camtweaks.module.settings.EnumSetting;
import me.retucio.camtweaks.util.render.GlintRenderLayer;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.client.render.RenderLayers;
import net.minecraft.util.DyeColor;
import java.awt.*;
/** continúa en:
* @see me.retucio.camtweaks.mixin.BufferStorageMixin
* @see me.retucio.camtweaks.mixin.EquipmentRendererMixin
@@ -22,24 +22,26 @@ public class GlintPlus extends Module {
public EnumSetting<GlintColors> glintColor = addSetting(new EnumSetting<>("colores", "color del glint", GlintColors.class, GlintColors.PURPLE));
public GlintPlus() {
super("destello de enchants.", "modifica el color del brillo de los encantamientos");
super("destello de enchants.",
"modifica el color del brillo de los encantamientos",
Category.RENDER);
}
public RenderLayer getGlint() {
int color = getColor();
if (!isEnabled() || !items.isEnabled()) return RenderLayer.getGlint();
if (!isEnabled() || !items.isEnabled()) return RenderLayers.glint();
return GlintRenderLayer.glintColor.get(color);
}
public RenderLayer getEntityGlint() {
int color = getColor();
if (!isEnabled() || !items.isEnabled()) return RenderLayer.getEntityGlint();
if (!isEnabled() || !items.isEnabled()) return RenderLayers.entityGlint();
return GlintRenderLayer.entityGlintColor.get(color);
}
public RenderLayer getArmorEntityGlint() {
int color = getColor();
if (!isEnabled() || !armor.isEnabled()) return RenderLayer.getArmorEntityGlint();
if (!isEnabled() || !armor.isEnabled()) return RenderLayers.armorEntityGlint();
return GlintRenderLayer.armorEntityGlintColor.get(color);
}
@@ -1,14 +1,14 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.render;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.BooleanSetting;
import me.retucio.camtweaks.module.settings.EnumSetting;
import me.retucio.camtweaks.module.settings.ListSetting;
import me.retucio.camtweaks.util.Lists;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.LazyEntityReference;
import net.minecraft.entity.LivingEntity;
@@ -19,13 +19,10 @@ import net.minecraft.item.Item;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.entity.EntityQueriable;
import net.minecraft.world.entity.UniquelyIdentifiable;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URI;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
@@ -62,7 +59,9 @@ public class Nametags extends Module {
private static final ExecutorService executor = Executors.newCachedThreadPool();
public Nametags() {
super("nametags", "modifica la manera en la que se renderizan los nametags");
super("nametags",
"modifica la manera en la que se renderizan los nametags",
Category.RENDER);
// entidades activadas por defecto
defaultEntities.replace(EntityType.PLAYER, true);
@@ -1,10 +1,10 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.render;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.module.settings.BooleanSetting;
import me.retucio.camtweaks.module.settings.EnumSetting;
import me.retucio.camtweaks.module.settings.ListSetting;
import me.retucio.camtweaks.module.settings.NumberSetting;
import me.retucio.camtweaks.util.Lists;
import net.minecraft.particle.ParticleType;
import net.minecraft.util.Formatting;
@@ -55,7 +55,9 @@ public class NoRender extends Module {
public BooleanSetting scrambledText = addSetting(new BooleanSetting("garabato", "engarabatar texto (o como se diga) (§kasí§r)", false));
public NoRender() {
super("no render", "customiza qué se renderiza y qué no");
super("no render",
"customiza qué se renderiza y qué no",
Category.RENDER);
}
public enum Colors {
@@ -1,9 +1,10 @@
package me.retucio.camtweaks.module.modules;
package me.retucio.camtweaks.module.modules.world;
import me.retucio.camtweaks.event.SubscribeEvent;
import me.retucio.camtweaks.event.events.OpenScreenEvent;
import me.retucio.camtweaks.event.events.PacketEvent;
import me.retucio.camtweaks.mixin.accessor.AbstractSignEditScreenAccessor;
import me.retucio.camtweaks.module.Category;
import me.retucio.camtweaks.module.Module;
import me.retucio.camtweaks.util.ChatUtil;
import net.minecraft.block.entity.SignBlockEntity;
@@ -16,7 +17,9 @@ public class AutoSign extends Module {
public String[] text = null;
public AutoSign() {
super("autocartel", "te permite colocar carteles con el mismo texto sin tener que escribirlo uno por uno");
super("autocartel",
"te permite colocar carteles con el mismo texto sin tener que escribirlo uno por uno",
Category.WORLD);
}
@Override
Loaded 100 of 127 files, more files were not shown because too many files have changed in this diff. Show more