mirror of
https://github.com/refactorinqq/SLC-1.8.9.git
synced 2024-11-10 07:21:32 +01:00
(feat) Crosshair editor :3
This commit is contained in:
parent
1e577ff52a
commit
a87875e565
@ -5,7 +5,7 @@
|
|||||||
<option name="linkedExternalProjectsSettings">
|
<option name="linkedExternalProjectsSettings">
|
||||||
<GradleProjectSettings>
|
<GradleProjectSettings>
|
||||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||||
<option name="gradleJvm" value="zulu-1.8 (4)" />
|
<option name="gradleJvm" value="ibm-1.8" />
|
||||||
<option name="modules">
|
<option name="modules">
|
||||||
<set>
|
<set>
|
||||||
<option value="$PROJECT_DIR$" />
|
<option value="$PROJECT_DIR$" />
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<component name="FrameworkDetectionExcludesConfiguration">
|
<component name="FrameworkDetectionExcludesConfiguration">
|
||||||
<file type="web" url="file://$PROJECT_DIR$" />
|
<file type="web" url="file://$PROJECT_DIR$" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="zulu-1.8 (3)" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="zulu-1.8 (3)" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
@ -22,7 +22,7 @@ import net.silentclient.client.gui.util.RenderUtil;
|
|||||||
import net.silentclient.client.mods.Mod;
|
import net.silentclient.client.mods.Mod;
|
||||||
import net.silentclient.client.mods.ModCategory;
|
import net.silentclient.client.mods.ModCategory;
|
||||||
import net.silentclient.client.mods.Setting;
|
import net.silentclient.client.mods.Setting;
|
||||||
import net.silentclient.client.mods.render.CrosshairMod;
|
import net.silentclient.client.mods.render.crosshair.CrosshairMod;
|
||||||
import net.silentclient.client.mods.world.TimeChangerMod;
|
import net.silentclient.client.mods.world.TimeChangerMod;
|
||||||
import net.silentclient.client.utils.ColorUtils;
|
import net.silentclient.client.utils.ColorUtils;
|
||||||
import net.silentclient.client.utils.MenuBlurUtils;
|
import net.silentclient.client.utils.MenuBlurUtils;
|
||||||
|
@ -0,0 +1,38 @@
|
|||||||
|
package net.silentclient.client.gui.modmenu;
|
||||||
|
|
||||||
|
import net.silentclient.client.gui.lite.clickgui.utils.MouseUtils;
|
||||||
|
import net.silentclient.client.gui.lite.clickgui.utils.RenderUtils;
|
||||||
|
import net.silentclient.client.gui.util.RenderUtil;
|
||||||
|
import net.silentclient.client.mods.Setting;
|
||||||
|
import org.lwjgl.input.Mouse;
|
||||||
|
|
||||||
|
import java.awt.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author refactoring
|
||||||
|
*/
|
||||||
|
public class CellGrid {
|
||||||
|
public static void render(float mouseX, float mouseY, float x, float y, Setting grid) {
|
||||||
|
for (int row = 0; row < 11; row++) {
|
||||||
|
for (int col = 0; col < 11; col++) {
|
||||||
|
float rx = x + col * 11;
|
||||||
|
float ry = y + row * 11;
|
||||||
|
RenderUtil.drawRoundedOutline(rx, ry, 11, 11, 0f, 1f, new Color(255, 255, 255, 120).getRGB());
|
||||||
|
|
||||||
|
RenderUtils.drawRect(rx, ry, 11, 11,
|
||||||
|
grid.getCells()[row][col] ?
|
||||||
|
MouseUtils.isInside((int) mouseX, (int) mouseY, rx, ry, 11, 11) ? 0x70ffffff : 0x50ffffff :
|
||||||
|
MouseUtils.isInside((int) mouseX, (int) mouseY, rx, ry, 11, 11) ? 0x20ffffff : 0x00ffffff
|
||||||
|
);
|
||||||
|
|
||||||
|
if(MouseUtils.isInside((int) mouseX, (int) mouseY, rx, ry, 11, 11) && Mouse.isButtonDown(0)) {
|
||||||
|
grid.getCells()[row][col] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(MouseUtils.isInside((int) mouseX, (int) mouseY, rx, ry, 11, 11) && Mouse.isButtonDown(1)) {
|
||||||
|
grid.getCells()[row][col] = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -19,7 +19,7 @@ import net.silentclient.client.gui.theme.input.DefaultInputTheme;
|
|||||||
import net.silentclient.client.mods.Mod;
|
import net.silentclient.client.mods.Mod;
|
||||||
import net.silentclient.client.mods.ModCategory;
|
import net.silentclient.client.mods.ModCategory;
|
||||||
import net.silentclient.client.mods.Setting;
|
import net.silentclient.client.mods.Setting;
|
||||||
import net.silentclient.client.mods.render.CrosshairMod;
|
import net.silentclient.client.mods.render.crosshair.CrosshairMod;
|
||||||
import net.silentclient.client.mods.world.TimeChangerMod;
|
import net.silentclient.client.mods.world.TimeChangerMod;
|
||||||
import net.silentclient.client.utils.MenuBlurUtils;
|
import net.silentclient.client.utils.MenuBlurUtils;
|
||||||
import net.silentclient.client.utils.MouseCursorHandler;
|
import net.silentclient.client.utils.MouseCursorHandler;
|
||||||
@ -135,7 +135,10 @@ public class ModSettings extends SilentScreen {
|
|||||||
cursorType = MouseCursorHandler.CursorType.POINTER;
|
cursorType = MouseCursorHandler.CursorType.POINTER;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(setting.isCellGrid()) {
|
||||||
|
CellGrid.render(mouseX, mouseY, 3, settingY, setting);
|
||||||
|
settingY += 120;
|
||||||
|
}
|
||||||
if(setting.isSlider()) {
|
if(setting.isSlider()) {
|
||||||
RegularSlider.render(3, settingY, 144, setting.getName(), setting.getMax(), setting.getValDouble());
|
RegularSlider.render(3, settingY, 144, setting.getName(), setting.getMax(), setting.getValDouble());
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ import net.silentclient.client.gui.lite.clickgui.utils.GlUtils;
|
|||||||
import net.silentclient.client.mods.hud.BossBarMod;
|
import net.silentclient.client.mods.hud.BossBarMod;
|
||||||
import net.silentclient.client.mods.hud.ScoreboardMod;
|
import net.silentclient.client.mods.hud.ScoreboardMod;
|
||||||
import net.silentclient.client.mods.render.AnimationsMod;
|
import net.silentclient.client.mods.render.AnimationsMod;
|
||||||
import net.silentclient.client.mods.render.CrosshairMod;
|
import net.silentclient.client.mods.render.crosshair.CrosshairMod;
|
||||||
import net.silentclient.client.mods.render.PackTweaksMod;
|
import net.silentclient.client.mods.render.PackTweaksMod;
|
||||||
import net.silentclient.client.mods.render.TitlesMod;
|
import net.silentclient.client.mods.render.TitlesMod;
|
||||||
import net.silentclient.client.mods.settings.RenderMod;
|
import net.silentclient.client.mods.settings.RenderMod;
|
||||||
|
@ -251,7 +251,7 @@ public class Mod implements IMod {
|
|||||||
public boolean isEnabled() {
|
public boolean isEnabled() {
|
||||||
return isEnabled;
|
return isEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Setting addBooleanSetting(String name, Mod mod, boolean toggle) {
|
public Setting addBooleanSetting(String name, Mod mod, boolean toggle) {
|
||||||
Setting setting;
|
Setting setting;
|
||||||
|
|
||||||
@ -259,6 +259,10 @@ public class Mod implements IMod {
|
|||||||
return setting;
|
return setting;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Setting addCellSetting(String name, Mod mod, boolean[][] cells) {
|
||||||
|
return Client.getInstance().getSettingsManager().addSetting(new Setting(name, mod, cells));
|
||||||
|
}
|
||||||
|
|
||||||
public Setting addKeybindSetting(String name, Mod mod, int keybind) {
|
public Setting addKeybindSetting(String name, Mod mod, int keybind) {
|
||||||
Setting setting;
|
Setting setting;
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@ import net.silentclient.client.mods.hypixel.QuickPlayMod;
|
|||||||
import net.silentclient.client.mods.hypixel.togglechat.ToggleChatMod;
|
import net.silentclient.client.mods.hypixel.togglechat.ToggleChatMod;
|
||||||
import net.silentclient.client.mods.player.*;
|
import net.silentclient.client.mods.player.*;
|
||||||
import net.silentclient.client.mods.render.*;
|
import net.silentclient.client.mods.render.*;
|
||||||
|
import net.silentclient.client.mods.render.crosshair.CrosshairMod;
|
||||||
import net.silentclient.client.mods.settings.CosmeticsMod;
|
import net.silentclient.client.mods.settings.CosmeticsMod;
|
||||||
import net.silentclient.client.mods.settings.FPSBoostMod;
|
import net.silentclient.client.mods.settings.FPSBoostMod;
|
||||||
import net.silentclient.client.mods.settings.GeneralMod;
|
import net.silentclient.client.mods.settings.GeneralMod;
|
||||||
|
@ -35,9 +35,14 @@ public class Setting implements Comparable<Setting> {
|
|||||||
private Color cval;
|
private Color cval;
|
||||||
public Color defaultcval;
|
public Color defaultcval;
|
||||||
|
|
||||||
|
// for cell setting
|
||||||
|
private boolean[][] cells;
|
||||||
|
private int key;
|
||||||
|
|
||||||
// Settings category
|
// Settings category
|
||||||
private String category = "";
|
private String category = "";
|
||||||
|
|
||||||
|
|
||||||
private int opacity = 255;
|
private int opacity = 255;
|
||||||
public int defaultopacity = 255;
|
public int defaultopacity = 255;
|
||||||
private boolean chroma = false;
|
private boolean chroma = false;
|
||||||
@ -80,6 +85,25 @@ public class Setting implements Comparable<Setting> {
|
|||||||
this.defaultopacity = 255;
|
this.defaultopacity = 255;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Setting(String name, Mod parent, boolean[][] cells) {
|
||||||
|
this.mode = "CellGrid";
|
||||||
|
this.name = name;
|
||||||
|
this.parent = parent;
|
||||||
|
this.cells = new boolean[][]{
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, true, true, false, true, false, true, true, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false}
|
||||||
|
};;
|
||||||
|
}
|
||||||
|
|
||||||
public Setting(String name, Mod parent, Color cval, int opacity) {
|
public Setting(String name, Mod parent, Color cval, int opacity) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.parent = parent;
|
this.parent = parent;
|
||||||
@ -167,6 +191,10 @@ public class Setting implements Comparable<Setting> {
|
|||||||
return Minecraft.getMinecraft().inGameHasFocus && Keyboard.isKeyDown(kval);
|
return Minecraft.getMinecraft().inGameHasFocus && Keyboard.isKeyDown(kval);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean[][] getCells() {
|
||||||
|
return cells;
|
||||||
|
}
|
||||||
|
|
||||||
public List<String> getOptions() {
|
public List<String> getOptions() {
|
||||||
return this.options;
|
return this.options;
|
||||||
}
|
}
|
||||||
@ -261,6 +289,10 @@ public class Setting implements Comparable<Setting> {
|
|||||||
return this.mode.equalsIgnoreCase("Input");
|
return this.mode.equalsIgnoreCase("Input");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isCellGrid() {
|
||||||
|
return this.mode.equalsIgnoreCase("CellGrid");
|
||||||
|
}
|
||||||
|
|
||||||
public String getMode() {
|
public String getMode() {
|
||||||
return mode;
|
return mode;
|
||||||
}
|
}
|
||||||
|
@ -12,8 +12,9 @@ public class SettingsManager {
|
|||||||
this.settings = new ArrayList<>();
|
this.settings = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addSetting(Setting in){
|
public Setting addSetting(Setting in){
|
||||||
this.settings.add(in);
|
this.settings.add(in);
|
||||||
|
return in;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArrayList<Setting> getSettingByMod(Mod mod){
|
public ArrayList<Setting> getSettingByMod(Mod mod){
|
||||||
|
@ -2,6 +2,7 @@ package net.silentclient.client.mods.render;
|
|||||||
|
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
|
|
||||||
|
import net.silentclient.client.mods.render.crosshair.CrosshairMod;
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
import net.minecraft.client.renderer.GlStateManager;
|
import net.minecraft.client.renderer.GlStateManager;
|
||||||
|
@ -0,0 +1,42 @@
|
|||||||
|
package net.silentclient.client.mods.render.crosshair;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author refactoring
|
||||||
|
*/
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class CLayoutManager {
|
||||||
|
|
||||||
|
private final List<boolean[][]> layouts = new ArrayList<>();
|
||||||
|
|
||||||
|
public CLayoutManager() {
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void init() {
|
||||||
|
addLayout(cDefault);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean[][] getLayout(int index) {
|
||||||
|
return layouts.get(index);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addLayout(boolean[][] layout) {
|
||||||
|
layouts.add(layout);
|
||||||
|
}
|
||||||
|
|
||||||
|
final boolean[][] cDefault = new boolean[][]{
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, true, true, false, true, false, true, true, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false}
|
||||||
|
};
|
||||||
|
}
|
@ -1,7 +1,9 @@
|
|||||||
package net.silentclient.client.mods.render;
|
package net.silentclient.client.mods.render.crosshair;
|
||||||
|
|
||||||
|
import com.sun.corba.se.impl.resolver.SplitLocalResolverImpl;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.GuiScreen;
|
import net.minecraft.client.gui.GuiScreen;
|
||||||
|
import net.minecraft.client.gui.ScaledResolution;
|
||||||
import net.minecraft.client.renderer.GlStateManager;
|
import net.minecraft.client.renderer.GlStateManager;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.EntityLiving;
|
import net.minecraft.entity.EntityLiving;
|
||||||
@ -24,6 +26,7 @@ import net.silentclient.client.mods.settings.RenderMod;
|
|||||||
import net.silentclient.client.utils.DisplayUtil;
|
import net.silentclient.client.utils.DisplayUtil;
|
||||||
import net.silentclient.client.utils.MouseCursorHandler;
|
import net.silentclient.client.utils.MouseCursorHandler;
|
||||||
import net.silentclient.client.utils.Sounds;
|
import net.silentclient.client.utils.Sounds;
|
||||||
|
import org.lwjgl.opengl.Display;
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
@ -32,10 +35,26 @@ import java.util.ArrayList;
|
|||||||
public class CrosshairMod extends Mod {
|
public class CrosshairMod extends Mod {
|
||||||
|
|
||||||
private int componentWidth = 0;
|
private int componentWidth = 0;
|
||||||
|
private final CLayoutManager layoutManager;
|
||||||
|
|
||||||
|
boolean[][] cDefault = new boolean[][]{
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, true, true, false, true, false, true, true, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, true, false, false, false, false, false}
|
||||||
|
};
|
||||||
|
|
||||||
public CrosshairMod() {
|
public CrosshairMod() {
|
||||||
super("Crosshair", ModCategory.MODS, "silentclient/icons/mods/crosshair.png");
|
super("Crosshair", ModCategory.MODS, "silentclient/icons/mods/crosshair.png");
|
||||||
}
|
layoutManager = new CLayoutManager();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setup() {
|
public void setup() {
|
||||||
@ -90,7 +109,9 @@ public class CrosshairMod extends Mod {
|
|||||||
options.add("Triangle");
|
options.add("Triangle");
|
||||||
options.add("Square");
|
options.add("Square");
|
||||||
options.add("None");
|
options.add("None");
|
||||||
|
|
||||||
|
this.addBooleanSetting("Use custom shape", this, false);
|
||||||
|
this.addCellSetting("Shape", this, cDefault);
|
||||||
this.addModeSetting("Type", this, "Cross", options);
|
this.addModeSetting("Type", this, "Cross", options);
|
||||||
this.addColorSetting("Crosshair Color", this, new Color(255, 255, 255));
|
this.addColorSetting("Crosshair Color", this, new Color(255, 255, 255));
|
||||||
this.addColorSetting("Player Color", this, new Color(176,46,38));
|
this.addColorSetting("Player Color", this, new Color(176,46,38));
|
||||||
@ -111,6 +132,10 @@ public class CrosshairMod extends Mod {
|
|||||||
this.addBooleanSetting("Vanilla Blendering", this, true);
|
this.addBooleanSetting("Vanilla Blendering", this, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean[][] getCells() {
|
||||||
|
return Client.getInstance().getSettingsManager().getSettingByClass(CrosshairMod.class, "Shape").getCells();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int customComponentHeight() {
|
public int customComponentHeight() {
|
||||||
boolean preset = Client.getInstance().getSettingsManager().getSettingByClass(CrosshairMod.class, "Preset Crosshair").getValBoolean();
|
boolean preset = Client.getInstance().getSettingsManager().getSettingByClass(CrosshairMod.class, "Preset Crosshair").getValBoolean();
|
||||||
@ -352,7 +377,27 @@ public class CrosshairMod extends Mod {
|
|||||||
if(Client.getInstance().getSettingsManager().getSettingByClass(CrosshairMod.class, "Preset Crosshair").getValBoolean()) {
|
if(Client.getInstance().getSettingsManager().getSettingByClass(CrosshairMod.class, "Preset Crosshair").getValBoolean()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
renderCrosshair();
|
if(Client.getInstance().getSettingsManager().getSettingByClass(CrosshairMod.class, "Use custom Shape").getValBoolean()) {
|
||||||
|
renderCustomShape();
|
||||||
|
} else {
|
||||||
|
renderCrosshair();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void renderCustomShape() {
|
||||||
|
ScaledResolution res = new ScaledResolution(mc);
|
||||||
|
|
||||||
|
for (int row = 0; row < 11; row++) {
|
||||||
|
for (int col = 0; col < 11; col++) {
|
||||||
|
if (getCells()[row][col] && isToggled()) {
|
||||||
|
RenderUtils.drawRect(
|
||||||
|
(float) res.getScaledWidth() / 2 - 5 + col,
|
||||||
|
(float) res.getScaledHeight() / 2 - 5 + row,
|
||||||
|
1, 1, Client.getInstance().getSettingsManager().getSettingByClass(CrosshairMod.class, "Crosshair Color").getValColor().getRGB()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void renderCrosshair() {
|
public void renderCrosshair() {
|
@ -19,7 +19,7 @@ import net.silentclient.client.Client;
|
|||||||
import net.silentclient.client.event.EventTarget;
|
import net.silentclient.client.event.EventTarget;
|
||||||
import net.silentclient.client.event.impl.ClientTickEvent;
|
import net.silentclient.client.event.impl.ClientTickEvent;
|
||||||
import net.silentclient.client.gui.lite.clickgui.utils.GlUtils;
|
import net.silentclient.client.gui.lite.clickgui.utils.GlUtils;
|
||||||
import net.silentclient.client.mods.render.CrosshairMod;
|
import net.silentclient.client.mods.render.crosshair.CrosshairMod;
|
||||||
import net.silentclient.client.mods.settings.FPSBoostMod;
|
import net.silentclient.client.mods.settings.FPSBoostMod;
|
||||||
import net.silentclient.client.mods.settings.RenderMod;
|
import net.silentclient.client.mods.settings.RenderMod;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user