mirror of
https://github.com/Miasmusa/Shadow.git
synced 2024-11-14 19:04:54 -05:00
Merge branch 'master' of https://github.com/Moles-LLC/Shadow
This commit is contained in:
commit
ddcdc5813b
88 changed files with 437 additions and 253 deletions
|
@ -27,7 +27,8 @@ import org.apache.logging.log4j.Level;
|
|||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Font;
|
||||
import java.awt.FontFormatException;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
|
|
|
@ -18,7 +18,11 @@ import org.apache.logging.log4j.Level;
|
|||
|
||||
import java.io.File;
|
||||
import java.io.InputStream;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.jar.JarEntry;
|
||||
import java.util.jar.JarFile;
|
||||
|
|
|
@ -6,7 +6,57 @@ package net.shadow.client.feature.command;
|
|||
|
||||
import net.shadow.client.feature.addon.Addon;
|
||||
import net.shadow.client.feature.command.exception.CommandException;
|
||||
import net.shadow.client.feature.command.impl.*;
|
||||
import net.shadow.client.feature.command.impl.ApplyVel;
|
||||
import net.shadow.client.feature.command.impl.AsConsole;
|
||||
import net.shadow.client.feature.command.impl.Author;
|
||||
import net.shadow.client.feature.command.impl.Ban;
|
||||
import net.shadow.client.feature.command.impl.Bind;
|
||||
import net.shadow.client.feature.command.impl.Boot;
|
||||
import net.shadow.client.feature.command.impl.CheckCmd;
|
||||
import net.shadow.client.feature.command.impl.ClearInventory;
|
||||
import net.shadow.client.feature.command.impl.Config;
|
||||
import net.shadow.client.feature.command.impl.ConfigUtils;
|
||||
import net.shadow.client.feature.command.impl.Crash;
|
||||
import net.shadow.client.feature.command.impl.Damage;
|
||||
import net.shadow.client.feature.command.impl.Drop;
|
||||
import net.shadow.client.feature.command.impl.EVclip;
|
||||
import net.shadow.client.feature.command.impl.Effect;
|
||||
import net.shadow.client.feature.command.impl.Equip;
|
||||
import net.shadow.client.feature.command.impl.FakeItem;
|
||||
import net.shadow.client.feature.command.impl.Find;
|
||||
import net.shadow.client.feature.command.impl.FloodLuckperms;
|
||||
import net.shadow.client.feature.command.impl.ForEach;
|
||||
import net.shadow.client.feature.command.impl.ForceOP;
|
||||
import net.shadow.client.feature.command.impl.Gamemode;
|
||||
import net.shadow.client.feature.command.impl.HClip;
|
||||
import net.shadow.client.feature.command.impl.Help;
|
||||
import net.shadow.client.feature.command.impl.Hologram;
|
||||
import net.shadow.client.feature.command.impl.Image;
|
||||
import net.shadow.client.feature.command.impl.Inject;
|
||||
import net.shadow.client.feature.command.impl.Invsee;
|
||||
import net.shadow.client.feature.command.impl.ItemData;
|
||||
import net.shadow.client.feature.command.impl.ItemExploit;
|
||||
import net.shadow.client.feature.command.impl.ItemSpoof;
|
||||
import net.shadow.client.feature.command.impl.KickSelf;
|
||||
import net.shadow.client.feature.command.impl.Kickall;
|
||||
import net.shadow.client.feature.command.impl.Kill;
|
||||
import net.shadow.client.feature.command.impl.LinkWolf;
|
||||
import net.shadow.client.feature.command.impl.LogFlood;
|
||||
import net.shadow.client.feature.command.impl.MessageSpam;
|
||||
import net.shadow.client.feature.command.impl.Panic;
|
||||
import net.shadow.client.feature.command.impl.PermissionLevel;
|
||||
import net.shadow.client.feature.command.impl.Poof;
|
||||
import net.shadow.client.feature.command.impl.RageQuit;
|
||||
import net.shadow.client.feature.command.impl.Rename;
|
||||
import net.shadow.client.feature.command.impl.Say;
|
||||
import net.shadow.client.feature.command.impl.SpawnData;
|
||||
import net.shadow.client.feature.command.impl.StopServer;
|
||||
import net.shadow.client.feature.command.impl.Taco;
|
||||
import net.shadow.client.feature.command.impl.Test;
|
||||
import net.shadow.client.feature.command.impl.TitleLag;
|
||||
import net.shadow.client.feature.command.impl.Toggle;
|
||||
import net.shadow.client.feature.command.impl.VClip;
|
||||
import net.shadow.client.feature.command.impl.ViewNbt;
|
||||
import net.shadow.client.helper.util.Utils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -23,6 +73,12 @@ public class CommandRegistry {
|
|||
init();
|
||||
}
|
||||
|
||||
static {
|
||||
// TODO: 18.12.21 add commands
|
||||
init();
|
||||
rebuildSharedCommands();
|
||||
}
|
||||
|
||||
public static void registerCustomCommand(Addon addon, Command command) {
|
||||
for (CustomCommandEntry e : customCommands) {
|
||||
if (e.command.getClass() == command.getClass()) {
|
||||
|
@ -101,12 +157,6 @@ public class CommandRegistry {
|
|||
vanillaCommands.add(new ClearInventory());
|
||||
}
|
||||
|
||||
static {
|
||||
// TODO: 18.12.21 add commands
|
||||
init();
|
||||
rebuildSharedCommands();
|
||||
}
|
||||
|
||||
public static List<Command> getCommands() {
|
||||
return sharedCommands;
|
||||
}
|
||||
|
|
|
@ -9,7 +9,11 @@ import com.google.gson.JsonArray;
|
|||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import net.minecraft.text.*;
|
||||
import net.minecraft.text.ClickEvent;
|
||||
import net.minecraft.text.HoverEvent;
|
||||
import net.minecraft.text.LiteralText;
|
||||
import net.minecraft.text.Style;
|
||||
import net.minecraft.text.Text;
|
||||
import net.shadow.client.ShadowMain;
|
||||
import net.shadow.client.feature.command.Command;
|
||||
import net.shadow.client.feature.command.exception.CommandException;
|
||||
|
|
|
@ -7,7 +7,7 @@ package net.shadow.client.feature.command.impl;
|
|||
import net.shadow.client.feature.command.Command;
|
||||
import net.shadow.client.feature.command.CommandRegistry;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
|
||||
public class Help extends Command {
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ import net.shadow.client.helper.event.events.PacketEvent;
|
|||
import net.shadow.client.helper.util.Utils;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import java.awt.*;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.InputStream;
|
||||
import java.net.HttpURLConnection;
|
||||
|
|
|
@ -10,7 +10,11 @@ import net.minecraft.network.NetworkState;
|
|||
import net.minecraft.network.listener.ClientLoginPacketListener;
|
||||
import net.minecraft.network.packet.c2s.handshake.HandshakeC2SPacket;
|
||||
import net.minecraft.network.packet.c2s.login.LoginHelloC2SPacket;
|
||||
import net.minecraft.network.packet.s2c.login.*;
|
||||
import net.minecraft.network.packet.s2c.login.LoginCompressionS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.login.LoginDisconnectS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.login.LoginHelloS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.login.LoginQueryRequestS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.login.LoginSuccessS2CPacket;
|
||||
import net.minecraft.text.Text;
|
||||
import net.shadow.client.ShadowMain;
|
||||
import net.shadow.client.feature.command.Command;
|
||||
|
|
|
@ -5,7 +5,16 @@
|
|||
package net.shadow.client.feature.command.impl;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.*;
|
||||
import net.minecraft.nbt.NbtByte;
|
||||
import net.minecraft.nbt.NbtByteArray;
|
||||
import net.minecraft.nbt.NbtCompound;
|
||||
import net.minecraft.nbt.NbtElement;
|
||||
import net.minecraft.nbt.NbtHelper;
|
||||
import net.minecraft.nbt.NbtInt;
|
||||
import net.minecraft.nbt.NbtIntArray;
|
||||
import net.minecraft.nbt.NbtList;
|
||||
import net.minecraft.nbt.NbtLong;
|
||||
import net.minecraft.nbt.NbtLongArray;
|
||||
import net.minecraft.text.Text;
|
||||
import net.shadow.client.ShadowMain;
|
||||
import net.shadow.client.feature.command.Command;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
package net.shadow.client.feature.config;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class ColorSetting extends SettingBase<Color> {
|
||||
|
|
|
@ -25,9 +25,13 @@ import net.shadow.client.helper.render.Renderer;
|
|||
import net.shadow.client.helper.util.Transitions;
|
||||
import org.lwjgl.glfw.GLFW;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
import java.util.Objects;
|
||||
|
||||
public class ClickGUI extends Screen implements FastTickable {
|
||||
// public static final Theme theme = new SipoverV1();
|
||||
|
|
|
@ -5,7 +5,12 @@
|
|||
package net.shadow.client.feature.gui.clickgui;
|
||||
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import net.minecraft.client.render.*;
|
||||
import net.minecraft.client.render.BufferBuilder;
|
||||
import net.minecraft.client.render.BufferRenderer;
|
||||
import net.minecraft.client.render.GameRenderer;
|
||||
import net.minecraft.client.render.Tessellator;
|
||||
import net.minecraft.client.render.VertexFormat;
|
||||
import net.minecraft.client.render.VertexFormats;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.util.math.Matrix4f;
|
||||
|
@ -17,7 +22,7 @@ import net.shadow.client.helper.render.Renderer;
|
|||
import net.shadow.client.helper.util.Transitions;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ import net.shadow.client.helper.render.Rectangle;
|
|||
import net.shadow.client.helper.render.Renderer;
|
||||
import net.shadow.client.helper.render.Scroller;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
|
|
@ -5,10 +5,22 @@
|
|||
package net.shadow.client.feature.gui.clickgui.element.impl;
|
||||
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.shadow.client.feature.config.*;
|
||||
import net.shadow.client.feature.config.BooleanSetting;
|
||||
import net.shadow.client.feature.config.ColorSetting;
|
||||
import net.shadow.client.feature.config.DoubleSetting;
|
||||
import net.shadow.client.feature.config.EnumSetting;
|
||||
import net.shadow.client.feature.config.ModuleConfig;
|
||||
import net.shadow.client.feature.config.SettingBase;
|
||||
import net.shadow.client.feature.config.StringSetting;
|
||||
import net.shadow.client.feature.gui.clickgui.ClickGUI;
|
||||
import net.shadow.client.feature.gui.clickgui.element.Element;
|
||||
import net.shadow.client.feature.gui.clickgui.element.impl.config.*;
|
||||
import net.shadow.client.feature.gui.clickgui.element.impl.config.BooleanSettingEditor;
|
||||
import net.shadow.client.feature.gui.clickgui.element.impl.config.ColorSettingEditor;
|
||||
import net.shadow.client.feature.gui.clickgui.element.impl.config.ConfigBase;
|
||||
import net.shadow.client.feature.gui.clickgui.element.impl.config.DoubleSettingEditor;
|
||||
import net.shadow.client.feature.gui.clickgui.element.impl.config.EnumSettingEditor;
|
||||
import net.shadow.client.feature.gui.clickgui.element.impl.config.KeybindEditor;
|
||||
import net.shadow.client.feature.gui.clickgui.element.impl.config.StringSettingEditor;
|
||||
import net.shadow.client.feature.gui.clickgui.theme.Theme;
|
||||
import net.shadow.client.feature.gui.clickgui.theme.ThemeManager;
|
||||
import net.shadow.client.helper.render.Renderer;
|
||||
|
|
|
@ -14,7 +14,7 @@ import net.shadow.client.helper.render.ClipStack;
|
|||
import net.shadow.client.helper.render.Rectangle;
|
||||
import net.shadow.client.helper.render.Renderer;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
|
||||
import static java.lang.Math.pow;
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ import net.shadow.client.feature.gui.clickgui.theme.ThemeManager;
|
|||
import net.shadow.client.helper.font.FontRenderers;
|
||||
import net.shadow.client.helper.render.Renderer;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ import net.shadow.client.helper.font.FontRenderers;
|
|||
import net.shadow.client.helper.render.Renderer;
|
||||
import org.lwjgl.glfw.GLFW;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
public class KeybindEditor extends ConfigBase<DoubleSetting> {
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
package net.shadow.client.feature.gui.clickgui.theme;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
|
||||
public interface Theme {
|
||||
String getName();
|
||||
|
|
|
@ -6,7 +6,7 @@ package net.shadow.client.feature.gui.clickgui.theme.impl;
|
|||
|
||||
import net.shadow.client.feature.gui.clickgui.theme.Theme;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
|
||||
public class Coffee implements Theme {
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ package net.shadow.client.feature.gui.clickgui.theme.impl;
|
|||
import net.shadow.client.feature.gui.clickgui.theme.Theme;
|
||||
import net.shadow.client.feature.module.ModuleRegistry;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
|
||||
public class Custom implements Theme {
|
||||
final net.shadow.client.feature.module.impl.render.Theme theme = ModuleRegistry.getByClass(net.shadow.client.feature.module.impl.render.Theme.class);
|
||||
|
|
|
@ -6,7 +6,7 @@ package net.shadow.client.feature.gui.clickgui.theme.impl;
|
|||
|
||||
import net.shadow.client.feature.gui.clickgui.theme.Theme;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
|
||||
public class Shadow implements Theme {
|
||||
static final Color accent = new Color(214, 255, 255);
|
||||
|
|
|
@ -10,7 +10,11 @@ import com.google.gson.JsonObject;
|
|||
import com.google.gson.JsonParser;
|
||||
import net.minecraft.client.gui.screen.ChatScreen;
|
||||
import net.shadow.client.ShadowMain;
|
||||
import net.shadow.client.feature.gui.hud.element.*;
|
||||
import net.shadow.client.feature.gui.hud.element.HudElement;
|
||||
import net.shadow.client.feature.gui.hud.element.SpeedHud;
|
||||
import net.shadow.client.feature.gui.hud.element.TabGui;
|
||||
import net.shadow.client.feature.gui.hud.element.Taco;
|
||||
import net.shadow.client.feature.gui.hud.element.TargetHUD;
|
||||
import net.shadow.client.helper.event.EventType;
|
||||
import net.shadow.client.helper.event.Events;
|
||||
import net.shadow.client.helper.event.events.MouseEvent;
|
||||
|
|
|
@ -8,7 +8,7 @@ import net.shadow.client.helper.GameTexture;
|
|||
import net.shadow.client.helper.Texture;
|
||||
import net.shadow.client.helper.font.FontRenderers;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ import net.shadow.client.helper.render.Rectangle;
|
|||
import net.shadow.client.helper.render.Renderer;
|
||||
import net.shadow.client.helper.util.Transitions;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
|
|
|
@ -9,7 +9,7 @@ import net.shadow.client.feature.gui.clickgui.element.Element;
|
|||
import net.shadow.client.helper.font.FontRenderers;
|
||||
import net.shadow.client.helper.render.Renderer;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
|
||||
public class PanelButton extends Element {
|
||||
static final double h = FontRenderers.getRenderer().getFontHeight() + 2;
|
||||
|
|
|
@ -11,7 +11,7 @@ import net.shadow.client.helper.render.Rectangle;
|
|||
import net.shadow.client.helper.render.Renderer;
|
||||
import net.shadow.client.helper.util.Transitions;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class PanelFrame extends Element implements FastTickable {
|
||||
|
|
|
@ -23,7 +23,7 @@ import net.shadow.client.helper.render.Renderer;
|
|||
import net.shadow.client.helper.render.Scroller;
|
||||
import org.lwjgl.opengl.GL40C;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ import org.lwjgl.BufferUtils;
|
|||
import org.lwjgl.opengl.GL40C;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
|
@ -51,8 +51,14 @@ import java.net.http.HttpRequest;
|
|||
import java.net.http.HttpResponse;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ import net.shadow.client.helper.render.Renderer;
|
|||
import net.shadow.client.helper.util.Transitions;
|
||||
import org.lwjgl.glfw.GLFW;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
|
|
@ -31,7 +31,7 @@ import org.lwjgl.BufferUtils;
|
|||
import org.lwjgl.opengl.GL40C;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
|
@ -42,8 +42,12 @@ import java.net.http.HttpResponse;
|
|||
import java.nio.ByteBuffer;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.time.Duration;
|
||||
import java.util.AbstractMap;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
|
||||
public class HomeScreen extends ClientScreen implements FastTickable {
|
||||
static final double padding = 5;
|
||||
|
|
|
@ -20,7 +20,7 @@ import net.shadow.client.helper.util.Utils;
|
|||
import org.apache.logging.log4j.Level;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.ByteArrayInputStream;
|
||||
|
|
|
@ -24,7 +24,7 @@ import net.shadow.client.helper.util.Transitions;
|
|||
import org.apache.commons.compress.utils.Lists;
|
||||
import org.lwjgl.glfw.GLFW;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
|
|
|
@ -14,7 +14,7 @@ import net.shadow.client.feature.gui.widget.RoundButton;
|
|||
import net.shadow.client.helper.font.FontRenderers;
|
||||
import net.shadow.client.helper.render.Renderer;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
|
||||
public class NotificationScreen extends ClientScreen implements FastTickable {
|
||||
final String t;
|
||||
|
|
|
@ -14,7 +14,7 @@ import net.shadow.client.helper.font.adapter.FontAdapter;
|
|||
import net.shadow.client.helper.render.MSAAFramebuffer;
|
||||
import net.shadow.client.helper.render.Renderer;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
|
||||
public class ProxyManagerScreen extends ClientScreen {
|
||||
static final double widgetWidth = 300;
|
||||
|
|
|
@ -30,7 +30,7 @@ import net.shadow.client.helper.util.Transitions;
|
|||
import org.apache.commons.lang3.SystemUtils;
|
||||
import org.lwjgl.glfw.GLFW;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
|
|
@ -15,7 +15,7 @@ import net.shadow.client.feature.gui.FastTickable;
|
|||
import net.shadow.client.helper.font.FontRenderers;
|
||||
import net.shadow.client.helper.render.Renderer;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
|
||||
public class RoundButton implements Element, Drawable, Selectable, FastTickable, DoesMSAA {
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ import net.shadow.client.helper.render.Renderer;
|
|||
import org.apache.commons.lang3.SystemUtils;
|
||||
import org.lwjgl.glfw.GLFW;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
|
||||
public class RoundTextFieldWidget implements Element, Drawable, Selectable, DoesMSAA {
|
||||
protected final String suggestion;
|
||||
|
|
|
@ -4,7 +4,11 @@
|
|||
|
||||
package net.shadow.client.feature.items;
|
||||
|
||||
import net.shadow.client.feature.items.impl.*;
|
||||
import net.shadow.client.feature.items.impl.Backdoor;
|
||||
import net.shadow.client.feature.items.impl.Fireball;
|
||||
import net.shadow.client.feature.items.impl.Nuke;
|
||||
import net.shadow.client.feature.items.impl.Plague;
|
||||
import net.shadow.client.feature.items.impl.Poof;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
|
|
@ -6,16 +6,113 @@ package net.shadow.client.feature.module;
|
|||
|
||||
|
||||
import net.shadow.client.feature.addon.Addon;
|
||||
import net.shadow.client.feature.module.impl.combat.*;
|
||||
import net.shadow.client.feature.module.impl.combat.AimAssist;
|
||||
import net.shadow.client.feature.module.impl.combat.AutoAttack;
|
||||
import net.shadow.client.feature.module.impl.combat.AutoTrap;
|
||||
import net.shadow.client.feature.module.impl.combat.Criticals;
|
||||
import net.shadow.client.feature.module.impl.combat.FireballDeflector;
|
||||
import net.shadow.client.feature.module.impl.combat.Killaura;
|
||||
import net.shadow.client.feature.module.impl.combat.ShulkerDeflector;
|
||||
import net.shadow.client.feature.module.impl.combat.TpRange;
|
||||
import net.shadow.client.feature.module.impl.combat.Velocity;
|
||||
import net.shadow.client.feature.module.impl.crash.AnimationCrash;
|
||||
import net.shadow.client.feature.module.impl.crash.BookInflator;
|
||||
import net.shadow.client.feature.module.impl.crash.LecternCrash;
|
||||
import net.shadow.client.feature.module.impl.exploit.*;
|
||||
import net.shadow.client.feature.module.impl.grief.*;
|
||||
import net.shadow.client.feature.module.impl.misc.*;
|
||||
import net.shadow.client.feature.module.impl.movement.*;
|
||||
import net.shadow.client.feature.module.impl.render.*;
|
||||
import net.shadow.client.feature.module.impl.world.*;
|
||||
import net.shadow.client.feature.module.impl.exploit.AntiAntiXray;
|
||||
import net.shadow.client.feature.module.impl.exploit.AntiReducedDebugInfo;
|
||||
import net.shadow.client.feature.module.impl.exploit.Boaty;
|
||||
import net.shadow.client.feature.module.impl.exploit.CarpetBomb;
|
||||
import net.shadow.client.feature.module.impl.exploit.InstaBow;
|
||||
import net.shadow.client.feature.module.impl.exploit.NoComCrash;
|
||||
import net.shadow.client.feature.module.impl.exploit.OOBCrash;
|
||||
import net.shadow.client.feature.module.impl.exploit.OffhandCrash;
|
||||
import net.shadow.client.feature.module.impl.exploit.PingSpoof;
|
||||
import net.shadow.client.feature.module.impl.exploit.VanillaSpoof;
|
||||
import net.shadow.client.feature.module.impl.grief.Annhilator;
|
||||
import net.shadow.client.feature.module.impl.grief.AutoFireball;
|
||||
import net.shadow.client.feature.module.impl.grief.AutoIgnite;
|
||||
import net.shadow.client.feature.module.impl.grief.AutoRun;
|
||||
import net.shadow.client.feature.module.impl.grief.AutoTnt;
|
||||
import net.shadow.client.feature.module.impl.grief.Decimator;
|
||||
import net.shadow.client.feature.module.impl.misc.AdSpammer;
|
||||
import net.shadow.client.feature.module.impl.misc.AllowFormatCodes;
|
||||
import net.shadow.client.feature.module.impl.misc.AntiCrash;
|
||||
import net.shadow.client.feature.module.impl.misc.AntiPacketKick;
|
||||
import net.shadow.client.feature.module.impl.misc.ClientSettings;
|
||||
import net.shadow.client.feature.module.impl.misc.DiscordRPC;
|
||||
import net.shadow.client.feature.module.impl.misc.InfChatLength;
|
||||
import net.shadow.client.feature.module.impl.misc.MinehutAdBlocker;
|
||||
import net.shadow.client.feature.module.impl.misc.NoTitles;
|
||||
import net.shadow.client.feature.module.impl.misc.PortalGUI;
|
||||
import net.shadow.client.feature.module.impl.misc.Spinner;
|
||||
import net.shadow.client.feature.module.impl.misc.Test;
|
||||
import net.shadow.client.feature.module.impl.misc.Timer;
|
||||
import net.shadow.client.feature.module.impl.misc.XCarry;
|
||||
import net.shadow.client.feature.module.impl.movement.AirJump;
|
||||
import net.shadow.client.feature.module.impl.movement.AntiAnvil;
|
||||
import net.shadow.client.feature.module.impl.movement.AutoElytra;
|
||||
import net.shadow.client.feature.module.impl.movement.Backtrack;
|
||||
import net.shadow.client.feature.module.impl.movement.Blink;
|
||||
import net.shadow.client.feature.module.impl.movement.BlocksmcFlight;
|
||||
import net.shadow.client.feature.module.impl.movement.BoatPhase;
|
||||
import net.shadow.client.feature.module.impl.movement.Boost;
|
||||
import net.shadow.client.feature.module.impl.movement.EdgeJump;
|
||||
import net.shadow.client.feature.module.impl.movement.EdgeSneak;
|
||||
import net.shadow.client.feature.module.impl.movement.EntityFly;
|
||||
import net.shadow.client.feature.module.impl.movement.Flight;
|
||||
import net.shadow.client.feature.module.impl.movement.Hyperspeed;
|
||||
import net.shadow.client.feature.module.impl.movement.IgnoreWorldBorder;
|
||||
import net.shadow.client.feature.module.impl.movement.InventoryWalk;
|
||||
import net.shadow.client.feature.module.impl.movement.Jesus;
|
||||
import net.shadow.client.feature.module.impl.movement.LongJump;
|
||||
import net.shadow.client.feature.module.impl.movement.MoonGravity;
|
||||
import net.shadow.client.feature.module.impl.movement.NoFall;
|
||||
import net.shadow.client.feature.module.impl.movement.NoJumpCooldown;
|
||||
import net.shadow.client.feature.module.impl.movement.NoLevitation;
|
||||
import net.shadow.client.feature.module.impl.movement.NoPush;
|
||||
import net.shadow.client.feature.module.impl.movement.Phase;
|
||||
import net.shadow.client.feature.module.impl.movement.Sprint;
|
||||
import net.shadow.client.feature.module.impl.movement.Step;
|
||||
import net.shadow.client.feature.module.impl.movement.Swing;
|
||||
import net.shadow.client.feature.module.impl.render.BlockHighlighting;
|
||||
import net.shadow.client.feature.module.impl.render.CaveMapper;
|
||||
import net.shadow.client.feature.module.impl.render.ClickGUI;
|
||||
import net.shadow.client.feature.module.impl.render.ESP;
|
||||
import net.shadow.client.feature.module.impl.render.FakeHacker;
|
||||
import net.shadow.client.feature.module.impl.render.FreeLook;
|
||||
import net.shadow.client.feature.module.impl.render.Freecam;
|
||||
import net.shadow.client.feature.module.impl.render.Fullbright;
|
||||
import net.shadow.client.feature.module.impl.render.Hud;
|
||||
import net.shadow.client.feature.module.impl.render.ItemByteSize;
|
||||
import net.shadow.client.feature.module.impl.render.MouseEars;
|
||||
import net.shadow.client.feature.module.impl.render.NameTags;
|
||||
import net.shadow.client.feature.module.impl.render.NoLiquidFog;
|
||||
import net.shadow.client.feature.module.impl.render.ShadowScreen;
|
||||
import net.shadow.client.feature.module.impl.render.ShowTntPrime;
|
||||
import net.shadow.client.feature.module.impl.render.Spotlight;
|
||||
import net.shadow.client.feature.module.impl.render.TabGui;
|
||||
import net.shadow.client.feature.module.impl.render.TargetHud;
|
||||
import net.shadow.client.feature.module.impl.render.Theme;
|
||||
import net.shadow.client.feature.module.impl.render.Tracers;
|
||||
import net.shadow.client.feature.module.impl.render.Trail;
|
||||
import net.shadow.client.feature.module.impl.render.Zoom;
|
||||
import net.shadow.client.feature.module.impl.world.AirPlace;
|
||||
import net.shadow.client.feature.module.impl.world.AnyPlacer;
|
||||
import net.shadow.client.feature.module.impl.world.AutoFish;
|
||||
import net.shadow.client.feature.module.impl.world.AutoLavacast;
|
||||
import net.shadow.client.feature.module.impl.world.AutoTool;
|
||||
import net.shadow.client.feature.module.impl.world.BlockTagViewer;
|
||||
import net.shadow.client.feature.module.impl.world.Boom;
|
||||
import net.shadow.client.feature.module.impl.world.FastUse;
|
||||
import net.shadow.client.feature.module.impl.world.Flattener;
|
||||
import net.shadow.client.feature.module.impl.world.GodBridge;
|
||||
import net.shadow.client.feature.module.impl.world.InstantBreak;
|
||||
import net.shadow.client.feature.module.impl.world.MassUse;
|
||||
import net.shadow.client.feature.module.impl.world.NoBreakDelay;
|
||||
import net.shadow.client.feature.module.impl.world.Nuker;
|
||||
import net.shadow.client.feature.module.impl.world.Scaffold;
|
||||
import net.shadow.client.feature.module.impl.world.SurvivalNuker;
|
||||
import net.shadow.client.feature.module.impl.world.XRAY;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
|
|
@ -20,7 +20,7 @@ import net.shadow.client.feature.module.Module;
|
|||
import net.shadow.client.feature.module.ModuleType;
|
||||
import net.shadow.client.helper.render.Renderer;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ import net.shadow.client.helper.Rotations;
|
|||
import net.shadow.client.helper.render.Renderer;
|
||||
import net.shadow.client.helper.util.Utils;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.Objects;
|
||||
|
||||
public class FireballDeflector extends Module {
|
||||
|
|
|
@ -25,7 +25,7 @@ import net.shadow.client.helper.event.events.PacketEvent;
|
|||
import net.shadow.client.helper.render.Renderer;
|
||||
import net.shadow.client.helper.util.Utils;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
|
|
|
@ -23,7 +23,7 @@ import net.shadow.client.feature.module.impl.world.XRAY;
|
|||
import net.shadow.client.helper.render.Renderer;
|
||||
import net.shadow.client.helper.util.Utils;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayDeque;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
|
|
@ -16,7 +16,7 @@ import net.shadow.client.feature.module.ModuleType;
|
|||
import net.shadow.client.helper.render.Renderer;
|
||||
import net.shadow.client.helper.util.Utils;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.Objects;
|
||||
|
||||
public class Boaty extends Module {
|
||||
|
|
|
@ -17,7 +17,13 @@ import net.minecraft.network.packet.c2s.play.PlayerInteractBlockC2SPacket;
|
|||
import net.minecraft.util.Hand;
|
||||
import net.minecraft.util.hit.BlockHitResult;
|
||||
import net.minecraft.util.hit.EntityHitResult;
|
||||
import net.minecraft.util.math.*;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.Box;
|
||||
import net.minecraft.util.math.Direction;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.util.math.Quaternion;
|
||||
import net.minecraft.util.math.Vec2f;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import net.minecraft.world.RaycastContext;
|
||||
import net.shadow.client.ShadowMain;
|
||||
import net.shadow.client.feature.config.DoubleSetting;
|
||||
|
@ -33,7 +39,7 @@ import net.shadow.client.helper.event.events.MouseEvent;
|
|||
import net.shadow.client.helper.render.Renderer;
|
||||
import net.shadow.client.helper.util.Utils;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
|
|
@ -24,7 +24,7 @@ import net.shadow.client.feature.module.ModuleType;
|
|||
import net.shadow.client.helper.render.Renderer;
|
||||
import net.shadow.client.helper.util.Utils;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
|
|
@ -21,9 +21,13 @@ import net.shadow.client.feature.module.Module;
|
|||
import net.shadow.client.feature.module.ModuleType;
|
||||
import net.shadow.client.helper.render.Renderer;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.AbstractMap;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class AutoTnt extends Module {
|
||||
|
|
|
@ -15,7 +15,7 @@ import net.shadow.client.feature.module.ModuleType;
|
|||
import net.shadow.client.helper.render.Renderer;
|
||||
import net.shadow.client.helper.util.Utils;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ public class Test extends Module {
|
|||
}
|
||||
|
||||
@EventListener(type = EventType.BLOCK_RENDER)
|
||||
@SuppressWarnings("unused")
|
||||
void onBlockRender(BlockRenderingEvent event) {
|
||||
if (!this.isEnabled()) return;
|
||||
BlockPos b = new BlockPos(event.getPosition());
|
||||
|
|
|
@ -18,7 +18,7 @@ import net.shadow.client.helper.render.Renderer;
|
|||
import net.shadow.client.helper.util.Utils;
|
||||
import org.lwjgl.glfw.GLFW;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ import net.shadow.client.feature.module.ModuleType;
|
|||
import net.shadow.client.helper.render.Renderer;
|
||||
import net.shadow.client.helper.util.Utils;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ import net.shadow.client.helper.event.events.PacketEvent;
|
|||
import net.shadow.client.helper.render.Renderer;
|
||||
import net.shadow.client.helper.util.Utils;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.Objects;
|
||||
import java.util.Random;
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ import net.shadow.client.helper.event.events.PacketEvent;
|
|||
import net.shadow.client.helper.render.Renderer;
|
||||
import net.shadow.client.helper.util.Utils;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.Objects;
|
||||
|
||||
public class Swing extends Module {
|
||||
|
|
|
@ -23,7 +23,7 @@ import net.shadow.client.helper.render.Renderer;
|
|||
import net.shadow.client.helper.util.Utils;
|
||||
import net.shadow.client.mixin.WorldRendererAccessor;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.SortedSet;
|
||||
|
||||
public class BlockHighlighting extends Module {
|
||||
|
|
|
@ -8,7 +8,13 @@ import com.mojang.blaze3d.systems.RenderSystem;
|
|||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.client.render.*;
|
||||
import net.minecraft.client.render.BufferBuilder;
|
||||
import net.minecraft.client.render.BufferRenderer;
|
||||
import net.minecraft.client.render.Camera;
|
||||
import net.minecraft.client.render.GameRenderer;
|
||||
import net.minecraft.client.render.Tessellator;
|
||||
import net.minecraft.client.render.VertexFormat;
|
||||
import net.minecraft.client.render.VertexFormats;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
|
@ -25,9 +31,13 @@ import net.shadow.client.helper.render.Renderer;
|
|||
import net.shadow.client.helper.util.Utils;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.AbstractMap;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
public class CaveMapper extends Module {
|
||||
|
||||
|
|
|
@ -5,7 +5,13 @@
|
|||
package net.shadow.client.feature.module.impl.render;
|
||||
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import net.minecraft.client.render.*;
|
||||
import net.minecraft.client.render.BufferBuilder;
|
||||
import net.minecraft.client.render.BufferRenderer;
|
||||
import net.minecraft.client.render.Camera;
|
||||
import net.minecraft.client.render.GameRenderer;
|
||||
import net.minecraft.client.render.Tessellator;
|
||||
import net.minecraft.client.render.VertexFormat;
|
||||
import net.minecraft.client.render.VertexFormats;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
|
@ -22,7 +28,7 @@ import net.shadow.client.helper.render.Renderer;
|
|||
import net.shadow.client.helper.util.Utils;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
|
|
@ -34,7 +34,11 @@ import net.shadow.client.mixin.IInGameHudAccessor;
|
|||
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
public class Hud extends Module {
|
||||
|
|
|
@ -15,7 +15,7 @@ import net.shadow.client.helper.font.FontRenderers;
|
|||
import net.shadow.client.helper.render.Renderer;
|
||||
import net.shadow.client.helper.util.Utils;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
|
||||
import static net.shadow.client.feature.module.impl.render.TargetHud.GREEN;
|
||||
import static net.shadow.client.feature.module.impl.render.TargetHud.RED;
|
||||
|
|
|
@ -6,7 +6,12 @@ package net.shadow.client.feature.module.impl.render;
|
|||
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import it.unimi.dsi.fastutil.ints.Int2IntArrayMap;
|
||||
import net.minecraft.client.render.*;
|
||||
import net.minecraft.client.render.BufferBuilder;
|
||||
import net.minecraft.client.render.BufferRenderer;
|
||||
import net.minecraft.client.render.GameRenderer;
|
||||
import net.minecraft.client.render.Tessellator;
|
||||
import net.minecraft.client.render.VertexFormat;
|
||||
import net.minecraft.client.render.VertexFormats;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.TntEntity;
|
||||
|
@ -25,7 +30,7 @@ import net.shadow.client.helper.font.FontRenderers;
|
|||
import net.shadow.client.helper.render.Renderer;
|
||||
import net.shadow.client.helper.util.Utils;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
|
||||
public class ShowTntPrime extends Module {
|
||||
final Int2IntArrayMap i2iamp = new Int2IntArrayMap();
|
||||
|
|
|
@ -19,7 +19,7 @@ import net.shadow.client.helper.render.Renderer;
|
|||
import net.shadow.client.helper.util.Transitions;
|
||||
import org.lwjgl.glfw.GLFW;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
|
|
@ -25,7 +25,7 @@ import net.shadow.client.helper.util.Transitions;
|
|||
import net.shadow.client.helper.util.Utils;
|
||||
import org.lwjgl.opengl.GL40C;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
|
|
@ -11,7 +11,7 @@ import net.shadow.client.feature.config.SettingBase;
|
|||
import net.shadow.client.feature.module.Module;
|
||||
import net.shadow.client.feature.module.ModuleType;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
|
||||
public class Theme extends Module {
|
||||
public final ColorSetting accent = this.config.create(new ColorSetting.Builder(new Color(0x3AD99D))
|
||||
|
|
|
@ -18,7 +18,7 @@ import net.shadow.client.feature.module.ModuleType;
|
|||
import net.shadow.client.helper.render.Renderer;
|
||||
import net.shadow.client.helper.util.Utils;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.Comparator;
|
||||
import java.util.stream.StreamSupport;
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ import net.shadow.client.feature.module.ModuleType;
|
|||
import net.shadow.client.helper.render.Renderer;
|
||||
import net.shadow.client.helper.util.Utils;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ import net.shadow.client.helper.event.events.MouseEvent;
|
|||
import net.shadow.client.helper.render.Renderer;
|
||||
import net.shadow.client.helper.util.Utils;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.Objects;
|
||||
|
||||
public class AnyPlacer extends Module {
|
||||
|
|
|
@ -23,7 +23,7 @@ import net.shadow.client.helper.Rotations;
|
|||
import net.shadow.client.helper.Timer;
|
||||
import net.shadow.client.helper.render.Renderer;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
|
||||
public class AutoLavacast extends Module {
|
||||
|
||||
|
|
|
@ -14,10 +14,10 @@ import net.minecraft.util.math.MathHelper;
|
|||
import net.shadow.client.feature.module.Module;
|
||||
import net.shadow.client.feature.module.ModuleType;
|
||||
import net.shadow.client.helper.font.FontRenderers;
|
||||
import net.shadow.client.helper.render.CustomColor;
|
||||
import net.shadow.client.helper.render.Renderer;
|
||||
import net.shadow.client.helper.util.Transitions;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
@ -126,8 +126,8 @@ public class BlockTagViewer extends Module {
|
|||
double prog = e(entry.animProg);
|
||||
double c = prog * (FontRenderers.getRenderer().getMarginHeight() + 1);
|
||||
s.scale(1, (float) prog, 1);
|
||||
Renderer.R2D.renderQuad(s, new CustomColor(0, 0, 0, (int) (prog * 100)), 0, 0, mw, FontRenderers.getRenderer().getMarginHeight() + 1);
|
||||
FontRenderers.getRenderer().drawString(s, entry.v, 1, 0.5f, new CustomColor(255, 255, 255, (int) (prog * 255)).getRGB());
|
||||
Renderer.R2D.renderQuad(s, new Color(0, 0, 0, (int) (prog * 100)), 0, 0, mw, FontRenderers.getRenderer().getMarginHeight() + 1);
|
||||
FontRenderers.getRenderer().drawString(s, entry.v, 1, 0.5f, new Color(255, 255, 255, (int) (prog * 255)).getRGB());
|
||||
s.pop();
|
||||
s.translate(0, c, 0);
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ import net.shadow.client.helper.Rotations;
|
|||
import net.shadow.client.helper.render.Renderer;
|
||||
import net.shadow.client.helper.util.Utils;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
|
|
@ -11,7 +11,11 @@ import net.minecraft.item.ItemStack;
|
|||
import net.minecraft.item.Items;
|
||||
import net.minecraft.util.Hand;
|
||||
import net.minecraft.util.hit.BlockHitResult;
|
||||
import net.minecraft.util.math.*;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.Direction;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.util.math.Vec2f;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import net.shadow.client.feature.config.DoubleSetting;
|
||||
import net.shadow.client.feature.module.Module;
|
||||
import net.shadow.client.feature.module.ModuleType;
|
||||
|
|
|
@ -21,7 +21,11 @@ import net.shadow.client.helper.Rotations;
|
|||
import net.shadow.client.helper.render.Renderer;
|
||||
import net.shadow.client.helper.util.Utils;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class SurvivalNuker extends Module {
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) Shadow client, 0x150, Saturn5VFive 2022. All rights reserved.
|
||||
*/
|
||||
|
||||
package net.shadow.client.helper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ConcurrentList<T> {
|
||||
private List<T> list = new ArrayList<>();
|
||||
|
||||
public List<T> pop() {
|
||||
return new ArrayList<>(list);
|
||||
}
|
||||
|
||||
public void push(List<T> modifiedCopy) {
|
||||
this.list = modifiedCopy;
|
||||
}
|
||||
|
||||
public List<T> get() {
|
||||
return list;
|
||||
}
|
||||
}
|
|
@ -4,6 +4,5 @@ import net.minecraft.client.network.ServerAddress;
|
|||
|
||||
public class Globals {
|
||||
public static boolean reconnectInstantly = false;
|
||||
public static String amount = "50";
|
||||
public static ServerAddress serverAddress = null;
|
||||
}
|
|
@ -8,11 +8,31 @@ import com.google.common.base.Strings;
|
|||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.common.collect.Sets;
|
||||
import net.minecraft.nbt.*;
|
||||
import net.minecraft.nbt.NbtByte;
|
||||
import net.minecraft.nbt.NbtByteArray;
|
||||
import net.minecraft.nbt.NbtCompound;
|
||||
import net.minecraft.nbt.NbtDouble;
|
||||
import net.minecraft.nbt.NbtElement;
|
||||
import net.minecraft.nbt.NbtEnd;
|
||||
import net.minecraft.nbt.NbtFloat;
|
||||
import net.minecraft.nbt.NbtInt;
|
||||
import net.minecraft.nbt.NbtIntArray;
|
||||
import net.minecraft.nbt.NbtList;
|
||||
import net.minecraft.nbt.NbtLong;
|
||||
import net.minecraft.nbt.NbtLongArray;
|
||||
import net.minecraft.nbt.NbtShort;
|
||||
import net.minecraft.nbt.NbtString;
|
||||
import net.minecraft.nbt.visitor.NbtElementVisitor;
|
||||
import net.minecraft.util.Util;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
|
|
|
@ -11,7 +11,11 @@ import org.apache.logging.log4j.Level;
|
|||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ import net.shadow.client.helper.font.adapter.FontAdapter;
|
|||
import net.shadow.client.helper.font.adapter.impl.BruhAdapter;
|
||||
import net.shadow.client.helper.font.renderer.FontRenderer;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Font;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
|
|
@ -6,18 +6,25 @@ package net.shadow.client.helper.font.renderer;
|
|||
|
||||
import com.mojang.blaze3d.platform.GlStateManager;
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import net.minecraft.client.render.*;
|
||||
import net.minecraft.client.render.BufferBuilder;
|
||||
import net.minecraft.client.render.BufferRenderer;
|
||||
import net.minecraft.client.render.GameRenderer;
|
||||
import net.minecraft.client.render.Tessellator;
|
||||
import net.minecraft.client.render.VertexFormat;
|
||||
import net.minecraft.client.render.VertexFormats;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.util.Util;
|
||||
import net.minecraft.util.math.Matrix4f;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Font;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import static org.lwjgl.opengl.GL11.*;
|
||||
import static org.lwjgl.opengl.GL11.GL_LINEAR;
|
||||
import static org.lwjgl.opengl.GL11.GL_TEXTURE_2D;
|
||||
import static org.lwjgl.opengl.GL11.GL_TEXTURE_MAG_FILTER;
|
||||
|
||||
public class FontRenderer {
|
||||
static final Map<Character, Integer> colorMap = Util.make(() -> {
|
||||
|
|
|
@ -7,7 +7,11 @@ package net.shadow.client.helper.font.renderer;
|
|||
import net.shadow.client.helper.Texture;
|
||||
import net.shadow.client.helper.util.Utils;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.awt.Font;
|
||||
import java.awt.FontMetrics;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.RenderingHints;
|
||||
import java.awt.font.FontRenderContext;
|
||||
import java.awt.geom.AffineTransform;
|
||||
import java.awt.geom.Rectangle2D;
|
||||
|
|
|
@ -6,7 +6,11 @@ package net.shadow.client.helper.manager;
|
|||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.Items;
|
||||
import net.minecraft.nbt.*;
|
||||
import net.minecraft.nbt.NbtByte;
|
||||
import net.minecraft.nbt.NbtCompound;
|
||||
import net.minecraft.nbt.NbtDouble;
|
||||
import net.minecraft.nbt.NbtList;
|
||||
import net.minecraft.nbt.NbtString;
|
||||
import net.minecraft.text.Text;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
|
||||
|
|
|
@ -4,7 +4,14 @@
|
|||
|
||||
package net.shadow.client.helper.nbt;
|
||||
|
||||
import net.minecraft.nbt.*;
|
||||
import net.minecraft.nbt.NbtByte;
|
||||
import net.minecraft.nbt.NbtCompound;
|
||||
import net.minecraft.nbt.NbtDouble;
|
||||
import net.minecraft.nbt.NbtFloat;
|
||||
import net.minecraft.nbt.NbtInt;
|
||||
import net.minecraft.nbt.NbtLong;
|
||||
import net.minecraft.nbt.NbtShort;
|
||||
import net.minecraft.nbt.NbtString;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
|
|
@ -1,66 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) Shadow client, 0x150, Saturn5VFive 2022. All rights reserved.
|
||||
*/
|
||||
|
||||
package net.shadow.client.helper.render;
|
||||
|
||||
import net.shadow.client.helper.util.Utils;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class CustomColor extends java.awt.Color {
|
||||
|
||||
final int alpha;
|
||||
private boolean isChroma = false;
|
||||
|
||||
public CustomColor(int r, int g, int b, boolean isChroma) {
|
||||
this(r, g, b);
|
||||
this.isChroma = isChroma;
|
||||
}
|
||||
|
||||
public CustomColor(int r, int g, int b) {
|
||||
super(r, g, b);
|
||||
alpha = 255;
|
||||
}
|
||||
|
||||
public CustomColor(int r, int g, int b, int a, boolean isChroma) {
|
||||
this(r, g, b, a);
|
||||
this.isChroma = isChroma;
|
||||
}
|
||||
|
||||
public CustomColor(int r, int g, int b, int a) {
|
||||
super(r, g, b, a);
|
||||
alpha = a;
|
||||
}
|
||||
|
||||
public CustomColor(int rgb, boolean isChroma) {
|
||||
this(rgb);
|
||||
this.isChroma = isChroma;
|
||||
}
|
||||
|
||||
public CustomColor(int rgb) {
|
||||
super(rgb);
|
||||
alpha = (rgb >> 24) & 0xFF;
|
||||
}
|
||||
|
||||
public boolean isChroma() {
|
||||
return isChroma;
|
||||
}
|
||||
|
||||
public void setChroma(boolean chroma) {
|
||||
isChroma = chroma;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRGB() {
|
||||
if (isChroma) {
|
||||
java.awt.Color chroma = Utils.getCurrentRGB();
|
||||
return new CustomColor(chroma.getRed(), chroma.getGreen(), chroma.getBlue(), alpha).getRGB();
|
||||
}
|
||||
return super.getRGB();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getAlpha() {
|
||||
return alpha;
|
||||
}
|
||||
}
|
|
@ -5,16 +5,27 @@
|
|||
package net.shadow.client.helper.render;
|
||||
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import net.minecraft.client.render.*;
|
||||
import net.minecraft.client.render.BufferBuilder;
|
||||
import net.minecraft.client.render.BufferRenderer;
|
||||
import net.minecraft.client.render.Camera;
|
||||
import net.minecraft.client.render.GameRenderer;
|
||||
import net.minecraft.client.render.Tessellator;
|
||||
import net.minecraft.client.render.VertexFormat;
|
||||
import net.minecraft.client.render.VertexFormats;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.util.math.*;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.util.math.Matrix4f;
|
||||
import net.minecraft.util.math.Quaternion;
|
||||
import net.minecraft.util.math.Vec2f;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import net.minecraft.util.math.Vector4f;
|
||||
import net.minecraft.util.shape.VoxelShape;
|
||||
import net.shadow.client.ShadowMain;
|
||||
import net.shadow.client.helper.math.Matrix4x4;
|
||||
import net.shadow.client.helper.math.Vector3D;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
package net.shadow.client.helper.util;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
|
||||
public class Transitions {
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ import net.shadow.client.mixin.IRenderTickCounterAccessor;
|
|||
import org.lwjgl.BufferUtils;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
|
@ -44,8 +44,12 @@ import java.net.http.HttpRequest;
|
|||
import java.net.http.HttpResponse;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.time.Duration;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
public class Utils {
|
||||
|
@ -57,14 +61,6 @@ public class Utils {
|
|||
}
|
||||
}
|
||||
|
||||
public static int halfHeight() {
|
||||
return ShadowMain.client.getWindow().getScaledHeight() / 2;
|
||||
}
|
||||
|
||||
public static int halfWidth() {
|
||||
return ShadowMain.client.getWindow().getScaledWidth() / 2;
|
||||
}
|
||||
|
||||
public static void setClientTps(float tps) {
|
||||
IRenderTickCounterAccessor accessor = ((IRenderTickCounterAccessor) ((IMinecraftClientAccessor) ShadowMain.client).getRenderTickCounter());
|
||||
accessor.setTickTime(1000f / tps);
|
||||
|
@ -196,12 +192,6 @@ public class Utils {
|
|||
}
|
||||
}
|
||||
|
||||
public static class Packet {
|
||||
public static void placeBlock(BlockPos block) {
|
||||
ShadowMain.client.player.networkHandler.sendPacket(new PlayerInteractBlockC2SPacket(Hand.MAIN_HAND, new BlockHitResult(new Vec3d(block.getX() + 0.5, block.getY() + 0.5, block.getZ() + 0.5), Direction.UP, block, false)));
|
||||
}
|
||||
}
|
||||
|
||||
public static class Math {
|
||||
|
||||
public static boolean isNumber(String in) {
|
||||
|
|
|
@ -28,7 +28,7 @@ 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 java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
|
|
@ -1,32 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) Shadow client, 0x150, Saturn5VFive 2022. All rights reserved.
|
||||
*/
|
||||
|
||||
package net.shadow.client.mixin;
|
||||
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.client.render.VertexConsumer;
|
||||
import net.minecraft.client.render.block.BlockRenderManager;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.BlockRenderView;
|
||||
import net.shadow.client.helper.event.EventType;
|
||||
import net.shadow.client.helper.event.Events;
|
||||
import net.shadow.client.helper.event.events.BlockRenderingEvent;
|
||||
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;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
@Mixin(BlockRenderManager.class)
|
||||
public class BlockRenderManagerMixin {
|
||||
|
||||
@Inject(method = "renderBlock", at = @At("HEAD"), cancellable = true)
|
||||
public void dispatchRenderBlock(BlockState state, BlockPos pos, BlockRenderView world, MatrixStack matrix, VertexConsumer vertexConsumer, boolean cull, Random random, CallbackInfoReturnable<Boolean> cir) {
|
||||
if (Events.fireEvent(EventType.BLOCK_RENDER, new BlockRenderingEvent(matrix, pos, state))) {
|
||||
cir.setReturnValue(true);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -8,7 +8,12 @@ import com.mojang.blaze3d.systems.RenderSystem;
|
|||
import net.minecraft.client.gui.widget.ClickableWidget;
|
||||
import net.minecraft.client.gui.widget.SliderWidget;
|
||||
import net.minecraft.client.gui.widget.TextFieldWidget;
|
||||
import net.minecraft.client.render.*;
|
||||
import net.minecraft.client.render.BufferBuilder;
|
||||
import net.minecraft.client.render.BufferRenderer;
|
||||
import net.minecraft.client.render.GameRenderer;
|
||||
import net.minecraft.client.render.Tessellator;
|
||||
import net.minecraft.client.render.VertexFormat;
|
||||
import net.minecraft.client.render.VertexFormats;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.text.Text;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
|
@ -24,7 +29,7 @@ import org.spongepowered.asm.mixin.injection.At;
|
|||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
|
||||
@Mixin(ClickableWidget.class)
|
||||
public abstract class ClickableWidgetMixin implements DoesMSAA, FastTickable {
|
||||
|
|
|
@ -15,7 +15,7 @@ import org.spongepowered.asm.mixin.injection.At;
|
|||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
|
||||
@Mixin(MultiplayerScreen.class)
|
||||
public class MultiplayerScreenMixin extends Screen {
|
||||
|
|
|
@ -6,14 +6,18 @@ package net.shadow.client.mixin;
|
|||
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.render.*;
|
||||
import net.minecraft.client.render.BufferBuilder;
|
||||
import net.minecraft.client.render.GameRenderer;
|
||||
import net.minecraft.client.render.Tessellator;
|
||||
import net.minecraft.client.render.VertexFormat;
|
||||
import net.minecraft.client.render.VertexFormats;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
|
||||
@Mixin(Screen.class)
|
||||
public class ScreenMixin {
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
"AreaEffectCloudEntityMixin",
|
||||
"BlockEntityRenderDispatcherMixin",
|
||||
"BlockMixin",
|
||||
"BlockRenderManagerMixin",
|
||||
"CameraMixin",
|
||||
"ClickableWidgetMixin",
|
||||
"ClientConnection1Mixin",
|
||||
|
|
Loading…
Reference in a new issue