mirror of
https://github.com/Wurst-Imperium/Wurst7.git
synced 2024-09-20 01:12:13 +02:00
Merge branch '1.16.1'
Conflicts: gradle.properties src/main/java/net/wurstclient/WurstClient.java src/main/java/net/wurstclient/options/ZoomManagerScreen.java
This commit is contained in:
commit
8e57bb1b38
@ -4,15 +4,15 @@ org.gradle.jvmargs=-Xmx1G
|
||||
# Fabric Properties
|
||||
# check these on https://modmuss50.me/fabric.html and
|
||||
# https://www.curseforge.com/minecraft/mc-mods/fabric-api
|
||||
minecraft_version=1.15.2
|
||||
yarn_mappings=1.15.2+build.17
|
||||
minecraft_version=1.16.1
|
||||
yarn_mappings=1.16.1+build.1
|
||||
loader_version=0.8.8+build.202
|
||||
|
||||
#Fabric api
|
||||
fabric_version=0.13.1+build.316-1.15
|
||||
fabric_version=0.13.1+build.370-1.16
|
||||
|
||||
# Mod Properties
|
||||
mod_version = v7.2-MC1.15.2
|
||||
mod_version = v7.2-MC1.16.1
|
||||
maven_group = net.wurstclient
|
||||
archives_base_name = Wurst-Client
|
||||
|
||||
|
@ -57,7 +57,7 @@ public enum WurstClient
|
||||
public static final IMinecraftClient IMC = (IMinecraftClient)MC;
|
||||
|
||||
public static final String VERSION = "7.2";
|
||||
public static final String MC_VERSION = "1.15.2";
|
||||
public static final String MC_VERSION = "1.16.1";
|
||||
|
||||
private WurstAnalytics analytics;
|
||||
private EventManager eventManager;
|
||||
|
@ -30,7 +30,7 @@ public class FlyPathProcessor extends PathProcessor
|
||||
public void process()
|
||||
{
|
||||
// get positions
|
||||
BlockPos pos = new BlockPos(MC.player);
|
||||
BlockPos pos = new BlockPos(MC.player.getPos());
|
||||
Vec3d posVec = MC.player.getPos();
|
||||
BlockPos nextPos = path.get(index);
|
||||
int posIndex = path.indexOf(pos);
|
||||
@ -44,9 +44,10 @@ public class FlyPathProcessor extends PathProcessor
|
||||
ticksOffPath = 0;
|
||||
|
||||
// update index
|
||||
if(posIndex > index || posVec.x >= nextBox.x1 && posVec.x <= nextBox.x2
|
||||
&& posVec.y >= nextBox.y1 && posVec.y <= nextBox.y2
|
||||
&& posVec.z >= nextBox.z1 && posVec.z <= nextBox.z2)
|
||||
if(posIndex > index
|
||||
|| posVec.x >= nextBox.minX && posVec.x <= nextBox.maxX
|
||||
&& posVec.y >= nextBox.minY && posVec.y <= nextBox.maxY
|
||||
&& posVec.z >= nextBox.minZ && posVec.z <= nextBox.maxZ)
|
||||
{
|
||||
if(posIndex > index)
|
||||
index = posIndex + 1;
|
||||
@ -71,18 +72,17 @@ public class FlyPathProcessor extends PathProcessor
|
||||
|
||||
lockControls();
|
||||
MC.player.abilities.flying = creativeFlying;
|
||||
boolean x = posVec.x < nextBox.x1 || posVec.x > nextBox.x2;
|
||||
boolean y = posVec.y < nextBox.y1 || posVec.y > nextBox.y2;
|
||||
boolean z = posVec.z < nextBox.z1 || posVec.z > nextBox.z2;
|
||||
boolean x = posVec.x < nextBox.minX || posVec.x > nextBox.maxX;
|
||||
boolean y = posVec.y < nextBox.minY || posVec.y > nextBox.maxY;
|
||||
boolean z = posVec.z < nextBox.minZ || posVec.z > nextBox.maxZ;
|
||||
boolean horizontal = x || z;
|
||||
|
||||
// face next position
|
||||
if(horizontal)
|
||||
{
|
||||
facePosition(nextPos);
|
||||
if(Math.abs(MathHelper
|
||||
.wrapDegrees(RotationUtils.getHorizontalAngleToLookVec(
|
||||
new Vec3d(nextPos).add(0.5, 0.5, 0.5)))) > 1)
|
||||
if(Math.abs(MathHelper.wrapDegrees(RotationUtils
|
||||
.getHorizontalAngleToLookVec(Vec3d.ofCenter(nextPos)))) > 1)
|
||||
return;
|
||||
}
|
||||
|
||||
@ -123,9 +123,9 @@ public class FlyPathProcessor extends PathProcessor
|
||||
MC.options.keyForward.setPressed(true);
|
||||
|
||||
if(MC.player.horizontalCollision)
|
||||
if(posVec.y > nextBox.y2)
|
||||
if(posVec.y > nextBox.maxY)
|
||||
MC.options.keySneak.setPressed(true);
|
||||
else if(posVec.y < nextBox.y1)
|
||||
else if(posVec.y < nextBox.minY)
|
||||
MC.options.keyJump.setPressed(true);
|
||||
|
||||
// vertical movement
|
||||
@ -138,7 +138,7 @@ public class FlyPathProcessor extends PathProcessor
|
||||
return;
|
||||
}
|
||||
|
||||
if(posVec.y < nextBox.y1)
|
||||
if(posVec.y < nextBox.minY)
|
||||
MC.options.keyJump.setPressed(true);
|
||||
else
|
||||
MC.options.keySneak.setPressed(true);
|
||||
|
@ -58,12 +58,12 @@ public class PathFinder
|
||||
|
||||
public PathFinder(BlockPos goal)
|
||||
{
|
||||
if(WurstClient.MC.player.onGround)
|
||||
if(WurstClient.MC.player.isOnGround())
|
||||
start = new PathPos(new BlockPos(WurstClient.MC.player.getX(),
|
||||
WurstClient.MC.player.getY() + 0.5,
|
||||
WurstClient.MC.player.getZ()));
|
||||
else
|
||||
start = new PathPos(new BlockPos(WurstClient.MC.player));
|
||||
start = new PathPos(new BlockPos(WurstClient.MC.player.getPos()));
|
||||
this.goal = goal;
|
||||
|
||||
costMap.put(start, 0F);
|
||||
|
@ -58,7 +58,7 @@ public abstract class PathProcessor
|
||||
protected final void facePosition(BlockPos pos)
|
||||
{
|
||||
WURST.getRotationFaker()
|
||||
.faceVectorClientIgnorePitch(new Vec3d(pos).add(0.5, 0.5, 0.5));
|
||||
.faceVectorClientIgnorePitch(Vec3d.ofCenter(pos));
|
||||
}
|
||||
|
||||
public static final void lockControls()
|
||||
|
@ -31,12 +31,12 @@ public class WalkPathProcessor extends PathProcessor
|
||||
{
|
||||
// get positions
|
||||
BlockPos pos;
|
||||
if(WurstClient.MC.player.onGround)
|
||||
if(WurstClient.MC.player.isOnGround())
|
||||
pos = new BlockPos(WurstClient.MC.player.getX(),
|
||||
WurstClient.MC.player.getY() + 0.5,
|
||||
WurstClient.MC.player.getZ());
|
||||
else
|
||||
pos = new BlockPos(WurstClient.MC.player);
|
||||
pos = new BlockPos(WurstClient.MC.player.getPos());
|
||||
PathPos nextPos = path.get(index);
|
||||
int posIndex = path.indexOf(pos);
|
||||
|
||||
@ -69,9 +69,8 @@ public class WalkPathProcessor extends PathProcessor
|
||||
|
||||
// face next position
|
||||
facePosition(nextPos);
|
||||
if(MathHelper
|
||||
.wrapDegrees(Math.abs(RotationUtils.getHorizontalAngleToLookVec(
|
||||
new Vec3d(nextPos).add(0.5, 0.5, 0.5)))) > 90)
|
||||
if(MathHelper.wrapDegrees(Math.abs(RotationUtils
|
||||
.getHorizontalAngleToLookVec(Vec3d.ofCenter(nextPos)))) > 90)
|
||||
return;
|
||||
|
||||
if(WURST.getHax().jesusHack.isEnabled())
|
||||
@ -134,7 +133,7 @@ public class WalkPathProcessor extends PathProcessor
|
||||
index++;
|
||||
|
||||
// walk off the edge
|
||||
if(WurstClient.MC.player.onGround)
|
||||
if(WurstClient.MC.player.isOnGround())
|
||||
MC.options.keyForward.setPressed(true);
|
||||
}
|
||||
}
|
||||
|
@ -68,8 +68,9 @@ public final class Alt implements Comparable<Alt>
|
||||
{
|
||||
cracked = true;
|
||||
return "";
|
||||
}else
|
||||
return password;
|
||||
}
|
||||
|
||||
return password;
|
||||
}
|
||||
|
||||
public boolean isCracked()
|
||||
|
@ -17,6 +17,7 @@ import net.minecraft.client.gui.DrawableHelper;
|
||||
import net.minecraft.client.network.AbstractClientPlayerEntity;
|
||||
import net.minecraft.client.texture.PlayerSkinTexture;
|
||||
import net.minecraft.client.util.DefaultSkinHelper;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.wurstclient.WurstClient;
|
||||
@ -51,8 +52,8 @@ public final class AltRenderer
|
||||
loadedSkins.add(name);
|
||||
}
|
||||
|
||||
public static void drawAltFace(String name, int x, int y, int w, int h,
|
||||
boolean selected)
|
||||
public static void drawAltFace(MatrixStack matrixStack, String name, int x,
|
||||
int y, int w, int h, boolean selected)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -69,14 +70,14 @@ public final class AltRenderer
|
||||
int fh = 192;
|
||||
float u = 24;
|
||||
float v = 24;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
// Hat
|
||||
fw = 192;
|
||||
fh = 192;
|
||||
u = 120;
|
||||
v = 24;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
GL11.glDisable(GL11.GL_BLEND);
|
||||
|
||||
@ -86,8 +87,8 @@ public final class AltRenderer
|
||||
}
|
||||
}
|
||||
|
||||
public static void drawAltBody(String name, int x, int y, int width,
|
||||
int height)
|
||||
public static void drawAltBody(MatrixStack matrixStack, String name, int x,
|
||||
int y, int width, int height)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -109,7 +110,7 @@ public final class AltRenderer
|
||||
int fh = height * 2;
|
||||
float u = height / 4;
|
||||
float v = height / 4;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
// Hat
|
||||
x = x + 0;
|
||||
@ -118,7 +119,7 @@ public final class AltRenderer
|
||||
h = height / 4;
|
||||
u = height / 4 * 5;
|
||||
v = height / 4;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
// Chest
|
||||
x = x + 0;
|
||||
@ -127,7 +128,7 @@ public final class AltRenderer
|
||||
h = height / 8 * 3;
|
||||
u = height / 4 * 2.5F;
|
||||
v = height / 4 * 2.5F;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
// Jacket
|
||||
x = x + 0;
|
||||
@ -136,7 +137,7 @@ public final class AltRenderer
|
||||
h = height / 8 * 3;
|
||||
u = height / 4 * 2.5F;
|
||||
v = height / 4 * 4.5F;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
// Left Arm
|
||||
x = x - width / 16 * (slim ? 3 : 4);
|
||||
@ -145,7 +146,7 @@ public final class AltRenderer
|
||||
h = height / 8 * 3;
|
||||
u = height / 4 * 5.5F;
|
||||
v = height / 4 * 2.5F;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
// Left Sleeve
|
||||
x = x + 0;
|
||||
@ -154,7 +155,7 @@ public final class AltRenderer
|
||||
h = height / 8 * 3;
|
||||
u = height / 4 * 5.5F;
|
||||
v = height / 4 * 4.5F;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
// Right Arm
|
||||
x = x + width / 16 * (slim ? 11 : 12);
|
||||
@ -163,7 +164,7 @@ public final class AltRenderer
|
||||
h = height / 8 * 3;
|
||||
u = height / 4 * 5.5F;
|
||||
v = height / 4 * 2.5F;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
// Right Sleeve
|
||||
x = x + 0;
|
||||
@ -172,7 +173,7 @@ public final class AltRenderer
|
||||
h = height / 8 * 3;
|
||||
u = height / 4 * 5.5F;
|
||||
v = height / 4 * 4.5F;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
// Left Leg
|
||||
x = x - width / 2;
|
||||
@ -181,7 +182,7 @@ public final class AltRenderer
|
||||
h = height / 8 * 3;
|
||||
u = height / 4 * 0.5F;
|
||||
v = height / 4 * 2.5F;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
// Left Pants
|
||||
x = x + 0;
|
||||
@ -190,7 +191,7 @@ public final class AltRenderer
|
||||
h = height / 8 * 3;
|
||||
u = height / 4 * 0.5F;
|
||||
v = height / 4 * 4.5F;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
// Right Leg
|
||||
x = x + width / 4;
|
||||
@ -199,7 +200,7 @@ public final class AltRenderer
|
||||
h = height / 8 * 3;
|
||||
u = height / 4 * 0.5F;
|
||||
v = height / 4 * 2.5F;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
// Right Pants
|
||||
x = x + 0;
|
||||
@ -208,7 +209,7 @@ public final class AltRenderer
|
||||
h = height / 8 * 3;
|
||||
u = height / 4 * 0.5F;
|
||||
v = height / 4 * 4.5F;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
GL11.glDisable(GL11.GL_BLEND);
|
||||
|
||||
@ -218,8 +219,8 @@ public final class AltRenderer
|
||||
}
|
||||
}
|
||||
|
||||
public static void drawAltBack(String name, int x, int y, int width,
|
||||
int height)
|
||||
public static void drawAltBack(MatrixStack matrixStack, String name, int x,
|
||||
int y, int width, int height)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -241,7 +242,7 @@ public final class AltRenderer
|
||||
int fh = height * 2;
|
||||
float u = height / 4 * 3;
|
||||
float v = height / 4;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
// Hat
|
||||
x = x + 0;
|
||||
@ -250,7 +251,7 @@ public final class AltRenderer
|
||||
h = height / 4;
|
||||
u = height / 4 * 7;
|
||||
v = height / 4;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
// Chest
|
||||
x = x + 0;
|
||||
@ -259,7 +260,7 @@ public final class AltRenderer
|
||||
h = height / 8 * 3;
|
||||
u = height / 4 * 4;
|
||||
v = height / 4 * 2.5F;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
// Jacket
|
||||
x = x + 0;
|
||||
@ -268,7 +269,7 @@ public final class AltRenderer
|
||||
h = height / 8 * 3;
|
||||
u = height / 4 * 4;
|
||||
v = height / 4 * 4.5F;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
// Left Arm
|
||||
x = x - width / 16 * (slim ? 3 : 4);
|
||||
@ -277,7 +278,7 @@ public final class AltRenderer
|
||||
h = height / 8 * 3;
|
||||
u = height / 4 * (slim ? 6.375F : 6.5F);
|
||||
v = height / 4 * 2.5F;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
// Left Sleeve
|
||||
x = x + 0;
|
||||
@ -286,7 +287,7 @@ public final class AltRenderer
|
||||
h = height / 8 * 3;
|
||||
u = height / 4 * (slim ? 6.375F : 6.5F);
|
||||
v = height / 4 * 4.5F;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
// Right Arm
|
||||
x = x + width / 16 * (slim ? 11 : 12);
|
||||
@ -295,7 +296,7 @@ public final class AltRenderer
|
||||
h = height / 8 * 3;
|
||||
u = height / 4 * (slim ? 6.375F : 6.5F);
|
||||
v = height / 4 * 2.5F;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
// Right Sleeve
|
||||
x = x + 0;
|
||||
@ -304,7 +305,7 @@ public final class AltRenderer
|
||||
h = height / 8 * 3;
|
||||
u = height / 4 * (slim ? 6.375F : 6.5F);
|
||||
v = height / 4 * 4.5F;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
// Left Leg
|
||||
x = x - width / 2;
|
||||
@ -313,7 +314,7 @@ public final class AltRenderer
|
||||
h = height / 8 * 3;
|
||||
u = height / 4 * 1.5F;
|
||||
v = height / 4 * 2.5F;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
// Left Pants
|
||||
x = x + 0;
|
||||
@ -322,7 +323,7 @@ public final class AltRenderer
|
||||
h = height / 8 * 3;
|
||||
u = height / 4 * 1.5F;
|
||||
v = height / 4 * 4.5F;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
// Right Leg
|
||||
x = x + width / 4;
|
||||
@ -331,7 +332,7 @@ public final class AltRenderer
|
||||
h = height / 8 * 3;
|
||||
u = height / 4 * 1.5F;
|
||||
v = height / 4 * 2.5F;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
// Right Pants
|
||||
x = x + 0;
|
||||
@ -340,7 +341,7 @@ public final class AltRenderer
|
||||
h = height / 8 * 3;
|
||||
u = height / 4 * 1.5F;
|
||||
v = height / 4 * 4.5F;
|
||||
DrawableHelper.blit(x, y, u, v, w, h, fw, fh);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, u, v, w, h, fw, fh);
|
||||
|
||||
GL11.glDisable(GL11.GL_BLEND);
|
||||
|
||||
|
@ -74,15 +74,15 @@ public final class Encryption
|
||||
}
|
||||
}
|
||||
|
||||
public JsonElement parseFile(Path path) throws IOException, JsonException
|
||||
public byte[] decrypt(byte[] bytes)
|
||||
{
|
||||
try(BufferedReader reader = Files.newBufferedReader(path))
|
||||
try
|
||||
{
|
||||
return JsonUtils.JSON_PARSER.parse(loadEncryptedFile(path));
|
||||
return decryptCipher.doFinal(Base64.getDecoder().decode(bytes));
|
||||
|
||||
}catch(JsonParseException e)
|
||||
}catch(IllegalArgumentException | GeneralSecurityException e)
|
||||
{
|
||||
throw new JsonException(e);
|
||||
throw new CrashException(CrashReport.create(e, "Decrypting bytes"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -98,6 +98,18 @@ public final class Encryption
|
||||
}
|
||||
}
|
||||
|
||||
public JsonElement parseFile(Path path) throws IOException, JsonException
|
||||
{
|
||||
try(BufferedReader reader = Files.newBufferedReader(path))
|
||||
{
|
||||
return JsonUtils.JSON_PARSER.parse(loadEncryptedFile(path));
|
||||
|
||||
}catch(JsonParseException e)
|
||||
{
|
||||
throw new JsonException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public WsonArray parseFileToArray(Path path)
|
||||
throws IOException, JsonException
|
||||
{
|
||||
@ -120,28 +132,15 @@ public final class Encryption
|
||||
return new WsonObject(json.getAsJsonObject());
|
||||
}
|
||||
|
||||
public byte[] decrypt(byte[] bytes)
|
||||
public byte[] encrypt(byte[] bytes)
|
||||
{
|
||||
try
|
||||
{
|
||||
return decryptCipher.doFinal(Base64.getDecoder().decode(bytes));
|
||||
return Base64.getEncoder().encode(encryptCipher.doFinal(bytes));
|
||||
|
||||
}catch(IllegalArgumentException | GeneralSecurityException e)
|
||||
}catch(GeneralSecurityException e)
|
||||
{
|
||||
throw new CrashException(CrashReport.create(e, "Decrypting bytes"));
|
||||
}
|
||||
}
|
||||
|
||||
public void toEncryptedJson(JsonObject json, Path path)
|
||||
throws IOException, JsonException
|
||||
{
|
||||
try
|
||||
{
|
||||
saveEncryptedFile(path, JsonUtils.PRETTY_GSON.toJson(json));
|
||||
|
||||
}catch(JsonParseException e)
|
||||
{
|
||||
throw new JsonException(e);
|
||||
throw new CrashException(CrashReport.create(e, "Encrypting bytes"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -157,15 +156,16 @@ public final class Encryption
|
||||
}
|
||||
}
|
||||
|
||||
public byte[] encrypt(byte[] bytes)
|
||||
public void toEncryptedJson(JsonObject json, Path path)
|
||||
throws IOException, JsonException
|
||||
{
|
||||
try
|
||||
{
|
||||
return Base64.getEncoder().encode(encryptCipher.doFinal(bytes));
|
||||
saveEncryptedFile(path, JsonUtils.PRETTY_GSON.toJson(json));
|
||||
|
||||
}catch(GeneralSecurityException e)
|
||||
}catch(JsonParseException e)
|
||||
{
|
||||
throw new CrashException(CrashReport.create(e, "Encrypting bytes"));
|
||||
throw new JsonException(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -31,6 +31,6 @@ public final class AddAltScreen extends AltEditorScreen
|
||||
protected void pressDoneButton()
|
||||
{
|
||||
altManager.add(getEmail(), getPassword(), false);
|
||||
minecraft.openScreen(prevScreen);
|
||||
client.openScreen(prevScreen);
|
||||
}
|
||||
}
|
||||
|
@ -28,6 +28,8 @@ import com.google.gson.JsonObject;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.gui.widget.ButtonWidget;
|
||||
import net.minecraft.client.gui.widget.TextFieldWidget;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.text.LiteralText;
|
||||
import net.minecraft.text.Text;
|
||||
import net.minecraft.util.Util;
|
||||
import net.wurstclient.WurstClient;
|
||||
@ -59,32 +61,34 @@ public abstract class AltEditorScreen extends Screen
|
||||
@Override
|
||||
public final void init()
|
||||
{
|
||||
addButton(
|
||||
doneButton = new ButtonWidget(width / 2 - 100, height / 4 + 72 + 12,
|
||||
200, 20, getDoneButtonText(), b -> pressDoneButton()));
|
||||
addButton(doneButton =
|
||||
new ButtonWidget(width / 2 - 100, height / 4 + 72 + 12, 200, 20,
|
||||
new LiteralText(getDoneButtonText()), b -> pressDoneButton()));
|
||||
|
||||
addButton(new ButtonWidget(width / 2 - 100, height / 4 + 120 + 12, 200,
|
||||
20, "Cancel", b -> minecraft.openScreen(prevScreen)));
|
||||
20, new LiteralText("Cancel"), b -> client.openScreen(prevScreen)));
|
||||
|
||||
addButton(new ButtonWidget(width / 2 - 100, height / 4 + 96 + 12, 200,
|
||||
20, "Random Name",
|
||||
20, new LiteralText("Random Name"),
|
||||
b -> emailBox.setText(NameGenerator.generateName())));
|
||||
|
||||
addButton(stealSkinButton =
|
||||
new ButtonWidget(width - (width / 2 - 100) / 2 - 64, height - 32,
|
||||
128, 20, "Steal Skin", b -> message = stealSkin(getEmail())));
|
||||
128, 20, new LiteralText("Steal Skin"),
|
||||
b -> message = stealSkin(getEmail())));
|
||||
|
||||
addButton(new ButtonWidget((width / 2 - 100) / 2 - 64, height - 32, 128,
|
||||
20, "Open Skin Folder", b -> openSkinFolder()));
|
||||
20, new LiteralText("Open Skin Folder"), b -> openSkinFolder()));
|
||||
|
||||
emailBox = new TextFieldWidget(font, width / 2 - 100, 60, 200, 20, "");
|
||||
emailBox = new TextFieldWidget(textRenderer, width / 2 - 100, 60, 200,
|
||||
20, new LiteralText(""));
|
||||
emailBox.setMaxLength(48);
|
||||
emailBox.setSelected(true);
|
||||
emailBox.setText(getDefaultEmail());
|
||||
children.add(emailBox);
|
||||
|
||||
passwordBox =
|
||||
new TextFieldWidget(font, width / 2 - 100, 100, 200, 20, "");
|
||||
passwordBox = new TextFieldWidget(textRenderer, width / 2 - 100, 100,
|
||||
200, 20, new LiteralText(""));
|
||||
passwordBox.setText(getDefaultPassword());
|
||||
passwordBox.setRenderTextProvider((text, int_1) -> {
|
||||
String stars = "";
|
||||
@ -143,7 +147,7 @@ public abstract class AltEditorScreen extends Screen
|
||||
|
||||
protected String getDefaultEmail()
|
||||
{
|
||||
return minecraft.getSession().getUsername();
|
||||
return client.getSession().getUsername();
|
||||
}
|
||||
|
||||
protected String getDefaultPassword()
|
||||
@ -312,24 +316,28 @@ public abstract class AltEditorScreen extends Screen
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(int mouseX, int mouseY, float partialTicks)
|
||||
public void render(MatrixStack matrixStack, int mouseX, int mouseY,
|
||||
float partialTicks)
|
||||
{
|
||||
renderBackground();
|
||||
renderBackground(matrixStack);
|
||||
|
||||
// skin preview
|
||||
AltRenderer.drawAltBack(emailBox.getText(), (width / 2 - 100) / 2 - 64,
|
||||
height / 2 - 128, 128, 256);
|
||||
AltRenderer.drawAltBody(emailBox.getText(),
|
||||
AltRenderer.drawAltBack(matrixStack, emailBox.getText(),
|
||||
(width / 2 - 100) / 2 - 64, height / 2 - 128, 128, 256);
|
||||
AltRenderer.drawAltBody(matrixStack, emailBox.getText(),
|
||||
width - (width / 2 - 100) / 2 - 64, height / 2 - 128, 128, 256);
|
||||
|
||||
// text
|
||||
drawString(font, "Name or E-Mail", width / 2 - 100, 47, 10526880);
|
||||
drawString(font, "Password", width / 2 - 100, 87, 10526880);
|
||||
drawCenteredString(font, message, width / 2, 142, 16777215);
|
||||
drawStringWithShadow(matrixStack, textRenderer, "Name or E-Mail",
|
||||
width / 2 - 100, 47, 10526880);
|
||||
drawStringWithShadow(matrixStack, textRenderer, "Password",
|
||||
width / 2 - 100, 87, 10526880);
|
||||
drawCenteredString(matrixStack, textRenderer, message, width / 2, 142,
|
||||
16777215);
|
||||
|
||||
// text boxes
|
||||
emailBox.render(mouseX, mouseY, partialTicks);
|
||||
passwordBox.render(mouseX, mouseY, partialTicks);
|
||||
emailBox.render(matrixStack, mouseX, mouseY, partialTicks);
|
||||
passwordBox.render(matrixStack, mouseX, mouseY, partialTicks);
|
||||
|
||||
// red flash for errors
|
||||
if(errorTimer > 0)
|
||||
@ -355,6 +363,6 @@ public abstract class AltEditorScreen extends Screen
|
||||
errorTimer--;
|
||||
}
|
||||
|
||||
super.render(mouseX, mouseY, partialTicks);
|
||||
super.render(matrixStack, mouseX, mouseY, partialTicks);
|
||||
}
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.gui.screen.ConfirmScreen;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.gui.widget.ButtonWidget;
|
||||
import net.minecraft.client.gui.widget.ListWidget;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.text.LiteralText;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.wurstclient.WurstClient;
|
||||
@ -31,6 +31,7 @@ import net.wurstclient.altmanager.AltRenderer;
|
||||
import net.wurstclient.altmanager.ImportAltsFileChooser;
|
||||
import net.wurstclient.altmanager.LoginManager;
|
||||
import net.wurstclient.altmanager.NameGenerator;
|
||||
import net.wurstclient.util.ListWidget;
|
||||
import net.wurstclient.util.MultiProcessingUtils;
|
||||
|
||||
public final class AltManagerScreen extends Screen
|
||||
@ -57,37 +58,38 @@ public final class AltManagerScreen extends Screen
|
||||
@Override
|
||||
public void init()
|
||||
{
|
||||
listGui = new ListGui(minecraft, this, altManager.getList());
|
||||
listGui = new ListGui(client, this, altManager.getList());
|
||||
|
||||
if(altManager.getList().isEmpty() && shouldAsk)
|
||||
minecraft.openScreen(new ConfirmScreen(this::confirmGenerate,
|
||||
client.openScreen(new ConfirmScreen(this::confirmGenerate,
|
||||
new LiteralText("Your alt list is empty."), new LiteralText(
|
||||
"Would you like some random alts to get started?")));
|
||||
|
||||
addButton(useButton = new ButtonWidget(width / 2 - 154, height - 52,
|
||||
100, 20, "Use", b -> pressUse()));
|
||||
100, 20, new LiteralText("Use"), b -> pressUse()));
|
||||
|
||||
addButton(new ButtonWidget(width / 2 - 50, height - 52, 100, 20,
|
||||
"Direct Login",
|
||||
b -> minecraft.openScreen(new DirectLoginScreen(this))));
|
||||
new LiteralText("Direct Login"),
|
||||
b -> client.openScreen(new DirectLoginScreen(this))));
|
||||
|
||||
addButton(new ButtonWidget(width / 2 + 54, height - 52, 100, 20, "Add",
|
||||
b -> minecraft.openScreen(new AddAltScreen(this, altManager))));
|
||||
addButton(new ButtonWidget(width / 2 + 54, height - 52, 100, 20,
|
||||
new LiteralText("Add"),
|
||||
b -> client.openScreen(new AddAltScreen(this, altManager))));
|
||||
|
||||
addButton(starButton = new ButtonWidget(width / 2 - 154, height - 28,
|
||||
75, 20, "Star", b -> pressStar()));
|
||||
75, 20, new LiteralText("Star"), b -> pressStar()));
|
||||
|
||||
addButton(editButton = new ButtonWidget(width / 2 - 76, height - 28, 74,
|
||||
20, "Edit", b -> pressEdit()));
|
||||
20, new LiteralText("Edit"), b -> pressEdit()));
|
||||
|
||||
addButton(deleteButton = new ButtonWidget(width / 2 + 2, height - 28,
|
||||
74, 20, "Delete", b -> pressDelete()));
|
||||
74, 20, new LiteralText("Delete"), b -> pressDelete()));
|
||||
|
||||
addButton(new ButtonWidget(width / 2 + 80, height - 28, 75, 20,
|
||||
"Cancel", b -> minecraft.openScreen(prevScreen)));
|
||||
new LiteralText("Cancel"), b -> client.openScreen(prevScreen)));
|
||||
|
||||
addButton(new ButtonWidget(8, 8, 100, 20, "Import Alts",
|
||||
b -> pressImportAlts()));
|
||||
addButton(new ButtonWidget(8, 8, 100, 20,
|
||||
new LiteralText("Import Alts"), b -> pressImportAlts()));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -152,7 +154,7 @@ public final class AltManagerScreen extends Screen
|
||||
if(alt.isCracked())
|
||||
{
|
||||
LoginManager.changeCrackedName(alt.getEmail());
|
||||
minecraft.openScreen(prevScreen);
|
||||
client.openScreen(prevScreen);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -165,8 +167,8 @@ public final class AltManagerScreen extends Screen
|
||||
}
|
||||
|
||||
altManager.setChecked(listGui.selected,
|
||||
minecraft.getSession().getUsername());
|
||||
minecraft.openScreen(prevScreen);
|
||||
client.getSession().getUsername());
|
||||
client.openScreen(prevScreen);
|
||||
}
|
||||
|
||||
private void pressStar()
|
||||
@ -179,7 +181,7 @@ public final class AltManagerScreen extends Screen
|
||||
private void pressEdit()
|
||||
{
|
||||
Alt alt = listGui.getSelectedAlt();
|
||||
minecraft.openScreen(new EditAltScreen(this, altManager, alt));
|
||||
client.openScreen(new EditAltScreen(this, altManager, alt));
|
||||
}
|
||||
|
||||
private void pressDelete()
|
||||
@ -192,8 +194,8 @@ public final class AltManagerScreen extends Screen
|
||||
"\"" + altName + "\" will be lost forever! (A long time!)");
|
||||
|
||||
ConfirmScreen screen = new ConfirmScreen(this::confirmRemove, text,
|
||||
message, "Delete", "Cancel");
|
||||
minecraft.openScreen(screen);
|
||||
message, new LiteralText("Delete"), new LiteralText("Cancel"));
|
||||
client.openScreen(screen);
|
||||
}
|
||||
|
||||
private void pressImportAlts()
|
||||
@ -248,7 +250,7 @@ public final class AltManagerScreen extends Screen
|
||||
}
|
||||
|
||||
shouldAsk = false;
|
||||
minecraft.openScreen(this);
|
||||
client.openScreen(this);
|
||||
}
|
||||
|
||||
private void confirmRemove(boolean confirmed)
|
||||
@ -256,34 +258,37 @@ public final class AltManagerScreen extends Screen
|
||||
if(confirmed)
|
||||
altManager.remove(listGui.selected);
|
||||
|
||||
minecraft.openScreen(this);
|
||||
client.openScreen(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(int mouseX, int mouseY, float partialTicks)
|
||||
public void render(MatrixStack matrixStack, int mouseX, int mouseY,
|
||||
float partialTicks)
|
||||
{
|
||||
renderBackground();
|
||||
listGui.render(mouseX, mouseY, partialTicks);
|
||||
renderBackground(matrixStack);
|
||||
listGui.render(matrixStack, mouseX, mouseY, partialTicks);
|
||||
|
||||
// skin preview
|
||||
if(listGui.getSelectedSlot() != -1
|
||||
&& listGui.getSelectedSlot() < altManager.getList().size())
|
||||
{
|
||||
Alt alt = listGui.getSelectedAlt();
|
||||
AltRenderer.drawAltBack(alt.getNameOrEmail(),
|
||||
AltRenderer.drawAltBack(matrixStack, alt.getNameOrEmail(),
|
||||
(width / 2 - 125) / 2 - 32, height / 2 - 64 - 9, 64, 128);
|
||||
AltRenderer.drawAltBody(alt.getNameOrEmail(),
|
||||
AltRenderer.drawAltBody(matrixStack, alt.getNameOrEmail(),
|
||||
width - (width / 2 - 140) / 2 - 32, height / 2 - 64 - 9, 64,
|
||||
128);
|
||||
}
|
||||
|
||||
// title text
|
||||
drawCenteredString(font, "Alt Manager", width / 2, 4, 16777215);
|
||||
drawCenteredString(font, "Alts: " + altManager.getList().size(),
|
||||
width / 2, 14, 10526880);
|
||||
drawCenteredString(font, "premium: " + altManager.getNumPremium()
|
||||
+ ", cracked: " + altManager.getNumCracked(), width / 2, 24,
|
||||
10526880);
|
||||
drawCenteredString(matrixStack, textRenderer, "Alt Manager", width / 2,
|
||||
4, 16777215);
|
||||
drawCenteredString(matrixStack, textRenderer,
|
||||
"Alts: " + altManager.getList().size(), width / 2, 14, 10526880);
|
||||
drawCenteredString(
|
||||
matrixStack, textRenderer, "premium: " + altManager.getNumPremium()
|
||||
+ ", cracked: " + altManager.getNumCracked(),
|
||||
width / 2, 24, 10526880);
|
||||
|
||||
// red flash for errors
|
||||
if(errorTimer > 0)
|
||||
@ -309,7 +314,7 @@ public final class AltManagerScreen extends Screen
|
||||
errorTimer--;
|
||||
}
|
||||
|
||||
super.render(mouseX, mouseY, partialTicks);
|
||||
super.render(matrixStack, mouseX, mouseY, partialTicks);
|
||||
}
|
||||
|
||||
public static final class ListGui extends ListWidget
|
||||
@ -368,13 +373,13 @@ public final class AltManagerScreen extends Screen
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void renderItem(int id, int x, int y, int var4, int var5,
|
||||
int var6, float partialTicks)
|
||||
protected void renderItem(MatrixStack matrixStack, int id, int x, int y,
|
||||
int var4, int var5, int var6, float partialTicks)
|
||||
{
|
||||
Alt alt = list.get(id);
|
||||
|
||||
// green glow when logged in
|
||||
if(minecraft.getSession().getUsername().equals(alt.getName()))
|
||||
if(client.getSession().getUsername().equals(alt.getName()))
|
||||
{
|
||||
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
||||
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||
@ -401,12 +406,12 @@ public final class AltManagerScreen extends Screen
|
||||
}
|
||||
|
||||
// face
|
||||
AltRenderer.drawAltFace(alt.getNameOrEmail(), x + 1, y + 1, 24, 24,
|
||||
isSelectedItem(id));
|
||||
AltRenderer.drawAltFace(matrixStack, alt.getNameOrEmail(), x + 1,
|
||||
y + 1, 24, 24, isSelectedItem(id));
|
||||
|
||||
// name / email
|
||||
minecraft.textRenderer.draw("Name: " + alt.getNameOrEmail(), x + 31,
|
||||
y + 3, 10526880);
|
||||
client.textRenderer.draw(matrixStack,
|
||||
"Name: " + alt.getNameOrEmail(), x + 31, y + 3, 10526880);
|
||||
|
||||
// tags
|
||||
String tags = alt.isCracked() ? "\u00a78cracked" : "\u00a72premium";
|
||||
@ -414,7 +419,8 @@ public final class AltManagerScreen extends Screen
|
||||
tags += "\u00a7r, \u00a7estarred";
|
||||
if(alt.isUnchecked())
|
||||
tags += "\u00a7r, \u00a7cunchecked";
|
||||
minecraft.textRenderer.draw(tags, x + 31, y + 15, 10526880);
|
||||
client.textRenderer.draw(matrixStack, tags, x + 31, y + 15,
|
||||
10526880);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ public final class DirectLoginScreen extends AltEditorScreen
|
||||
message = LoginManager.login(getEmail(), getPassword());
|
||||
|
||||
if(message.isEmpty())
|
||||
minecraft.openScreen(new TitleScreen());
|
||||
client.openScreen(new TitleScreen());
|
||||
else
|
||||
doErrorEffect();
|
||||
}
|
||||
|
@ -47,6 +47,6 @@ public final class EditAltScreen extends AltEditorScreen
|
||||
protected void pressDoneButton()
|
||||
{
|
||||
altManager.edit(editedAlt, getEmail(), getPassword());
|
||||
minecraft.openScreen(prevScreen);
|
||||
client.openScreen(prevScreen);
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,9 @@ import com.google.gson.JsonObject;
|
||||
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.font.TextRenderer;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.text.LiteralText;
|
||||
import net.minecraft.text.Text;
|
||||
import net.wurstclient.Category;
|
||||
import net.wurstclient.Feature;
|
||||
import net.wurstclient.WurstClient;
|
||||
@ -443,7 +446,8 @@ public final class ClickGui
|
||||
}
|
||||
}
|
||||
|
||||
public void render(int mouseX, int mouseY, float partialTicks)
|
||||
public void render(MatrixStack matrixStack, int mouseX, int mouseY,
|
||||
float partialTicks)
|
||||
{
|
||||
updateColors();
|
||||
|
||||
@ -477,18 +481,19 @@ public final class ClickGui
|
||||
else
|
||||
window.stopDraggingScrollbar();
|
||||
|
||||
renderWindow(window, mouseX, mouseY, partialTicks);
|
||||
renderWindow(matrixStack, window, mouseX, mouseY, partialTicks);
|
||||
}
|
||||
|
||||
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
||||
renderPopupsAndTooltip(mouseX, mouseY);
|
||||
renderPopupsAndTooltip(matrixStack, mouseX, mouseY);
|
||||
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
GL11.glDisable(GL11.GL_BLEND);
|
||||
}
|
||||
|
||||
public void renderPopupsAndTooltip(int mouseX, int mouseY)
|
||||
public void renderPopupsAndTooltip(MatrixStack matrixStack, int mouseX,
|
||||
int mouseY)
|
||||
{
|
||||
// popups
|
||||
for(Popup popup : popups)
|
||||
@ -505,7 +510,7 @@ public final class ClickGui
|
||||
|
||||
int cMouseX = mouseX - x1;
|
||||
int cMouseY = mouseY - y1;
|
||||
popup.render(cMouseX, cMouseY);
|
||||
popup.render(matrixStack, cMouseX, cMouseY);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
@ -520,7 +525,7 @@ public final class ClickGui
|
||||
int th = lines.length * fr.fontHeight;
|
||||
for(String line : lines)
|
||||
{
|
||||
int lw = fr.getStringWidth(line);
|
||||
int lw = fr.getWidth(line);
|
||||
if(lw > tw)
|
||||
tw = lw;
|
||||
}
|
||||
@ -557,15 +562,15 @@ public final class ClickGui
|
||||
// text
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
for(int i = 0; i < lines.length; i++)
|
||||
fr.draw(lines[i], xt1 + 2, yt1 + 2 + i * fr.fontHeight,
|
||||
0xffffff);
|
||||
fr.draw(matrixStack, lines[i], xt1 + 2,
|
||||
yt1 + 2 + i * fr.fontHeight, 0xffffff);
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
||||
|
||||
public void renderPinnedWindows(float partialTicks)
|
||||
public void renderPinnedWindows(MatrixStack matrixStack, float partialTicks)
|
||||
{
|
||||
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
||||
@ -576,8 +581,8 @@ public final class ClickGui
|
||||
|
||||
for(Window window : windows)
|
||||
if(window.isPinned() && !window.isInvisible())
|
||||
renderWindow(window, Integer.MIN_VALUE, Integer.MIN_VALUE,
|
||||
partialTicks);
|
||||
renderWindow(matrixStack, window, Integer.MIN_VALUE,
|
||||
Integer.MIN_VALUE, partialTicks);
|
||||
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
@ -602,8 +607,8 @@ public final class ClickGui
|
||||
acColor = clickGui.getAcColor();
|
||||
}
|
||||
|
||||
private void renderWindow(Window window, int mouseX, int mouseY,
|
||||
float partialTicks)
|
||||
private void renderWindow(MatrixStack matrixStack, Window window,
|
||||
int mouseX, int mouseY, float partialTicks)
|
||||
{
|
||||
int x1 = window.getX();
|
||||
int y1 = window.getY();
|
||||
@ -751,7 +756,8 @@ public final class ClickGui
|
||||
int cMouseX = mouseX - x1;
|
||||
int cMouseY = mouseY - y4;
|
||||
for(int i = 0; i < window.countChildren(); i++)
|
||||
window.getChild(i).render(cMouseX, cMouseY, partialTicks);
|
||||
window.getChild(i).render(matrixStack, cMouseX, cMouseY,
|
||||
partialTicks);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
GL11.glDisable(GL11.GL_SCISSOR_TEST);
|
||||
@ -833,8 +839,10 @@ public final class ClickGui
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
GL11.glColor4f(1, 1, 1, 1);
|
||||
TextRenderer fr = MC.textRenderer;
|
||||
String title = fr.trimToWidth(window.getTitle(), x3 - x1);
|
||||
fr.draw(title, x1 + 2, y1 + 3, 0xf0f0f0);
|
||||
String title =
|
||||
((Text)fr.trimToWidth(new LiteralText(window.getTitle()), x3 - x1))
|
||||
.getString();
|
||||
fr.draw(matrixStack, title, x1 + 2, y1 + 3, 0xf0f0f0);
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
}
|
||||
|
||||
|
@ -10,6 +10,7 @@ package net.wurstclient.clickgui;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import net.minecraft.client.font.TextRenderer;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.wurstclient.WurstClient;
|
||||
import net.wurstclient.settings.EnumSetting;
|
||||
|
||||
@ -60,7 +61,7 @@ public final class ComboBoxPopup<T extends Enum<T>> extends Popup
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(int mouseX, int mouseY)
|
||||
public void render(MatrixStack matrixStack, int mouseX, int mouseY)
|
||||
{
|
||||
int x1 = getX();
|
||||
int x2 = x1 + getWidth();
|
||||
@ -86,7 +87,7 @@ public final class ComboBoxPopup<T extends Enum<T>> extends Popup
|
||||
boolean hValue = hovering && mouseY >= yi1 && mouseY < yi2;
|
||||
drawValueBackground(x1, x2, yi1, yi2, hValue);
|
||||
|
||||
drawValueName(x1, yi1, value);
|
||||
drawValueName(matrixStack, x1, yi1, value);
|
||||
}
|
||||
}
|
||||
|
||||
@ -124,11 +125,12 @@ public final class ComboBoxPopup<T extends Enum<T>> extends Popup
|
||||
GL11.glEnd();
|
||||
}
|
||||
|
||||
private void drawValueName(int x1, int yi1, Enum<?> value)
|
||||
private void drawValueName(MatrixStack matrixStack, int x1, int yi1,
|
||||
Enum<?> value)
|
||||
{
|
||||
GL11.glColor4f(1, 1, 1, 1);
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
tr.draw(value.toString(), x1 + 2, yi1 + 2, 0xF0F0F0);
|
||||
tr.draw(matrixStack, value.toString(), x1 + 2, yi1 + 2, 0xF0F0F0);
|
||||
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
*/
|
||||
package net.wurstclient.clickgui;
|
||||
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
|
||||
public abstract class Component
|
||||
{
|
||||
private int x;
|
||||
@ -21,7 +23,8 @@ public abstract class Component
|
||||
|
||||
}
|
||||
|
||||
public abstract void render(int mouseX, int mouseY, float partialTicks);
|
||||
public abstract void render(MatrixStack matrixStack, int mouseX, int mouseY,
|
||||
float partialTicks);
|
||||
|
||||
public abstract int getDefaultWidth();
|
||||
|
||||
|
@ -7,6 +7,8 @@
|
||||
*/
|
||||
package net.wurstclient.clickgui;
|
||||
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
|
||||
public abstract class Popup
|
||||
{
|
||||
private final Component owner;
|
||||
@ -25,7 +27,8 @@ public abstract class Popup
|
||||
public abstract void handleMouseClick(int mouseX, int mouseY,
|
||||
int mouseButton);
|
||||
|
||||
public abstract void render(int mouseX, int mouseY);
|
||||
public abstract void render(MatrixStack matrixStack, int mouseX,
|
||||
int mouseY);
|
||||
|
||||
public abstract int getDefaultWidth();
|
||||
|
||||
|
@ -116,7 +116,7 @@ public class Window
|
||||
maxChildWidth += 4;
|
||||
|
||||
TextRenderer tr = WurstClient.MC.textRenderer;
|
||||
int titleBarWidth = tr.getStringWidth(title) + 4;
|
||||
int titleBarWidth = tr.getWidth(title) + 4;
|
||||
if(minimizable)
|
||||
titleBarWidth += 11;
|
||||
if(pinnable)
|
||||
|
@ -13,6 +13,7 @@ import net.minecraft.block.Blocks;
|
||||
import net.minecraft.client.font.TextRenderer;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.render.DiffuseLighting;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.wurstclient.WurstClient;
|
||||
import net.wurstclient.clickgui.ClickGui;
|
||||
@ -51,7 +52,8 @@ public final class BlockComponent extends Component
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(int mouseX, int mouseY, float partialTicks)
|
||||
public void render(MatrixStack matrixStack, int mouseX, int mouseY,
|
||||
float partialTicks)
|
||||
{
|
||||
ClickGui gui = WurstClient.INSTANCE.getGui();
|
||||
float[] bgColor = gui.getBgColor();
|
||||
@ -99,9 +101,9 @@ public final class BlockComponent extends Component
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
TextRenderer fr = WurstClient.MC.textRenderer;
|
||||
String text = setting.getName() + ":";
|
||||
fr.draw(text, x1, y1 + 2, 0xf0f0f0);
|
||||
fr.draw(matrixStack, text, x1, y1 + 2, 0xf0f0f0);
|
||||
|
||||
renderIcon(stack, x3, y1, true);
|
||||
renderIcon(matrixStack, stack, x3, y1, true);
|
||||
|
||||
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
@ -112,7 +114,7 @@ public final class BlockComponent extends Component
|
||||
{
|
||||
TextRenderer tr = WurstClient.MC.textRenderer;
|
||||
String text = setting.getName() + ":";
|
||||
return tr.getStringWidth(text) + BLOCK_WITDH + 4;
|
||||
return tr.getWidth(text) + BLOCK_WITDH + 4;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -121,7 +123,8 @@ public final class BlockComponent extends Component
|
||||
return BLOCK_WITDH;
|
||||
}
|
||||
|
||||
private void renderIcon(ItemStack stack, int x, int y, boolean large)
|
||||
private void renderIcon(MatrixStack matrixStack, ItemStack stack, int x,
|
||||
int y, boolean large)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
|
||||
@ -132,16 +135,18 @@ public final class BlockComponent extends Component
|
||||
DiffuseLighting.enable();
|
||||
ItemStack grass = new ItemStack(Blocks.GRASS_BLOCK);
|
||||
ItemStack renderStack = !stack.isEmpty() ? stack : grass;
|
||||
WurstClient.MC.getItemRenderer().renderGuiItem(renderStack, 0, 0);
|
||||
WurstClient.MC.getItemRenderer().renderInGuiWithOverrides(renderStack,
|
||||
0, 0);
|
||||
DiffuseLighting.disable();
|
||||
|
||||
GL11.glPopMatrix();
|
||||
|
||||
if(stack.isEmpty())
|
||||
renderQuestionMark(x, y, large);
|
||||
renderQuestionMark(matrixStack, x, y, large);
|
||||
}
|
||||
|
||||
private void renderQuestionMark(int x, int y, boolean large)
|
||||
private void renderQuestionMark(MatrixStack matrixStack, int x, int y,
|
||||
boolean large)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
|
||||
@ -151,7 +156,7 @@ public final class BlockComponent extends Component
|
||||
|
||||
GL11.glDisable(GL11.GL_DEPTH_TEST);
|
||||
TextRenderer tr = WurstClient.MC.textRenderer;
|
||||
tr.drawWithShadow("?", 3, 2, 0xf0f0f0);
|
||||
tr.drawWithShadow(matrixStack, "?", 3, 2, 0xf0f0f0);
|
||||
GL11.glEnable(GL11.GL_DEPTH_TEST);
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
|
||||
@ -163,6 +168,6 @@ public final class BlockComponent extends Component
|
||||
if(stack.isEmpty())
|
||||
return "\u00a7ounknown block\u00a7r";
|
||||
else
|
||||
return stack.getName().asFormattedString();
|
||||
return stack.getName().getString();
|
||||
}
|
||||
}
|
||||
|
@ -10,6 +10,7 @@ package net.wurstclient.clickgui.components;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import net.minecraft.client.font.TextRenderer;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.wurstclient.WurstClient;
|
||||
import net.wurstclient.clickgui.ClickGui;
|
||||
import net.wurstclient.clickgui.Component;
|
||||
@ -26,7 +27,7 @@ public final class BlockListEditButton extends Component
|
||||
this.setting = setting;
|
||||
|
||||
TextRenderer fr = WurstClient.MC.textRenderer;
|
||||
buttonWidth = fr.getStringWidth("Edit...");
|
||||
buttonWidth = fr.getWidth("Edit...");
|
||||
|
||||
setWidth(getDefaultWidth());
|
||||
setHeight(getDefaultHeight());
|
||||
@ -46,7 +47,8 @@ public final class BlockListEditButton extends Component
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(int mouseX, int mouseY, float partialTicks)
|
||||
public void render(MatrixStack matrixStack, int mouseX, int mouseY,
|
||||
float partialTicks)
|
||||
{
|
||||
ClickGui gui = WurstClient.INSTANCE.getGui();
|
||||
float[] bgColor = gui.getBgColor();
|
||||
@ -102,8 +104,8 @@ public final class BlockListEditButton extends Component
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
TextRenderer fr = WurstClient.MC.textRenderer;
|
||||
String text = setting.getName() + ": " + setting.getBlockNames().size();
|
||||
fr.draw(text, x1, y1 + 2, 0xf0f0f0);
|
||||
fr.draw("Edit...", x3 + 2, y1 + 2, 0xf0f0f0);
|
||||
fr.draw(matrixStack, text, x1, y1 + 2, 0xf0f0f0);
|
||||
fr.draw(matrixStack, "Edit...", x3 + 2, y1 + 2, 0xf0f0f0);
|
||||
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
}
|
||||
@ -113,7 +115,7 @@ public final class BlockListEditButton extends Component
|
||||
{
|
||||
TextRenderer fr = WurstClient.MC.textRenderer;
|
||||
String text = setting.getName() + ": " + setting.getBlockNames().size();
|
||||
return fr.getStringWidth(text) + buttonWidth + 6;
|
||||
return fr.getWidth(text) + buttonWidth + 6;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -10,6 +10,7 @@ package net.wurstclient.clickgui.components;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.wurstclient.WurstClient;
|
||||
import net.wurstclient.clickgui.ClickGui;
|
||||
import net.wurstclient.clickgui.Component;
|
||||
@ -46,7 +47,8 @@ public final class CheckboxComponent extends Component
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(int mouseX, int mouseY, float partialTicks)
|
||||
public void render(MatrixStack matrixStack, int mouseX, int mouseY,
|
||||
float partialTicks)
|
||||
{
|
||||
int x1 = getX();
|
||||
int x2 = x1 + getWidth();
|
||||
@ -68,7 +70,7 @@ public final class CheckboxComponent extends Component
|
||||
if(setting.isChecked())
|
||||
drawCheck(x1, y1, hovering);
|
||||
|
||||
drawName(x3, y1);
|
||||
drawName(matrixStack, x3, y1);
|
||||
}
|
||||
|
||||
private boolean isHovering(int mouseX, int mouseY, int x1, int x2, int y1,
|
||||
@ -174,7 +176,7 @@ public final class CheckboxComponent extends Component
|
||||
GL11.glEnd();
|
||||
}
|
||||
|
||||
private void drawName(int x3, int y1)
|
||||
private void drawName(MatrixStack matrixStack, int x3, int y1)
|
||||
{
|
||||
GL11.glColor4f(1, 1, 1, 1);
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
@ -183,7 +185,7 @@ public final class CheckboxComponent extends Component
|
||||
int tx = x3 + 2;
|
||||
int ty = y1 + 2;
|
||||
int color = setting.isLocked() ? 0xAAAAAA : 0xF0F0F0;
|
||||
MC.textRenderer.draw(name, tx, ty, color);
|
||||
MC.textRenderer.draw(matrixStack, name, tx, ty, color);
|
||||
|
||||
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
@ -192,7 +194,7 @@ public final class CheckboxComponent extends Component
|
||||
@Override
|
||||
public int getDefaultWidth()
|
||||
{
|
||||
return MC.textRenderer.getStringWidth(setting.getName()) + 13;
|
||||
return MC.textRenderer.getWidth(setting.getName()) + 13;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -14,6 +14,7 @@ import java.util.stream.Stream;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import net.minecraft.client.font.TextRenderer;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.wurstclient.WurstClient;
|
||||
import net.wurstclient.clickgui.ClickGui;
|
||||
import net.wurstclient.clickgui.ComboBoxPopup;
|
||||
@ -43,7 +44,7 @@ public final class ComboBoxComponent<T extends Enum<T>> extends Component
|
||||
{
|
||||
Stream<T> values = Arrays.stream(setting.getValues());
|
||||
Stream<String> vNames = values.map(T::toString);
|
||||
IntStream vWidths = vNames.mapToInt(s -> tr.getStringWidth(s));
|
||||
IntStream vWidths = vNames.mapToInt(s -> tr.getWidth(s));
|
||||
return vWidths.max().getAsInt();
|
||||
}
|
||||
|
||||
@ -93,7 +94,8 @@ public final class ComboBoxComponent<T extends Enum<T>> extends Component
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(int mouseX, int mouseY, float partialTicks)
|
||||
public void render(MatrixStack matrixStack, int mouseX, int mouseY,
|
||||
float partialTicks)
|
||||
{
|
||||
int x1 = getX();
|
||||
int x2 = x1 + getWidth();
|
||||
@ -116,7 +118,7 @@ public final class ComboBoxComponent<T extends Enum<T>> extends Component
|
||||
drawSeparator(x3, y1, y2);
|
||||
drawArrow(x2, x3, y1, y2, hBox);
|
||||
|
||||
drawNameAndValue(x1, x4, y1);
|
||||
drawNameAndValue(matrixStack, x1, x4, y1);
|
||||
}
|
||||
|
||||
private boolean isHovering(int mouseX, int mouseY, int x1, int x2, int y1,
|
||||
@ -215,7 +217,8 @@ public final class ComboBoxComponent<T extends Enum<T>> extends Component
|
||||
GL11.glEnd();
|
||||
}
|
||||
|
||||
private void drawNameAndValue(int x1, int x4, int y1)
|
||||
private void drawNameAndValue(MatrixStack matrixStack, int x1, int x4,
|
||||
int y1)
|
||||
{
|
||||
GL11.glColor4f(1, 1, 1, 1);
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
@ -224,8 +227,8 @@ public final class ComboBoxComponent<T extends Enum<T>> extends Component
|
||||
String value = "" + setting.getSelected();
|
||||
int color = 0xF0F0F0;
|
||||
|
||||
tr.draw(name, x1, y1 + 2, color);
|
||||
tr.draw(value, x4 + 2, y1 + 2, color);
|
||||
tr.draw(matrixStack, name, x1, y1 + 2, color);
|
||||
tr.draw(matrixStack, value, x4 + 2, y1 + 2, color);
|
||||
|
||||
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
@ -234,7 +237,7 @@ public final class ComboBoxComponent<T extends Enum<T>> extends Component
|
||||
@Override
|
||||
public int getDefaultWidth()
|
||||
{
|
||||
return tr.getStringWidth(setting.getName()) + popupWidth + 17;
|
||||
return tr.getWidth(setting.getName()) + popupWidth + 17;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -13,6 +13,7 @@ import org.lwjgl.opengl.GL11;
|
||||
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.font.TextRenderer;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.wurstclient.Feature;
|
||||
import net.wurstclient.WurstClient;
|
||||
import net.wurstclient.clickgui.ClickGui;
|
||||
@ -86,7 +87,8 @@ public final class FeatureButton extends Component
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(int mouseX, int mouseY, float partialTicks)
|
||||
public void render(MatrixStack matrixStack, int mouseX, int mouseY,
|
||||
float partialTicks)
|
||||
{
|
||||
int x1 = getX();
|
||||
int x2 = x1 + getWidth();
|
||||
@ -114,7 +116,7 @@ public final class FeatureButton extends Component
|
||||
drawSettingsArrow(x2, x3, y1, y2, hSettings);
|
||||
}
|
||||
|
||||
drawName(x1, x3, y1);
|
||||
drawName(matrixStack, x1, x3, y1);
|
||||
}
|
||||
|
||||
private boolean isHovering(int mouseX, int mouseY, int x1, int x2, int y1,
|
||||
@ -246,18 +248,18 @@ public final class FeatureButton extends Component
|
||||
GL11.glEnd();
|
||||
}
|
||||
|
||||
private void drawName(int x1, int x3, int y1)
|
||||
private void drawName(MatrixStack matrixStack, int x1, int x3, int y1)
|
||||
{
|
||||
GL11.glColor4f(1, 1, 1, 1);
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
|
||||
TextRenderer tr = MC.textRenderer;
|
||||
String name = feature.getName();
|
||||
int nameWidth = tr.getStringWidth(name);
|
||||
int nameWidth = tr.getWidth(name);
|
||||
int tx = x1 + (x3 - x1 - nameWidth) / 2;
|
||||
int ty = y1 + 2;
|
||||
|
||||
tr.draw(name, tx, ty, 0xF0F0F0);
|
||||
tr.draw(matrixStack, name, tx, ty, 0xF0F0F0);
|
||||
|
||||
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
@ -268,7 +270,7 @@ public final class FeatureButton extends Component
|
||||
{
|
||||
String name = feature.getName();
|
||||
TextRenderer tr = MC.textRenderer;
|
||||
int width = tr.getStringWidth(name) + 4;
|
||||
int width = tr.getWidth(name) + 4;
|
||||
if(hasSettings)
|
||||
width += 11;
|
||||
|
||||
|
@ -10,6 +10,7 @@ package net.wurstclient.clickgui.components;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import net.minecraft.client.font.TextRenderer;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.wurstclient.WurstClient;
|
||||
import net.wurstclient.clickgui.ClickGui;
|
||||
import net.wurstclient.clickgui.Component;
|
||||
@ -35,7 +36,7 @@ public final class FileComponent extends Component
|
||||
return;
|
||||
|
||||
TextRenderer fr = WurstClient.MC.textRenderer;
|
||||
int buttonWidth = fr.getStringWidth(setting.getSelectedFileName());
|
||||
int buttonWidth = fr.getWidth(setting.getSelectedFileName());
|
||||
|
||||
if(mouseX < getX() + getWidth() - buttonWidth - 4)
|
||||
return;
|
||||
@ -45,7 +46,8 @@ public final class FileComponent extends Component
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(int mouseX, int mouseY, float partialTicks)
|
||||
public void render(MatrixStack matrixStack, int mouseX, int mouseY,
|
||||
float partialTicks)
|
||||
{
|
||||
ClickGui gui = WurstClient.INSTANCE.getGui();
|
||||
float[] bgColor = gui.getBgColor();
|
||||
@ -53,7 +55,7 @@ public final class FileComponent extends Component
|
||||
float opacity = gui.getOpacity();
|
||||
|
||||
TextRenderer fr = WurstClient.MC.textRenderer;
|
||||
int buttonWidth = fr.getStringWidth(setting.getSelectedFileName());
|
||||
int buttonWidth = fr.getWidth(setting.getSelectedFileName());
|
||||
|
||||
int x1 = getX();
|
||||
int x2 = x1 + getWidth();
|
||||
@ -108,8 +110,9 @@ public final class FileComponent extends Component
|
||||
GL11.glColor4f(1, 1, 1, 1);
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
String text = setting.getName() + ": ";
|
||||
fr.draw(text, x1, y1 + 2, 0xf0f0f0);
|
||||
fr.draw(setting.getSelectedFileName(), x3 + 2, y1 + 2, 0xf0f0f0);
|
||||
fr.draw(matrixStack, text, x1, y1 + 2, 0xf0f0f0);
|
||||
fr.draw(matrixStack, setting.getSelectedFileName(), x3 + 2, y1 + 2,
|
||||
0xf0f0f0);
|
||||
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
}
|
||||
@ -120,9 +123,9 @@ public final class FileComponent extends Component
|
||||
TextRenderer fr = WurstClient.MC.textRenderer;
|
||||
|
||||
String text = setting.getName() + ": ";
|
||||
int buttonWidth = fr.getStringWidth(setting.getSelectedFileName());
|
||||
int buttonWidth = fr.getWidth(setting.getSelectedFileName());
|
||||
|
||||
return fr.getStringWidth(text) + buttonWidth + 6;
|
||||
return fr.getWidth(text) + buttonWidth + 6;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -10,6 +10,7 @@ package net.wurstclient.clickgui.components;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import net.minecraft.client.font.TextRenderer;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.wurstclient.WurstClient;
|
||||
import net.wurstclient.clickgui.ClickGui;
|
||||
import net.wurstclient.clickgui.Component;
|
||||
@ -26,7 +27,7 @@ public final class ItemListEditButton extends Component
|
||||
this.setting = setting;
|
||||
|
||||
TextRenderer fr = WurstClient.MC.textRenderer;
|
||||
buttonWidth = fr.getStringWidth("Edit...");
|
||||
buttonWidth = fr.getWidth("Edit...");
|
||||
|
||||
setWidth(getDefaultWidth());
|
||||
setHeight(getDefaultHeight());
|
||||
@ -46,7 +47,8 @@ public final class ItemListEditButton extends Component
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(int mouseX, int mouseY, float partialTicks)
|
||||
public void render(MatrixStack matrixStack, int mouseX, int mouseY,
|
||||
float partialTicks)
|
||||
{
|
||||
ClickGui gui = WurstClient.INSTANCE.getGui();
|
||||
float[] bgColor = gui.getBgColor();
|
||||
@ -102,8 +104,8 @@ public final class ItemListEditButton extends Component
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
TextRenderer fr = WurstClient.MC.textRenderer;
|
||||
String text = setting.getName() + ": " + setting.getItemNames().size();
|
||||
fr.draw(text, x1, y1 + 2, 0xf0f0f0);
|
||||
fr.draw("Edit...", x3 + 2, y1 + 2, 0xf0f0f0);
|
||||
fr.draw(matrixStack, text, x1, y1 + 2, 0xf0f0f0);
|
||||
fr.draw(matrixStack, "Edit...", x3 + 2, y1 + 2, 0xf0f0f0);
|
||||
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
||||
}
|
||||
|
||||
@ -112,7 +114,7 @@ public final class ItemListEditButton extends Component
|
||||
{
|
||||
TextRenderer fr = WurstClient.MC.textRenderer;
|
||||
String text = setting.getName() + ": " + setting.getItemNames().size();
|
||||
return fr.getStringWidth(text) + buttonWidth + 6;
|
||||
return fr.getWidth(text) + buttonWidth + 6;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -10,6 +10,7 @@ package net.wurstclient.clickgui.components;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import net.minecraft.client.network.ClientPlayerEntity;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.mob.AmbientEntity;
|
||||
import net.minecraft.entity.mob.Monster;
|
||||
@ -33,7 +34,8 @@ public final class RadarComponent extends Component
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(int mouseX, int mouseY, float partialTicks)
|
||||
public void render(MatrixStack matrixStack, int mouseX, int mouseY,
|
||||
float partialTicks)
|
||||
{
|
||||
ClickGui gui = WurstClient.INSTANCE.getGui();
|
||||
float[] bgColor = gui.getBgColor();
|
||||
|
@ -12,6 +12,7 @@ import org.lwjgl.opengl.GL11;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.font.TextRenderer;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.wurstclient.WurstClient;
|
||||
import net.wurstclient.clickgui.ClickGui;
|
||||
import net.wurstclient.clickgui.Component;
|
||||
@ -66,7 +67,8 @@ public final class SliderComponent extends Component
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(int mouseX, int mouseY, float partialTicks)
|
||||
public void render(MatrixStack matrixStack, int mouseX, int mouseY,
|
||||
float partialTicks)
|
||||
{
|
||||
int x1 = getX();
|
||||
int x2 = x1 + getWidth();
|
||||
@ -99,7 +101,7 @@ public final class SliderComponent extends Component
|
||||
drawBackground(x1, x2, x3, x4, y1, y2, y4, y5);
|
||||
drawRail(x3, x4, y4, y5, hSlider, renderAsDisabled);
|
||||
drawKnob(x1, x2, y2, y3, hSlider, renderAsDisabled);
|
||||
drawNameAndValue(x1, x2, y1, renderAsDisabled);
|
||||
drawNameAndValue(matrixStack, x1, x2, y1, renderAsDisabled);
|
||||
}
|
||||
|
||||
private void handleDragging(int mouseX, int x3, int x4)
|
||||
@ -266,8 +268,8 @@ public final class SliderComponent extends Component
|
||||
GL11.glEnd();
|
||||
}
|
||||
|
||||
private void drawNameAndValue(int x1, int x2, int y1,
|
||||
boolean renderAsDisabled)
|
||||
private void drawNameAndValue(MatrixStack matrixStack, int x1, int x2,
|
||||
int y1, boolean renderAsDisabled)
|
||||
{
|
||||
GL11.glColor4f(1, 1, 1, 1);
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
@ -275,10 +277,10 @@ public final class SliderComponent extends Component
|
||||
TextRenderer tr = MC.textRenderer;
|
||||
String name = setting.getName();
|
||||
String value = setting.getValueString();
|
||||
int valueWidth = tr.getStringWidth(value);
|
||||
int valueWidth = tr.getWidth(value);
|
||||
int color = renderAsDisabled ? 0xAAAAAA : 0xF0F0F0;
|
||||
tr.draw(name, x1, y1 + 2, color);
|
||||
tr.draw(value, x2 - valueWidth, y1 + 2, color);
|
||||
tr.draw(matrixStack, name, x1, y1 + 2, color);
|
||||
tr.draw(matrixStack, value, x2 - valueWidth, y1 + 2, color);
|
||||
|
||||
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
@ -288,8 +290,8 @@ public final class SliderComponent extends Component
|
||||
public int getDefaultWidth()
|
||||
{
|
||||
TextRenderer tr = MC.textRenderer;
|
||||
int nameWitdh = tr.getStringWidth(setting.getName());
|
||||
int valueWidth = tr.getStringWidth(setting.getValueString());
|
||||
int nameWitdh = tr.getWidth(setting.getName());
|
||||
int valueWidth = tr.getWidth(setting.getValueString());
|
||||
return nameWitdh + valueWidth + 6;
|
||||
}
|
||||
|
||||
|
@ -8,6 +8,7 @@
|
||||
package net.wurstclient.clickgui.screens;
|
||||
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.text.LiteralText;
|
||||
import net.wurstclient.clickgui.ClickGui;
|
||||
|
||||
@ -49,9 +50,10 @@ public final class ClickGuiScreen extends Screen
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(int mouseX, int mouseY, float partialTicks)
|
||||
public void render(MatrixStack matrixStack, int mouseX, int mouseY,
|
||||
float partialTicks)
|
||||
{
|
||||
super.render(mouseX, mouseY, partialTicks);
|
||||
gui.render(mouseX, mouseY, partialTicks);
|
||||
super.render(matrixStack, mouseX, mouseY, partialTicks);
|
||||
gui.render(matrixStack, mouseX, mouseY, partialTicks);
|
||||
}
|
||||
}
|
||||
|
@ -19,13 +19,14 @@ import net.minecraft.client.font.TextRenderer;
|
||||
import net.minecraft.client.gui.screen.ConfirmScreen;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.gui.widget.ButtonWidget;
|
||||
import net.minecraft.client.gui.widget.ListWidget;
|
||||
import net.minecraft.client.gui.widget.TextFieldWidget;
|
||||
import net.minecraft.client.render.DiffuseLighting;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.text.LiteralText;
|
||||
import net.wurstclient.settings.BlockListSetting;
|
||||
import net.wurstclient.util.BlockUtils;
|
||||
import net.wurstclient.util.ListWidget;
|
||||
|
||||
public final class EditBlockListScreen extends Screen
|
||||
{
|
||||
@ -56,32 +57,34 @@ public final class EditBlockListScreen extends Screen
|
||||
@Override
|
||||
public void init()
|
||||
{
|
||||
listGui = new ListGui(minecraft, this, blockList.getBlockNames());
|
||||
listGui = new ListGui(client, this, blockList.getBlockNames());
|
||||
|
||||
blockNameField = new TextFieldWidget(minecraft.textRenderer,
|
||||
width / 2 - 152, height - 55, 150, 18, "");
|
||||
blockNameField = new TextFieldWidget(client.textRenderer,
|
||||
width / 2 - 152, height - 55, 150, 18, new LiteralText(""));
|
||||
children.add(blockNameField);
|
||||
|
||||
addButton(addButton =
|
||||
new ButtonWidget(width / 2 - 2, height - 56, 30, 20, "Add", b -> {
|
||||
addButton(addButton = new ButtonWidget(width / 2 - 2, height - 56, 30,
|
||||
20, new LiteralText("Add"), b -> {
|
||||
blockList.add(blockToAdd);
|
||||
blockNameField.setText("");
|
||||
}));
|
||||
|
||||
addButton(removeButton =
|
||||
new ButtonWidget(width / 2 + 52, height - 56, 100, 20,
|
||||
"Remove Selected", b -> blockList.remove(listGui.selected)));
|
||||
addButton(removeButton = new ButtonWidget(width / 2 + 52, height - 56,
|
||||
100, 20, new LiteralText("Remove Selected"),
|
||||
b -> blockList.remove(listGui.selected)));
|
||||
|
||||
addButton(new ButtonWidget(width - 108, 8, 100, 20, "Reset to Defaults",
|
||||
b -> minecraft.openScreen(new ConfirmScreen(b2 -> {
|
||||
addButton(new ButtonWidget(width - 108, 8, 100, 20,
|
||||
new LiteralText("Reset to Defaults"),
|
||||
b -> client.openScreen(new ConfirmScreen(b2 -> {
|
||||
if(b2)
|
||||
blockList.resetToDefaults();
|
||||
minecraft.openScreen(EditBlockListScreen.this);
|
||||
client.openScreen(EditBlockListScreen.this);
|
||||
}, new LiteralText("Reset to Defaults"),
|
||||
new LiteralText("Are you sure?")))));
|
||||
|
||||
addButton(doneButton = new ButtonWidget(width / 2 - 100, height - 28,
|
||||
200, 20, "Done", b -> minecraft.openScreen(prevScreen)));
|
||||
addButton(
|
||||
doneButton = new ButtonWidget(width / 2 - 100, height - 28, 200, 20,
|
||||
new LiteralText("Done"), b -> client.openScreen(prevScreen)));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -149,37 +152,38 @@ public final class EditBlockListScreen extends Screen
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(int mouseX, int mouseY, float partialTicks)
|
||||
public void render(MatrixStack matrixStack, int mouseX, int mouseY,
|
||||
float partialTicks)
|
||||
{
|
||||
renderBackground();
|
||||
listGui.render(mouseX, mouseY, partialTicks);
|
||||
renderBackground(matrixStack);
|
||||
listGui.render(matrixStack, mouseX, mouseY, partialTicks);
|
||||
|
||||
drawCenteredString(minecraft.textRenderer,
|
||||
drawCenteredString(matrixStack, client.textRenderer,
|
||||
blockList.getName() + " (" + listGui.getItemCount() + ")",
|
||||
width / 2, 12, 0xffffff);
|
||||
|
||||
blockNameField.render(mouseX, mouseY, partialTicks);
|
||||
super.render(mouseX, mouseY, partialTicks);
|
||||
blockNameField.render(matrixStack, mouseX, mouseY, partialTicks);
|
||||
super.render(matrixStack, mouseX, mouseY, partialTicks);
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(-64 + width / 2 - 152, 0, 0);
|
||||
GL11.glTranslated(0, 0, 300);
|
||||
|
||||
if(blockNameField.getText().isEmpty() && !blockNameField.isFocused())
|
||||
drawString(minecraft.textRenderer, "block name or ID", 68,
|
||||
height - 50, 0x808080);
|
||||
drawStringWithShadow(matrixStack, client.textRenderer,
|
||||
"block name or ID", 68, height - 50, 0x808080);
|
||||
|
||||
fill(48, height - 56, 64, height - 36, 0xffa0a0a0);
|
||||
fill(49, height - 55, 64, height - 37, 0xff000000);
|
||||
fill(214, height - 56, 244, height - 55, 0xffa0a0a0);
|
||||
fill(214, height - 37, 244, height - 36, 0xffa0a0a0);
|
||||
fill(244, height - 56, 246, height - 36, 0xffa0a0a0);
|
||||
fill(214, height - 55, 243, height - 52, 0xff000000);
|
||||
fill(214, height - 40, 243, height - 37, 0xff000000);
|
||||
fill(214, height - 55, 216, height - 37, 0xff000000);
|
||||
fill(242, height - 55, 245, height - 37, 0xff000000);
|
||||
listGui.renderIconAndGetName(new ItemStack(blockToAdd), 52, height - 52,
|
||||
false);
|
||||
fill(matrixStack, 48, height - 56, 64, height - 36, 0xffa0a0a0);
|
||||
fill(matrixStack, 49, height - 55, 64, height - 37, 0xff000000);
|
||||
fill(matrixStack, 214, height - 56, 244, height - 55, 0xffa0a0a0);
|
||||
fill(matrixStack, 214, height - 37, 244, height - 36, 0xffa0a0a0);
|
||||
fill(matrixStack, 244, height - 56, 246, height - 36, 0xffa0a0a0);
|
||||
fill(matrixStack, 214, height - 55, 243, height - 52, 0xff000000);
|
||||
fill(matrixStack, 214, height - 40, 243, height - 37, 0xff000000);
|
||||
fill(matrixStack, 214, height - 55, 216, height - 37, 0xff000000);
|
||||
fill(matrixStack, 242, height - 55, 245, height - 37, 0xff000000);
|
||||
listGui.renderIconAndGetName(matrixStack, new ItemStack(blockToAdd), 52,
|
||||
height - 52, false);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
@ -227,23 +231,23 @@ public final class EditBlockListScreen extends Screen
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void renderItem(int index, int x, int y, int var4, int var5,
|
||||
int var6, float partialTicks)
|
||||
protected void renderItem(MatrixStack matrixStack, int index, int x,
|
||||
int y, int var4, int var5, int var6, float partialTicks)
|
||||
{
|
||||
String name = list.get(index);
|
||||
ItemStack stack = new ItemStack(BlockUtils.getBlockFromName(name));
|
||||
TextRenderer fr = mc.textRenderer;
|
||||
|
||||
String displayName =
|
||||
renderIconAndGetName(stack, x + 1, y + 1, true);
|
||||
fr.draw(displayName, x + 28, y, 0xf0f0f0);
|
||||
fr.draw(name, x + 28, y + 9, 0xa0a0a0);
|
||||
fr.draw("ID: " + BlockUtils.getBlockFromName(name), x + 28, y + 18,
|
||||
0xa0a0a0);
|
||||
renderIconAndGetName(matrixStack, stack, x + 1, y + 1, true);
|
||||
fr.draw(matrixStack, displayName, x + 28, y, 0xf0f0f0);
|
||||
fr.draw(matrixStack, name, x + 28, y + 9, 0xa0a0a0);
|
||||
fr.draw(matrixStack, "ID: " + BlockUtils.getBlockFromName(name),
|
||||
x + 28, y + 18, 0xa0a0a0);
|
||||
}
|
||||
|
||||
private String renderIconAndGetName(ItemStack stack, int x, int y,
|
||||
boolean large)
|
||||
private String renderIconAndGetName(MatrixStack matrixStack,
|
||||
ItemStack stack, int x, int y, boolean large)
|
||||
{
|
||||
if(stack.isEmpty())
|
||||
{
|
||||
@ -255,8 +259,8 @@ public final class EditBlockListScreen extends Screen
|
||||
GL11.glScaled(0.75, 0.75, 0.75);
|
||||
|
||||
DiffuseLighting.enable();
|
||||
mc.getItemRenderer()
|
||||
.renderGuiItem(new ItemStack(Blocks.GRASS_BLOCK), 0, 0);
|
||||
mc.getItemRenderer().renderInGuiWithOverrides(
|
||||
new ItemStack(Blocks.GRASS_BLOCK), 0, 0);
|
||||
DiffuseLighting.disable();
|
||||
GL11.glPopMatrix();
|
||||
|
||||
@ -266,7 +270,7 @@ public final class EditBlockListScreen extends Screen
|
||||
GL11.glScaled(2, 2, 2);
|
||||
GL11.glDisable(GL11.GL_DEPTH_TEST);
|
||||
TextRenderer fr = mc.textRenderer;
|
||||
fr.drawWithShadow("?", 3, 2, 0xf0f0f0);
|
||||
fr.drawWithShadow(matrixStack, "?", 3, 2, 0xf0f0f0);
|
||||
GL11.glEnable(GL11.GL_DEPTH_TEST);
|
||||
GL11.glPopMatrix();
|
||||
|
||||
@ -282,12 +286,12 @@ public final class EditBlockListScreen extends Screen
|
||||
GL11.glScaled(0.75, 0.75, 0.75);
|
||||
|
||||
DiffuseLighting.enable();
|
||||
mc.getItemRenderer().renderGuiItem(stack, 0, 0);
|
||||
mc.getItemRenderer().renderInGuiWithOverrides(stack, 0, 0);
|
||||
DiffuseLighting.disable();
|
||||
|
||||
GL11.glPopMatrix();
|
||||
|
||||
return stack.getName().asFormattedString();
|
||||
return stack.getName().getString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,6 +17,7 @@ import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.gui.widget.ButtonWidget;
|
||||
import net.minecraft.client.gui.widget.TextFieldWidget;
|
||||
import net.minecraft.client.render.DiffuseLighting;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.text.LiteralText;
|
||||
import net.wurstclient.WurstClient;
|
||||
@ -45,10 +46,11 @@ public final class EditBlockScreen extends Screen
|
||||
int y1 = 60;
|
||||
int y2 = height / 3 * 2;
|
||||
|
||||
TextRenderer tr = minecraft.textRenderer;
|
||||
TextRenderer tr = client.textRenderer;
|
||||
String valueString = setting.getBlockName();
|
||||
|
||||
blockField = new TextFieldWidget(tr, x1, y1, 178, 18, "");
|
||||
blockField =
|
||||
new TextFieldWidget(tr, x1, y1, 178, 18, new LiteralText(""));
|
||||
blockField.setText(valueString);
|
||||
blockField.setSelectionStart(0);
|
||||
|
||||
@ -56,7 +58,8 @@ public final class EditBlockScreen extends Screen
|
||||
setInitialFocus(blockField);
|
||||
blockField.setSelected(true);
|
||||
|
||||
doneButton = new ButtonWidget(x1, y2, 200, 20, "Done", b -> done());
|
||||
doneButton = new ButtonWidget(x1, y2, 200, 20, new LiteralText("Done"),
|
||||
b -> done());
|
||||
addButton(doneButton);
|
||||
}
|
||||
|
||||
@ -68,7 +71,7 @@ public final class EditBlockScreen extends Screen
|
||||
if(block != null)
|
||||
setting.setBlock(block);
|
||||
|
||||
minecraft.openScreen(prevScreen);
|
||||
client.openScreen(prevScreen);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -81,7 +84,7 @@ public final class EditBlockScreen extends Screen
|
||||
break;
|
||||
|
||||
case GLFW.GLFW_KEY_ESCAPE:
|
||||
minecraft.openScreen(prevScreen);
|
||||
client.openScreen(prevScreen);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -95,15 +98,17 @@ public final class EditBlockScreen extends Screen
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(int mouseX, int mouseY, float partialTicks)
|
||||
public void render(MatrixStack matrixStack, int mouseX, int mouseY,
|
||||
float partialTicks)
|
||||
{
|
||||
TextRenderer tr = minecraft.textRenderer;
|
||||
TextRenderer tr = client.textRenderer;
|
||||
|
||||
renderBackground();
|
||||
drawCenteredString(tr, setting.getName(), width / 2, 20, 0xFFFFFF);
|
||||
renderBackground(matrixStack);
|
||||
drawCenteredString(matrixStack, tr, setting.getName(), width / 2, 20,
|
||||
0xFFFFFF);
|
||||
|
||||
blockField.render(mouseX, mouseY, partialTicks);
|
||||
super.render(mouseX, mouseY, partialTicks);
|
||||
blockField.render(matrixStack, mouseX, mouseY, partialTicks);
|
||||
super.render(matrixStack, mouseX, mouseY, partialTicks);
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(-64 + width / 2 - 100, 115, 0);
|
||||
@ -114,20 +119,20 @@ public final class EditBlockScreen extends Screen
|
||||
int lblX = lblAbove ? 50 : 68;
|
||||
int lblY = lblAbove ? -66 : -50;
|
||||
int lblColor = lblAbove ? 0xF0F0F0 : 0x808080;
|
||||
drawString(tr, lblText, lblX, lblY, lblColor);
|
||||
drawStringWithShadow(matrixStack, tr, lblText, lblX, lblY, lblColor);
|
||||
|
||||
fill(48, -56, 64, -36, 0xffa0a0a0);
|
||||
fill(49, -55, 64, -37, 0xff000000);
|
||||
fill(214, -56, 244, -55, 0xffa0a0a0);
|
||||
fill(214, -37, 244, -36, 0xffa0a0a0);
|
||||
fill(244, -56, 246, -36, 0xffa0a0a0);
|
||||
fill(214, -55, 243, -52, 0xff000000);
|
||||
fill(214, -40, 243, -37, 0xff000000);
|
||||
fill(215, -55, 216, -37, 0xff000000);
|
||||
fill(242, -55, 245, -37, 0xff000000);
|
||||
fill(matrixStack, 48, -56, 64, -36, 0xffa0a0a0);
|
||||
fill(matrixStack, 49, -55, 64, -37, 0xff000000);
|
||||
fill(matrixStack, 214, -56, 244, -55, 0xffa0a0a0);
|
||||
fill(matrixStack, 214, -37, 244, -36, 0xffa0a0a0);
|
||||
fill(matrixStack, 244, -56, 246, -36, 0xffa0a0a0);
|
||||
fill(matrixStack, 214, -55, 243, -52, 0xff000000);
|
||||
fill(matrixStack, 214, -40, 243, -37, 0xff000000);
|
||||
fill(matrixStack, 215, -55, 216, -37, 0xff000000);
|
||||
fill(matrixStack, 242, -55, 245, -37, 0xff000000);
|
||||
|
||||
Block blockToAdd = BlockUtils.getBlockFromName(blockField.getText());
|
||||
renderIcon(new ItemStack(blockToAdd), 52, -52, false);
|
||||
renderIcon(matrixStack, new ItemStack(blockToAdd), 52, -52, false);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
@ -144,7 +149,8 @@ public final class EditBlockScreen extends Screen
|
||||
return false;
|
||||
}
|
||||
|
||||
private void renderIcon(ItemStack stack, int x, int y, boolean large)
|
||||
private void renderIcon(MatrixStack matrixStack, ItemStack stack, int x,
|
||||
int y, boolean large)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
|
||||
@ -155,16 +161,18 @@ public final class EditBlockScreen extends Screen
|
||||
DiffuseLighting.enable();
|
||||
ItemStack grass = new ItemStack(Blocks.GRASS_BLOCK);
|
||||
ItemStack renderStack = !stack.isEmpty() ? stack : grass;
|
||||
WurstClient.MC.getItemRenderer().renderGuiItem(renderStack, 0, 0);
|
||||
WurstClient.MC.getItemRenderer().renderInGuiWithOverrides(renderStack,
|
||||
0, 0);
|
||||
DiffuseLighting.disable();
|
||||
|
||||
GL11.glPopMatrix();
|
||||
|
||||
if(stack.isEmpty())
|
||||
renderQuestionMark(x, y, large);
|
||||
renderQuestionMark(matrixStack, x, y, large);
|
||||
}
|
||||
|
||||
private void renderQuestionMark(int x, int y, boolean large)
|
||||
private void renderQuestionMark(MatrixStack matrixStack, int x, int y,
|
||||
boolean large)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
|
||||
@ -174,7 +182,7 @@ public final class EditBlockScreen extends Screen
|
||||
|
||||
GL11.glDisable(GL11.GL_DEPTH_TEST);
|
||||
TextRenderer tr = WurstClient.MC.textRenderer;
|
||||
tr.drawWithShadow("?", 3, 2, 0xf0f0f0);
|
||||
tr.drawWithShadow(matrixStack, "?", 3, 2, 0xf0f0f0);
|
||||
GL11.glEnable(GL11.GL_DEPTH_TEST);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
|
@ -18,9 +18,9 @@ import net.minecraft.client.font.TextRenderer;
|
||||
import net.minecraft.client.gui.screen.ConfirmScreen;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.gui.widget.ButtonWidget;
|
||||
import net.minecraft.client.gui.widget.ListWidget;
|
||||
import net.minecraft.client.gui.widget.TextFieldWidget;
|
||||
import net.minecraft.client.render.DiffuseLighting;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.text.LiteralText;
|
||||
@ -28,6 +28,7 @@ import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.InvalidIdentifierException;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import net.wurstclient.settings.ItemListSetting;
|
||||
import net.wurstclient.util.ListWidget;
|
||||
|
||||
public final class EditItemListScreen extends Screen
|
||||
{
|
||||
@ -58,32 +59,34 @@ public final class EditItemListScreen extends Screen
|
||||
@Override
|
||||
public void init()
|
||||
{
|
||||
listGui = new ListGui(minecraft, this, itemList.getItemNames());
|
||||
listGui = new ListGui(client, this, itemList.getItemNames());
|
||||
|
||||
itemNameField = new TextFieldWidget(minecraft.textRenderer,
|
||||
width / 2 - 152, height - 55, 150, 18, "");
|
||||
itemNameField = new TextFieldWidget(client.textRenderer,
|
||||
width / 2 - 152, height - 55, 150, 18, new LiteralText(""));
|
||||
children.add(itemNameField);
|
||||
|
||||
addButton(addButton =
|
||||
new ButtonWidget(width / 2 - 2, height - 56, 30, 20, "Add", b -> {
|
||||
addButton(addButton = new ButtonWidget(width / 2 - 2, height - 56, 30,
|
||||
20, new LiteralText("Add"), b -> {
|
||||
itemList.add(itemToAdd);
|
||||
itemNameField.setText("");
|
||||
}));
|
||||
|
||||
addButton(
|
||||
removeButton = new ButtonWidget(width / 2 + 52, height - 56, 100,
|
||||
20, "Remove Selected", b -> itemList.remove(listGui.selected)));
|
||||
addButton(removeButton = new ButtonWidget(width / 2 + 52, height - 56,
|
||||
100, 20, new LiteralText("Remove Selected"),
|
||||
b -> itemList.remove(listGui.selected)));
|
||||
|
||||
addButton(new ButtonWidget(width - 108, 8, 100, 20, "Reset to Defaults",
|
||||
b -> minecraft.openScreen(new ConfirmScreen(b2 -> {
|
||||
addButton(new ButtonWidget(width - 108, 8, 100, 20,
|
||||
new LiteralText("Reset to Defaults"),
|
||||
b -> client.openScreen(new ConfirmScreen(b2 -> {
|
||||
if(b2)
|
||||
itemList.resetToDefaults();
|
||||
minecraft.openScreen(EditItemListScreen.this);
|
||||
client.openScreen(EditItemListScreen.this);
|
||||
}, new LiteralText("Reset to Defaults"),
|
||||
new LiteralText("Are you sure?")))));
|
||||
|
||||
addButton(doneButton = new ButtonWidget(width / 2 - 100, height - 28,
|
||||
200, 20, "Done", b -> minecraft.openScreen(prevScreen)));
|
||||
addButton(
|
||||
doneButton = new ButtonWidget(width / 2 - 100, height - 28, 200, 20,
|
||||
new LiteralText("Done"), b -> client.openScreen(prevScreen)));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -163,17 +166,18 @@ public final class EditItemListScreen extends Screen
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(int mouseX, int mouseY, float partialTicks)
|
||||
public void render(MatrixStack matrixStack, int mouseX, int mouseY,
|
||||
float partialTicks)
|
||||
{
|
||||
renderBackground();
|
||||
listGui.render(mouseX, mouseY, partialTicks);
|
||||
renderBackground(matrixStack);
|
||||
listGui.render(matrixStack, mouseX, mouseY, partialTicks);
|
||||
|
||||
drawCenteredString(minecraft.textRenderer,
|
||||
drawCenteredString(matrixStack, client.textRenderer,
|
||||
itemList.getName() + " (" + listGui.getItemCount() + ")", width / 2,
|
||||
12, 0xffffff);
|
||||
|
||||
itemNameField.render(mouseX, mouseY, partialTicks);
|
||||
super.render(mouseX, mouseY, partialTicks);
|
||||
itemNameField.render(matrixStack, mouseX, mouseY, partialTicks);
|
||||
super.render(matrixStack, mouseX, mouseY, partialTicks);
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(-64 + width / 2 - 152, 0, 0);
|
||||
@ -182,22 +186,22 @@ public final class EditItemListScreen extends Screen
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(0, 0, 300);
|
||||
drawString(minecraft.textRenderer, "item name or ID", 68,
|
||||
height - 50, 0x808080);
|
||||
drawStringWithShadow(matrixStack, client.textRenderer,
|
||||
"item name or ID", 68, height - 50, 0x808080);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
fill(48, height - 56, 64, height - 36, 0xffa0a0a0);
|
||||
fill(49, height - 55, 64, height - 37, 0xff000000);
|
||||
fill(214, height - 56, 244, height - 55, 0xffa0a0a0);
|
||||
fill(214, height - 37, 244, height - 36, 0xffa0a0a0);
|
||||
fill(244, height - 56, 246, height - 36, 0xffa0a0a0);
|
||||
fill(214, height - 55, 243, height - 52, 0xff000000);
|
||||
fill(214, height - 40, 243, height - 37, 0xff000000);
|
||||
fill(215, height - 55, 216, height - 37, 0xff000000);
|
||||
fill(242, height - 55, 245, height - 37, 0xff000000);
|
||||
listGui.renderIconAndGetName(new ItemStack(itemToAdd), 52, height - 52,
|
||||
false);
|
||||
fill(matrixStack, 48, height - 56, 64, height - 36, 0xffa0a0a0);
|
||||
fill(matrixStack, 49, height - 55, 64, height - 37, 0xff000000);
|
||||
fill(matrixStack, 214, height - 56, 244, height - 55, 0xffa0a0a0);
|
||||
fill(matrixStack, 214, height - 37, 244, height - 36, 0xffa0a0a0);
|
||||
fill(matrixStack, 244, height - 56, 246, height - 36, 0xffa0a0a0);
|
||||
fill(matrixStack, 214, height - 55, 243, height - 52, 0xff000000);
|
||||
fill(matrixStack, 214, height - 40, 243, height - 37, 0xff000000);
|
||||
fill(matrixStack, 215, height - 55, 216, height - 37, 0xff000000);
|
||||
fill(matrixStack, 242, height - 55, 245, height - 37, 0xff000000);
|
||||
listGui.renderIconAndGetName(matrixStack, new ItemStack(itemToAdd), 52,
|
||||
height - 52, false);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
@ -245,8 +249,8 @@ public final class EditItemListScreen extends Screen
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void renderItem(int index, int x, int y, int var4, int var5,
|
||||
int var6, float partialTicks)
|
||||
protected void renderItem(MatrixStack matrixStack, int index, int x,
|
||||
int y, int var4, int var5, int var6, float partialTicks)
|
||||
{
|
||||
String name = list.get(index);
|
||||
Item item = Registry.ITEM.get(new Identifier(name));
|
||||
@ -254,15 +258,15 @@ public final class EditItemListScreen extends Screen
|
||||
TextRenderer fr = mc.textRenderer;
|
||||
|
||||
String displayName =
|
||||
renderIconAndGetName(stack, x + 1, y + 1, true);
|
||||
fr.draw(displayName, x + 28, y, 0xf0f0f0);
|
||||
fr.draw(name, x + 28, y + 9, 0xa0a0a0);
|
||||
fr.draw("ID: " + Registry.ITEM.getId(item).toString(), x + 28,
|
||||
y + 18, 0xa0a0a0);
|
||||
renderIconAndGetName(matrixStack, stack, x + 1, y + 1, true);
|
||||
fr.draw(matrixStack, displayName, x + 28, y, 0xf0f0f0);
|
||||
fr.draw(matrixStack, name, x + 28, y + 9, 0xa0a0a0);
|
||||
fr.draw(matrixStack, "ID: " + Registry.ITEM.getId(item).toString(),
|
||||
x + 28, y + 18, 0xa0a0a0);
|
||||
}
|
||||
|
||||
private String renderIconAndGetName(ItemStack stack, int x, int y,
|
||||
boolean large)
|
||||
private String renderIconAndGetName(MatrixStack matrixStack,
|
||||
ItemStack stack, int x, int y, boolean large)
|
||||
{
|
||||
if(stack.isEmpty())
|
||||
{
|
||||
@ -274,8 +278,8 @@ public final class EditItemListScreen extends Screen
|
||||
GL11.glScaled(0.75, 0.75, 0.75);
|
||||
|
||||
DiffuseLighting.enable();
|
||||
mc.getItemRenderer()
|
||||
.renderGuiItem(new ItemStack(Blocks.GRASS_BLOCK), 0, 0);
|
||||
mc.getItemRenderer().renderInGuiWithOverrides(
|
||||
new ItemStack(Blocks.GRASS_BLOCK), 0, 0);
|
||||
DiffuseLighting.disable();
|
||||
GL11.glPopMatrix();
|
||||
|
||||
@ -285,7 +289,7 @@ public final class EditItemListScreen extends Screen
|
||||
GL11.glScaled(2, 2, 2);
|
||||
GL11.glDisable(GL11.GL_DEPTH_TEST);
|
||||
TextRenderer fr = mc.textRenderer;
|
||||
fr.drawWithShadow("?", 3, 2, 0xf0f0f0);
|
||||
fr.drawWithShadow(matrixStack, "?", 3, 2, 0xf0f0f0);
|
||||
GL11.glEnable(GL11.GL_DEPTH_TEST);
|
||||
GL11.glPopMatrix();
|
||||
|
||||
@ -301,12 +305,12 @@ public final class EditItemListScreen extends Screen
|
||||
GL11.glScaled(0.75, 0.75, 0.75);
|
||||
|
||||
DiffuseLighting.enable();
|
||||
mc.getItemRenderer().renderGuiItem(stack, 0, 0);
|
||||
mc.getItemRenderer().renderInGuiWithOverrides(stack, 0, 0);
|
||||
DiffuseLighting.disable();
|
||||
|
||||
GL11.glPopMatrix();
|
||||
|
||||
return stack.getName().asFormattedString();
|
||||
return stack.getName().getString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -13,6 +13,7 @@ import net.minecraft.client.font.TextRenderer;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.gui.widget.ButtonWidget;
|
||||
import net.minecraft.client.gui.widget.TextFieldWidget;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.text.LiteralText;
|
||||
import net.wurstclient.settings.SliderSetting;
|
||||
import net.wurstclient.settings.SliderSetting.ValueDisplay;
|
||||
@ -40,11 +41,12 @@ public final class EditSliderScreen extends Screen
|
||||
int y1 = 60;
|
||||
int y2 = height / 3 * 2;
|
||||
|
||||
TextRenderer tr = minecraft.textRenderer;
|
||||
TextRenderer tr = client.textRenderer;
|
||||
ValueDisplay vd = ValueDisplay.DECIMAL;
|
||||
String valueString = vd.getValueString(slider.getValue());
|
||||
|
||||
valueField = new TextFieldWidget(tr, x1, y1, 200, 20, "");
|
||||
valueField =
|
||||
new TextFieldWidget(tr, x1, y1, 200, 20, new LiteralText(""));
|
||||
valueField.setText(valueString);
|
||||
valueField.setSelectionStart(0);
|
||||
|
||||
@ -52,7 +54,8 @@ public final class EditSliderScreen extends Screen
|
||||
setInitialFocus(valueField);
|
||||
valueField.setSelected(true);
|
||||
|
||||
doneButton = new ButtonWidget(x1, y2, 200, 20, "Done", b -> done());
|
||||
doneButton = new ButtonWidget(x1, y2, 200, 20, new LiteralText("Done"),
|
||||
b -> done());
|
||||
addButton(doneButton);
|
||||
}
|
||||
|
||||
@ -63,7 +66,7 @@ public final class EditSliderScreen extends Screen
|
||||
if(MathUtils.isDouble(value))
|
||||
slider.setValue(Double.parseDouble(value));
|
||||
|
||||
minecraft.openScreen(prevScreen);
|
||||
client.openScreen(prevScreen);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -76,7 +79,7 @@ public final class EditSliderScreen extends Screen
|
||||
break;
|
||||
|
||||
case GLFW.GLFW_KEY_ESCAPE:
|
||||
minecraft.openScreen(prevScreen);
|
||||
client.openScreen(prevScreen);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -90,14 +93,15 @@ public final class EditSliderScreen extends Screen
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(int mouseX, int mouseY, float partialTicks)
|
||||
public void render(MatrixStack matrixStack, int mouseX, int mouseY,
|
||||
float partialTicks)
|
||||
{
|
||||
renderBackground();
|
||||
drawCenteredString(minecraft.textRenderer, slider.getName(), width / 2,
|
||||
20, 0xFFFFFF);
|
||||
renderBackground(matrixStack);
|
||||
drawCenteredString(matrixStack, client.textRenderer, slider.getName(),
|
||||
width / 2, 20, 0xFFFFFF);
|
||||
|
||||
valueField.render(mouseX, mouseY, partialTicks);
|
||||
super.render(mouseX, mouseY, partialTicks);
|
||||
valueField.render(matrixStack, mouseX, mouseY, partialTicks);
|
||||
super.render(matrixStack, mouseX, mouseY, partialTicks);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -9,6 +9,7 @@ package net.wurstclient.clickgui.screens;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.lwjgl.glfw.GLFW;
|
||||
@ -18,10 +19,11 @@ import net.minecraft.client.font.TextRenderer;
|
||||
import net.minecraft.client.gui.screen.ConfirmScreen;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.gui.widget.ButtonWidget;
|
||||
import net.minecraft.client.gui.widget.ListWidget;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.text.LiteralText;
|
||||
import net.minecraft.util.Util;
|
||||
import net.wurstclient.settings.FileSetting;
|
||||
import net.wurstclient.util.ListWidget;
|
||||
|
||||
public final class SelectFileScreen extends Screen
|
||||
{
|
||||
@ -47,17 +49,17 @@ public final class SelectFileScreen extends Screen
|
||||
@Override
|
||||
public void init()
|
||||
{
|
||||
listGui = new ListGui(minecraft, this, setting.listFiles());
|
||||
listGui = new ListGui(client, this, setting.listFiles());
|
||||
|
||||
addButton(
|
||||
new ButtonWidget(8, 8, 100, 20, "Open Folder", b -> openFolder()));
|
||||
addButton(new ButtonWidget(width - 108, 8, 100, 20, "Reset to Defaults",
|
||||
b -> askToConfirmReset()));
|
||||
addButton(new ButtonWidget(8, 8, 100, 20,
|
||||
new LiteralText("Open Folder"), b -> openFolder()));
|
||||
addButton(new ButtonWidget(width - 108, 8, 100, 20,
|
||||
new LiteralText("Reset to Defaults"), b -> askToConfirmReset()));
|
||||
|
||||
doneButton = addButton(new ButtonWidget(width / 2 - 102, height - 48,
|
||||
100, 20, "Done", b -> done()));
|
||||
100, 20, new LiteralText("Done"), b -> done()));
|
||||
addButton(new ButtonWidget(width / 2 + 2, height - 48, 100, 20,
|
||||
"Cancel", b -> openPrevScreen()));
|
||||
new LiteralText("Cancel"), b -> openPrevScreen()));
|
||||
}
|
||||
|
||||
private void openFolder()
|
||||
@ -67,7 +69,7 @@ public final class SelectFileScreen extends Screen
|
||||
|
||||
private void openPrevScreen()
|
||||
{
|
||||
minecraft.openScreen(prevScreen);
|
||||
client.openScreen(prevScreen);
|
||||
}
|
||||
|
||||
private void done()
|
||||
@ -91,7 +93,7 @@ public final class SelectFileScreen extends Screen
|
||||
+ "' folder and then re-generate the default files.\n"
|
||||
+ "Are you sure you want to do this?");
|
||||
|
||||
minecraft.openScreen(
|
||||
client.openScreen(
|
||||
new ConfirmScreen(c -> confirmReset(c), title, message));
|
||||
}
|
||||
|
||||
@ -100,7 +102,7 @@ public final class SelectFileScreen extends Screen
|
||||
if(confirmed)
|
||||
setting.resetFolder();
|
||||
|
||||
minecraft.openScreen(SelectFileScreen.this);
|
||||
client.openScreen(SelectFileScreen.this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -160,18 +162,21 @@ public final class SelectFileScreen extends Screen
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(int mouseX, int mouseY, float partialTicks)
|
||||
public void render(MatrixStack matrixStack, int mouseX, int mouseY,
|
||||
float partialTicks)
|
||||
{
|
||||
renderBackground();
|
||||
listGui.render(mouseX, mouseY, partialTicks);
|
||||
renderBackground(matrixStack);
|
||||
listGui.render(matrixStack, mouseX, mouseY, partialTicks);
|
||||
|
||||
drawCenteredString(minecraft.textRenderer, setting.getName(), width / 2,
|
||||
12, 0xffffff);
|
||||
drawCenteredString(matrixStack, client.textRenderer, setting.getName(),
|
||||
width / 2, 12, 0xffffff);
|
||||
|
||||
super.render(mouseX, mouseY, partialTicks);
|
||||
super.render(matrixStack, mouseX, mouseY, partialTicks);
|
||||
|
||||
if(doneButton.isHovered() && !doneButton.active)
|
||||
renderTooltip("You must first select a file.", mouseX, mouseY);
|
||||
renderTooltip(matrixStack,
|
||||
Arrays.asList(new LiteralText("You must first select a file.")),
|
||||
mouseX, mouseY);
|
||||
}
|
||||
|
||||
private static class ListGui extends ListWidget
|
||||
@ -217,15 +222,16 @@ public final class SelectFileScreen extends Screen
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void renderItem(int index, int x, int y, int var4, int var5,
|
||||
int var6, float partialTicks)
|
||||
protected void renderItem(MatrixStack matrixStack, int index, int x,
|
||||
int y, int var4, int var5, int var6, float partialTicks)
|
||||
{
|
||||
TextRenderer fr = mc.textRenderer;
|
||||
|
||||
Path path = list.get(index);
|
||||
fr.draw("" + path.getFileName(), x + 28, y, 0xf0f0f0);
|
||||
fr.draw("" + minecraft.runDirectory.toPath().relativize(path),
|
||||
x + 28, y + 9, 0xa0a0a0);
|
||||
fr.draw(matrixStack, "" + path.getFileName(), x + 28, y, 0xf0f0f0);
|
||||
fr.draw(matrixStack,
|
||||
"" + client.runDirectory.toPath().relativize(path), x + 28,
|
||||
y + 9, 0xa0a0a0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ public final class AnnoyCmd extends Command implements ChatInputListener
|
||||
ChatUtils.message("Now annoying " + target + ".");
|
||||
|
||||
ClientPlayerEntity player = MC.player;
|
||||
if(player != null && target.equals(player.getName().asString()))
|
||||
if(player != null && target.equals(player.getName().getString()))
|
||||
ChatUtils.warning("Annoying yourself is a bad idea!");
|
||||
|
||||
EVENTS.add(ChatInputListener.class, this);
|
||||
|
@ -125,7 +125,7 @@ public final class BindsCmd extends Command
|
||||
|
||||
try
|
||||
{
|
||||
InputUtil.fromName(key);
|
||||
InputUtil.fromTranslationKey(key);
|
||||
return key;
|
||||
|
||||
}catch(IllegalArgumentException e)
|
||||
|
@ -76,7 +76,7 @@ public final class DropCmd extends Command implements UpdateListener
|
||||
if(adjustedSlot >= 36)
|
||||
adjustedSlot -= 36;
|
||||
|
||||
if(!MC.player.inventory.getInvStack(adjustedSlot).isEmpty())
|
||||
if(!MC.player.inventory.getStack(adjustedSlot).isEmpty())
|
||||
break;
|
||||
|
||||
slowModeSlotCounter++;
|
||||
|
@ -35,7 +35,7 @@ public final class ExcavateCmd extends Command
|
||||
|
||||
private BlockPos argsToXyzPos(String... xyz) throws CmdSyntaxError
|
||||
{
|
||||
BlockPos playerPos = new BlockPos(MC.player);
|
||||
BlockPos playerPos = new BlockPos(MC.player.getPos());
|
||||
int[] player =
|
||||
new int[]{playerPos.getX(), playerPos.getY(), playerPos.getZ()};
|
||||
int[] pos = new int[3];
|
||||
|
@ -43,7 +43,7 @@ public final class FollowCmd extends Command
|
||||
.filter(e -> !e.removed && ((LivingEntity)e).getHealth() > 0)
|
||||
.filter(e -> e != MC.player)
|
||||
.filter(e -> !(e instanceof FakePlayerEntity))
|
||||
.filter(e -> args[0].equalsIgnoreCase(e.getName().asString()))
|
||||
.filter(e -> args[0].equalsIgnoreCase(e.getName().getString()))
|
||||
.min(
|
||||
Comparator.comparingDouble(e -> MC.player.squaredDistanceTo(e)))
|
||||
.orElse(null);
|
||||
|
@ -24,7 +24,7 @@ public final class GetPosCmd extends Command
|
||||
@Override
|
||||
public void call(String[] args) throws CmdException
|
||||
{
|
||||
BlockPos pos = new BlockPos(MC.player);
|
||||
BlockPos pos = new BlockPos(MC.player.getPos());
|
||||
String posString = pos.getX() + " " + pos.getY() + " " + pos.getZ();
|
||||
|
||||
switch(String.join(" ", args).toLowerCase())
|
||||
|
@ -114,7 +114,7 @@ public final class GiveCmd extends Command
|
||||
{
|
||||
for(int i = 0; i < 9; i++)
|
||||
{
|
||||
if(!MC.player.inventory.getInvStack(i).isEmpty())
|
||||
if(!MC.player.inventory.getStack(i).isEmpty())
|
||||
continue;
|
||||
|
||||
MC.player.networkHandler.sendPacket(
|
||||
|
@ -93,7 +93,7 @@ public final class GoToCmd extends Command
|
||||
.filter(e -> !e.removed && e.getHealth() > 0)
|
||||
.filter(e -> e != MC.player)
|
||||
.filter(e -> !(e instanceof FakePlayerEntity))
|
||||
.filter(e -> name.equalsIgnoreCase(e.getDisplayName().asString()))
|
||||
.filter(e -> name.equalsIgnoreCase(e.getDisplayName().getString()))
|
||||
.min(
|
||||
Comparator.comparingDouble(e -> MC.player.squaredDistanceTo(e)))
|
||||
.orElse(null);
|
||||
@ -101,12 +101,12 @@ public final class GoToCmd extends Command
|
||||
if(entity == null)
|
||||
throw new CmdError("Entity \"" + name + "\" could not be found.");
|
||||
|
||||
return new BlockPos(entity);
|
||||
return new BlockPos(entity.getPos());
|
||||
}
|
||||
|
||||
private BlockPos argsToXyzPos(String... xyz) throws CmdSyntaxError
|
||||
{
|
||||
BlockPos playerPos = new BlockPos(MC.player);
|
||||
BlockPos playerPos = new BlockPos(MC.player.getPos());
|
||||
int[] player =
|
||||
new int[]{playerPos.getX(), playerPos.getY(), playerPos.getZ()};
|
||||
int[] pos = new int[3];
|
||||
|
@ -54,7 +54,7 @@ public final class InvseeCmd extends Command implements RenderListener
|
||||
continue;
|
||||
|
||||
OtherClientPlayerEntity player = (OtherClientPlayerEntity)entity;
|
||||
String otherPlayerName = player.getName().asString();
|
||||
String otherPlayerName = player.getName().getString();
|
||||
if(!otherPlayerName.equalsIgnoreCase(targetName))
|
||||
continue;
|
||||
|
||||
|
@ -25,7 +25,7 @@ public final class JumpCmd extends Command
|
||||
if(args.length != 0)
|
||||
throw new CmdSyntaxError();
|
||||
|
||||
if(!MC.player.onGround && !WURST.getHax().jetpackHack.isEnabled())
|
||||
if(!MC.player.isOnGround() && !WURST.getHax().jetpackHack.isEnabled())
|
||||
throw new CmdError("Can't jump in mid-air.");
|
||||
|
||||
MC.player.jump();
|
||||
|
@ -132,7 +132,7 @@ public final class PathCmd extends Command
|
||||
.filter(e -> !e.removed && e.getHealth() > 0)
|
||||
.filter(e -> e != MC.player)
|
||||
.filter(e -> !(e instanceof FakePlayerEntity))
|
||||
.filter(e -> name.equalsIgnoreCase(e.getDisplayName().asString()))
|
||||
.filter(e -> name.equalsIgnoreCase(e.getDisplayName().getString()))
|
||||
.min(
|
||||
Comparator.comparingDouble(e -> MC.player.squaredDistanceTo(e)))
|
||||
.orElse(null);
|
||||
@ -140,12 +140,12 @@ public final class PathCmd extends Command
|
||||
if(entity == null)
|
||||
throw new CmdError("Entity \"" + name + "\" could not be found.");
|
||||
|
||||
return new BlockPos(entity);
|
||||
return new BlockPos(entity.getPos());
|
||||
}
|
||||
|
||||
private BlockPos argsToXyzPos(String... xyz) throws CmdSyntaxError
|
||||
{
|
||||
BlockPos playerPos = new BlockPos(MC.player);
|
||||
BlockPos playerPos = new BlockPos(MC.player.getPos());
|
||||
int[] player =
|
||||
new int[]{playerPos.getX(), playerPos.getY(), playerPos.getZ()};
|
||||
int[] pos = new int[3];
|
||||
|
@ -44,7 +44,7 @@ public final class ProtectCmd extends Command
|
||||
.filter(e -> !e.removed && ((LivingEntity)e).getHealth() > 0)
|
||||
.filter(e -> e != MC.player)
|
||||
.filter(e -> !(e instanceof FakePlayerEntity))
|
||||
.filter(e -> args[0].equalsIgnoreCase(e.getName().asString()))
|
||||
.filter(e -> args[0].equalsIgnoreCase(e.getName().getString()))
|
||||
.min(
|
||||
Comparator.comparingDouble(e -> MC.player.squaredDistanceTo(e)))
|
||||
.orElse(null);
|
||||
|
@ -42,7 +42,7 @@ public final class SvCmd extends Command
|
||||
throw new IllegalStateException(
|
||||
"LastServerRememberer doesn't remember the last server!");
|
||||
|
||||
return lastServer.version;
|
||||
return lastServer.version.getString();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -11,6 +11,7 @@ import org.lwjgl.opengl.GL11;
|
||||
|
||||
import net.minecraft.client.gui.DrawableHelper;
|
||||
import net.minecraft.client.util.Window;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.wurstclient.Category;
|
||||
import net.wurstclient.command.CmdException;
|
||||
@ -80,7 +81,7 @@ public final class TacoCmd extends Command
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRenderGUI(float partialTicks)
|
||||
public void onRenderGUI(MatrixStack matrixStack, float partialTicks)
|
||||
{
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||
@ -101,7 +102,7 @@ public final class TacoCmd extends Command
|
||||
int y = sr.getScaledHeight() - 32 - 19;
|
||||
int w = 64;
|
||||
int h = 32;
|
||||
DrawableHelper.blit(x, y, 0, 0, w, h, w, h);
|
||||
DrawableHelper.drawTexture(matrixStack, x, y, 0, 0, w, h, w, h);
|
||||
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
GL11.glDisable(GL11.GL_BLEND);
|
||||
|
@ -60,7 +60,7 @@ public final class TpCmd extends Command
|
||||
.filter(e -> !e.removed && e.getHealth() > 0)
|
||||
.filter(e -> e != MC.player)
|
||||
.filter(e -> !(e instanceof FakePlayerEntity))
|
||||
.filter(e -> name.equalsIgnoreCase(e.getDisplayName().asString()))
|
||||
.filter(e -> name.equalsIgnoreCase(e.getDisplayName().getString()))
|
||||
.min(
|
||||
Comparator.comparingDouble(e -> MC.player.squaredDistanceTo(e)))
|
||||
.orElse(null);
|
||||
@ -68,12 +68,12 @@ public final class TpCmd extends Command
|
||||
if(entity == null)
|
||||
throw new CmdError("Entity \"" + name + "\" could not be found.");
|
||||
|
||||
return new BlockPos(entity);
|
||||
return new BlockPos(entity.getPos());
|
||||
}
|
||||
|
||||
private BlockPos argsToXyzPos(String... xyz) throws CmdSyntaxError
|
||||
{
|
||||
BlockPos playerPos = new BlockPos(MC.player);
|
||||
BlockPos playerPos = new BlockPos(MC.player.getPos());
|
||||
int[] player =
|
||||
new int[]{playerPos.getX(), playerPos.getY(), playerPos.getZ()};
|
||||
int[] pos = new int[3];
|
||||
|
@ -9,19 +9,22 @@ package net.wurstclient.events;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.wurstclient.event.Event;
|
||||
import net.wurstclient.event.Listener;
|
||||
|
||||
public interface GUIRenderListener extends Listener
|
||||
{
|
||||
public void onRenderGUI(float partialTicks);
|
||||
public void onRenderGUI(MatrixStack matrixStack, float partialTicks);
|
||||
|
||||
public static class GUIRenderEvent extends Event<GUIRenderListener>
|
||||
{
|
||||
private final float partialTicks;
|
||||
private final MatrixStack matrixStack;
|
||||
|
||||
public GUIRenderEvent(float partialTicks)
|
||||
public GUIRenderEvent(MatrixStack matrixStack, float partialTicks)
|
||||
{
|
||||
this.matrixStack = matrixStack;
|
||||
this.partialTicks = partialTicks;
|
||||
}
|
||||
|
||||
@ -29,7 +32,7 @@ public interface GUIRenderListener extends Listener
|
||||
public void fire(ArrayList<GUIRenderListener> listeners)
|
||||
{
|
||||
for(GUIRenderListener listener : listeners)
|
||||
listener.onRenderGUI(partialTicks);
|
||||
listener.onRenderGUI(matrixStack, partialTicks);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -54,7 +54,7 @@ public final class AntiAfkHack extends Hack
|
||||
@Override
|
||||
public void onEnable()
|
||||
{
|
||||
start = new BlockPos(MC.player);
|
||||
start = new BlockPos(MC.player.getPos());
|
||||
nextBlock = null;
|
||||
pathFinder = new RandomPathFinder(start);
|
||||
creativeFlying = MC.player.abilities.flying;
|
||||
@ -149,12 +149,11 @@ public final class AntiAfkHack extends Hack
|
||||
}
|
||||
|
||||
// face block
|
||||
WURST.getRotationFaker().faceVectorClientIgnorePitch(
|
||||
new Vec3d(nextBlock).add(0.5, 0.5, 0.5));
|
||||
WURST.getRotationFaker()
|
||||
.faceVectorClientIgnorePitch(Vec3d.ofCenter(nextBlock));
|
||||
|
||||
// walk
|
||||
if(MC.player.squaredDistanceTo(
|
||||
new Vec3d(nextBlock).add(0.5, 0.5, 0.5)) > 0.5)
|
||||
if(MC.player.squaredDistanceTo(Vec3d.ofCenter(nextBlock)) > 0.5)
|
||||
MC.options.keyForward.setPressed(true);
|
||||
else
|
||||
MC.options.keyForward.setPressed(false);
|
||||
|
@ -8,11 +8,14 @@
|
||||
package net.wurstclient.hacks;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import net.minecraft.client.gui.hud.ChatHud;
|
||||
import net.minecraft.client.gui.hud.ChatHudLine;
|
||||
import net.minecraft.client.util.Texts;
|
||||
import net.minecraft.text.Text;
|
||||
import net.minecraft.client.util.ChatMessages;
|
||||
import net.minecraft.text.LiteralText;
|
||||
import net.minecraft.text.StringRenderable;
|
||||
import net.minecraft.text.StringRenderable.Visitor;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.wurstclient.Category;
|
||||
import net.wurstclient.SearchTags;
|
||||
@ -49,22 +52,49 @@ public final class AntiSpamHack extends Hack implements ChatInputListener
|
||||
if(chatLines.isEmpty())
|
||||
return;
|
||||
|
||||
/**
|
||||
* A {@link Visitor} to completely bypass Mojang's visitor system and
|
||||
* just get the damn {@link String} out of a {@link ChatHudLine}.
|
||||
*
|
||||
* <p>
|
||||
* Is this seriously the replacement for <code>getString()</code>? What
|
||||
* were they thinking?!
|
||||
*/
|
||||
class JustGiveMeTheStringVisitor implements Visitor<Object>
|
||||
{
|
||||
String s = "";
|
||||
|
||||
@Override
|
||||
public Optional<Object> accept(String asString)
|
||||
{
|
||||
s += asString;
|
||||
return Optional.empty();
|
||||
}
|
||||
}
|
||||
|
||||
ChatHud chat = MC.inGameHud.getChatHud();
|
||||
int maxTextLength =
|
||||
MathHelper.floor(chat.getWidth() / chat.getChatScale());
|
||||
List<Text> newLines = Texts.wrapLines(event.getComponent(),
|
||||
maxTextLength, MC.textRenderer, false, false);
|
||||
List<StringRenderable> newLines =
|
||||
ChatMessages.breakRenderedChatMessageLines(event.getComponent(),
|
||||
maxTextLength, MC.textRenderer);
|
||||
|
||||
int spamCounter = 1;
|
||||
int matchingLines = 0;
|
||||
|
||||
for(int i = chatLines.size() - 1; i >= 0; i--)
|
||||
{
|
||||
String oldLine = chatLines.get(i).getText().getString();
|
||||
JustGiveMeTheStringVisitor oldLineVS =
|
||||
new JustGiveMeTheStringVisitor();
|
||||
chatLines.get(i).getText().visit(oldLineVS);
|
||||
String oldLine = oldLineVS.s;
|
||||
|
||||
if(matchingLines <= newLines.size() - 1)
|
||||
{
|
||||
String newLine = newLines.get(matchingLines).getString();
|
||||
JustGiveMeTheStringVisitor newLineVS =
|
||||
new JustGiveMeTheStringVisitor();
|
||||
newLines.get(matchingLines).visit(newLineVS);
|
||||
String newLine = newLineVS.s;
|
||||
|
||||
if(matchingLines < newLines.size() - 1)
|
||||
{
|
||||
@ -84,8 +114,12 @@ public final class AntiSpamHack extends Hack implements ChatInputListener
|
||||
|
||||
if(i > 0 && matchingLines == newLines.size() - 1)
|
||||
{
|
||||
String twoLines =
|
||||
oldLine + chatLines.get(i - 1).getText().getString();
|
||||
JustGiveMeTheStringVisitor nextOldLineVS =
|
||||
new JustGiveMeTheStringVisitor();
|
||||
chatLines.get(i - 1).getText().visit(nextOldLineVS);
|
||||
String nextOldLine = nextOldLineVS.s;
|
||||
|
||||
String twoLines = oldLine + nextOldLine;
|
||||
String addedText = twoLines.substring(newLine.length());
|
||||
|
||||
if(addedText.startsWith(" [x") && addedText.endsWith("]"))
|
||||
@ -131,6 +165,7 @@ public final class AntiSpamHack extends Hack implements ChatInputListener
|
||||
}
|
||||
|
||||
if(spamCounter > 1)
|
||||
event.getComponent().append(" [x" + spamCounter + "]");
|
||||
event.setComponent(new LiteralText(
|
||||
event.getComponent().getString() + " [x" + spamCounter + "]"));
|
||||
}
|
||||
}
|
||||
|
@ -56,7 +56,7 @@ public final class AntiWaterPushHack extends Hack implements UpdateListener,
|
||||
if(!MC.options.keyJump.isPressed())
|
||||
return;
|
||||
|
||||
if(!MC.player.onGround)
|
||||
if(!MC.player.isOnGround())
|
||||
return;
|
||||
|
||||
if(!IMC.getPlayer().isTouchingWaterBypass())
|
||||
|
@ -11,7 +11,7 @@ import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
|
||||
import net.minecraft.client.gui.screen.ingame.ContainerScreen;
|
||||
import net.minecraft.client.gui.screen.ingame.HandledScreen;
|
||||
import net.minecraft.client.gui.screen.ingame.InventoryScreen;
|
||||
import net.minecraft.client.network.ClientPlayerEntity;
|
||||
import net.minecraft.enchantment.Enchantment;
|
||||
@ -93,7 +93,7 @@ public final class AutoArmorHack extends Hack
|
||||
}
|
||||
|
||||
// check screen
|
||||
if(MC.currentScreen instanceof ContainerScreen
|
||||
if(MC.currentScreen instanceof HandledScreen
|
||||
&& !(MC.currentScreen instanceof InventoryScreen))
|
||||
return;
|
||||
|
||||
@ -124,7 +124,7 @@ public final class AutoArmorHack extends Hack
|
||||
// search inventory for better armor
|
||||
for(int slot = 0; slot < 36; slot++)
|
||||
{
|
||||
ItemStack stack = inventory.getInvStack(slot);
|
||||
ItemStack stack = inventory.getStack(slot);
|
||||
|
||||
if(stack.isEmpty() || !(stack.getItem() instanceof ArmorItem))
|
||||
continue;
|
||||
|
@ -229,7 +229,7 @@ public final class AutoBuildHack extends Hack
|
||||
|
||||
private boolean tryToPlace(BlockPos pos, Vec3d eyesPos, double rangeSq)
|
||||
{
|
||||
Vec3d posVec = new Vec3d(pos).add(0.5, 0.5, 0.5);
|
||||
Vec3d posVec = Vec3d.ofCenter(pos);
|
||||
double distanceSqPosVec = eyesPos.squaredDistanceTo(posVec);
|
||||
|
||||
for(Direction side : Direction.values())
|
||||
@ -241,7 +241,7 @@ public final class AutoBuildHack extends Hack
|
||||
|| BlockUtils.getState(neighbor).getMaterial().isReplaceable())
|
||||
continue;
|
||||
|
||||
Vec3d dirVec = new Vec3d(side.getVector());
|
||||
Vec3d dirVec = Vec3d.of(side.getVector());
|
||||
Vec3d hitVec = posVec.add(dirVec.multiply(0.5));
|
||||
|
||||
// check if hitVec is within range
|
||||
@ -264,7 +264,7 @@ public final class AutoBuildHack extends Hack
|
||||
Rotation rotation = RotationUtils.getNeededRotations(hitVec);
|
||||
PlayerMoveC2SPacket.LookOnly packet =
|
||||
new PlayerMoveC2SPacket.LookOnly(rotation.getYaw(),
|
||||
rotation.getPitch(), MC.player.onGround);
|
||||
rotation.getPitch(), MC.player.isOnGround());
|
||||
MC.player.networkHandler.sendPacket(packet);
|
||||
|
||||
// place block
|
||||
@ -316,7 +316,7 @@ public final class AutoBuildHack extends Hack
|
||||
if(!BlockUtils.getState(pos).getMaterial().isReplaceable())
|
||||
continue;
|
||||
|
||||
Vec3d posVec = new Vec3d(pos).add(0.5, 0.5, 0.5);
|
||||
Vec3d posVec = Vec3d.ofCenter(pos);
|
||||
|
||||
for(Direction side : Direction.values())
|
||||
{
|
||||
@ -326,7 +326,7 @@ public final class AutoBuildHack extends Hack
|
||||
if(!BlockUtils.canBeClicked(neighbor))
|
||||
continue;
|
||||
|
||||
Vec3d sideVec = new Vec3d(side.getVector());
|
||||
Vec3d sideVec = Vec3d.of(side.getVector());
|
||||
Vec3d hitVec = posVec.add(sideVec.multiply(0.5));
|
||||
|
||||
// check if hitVec is within range
|
||||
@ -380,7 +380,7 @@ public final class AutoBuildHack extends Hack
|
||||
GL11.glTranslated(offset, offset, offset);
|
||||
GL11.glScaled(scale, scale, scale);
|
||||
|
||||
Vec3d posVec = new Vec3d(pos).add(0.5, 0.5, 0.5);
|
||||
Vec3d posVec = Vec3d.ofCenter(pos);
|
||||
|
||||
if(eyesPos.squaredDistanceTo(posVec) <= rangeSq)
|
||||
drawGreenBox();
|
||||
|
@ -66,7 +66,7 @@ public final class AutoDropHack extends Hack implements UpdateListener
|
||||
int adjustedSlot = slot;
|
||||
if(adjustedSlot >= 36)
|
||||
adjustedSlot -= 36;
|
||||
ItemStack stack = MC.player.inventory.getInvStack(adjustedSlot);
|
||||
ItemStack stack = MC.player.inventory.getStack(adjustedSlot);
|
||||
|
||||
if(stack.isEmpty())
|
||||
continue;
|
||||
|
@ -9,7 +9,7 @@ package net.wurstclient.hacks;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
import com.mojang.datafixers.util.Pair;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockWithEntity;
|
||||
@ -126,7 +126,7 @@ public final class AutoEatHack extends Hack implements UpdateListener
|
||||
for(int i = 0; i < 9; i++)
|
||||
{
|
||||
// filter out non-food items
|
||||
Item item = MC.player.inventory.getInvStack(i).getItem();
|
||||
Item item = MC.player.inventory.getStack(i).getItem();
|
||||
if(!item.isFood())
|
||||
continue;
|
||||
|
||||
@ -152,7 +152,7 @@ public final class AutoEatHack extends Hack implements UpdateListener
|
||||
|
||||
for(Pair<StatusEffectInstance, Float> pair : food.getStatusEffects())
|
||||
{
|
||||
StatusEffect effect = pair.getLeft().getEffectType();
|
||||
StatusEffect effect = pair.getFirst().getEffectType();
|
||||
|
||||
if(!allowHunger.isChecked() && effect == StatusEffects.HUNGER)
|
||||
return false;
|
||||
|
@ -128,7 +128,7 @@ public final class AutoFarmHack extends Hack
|
||||
int blockRange = (int)Math.ceil(range.getValue());
|
||||
|
||||
List<BlockPos> blocks = getBlockStream(eyesBlock, blockRange)
|
||||
.filter(pos -> eyesVec.squaredDistanceTo(new Vec3d(pos)) <= rangeSq)
|
||||
.filter(pos -> eyesVec.squaredDistanceTo(Vec3d.of(pos)) <= rangeSq)
|
||||
.filter(pos -> BlockUtils.canBeClicked(pos))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
@ -142,18 +142,18 @@ public final class AutoFarmHack extends Hack
|
||||
blocksToHarvest =
|
||||
blocks.parallelStream().filter(this::shouldBeHarvested)
|
||||
.sorted(Comparator.comparingDouble(
|
||||
pos -> eyesVec.squaredDistanceTo(new Vec3d(pos))))
|
||||
pos -> eyesVec.squaredDistanceTo(Vec3d.of(pos))))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
blocksToReplant = getBlockStream(eyesBlock, blockRange)
|
||||
.filter(
|
||||
pos -> eyesVec.squaredDistanceTo(new Vec3d(pos)) <= rangeSq)
|
||||
pos -> eyesVec.squaredDistanceTo(Vec3d.of(pos)) <= rangeSq)
|
||||
.filter(pos -> BlockUtils.getState(pos).getMaterial()
|
||||
.isReplaceable())
|
||||
.filter(pos -> plants.containsKey(pos))
|
||||
.filter(this::canBeReplanted)
|
||||
.sorted(Comparator.comparingDouble(
|
||||
pos -> eyesVec.squaredDistanceTo(new Vec3d(pos))))
|
||||
pos -> eyesVec.squaredDistanceTo(Vec3d.of(pos))))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@ -310,7 +310,7 @@ public final class AutoFarmHack extends Hack
|
||||
if(slot == player.inventory.selectedSlot)
|
||||
continue;
|
||||
|
||||
ItemStack stack = player.inventory.getInvStack(slot);
|
||||
ItemStack stack = player.inventory.getStack(slot);
|
||||
if(stack.isEmpty() || stack.getItem() != neededItem)
|
||||
continue;
|
||||
|
||||
@ -344,13 +344,13 @@ public final class AutoFarmHack extends Hack
|
||||
Direction[] sides = Direction.values();
|
||||
|
||||
Vec3d eyesPos = RotationUtils.getEyesPos();
|
||||
Vec3d posVec = new Vec3d(pos).add(0.5, 0.5, 0.5);
|
||||
Vec3d posVec = Vec3d.ofCenter(pos);
|
||||
double distanceSqPosVec = eyesPos.squaredDistanceTo(posVec);
|
||||
|
||||
Vec3d[] hitVecs = new Vec3d[sides.length];
|
||||
for(int i = 0; i < sides.length; i++)
|
||||
hitVecs[i] =
|
||||
posVec.add(new Vec3d(sides[i].getVector()).multiply(0.5));
|
||||
posVec.add(Vec3d.of(sides[i].getVector()).multiply(0.5));
|
||||
|
||||
for(int i = 0; i < sides.length; i++)
|
||||
{
|
||||
|
@ -187,7 +187,7 @@ public final class AutoFishHack extends Hack
|
||||
{
|
||||
PlayerInventory inventory = MC.player.inventory;
|
||||
int selectedSlot = inventory.selectedSlot;
|
||||
ItemStack selectedStack = inventory.getInvStack(selectedSlot);
|
||||
ItemStack selectedStack = inventory.getStack(selectedSlot);
|
||||
|
||||
// start with selected rod
|
||||
bestRodValue = getRodValue(selectedStack);
|
||||
@ -196,7 +196,7 @@ public final class AutoFishHack extends Hack
|
||||
// search inventory for better rod
|
||||
for(int slot = 0; slot < 36; slot++)
|
||||
{
|
||||
ItemStack stack = inventory.getInvStack(slot);
|
||||
ItemStack stack = inventory.getStack(slot);
|
||||
int rodValue = getRodValue(stack);
|
||||
|
||||
if(rodValue > bestRodValue)
|
||||
|
@ -106,7 +106,8 @@ public final class AutoLeaveHack extends Hack implements UpdateListener
|
||||
|
||||
case SELFHURT:
|
||||
MC.player.networkHandler
|
||||
.sendPacket(new PlayerInteractEntityC2SPacket(MC.player));
|
||||
.sendPacket(new PlayerInteractEntityC2SPacket(MC.player,
|
||||
MC.player.isSneaking()));
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -82,14 +82,14 @@ public final class AutoPotionHack extends Hack implements UpdateListener
|
||||
MC.player.inventory.selectedSlot = potionInHotbar;
|
||||
MC.player.networkHandler
|
||||
.sendPacket(new PlayerMoveC2SPacket.LookOnly(MC.player.yaw, 90,
|
||||
MC.player.onGround));
|
||||
MC.player.isOnGround()));
|
||||
IMC.getInteractionManager().rightClickItem();
|
||||
|
||||
// reset slot and rotation
|
||||
MC.player.inventory.selectedSlot = oldSlot;
|
||||
MC.player.networkHandler
|
||||
.sendPacket(new PlayerMoveC2SPacket.LookOnly(MC.player.yaw,
|
||||
MC.player.pitch, MC.player.onGround));
|
||||
MC.player.pitch, MC.player.isOnGround()));
|
||||
|
||||
// reset timer
|
||||
timer = 10;
|
||||
@ -110,7 +110,7 @@ public final class AutoPotionHack extends Hack implements UpdateListener
|
||||
{
|
||||
for(int i = startSlot; i < endSlot; i++)
|
||||
{
|
||||
ItemStack stack = MC.player.inventory.getInvStack(i);
|
||||
ItemStack stack = MC.player.inventory.getStack(i);
|
||||
|
||||
// filter out non-splash potion items
|
||||
if(stack.getItem() != Items.SPLASH_POTION)
|
||||
|
@ -68,12 +68,12 @@ public final class AutoSoupHack extends Hack implements UpdateListener
|
||||
for(int i = 0; i < 36; i++)
|
||||
{
|
||||
// filter out non-bowl items and empty bowl slot
|
||||
ItemStack stack = MC.player.inventory.getInvStack(i);
|
||||
ItemStack stack = MC.player.inventory.getStack(i);
|
||||
if(stack == null || stack.getItem() != Items.BOWL || i == 9)
|
||||
continue;
|
||||
|
||||
// check if empty bowl slot contains a non-bowl item
|
||||
ItemStack emptyBowlStack = MC.player.inventory.getInvStack(9);
|
||||
ItemStack emptyBowlStack = MC.player.inventory.getStack(9);
|
||||
boolean swap = !emptyBowlStack.isEmpty()
|
||||
&& emptyBowlStack.getItem() != Items.BOWL;
|
||||
|
||||
@ -128,7 +128,7 @@ public final class AutoSoupHack extends Hack implements UpdateListener
|
||||
{
|
||||
for(int i = startSlot; i < endSlot; i++)
|
||||
{
|
||||
ItemStack stack = MC.player.inventory.getInvStack(i);
|
||||
ItemStack stack = MC.player.inventory.getStack(i);
|
||||
|
||||
if(stack != null && stack.getItem() instanceof MushroomStewItem)
|
||||
return i;
|
||||
|
@ -110,10 +110,10 @@ public final class AutoSwordHack extends Hack implements UpdateListener
|
||||
for(int i = 0; i < 9; i++)
|
||||
{
|
||||
// skip empty slots
|
||||
if(MC.player.inventory.getInvStack(i).isEmpty())
|
||||
if(MC.player.inventory.getStack(i).isEmpty())
|
||||
continue;
|
||||
|
||||
Item item = MC.player.inventory.getInvStack(i).getItem();
|
||||
Item item = MC.player.inventory.getStack(i).getItem();
|
||||
|
||||
// get damage
|
||||
float value = getValue(item);
|
||||
|
@ -155,7 +155,7 @@ public final class AutoToolHack extends Hack
|
||||
if(slot == inventory.selectedSlot)
|
||||
continue;
|
||||
|
||||
ItemStack stack = inventory.getInvStack(slot);
|
||||
ItemStack stack = inventory.getStack(slot);
|
||||
|
||||
float speed = getMiningSpeed(stack, state);
|
||||
if(speed <= bestSpeed)
|
||||
@ -176,7 +176,7 @@ public final class AutoToolHack extends Hack
|
||||
|
||||
private float getMiningSpeed(ItemStack stack, BlockState state)
|
||||
{
|
||||
float speed = stack.getMiningSpeed(state);
|
||||
float speed = stack.getMiningSpeedMultiplier(state);
|
||||
|
||||
if(speed > 1)
|
||||
{
|
||||
@ -232,7 +232,7 @@ public final class AutoToolHack extends Hack
|
||||
if(slot == inventory.selectedSlot)
|
||||
continue;
|
||||
|
||||
ItemStack stack = inventory.getInvStack(slot);
|
||||
ItemStack stack = inventory.getStack(slot);
|
||||
|
||||
if(!isDamageable(stack))
|
||||
return slot;
|
||||
|
@ -140,10 +140,10 @@ public final class BonemealAuraHack extends Hack implements UpdateListener
|
||||
BlockPos max = center.add(rangeI, rangeI, rangeI);
|
||||
|
||||
return BlockUtils.getAllInBox(min, max).stream()
|
||||
.filter(pos -> eyesVec.squaredDistanceTo(new Vec3d(pos)) <= rangeSq)
|
||||
.filter(pos -> eyesVec.squaredDistanceTo(Vec3d.of(pos)) <= rangeSq)
|
||||
.filter(validator)
|
||||
.sorted(Comparator.comparingDouble(
|
||||
pos -> eyesVec.squaredDistanceTo(new Vec3d(pos))))
|
||||
pos -> eyesVec.squaredDistanceTo(Vec3d.of(pos))))
|
||||
.collect(Collectors.toCollection(() -> new ArrayList<>()));
|
||||
}
|
||||
|
||||
@ -171,13 +171,12 @@ public final class BonemealAuraHack extends Hack implements UpdateListener
|
||||
private boolean rightClickBlockLegit(BlockPos pos)
|
||||
{
|
||||
Vec3d eyesPos = RotationUtils.getEyesPos();
|
||||
Vec3d posVec = new Vec3d(pos).add(0.5, 0.5, 0.5);
|
||||
Vec3d posVec = Vec3d.ofCenter(pos);
|
||||
double distanceSqPosVec = eyesPos.squaredDistanceTo(posVec);
|
||||
|
||||
for(Direction side : Direction.values())
|
||||
{
|
||||
Vec3d hitVec =
|
||||
posVec.add(new Vec3d(side.getVector()).multiply(0.5));
|
||||
Vec3d hitVec = posVec.add(Vec3d.of(side.getVector()).multiply(0.5));
|
||||
double distanceSqHitVec = eyesPos.squaredDistanceTo(hitVec);
|
||||
|
||||
// check if hitVec is within range (4.25 blocks)
|
||||
@ -213,13 +212,12 @@ public final class BonemealAuraHack extends Hack implements UpdateListener
|
||||
private boolean rightClickBlockSimple(BlockPos pos)
|
||||
{
|
||||
Vec3d eyesPos = RotationUtils.getEyesPos();
|
||||
Vec3d posVec = new Vec3d(pos).add(0.5, 0.5, 0.5);
|
||||
Vec3d posVec = Vec3d.ofCenter(pos);
|
||||
double distanceSqPosVec = eyesPos.squaredDistanceTo(posVec);
|
||||
|
||||
for(Direction side : Direction.values())
|
||||
{
|
||||
Vec3d hitVec =
|
||||
posVec.add(new Vec3d(side.getVector()).multiply(0.5));
|
||||
Vec3d hitVec = posVec.add(Vec3d.of(side.getVector()).multiply(0.5));
|
||||
double distanceSqHitVec = eyesPos.squaredDistanceTo(hitVec);
|
||||
|
||||
// check if hitVec is within range (6 blocks)
|
||||
|
@ -16,13 +16,14 @@ import org.lwjgl.opengl.GL11;
|
||||
|
||||
import net.minecraft.client.network.ClientPlayerEntity;
|
||||
import net.minecraft.client.util.Window;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.LivingEntity;
|
||||
import net.minecraft.entity.mob.AmbientEntity;
|
||||
import net.minecraft.entity.mob.EndermanEntity;
|
||||
import net.minecraft.entity.mob.Monster;
|
||||
import net.minecraft.entity.mob.WaterCreatureEntity;
|
||||
import net.minecraft.entity.mob.ZombiePigmanEntity;
|
||||
import net.minecraft.entity.mob.ZombifiedPiglinEntity;
|
||||
import net.minecraft.entity.passive.AnimalEntity;
|
||||
import net.minecraft.entity.passive.GolemEntity;
|
||||
import net.minecraft.entity.passive.HorseBaseEntity;
|
||||
@ -200,7 +201,7 @@ public final class BowAimbotHack extends Hack
|
||||
stream = stream.filter(e -> !(e instanceof Monster));
|
||||
|
||||
if(filterPigmen.isChecked())
|
||||
stream = stream.filter(e -> !(e instanceof ZombiePigmanEntity));
|
||||
stream = stream.filter(e -> !(e instanceof ZombifiedPiglinEntity));
|
||||
|
||||
if(filterEndermen.isChecked())
|
||||
stream = stream.filter(e -> !(e instanceof EndermanEntity));
|
||||
@ -322,7 +323,7 @@ public final class BowAimbotHack extends Hack
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRenderGUI(float partialTicks)
|
||||
public void onRenderGUI(MatrixStack matrixStack, float partialTicks)
|
||||
{
|
||||
if(target == null)
|
||||
return;
|
||||
@ -343,7 +344,7 @@ public final class BowAimbotHack extends Hack
|
||||
|
||||
// translate to center
|
||||
Window sr = MC.getWindow();
|
||||
int msgWidth = MC.textRenderer.getStringWidth(message);
|
||||
int msgWidth = MC.textRenderer.getWidth(message);
|
||||
GL11.glTranslated(sr.getScaledWidth() / 2 - msgWidth / 2,
|
||||
sr.getScaledHeight() / 2 + 1, 0);
|
||||
|
||||
@ -360,7 +361,7 @@ public final class BowAimbotHack extends Hack
|
||||
|
||||
// text
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
MC.textRenderer.draw(message, 2, 1, 0xffffffff);
|
||||
MC.textRenderer.draw(matrixStack, message, 2, 1, 0xffffffff);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
|
||||
|
@ -107,8 +107,9 @@ public final class BuildRandomHack extends Hack
|
||||
do
|
||||
{
|
||||
// generate random position
|
||||
pos = new BlockPos(MC.player).add(random.nextInt(bound) - range,
|
||||
random.nextInt(bound) - range, random.nextInt(bound) - range);
|
||||
pos = new BlockPos(MC.player.getPos()).add(
|
||||
random.nextInt(bound) - range, random.nextInt(bound) - range,
|
||||
random.nextInt(bound) - range);
|
||||
attempts++;
|
||||
|
||||
}while(attempts < 128 && !tryToPlaceBlock(legitMode, pos));
|
||||
@ -191,7 +192,7 @@ public final class BuildRandomHack extends Hack
|
||||
private boolean placeBlockLegit(BlockPos pos)
|
||||
{
|
||||
Vec3d eyesPos = RotationUtils.getEyesPos();
|
||||
Vec3d posVec = new Vec3d(pos).add(0.5, 0.5, 0.5);
|
||||
Vec3d posVec = Vec3d.ofCenter(pos);
|
||||
double distanceSqPosVec = eyesPos.squaredDistanceTo(posVec);
|
||||
|
||||
for(Direction side : Direction.values())
|
||||
@ -202,7 +203,7 @@ public final class BuildRandomHack extends Hack
|
||||
if(!BlockUtils.canBeClicked(neighbor))
|
||||
continue;
|
||||
|
||||
Vec3d dirVec = new Vec3d(side.getVector());
|
||||
Vec3d dirVec = Vec3d.of(side.getVector());
|
||||
Vec3d hitVec = posVec.add(dirVec.multiply(0.5));
|
||||
|
||||
// check if hitVec is within range (4.25 blocks)
|
||||
@ -225,7 +226,7 @@ public final class BuildRandomHack extends Hack
|
||||
Rotation rotation = RotationUtils.getNeededRotations(hitVec);
|
||||
PlayerMoveC2SPacket.LookOnly packet =
|
||||
new PlayerMoveC2SPacket.LookOnly(rotation.getYaw(),
|
||||
rotation.getPitch(), MC.player.onGround);
|
||||
rotation.getPitch(), MC.player.isOnGround());
|
||||
MC.player.networkHandler.sendPacket(packet);
|
||||
|
||||
// place block
|
||||
@ -243,7 +244,7 @@ public final class BuildRandomHack extends Hack
|
||||
private boolean placeBlockSimple_old(BlockPos pos)
|
||||
{
|
||||
Vec3d eyesPos = RotationUtils.getEyesPos();
|
||||
Vec3d posVec = new Vec3d(pos).add(0.5, 0.5, 0.5);
|
||||
Vec3d posVec = Vec3d.ofCenter(pos);
|
||||
|
||||
for(Direction side : Direction.values())
|
||||
{
|
||||
@ -253,8 +254,7 @@ public final class BuildRandomHack extends Hack
|
||||
if(!BlockUtils.canBeClicked(neighbor))
|
||||
continue;
|
||||
|
||||
Vec3d hitVec =
|
||||
posVec.add(new Vec3d(side.getVector()).multiply(0.5));
|
||||
Vec3d hitVec = posVec.add(Vec3d.of(side.getVector()).multiply(0.5));
|
||||
|
||||
// check if hitVec is within range (6 blocks)
|
||||
if(eyesPos.squaredDistanceTo(hitVec) > 36)
|
||||
|
@ -51,7 +51,7 @@ public final class BunnyHopHack extends Hack implements UpdateListener
|
||||
public void onUpdate()
|
||||
{
|
||||
ClientPlayerEntity player = MC.player;
|
||||
if(!player.onGround || player.isSneaking())
|
||||
if(!player.isOnGround() || player.isSneaking())
|
||||
return;
|
||||
|
||||
if(jumpIf.getSelected().condition.test(player))
|
||||
|
@ -319,8 +319,9 @@ public class ChestEspHack extends Hack implements UpdateListener,
|
||||
for(Box box : boxes)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(box.x1, box.y1, box.z1);
|
||||
GL11.glScaled(box.x2 - box.x1, box.y2 - box.y1, box.z2 - box.z1);
|
||||
GL11.glTranslated(box.minX, box.minY, box.minZ);
|
||||
GL11.glScaled(box.maxX - box.minX, box.maxY - box.minY,
|
||||
box.maxZ - box.minZ);
|
||||
GL11.glCallList(displayList);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ import net.minecraft.entity.mob.AmbientEntity;
|
||||
import net.minecraft.entity.mob.EndermanEntity;
|
||||
import net.minecraft.entity.mob.Monster;
|
||||
import net.minecraft.entity.mob.WaterCreatureEntity;
|
||||
import net.minecraft.entity.mob.ZombiePigmanEntity;
|
||||
import net.minecraft.entity.mob.ZombifiedPiglinEntity;
|
||||
import net.minecraft.entity.passive.AnimalEntity;
|
||||
import net.minecraft.entity.passive.GolemEntity;
|
||||
import net.minecraft.entity.passive.HorseBaseEntity;
|
||||
@ -201,7 +201,7 @@ public final class ClickAuraHack extends Hack
|
||||
stream = stream.filter(e -> !(e instanceof Monster));
|
||||
|
||||
if(filterPigmen.isChecked())
|
||||
stream = stream.filter(e -> !(e instanceof ZombiePigmanEntity));
|
||||
stream = stream.filter(e -> !(e instanceof ZombifiedPiglinEntity));
|
||||
|
||||
if(filterEndermen.isChecked())
|
||||
stream = stream.filter(e -> !(e instanceof EndermanEntity));
|
||||
@ -242,7 +242,7 @@ public final class ClickAuraHack extends Hack
|
||||
Rotation rotation = RotationUtils
|
||||
.getNeededRotations(target.getBoundingBox().getCenter());
|
||||
PlayerMoveC2SPacket.LookOnly packet = new PlayerMoveC2SPacket.LookOnly(
|
||||
rotation.getYaw(), rotation.getPitch(), MC.player.onGround);
|
||||
rotation.getYaw(), rotation.getPitch(), MC.player.isOnGround());
|
||||
MC.player.networkHandler.sendPacket(packet);
|
||||
|
||||
// attack entity
|
||||
|
@ -70,7 +70,7 @@ public final class CriticalsHack extends Hack implements LeftClickListener
|
||||
if(!isEnabled())
|
||||
return;
|
||||
|
||||
if(!MC.player.onGround)
|
||||
if(!MC.player.isOnGround())
|
||||
return;
|
||||
|
||||
if(MC.player.isTouchingWater() || MC.player.isInLava())
|
||||
@ -114,7 +114,7 @@ public final class CriticalsHack extends Hack implements LeftClickListener
|
||||
{
|
||||
MC.player.addVelocity(0, 0.1, 0);
|
||||
MC.player.fallDistance = 0.1F;
|
||||
MC.player.onGround = false;
|
||||
MC.player.setOnGround(false);
|
||||
}
|
||||
|
||||
private void doFullJump()
|
||||
|
@ -49,7 +49,7 @@ public final class DerpHack extends Hack implements UpdateListener
|
||||
float yaw = MC.player.yaw + random.nextFloat() * 360F - 180F;
|
||||
float pitch = random.nextFloat() * 180F - 90F;
|
||||
|
||||
MC.player.networkHandler.sendPacket(
|
||||
new PlayerMoveC2SPacket.LookOnly(yaw, pitch, MC.player.onGround));
|
||||
MC.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.LookOnly(
|
||||
yaw, pitch, MC.player.isOnGround()));
|
||||
}
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ import org.lwjgl.opengl.GL11;
|
||||
import net.minecraft.client.font.TextRenderer;
|
||||
import net.minecraft.client.util.InputUtil;
|
||||
import net.minecraft.client.util.Window;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.util.hit.BlockHitResult;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
@ -316,7 +317,7 @@ public final class ExcavatorHack extends Hack
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRenderGUI(float partialTicks)
|
||||
public void onRenderGUI(MatrixStack matrixStack, float partialTicks)
|
||||
{
|
||||
// GL settings
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
@ -336,7 +337,7 @@ public final class ExcavatorHack extends Hack
|
||||
|
||||
// translate to center
|
||||
Window sr = MC.getWindow();
|
||||
int msgWidth = tr.getStringWidth(message);
|
||||
int msgWidth = tr.getWidth(message);
|
||||
GL11.glTranslated(sr.getScaledWidth() / 2 - msgWidth / 2,
|
||||
sr.getScaledHeight() / 2 + 1, 0);
|
||||
|
||||
@ -353,7 +354,7 @@ public final class ExcavatorHack extends Hack
|
||||
|
||||
// text
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
tr.draw(message, 2, 1, 0xffffffff);
|
||||
tr.draw(matrixStack, message, 2, 1, 0xffffffff);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
|
||||
@ -503,9 +504,8 @@ public final class ExcavatorHack extends Hack
|
||||
|
||||
if(pathFinder == null)
|
||||
{
|
||||
Comparator<BlockPos> cDistance =
|
||||
Comparator.comparingDouble(pos -> MC.player
|
||||
.squaredDistanceTo(new Vec3d(pos).add(0.5, 0.5, 0.5)));
|
||||
Comparator<BlockPos> cDistance = Comparator.comparingDouble(
|
||||
pos -> MC.player.squaredDistanceTo(Vec3d.ofCenter(pos)));
|
||||
Comparator<BlockPos> cAltitude =
|
||||
Comparator.comparingInt(pos -> -pos.getY());
|
||||
BlockPos closestBlock =
|
||||
@ -562,10 +562,10 @@ public final class ExcavatorHack extends Hack
|
||||
BlockPos max = center.add(rangeI, rangeI, rangeI);
|
||||
|
||||
return BlockUtils.getAllInBox(min, max).stream()
|
||||
.filter(pos -> eyesVec.squaredDistanceTo(new Vec3d(pos)) <= rangeSq)
|
||||
.filter(pos -> eyesVec.squaredDistanceTo(Vec3d.of(pos)) <= rangeSq)
|
||||
.filter(BlockUtils::canBeClicked).filter(validator)
|
||||
.sorted(Comparator.comparingDouble(
|
||||
pos -> eyesVec.squaredDistanceTo(new Vec3d(pos))))
|
||||
pos -> eyesVec.squaredDistanceTo(Vec3d.of(pos))))
|
||||
.collect(Collectors.toCollection(() -> new ArrayList<>()));
|
||||
}
|
||||
|
||||
|
@ -18,7 +18,7 @@ import net.minecraft.entity.mob.AmbientEntity;
|
||||
import net.minecraft.entity.mob.EndermanEntity;
|
||||
import net.minecraft.entity.mob.Monster;
|
||||
import net.minecraft.entity.mob.WaterCreatureEntity;
|
||||
import net.minecraft.entity.mob.ZombiePigmanEntity;
|
||||
import net.minecraft.entity.mob.ZombifiedPiglinEntity;
|
||||
import net.minecraft.entity.passive.AnimalEntity;
|
||||
import net.minecraft.entity.passive.GolemEntity;
|
||||
import net.minecraft.entity.passive.HorseBaseEntity;
|
||||
@ -197,7 +197,7 @@ public final class FightBotHack extends Hack
|
||||
stream = stream.filter(e -> !(e instanceof Monster));
|
||||
|
||||
if(filterPigmen.isChecked())
|
||||
stream = stream.filter(e -> !(e instanceof ZombiePigmanEntity));
|
||||
stream = stream.filter(e -> !(e instanceof ZombifiedPiglinEntity));
|
||||
|
||||
if(filterEndermen.isChecked())
|
||||
stream = stream.filter(e -> !(e instanceof EndermanEntity));
|
||||
@ -268,7 +268,7 @@ public final class FightBotHack extends Hack
|
||||
}else
|
||||
{
|
||||
// jump if necessary
|
||||
if(MC.player.horizontalCollision && MC.player.onGround)
|
||||
if(MC.player.horizontalCollision && MC.player.isOnGround())
|
||||
MC.player.jump();
|
||||
|
||||
// swim up if necessary
|
||||
@ -276,7 +276,7 @@ public final class FightBotHack extends Hack
|
||||
MC.player.addVelocity(0, 0.04, 0);
|
||||
|
||||
// control height if flying
|
||||
if(!MC.player.onGround
|
||||
if(!MC.player.isOnGround()
|
||||
&& (MC.player.abilities.flying
|
||||
|| WURST.getHax().flightHack.isEnabled())
|
||||
&& MC.player.squaredDistanceTo(entity.getX(), MC.player.getY(),
|
||||
@ -326,7 +326,7 @@ public final class FightBotHack extends Hack
|
||||
|
||||
public EntityPathFinder(Entity entity)
|
||||
{
|
||||
super(new BlockPos(entity));
|
||||
super(new BlockPos(entity.getPos()));
|
||||
this.entity = entity;
|
||||
setThinkTime(1);
|
||||
}
|
||||
@ -334,8 +334,9 @@ public final class FightBotHack extends Hack
|
||||
@Override
|
||||
protected boolean checkDone()
|
||||
{
|
||||
return done = entity.squaredDistanceTo(new Vec3d(current).add(0.5,
|
||||
0.5, 0.5)) <= Math.pow(distance.getValue(), 2);
|
||||
return done =
|
||||
entity.squaredDistanceTo(Vec3d.ofCenter(current)) <= Math
|
||||
.pow(distance.getValue(), 2);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -18,7 +18,7 @@ import net.minecraft.entity.mob.AmbientEntity;
|
||||
import net.minecraft.entity.mob.EndermanEntity;
|
||||
import net.minecraft.entity.mob.Monster;
|
||||
import net.minecraft.entity.mob.WaterCreatureEntity;
|
||||
import net.minecraft.entity.mob.ZombiePigmanEntity;
|
||||
import net.minecraft.entity.mob.ZombifiedPiglinEntity;
|
||||
import net.minecraft.entity.passive.AnimalEntity;
|
||||
import net.minecraft.entity.passive.GolemEntity;
|
||||
import net.minecraft.entity.passive.HorseBaseEntity;
|
||||
@ -131,7 +131,7 @@ public final class FollowHack extends Hack
|
||||
public String getRenderName()
|
||||
{
|
||||
if(entity != null)
|
||||
return "Following " + entity.getName().asString();
|
||||
return "Following " + entity.getName().getString();
|
||||
else
|
||||
return "Follow";
|
||||
}
|
||||
@ -170,7 +170,8 @@ public final class FollowHack extends Hack
|
||||
stream = stream.filter(e -> !(e instanceof Monster));
|
||||
|
||||
if(filterPigmen.isChecked())
|
||||
stream = stream.filter(e -> !(e instanceof ZombiePigmanEntity));
|
||||
stream =
|
||||
stream.filter(e -> !(e instanceof ZombifiedPiglinEntity));
|
||||
|
||||
if(filterEndermen.isChecked())
|
||||
stream = stream.filter(e -> !(e instanceof EndermanEntity));
|
||||
@ -216,7 +217,7 @@ public final class FollowHack extends Hack
|
||||
pathFinder = new EntityPathFinder();
|
||||
EVENTS.add(UpdateListener.class, this);
|
||||
EVENTS.add(RenderListener.class, this);
|
||||
ChatUtils.message("Now following " + entity.getName().asString());
|
||||
ChatUtils.message("Now following " + entity.getName().getString());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -232,7 +233,7 @@ public final class FollowHack extends Hack
|
||||
|
||||
if(entity != null)
|
||||
ChatUtils
|
||||
.message("No longer following " + entity.getName().asString());
|
||||
.message("No longer following " + entity.getName().getString());
|
||||
|
||||
entity = null;
|
||||
}
|
||||
@ -258,8 +259,8 @@ public final class FollowHack extends Hack
|
||||
.filter(e -> !e.removed && ((LivingEntity)e).getHealth() > 0)
|
||||
.filter(e -> e != MC.player)
|
||||
.filter(e -> !(e instanceof FakePlayerEntity))
|
||||
.filter(e -> entity.getName().asString()
|
||||
.equalsIgnoreCase(e.getName().asString()))
|
||||
.filter(e -> entity.getName().getString()
|
||||
.equalsIgnoreCase(e.getName().getString()))
|
||||
.min(Comparator
|
||||
.comparingDouble(e -> MC.player.squaredDistanceTo(e)))
|
||||
.orElse(null);
|
||||
@ -308,7 +309,7 @@ public final class FollowHack extends Hack
|
||||
}else
|
||||
{
|
||||
// jump if necessary
|
||||
if(MC.player.horizontalCollision && MC.player.onGround)
|
||||
if(MC.player.horizontalCollision && MC.player.isOnGround())
|
||||
MC.player.jump();
|
||||
|
||||
// swim up if necessary
|
||||
@ -316,7 +317,7 @@ public final class FollowHack extends Hack
|
||||
MC.player.setVelocity(MC.player.getVelocity().add(0, 0.04, 0));
|
||||
|
||||
// control height if flying
|
||||
if(!MC.player.onGround
|
||||
if(!MC.player.isOnGround()
|
||||
&& (MC.player.abilities.flying
|
||||
|| WURST.getHax().flightHack.isEnabled())
|
||||
&& MC.player.squaredDistanceTo(entity.getX(), MC.player.getY(),
|
||||
@ -359,14 +360,14 @@ public final class FollowHack extends Hack
|
||||
{
|
||||
public EntityPathFinder()
|
||||
{
|
||||
super(new BlockPos(entity));
|
||||
super(new BlockPos(entity.getPos()));
|
||||
setThinkTime(1);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean checkDone()
|
||||
{
|
||||
Vec3d center = new Vec3d(current).add(0.5, 0.5, 0.5);
|
||||
Vec3d center = Vec3d.ofCenter(current);
|
||||
double distanceSq = Math.pow(distance.getValue(), 2);
|
||||
return done = entity.squaredDistanceTo(center) <= distanceSq;
|
||||
}
|
||||
|
@ -227,7 +227,7 @@ public final class ForceOpHack extends Hack implements ChatInputListener
|
||||
@Override
|
||||
public void onReceivedMessage(ChatInputEvent event)
|
||||
{
|
||||
String message = event.getComponent().asString();
|
||||
String message = event.getComponent().getString();
|
||||
if(message.startsWith("\u00a7c[\u00a76Wurst\u00a7c]\u00a7f "))
|
||||
return;
|
||||
|
||||
|
@ -111,7 +111,7 @@ public final class FreecamHack extends Hack
|
||||
ClientPlayerEntity player = MC.player;
|
||||
player.setVelocity(Vec3d.ZERO);
|
||||
|
||||
player.onGround = false;
|
||||
player.setOnGround(false);
|
||||
player.flyingSpeed = speed.getValueF();
|
||||
Vec3d velcity = player.getVelocity();
|
||||
|
||||
|
@ -66,7 +66,7 @@ public final class GlideHack extends Hack implements UpdateListener
|
||||
ClientPlayerEntity player = MC.player;
|
||||
Vec3d v = player.getVelocity();
|
||||
|
||||
if(player.onGround || player.isTouchingWater() || player.isInLava()
|
||||
if(player.isOnGround() || player.isTouchingWater() || player.isInLava()
|
||||
|| player.isClimbing() || v.y >= 0)
|
||||
return;
|
||||
|
||||
@ -77,8 +77,10 @@ public final class GlideHack extends Hack implements UpdateListener
|
||||
if(!MC.world.doesNotCollide(box))
|
||||
return;
|
||||
|
||||
BlockPos min = new BlockPos(new Vec3d(box.x1, box.y1, box.z1));
|
||||
BlockPos max = new BlockPos(new Vec3d(box.x2, box.y2, box.z2));
|
||||
BlockPos min =
|
||||
new BlockPos(new Vec3d(box.minX, box.minY, box.minZ));
|
||||
BlockPos max =
|
||||
new BlockPos(new Vec3d(box.maxX, box.maxY, box.maxZ));
|
||||
Stream<BlockPos> stream = StreamSupport
|
||||
.stream(BlockUtils.getAllInBox(min, max).spliterator(), true);
|
||||
|
||||
|
@ -47,6 +47,6 @@ public final class HeadRollHack extends Hack implements UpdateListener
|
||||
float pitch = MathHelper.sin(timer * (float)Math.PI) * 90F;
|
||||
|
||||
MC.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.LookOnly(
|
||||
MC.player.yaw, pitch, MC.player.onGround));
|
||||
MC.player.yaw, pitch, MC.player.isOnGround()));
|
||||
}
|
||||
}
|
||||
|
@ -61,7 +61,7 @@ public final class InstantBunkerHack extends Hack
|
||||
@Override
|
||||
public void onEnable()
|
||||
{
|
||||
if(!MC.player.onGround)
|
||||
if(!MC.player.isOnGround())
|
||||
{
|
||||
ChatUtils.error("Can't build this in mid-air.");
|
||||
setEnabled(false);
|
||||
@ -81,7 +81,7 @@ public final class InstantBunkerHack extends Hack
|
||||
ChatUtils.warning("Not enough blocks. Bunker may be incomplete.");
|
||||
|
||||
// get start pos and facings
|
||||
BlockPos startPos = new BlockPos(MC.player);
|
||||
BlockPos startPos = new BlockPos(MC.player.getPos());
|
||||
Direction facing = MC.player.getHorizontalFacing();
|
||||
Direction facing2 = facing.rotateYCounterclockwise();
|
||||
|
||||
@ -132,7 +132,7 @@ public final class InstantBunkerHack extends Hack
|
||||
placeBlockSimple(pos);
|
||||
MC.player.swingHand(Hand.MAIN_HAND);
|
||||
|
||||
if(MC.player.onGround)
|
||||
if(MC.player.isOnGround())
|
||||
{
|
||||
setEnabled(false);
|
||||
return;
|
||||
@ -174,13 +174,13 @@ public final class InstantBunkerHack extends Hack
|
||||
Direction[] sides = Direction.values();
|
||||
|
||||
Vec3d eyesPos = RotationUtils.getEyesPos();
|
||||
Vec3d posVec = new Vec3d(pos).add(0.5, 0.5, 0.5);
|
||||
Vec3d posVec = Vec3d.ofCenter(pos);
|
||||
double distanceSqPosVec = eyesPos.squaredDistanceTo(posVec);
|
||||
|
||||
Vec3d[] hitVecs = new Vec3d[sides.length];
|
||||
for(int i = 0; i < sides.length; i++)
|
||||
hitVecs[i] =
|
||||
posVec.add(new Vec3d(sides[i].getVector()).multiply(0.5));
|
||||
posVec.add(Vec3d.of(sides[i].getVector()).multiply(0.5));
|
||||
|
||||
for(int i = 0; i < sides.length; i++)
|
||||
{
|
||||
|
@ -57,7 +57,7 @@ public final class KaboomHack extends Hack implements UpdateListener
|
||||
public void onUpdate()
|
||||
{
|
||||
// check fly-kick
|
||||
if(!MC.player.abilities.creativeMode && !MC.player.onGround)
|
||||
if(!MC.player.abilities.creativeMode && !MC.player.isOnGround())
|
||||
return;
|
||||
|
||||
// do explosion particles
|
||||
@ -87,9 +87,9 @@ public final class KaboomHack extends Hack implements UpdateListener
|
||||
BlockPos max = center.add(rangeI, rangeI, rangeI);
|
||||
|
||||
return BlockUtils.getAllInBox(min, max).stream()
|
||||
.filter(pos -> eyesVec.squaredDistanceTo(new Vec3d(pos)) <= rangeSq)
|
||||
.filter(pos -> eyesVec.squaredDistanceTo(Vec3d.of(pos)) <= rangeSq)
|
||||
.sorted(Comparator.comparingDouble(
|
||||
pos -> -eyesVec.squaredDistanceTo(new Vec3d(pos))))
|
||||
pos -> -eyesVec.squaredDistanceTo(Vec3d.of(pos))))
|
||||
.collect(Collectors.toCollection(() -> new ArrayList<>()));
|
||||
}
|
||||
}
|
||||
|
@ -70,7 +70,7 @@ public final class KillPotionHack extends Hack
|
||||
{
|
||||
for(int i = 0; i < 9; i++)
|
||||
{
|
||||
if(!MC.player.inventory.getInvStack(i).isEmpty())
|
||||
if(!MC.player.inventory.getStack(i).isEmpty())
|
||||
continue;
|
||||
|
||||
MC.player.networkHandler.sendPacket(
|
||||
|
@ -21,7 +21,7 @@ import net.minecraft.entity.mob.AmbientEntity;
|
||||
import net.minecraft.entity.mob.EndermanEntity;
|
||||
import net.minecraft.entity.mob.Monster;
|
||||
import net.minecraft.entity.mob.WaterCreatureEntity;
|
||||
import net.minecraft.entity.mob.ZombiePigmanEntity;
|
||||
import net.minecraft.entity.mob.ZombifiedPiglinEntity;
|
||||
import net.minecraft.entity.passive.AnimalEntity;
|
||||
import net.minecraft.entity.passive.GolemEntity;
|
||||
import net.minecraft.entity.passive.HorseBaseEntity;
|
||||
@ -187,7 +187,7 @@ public final class KillauraHack extends Hack
|
||||
stream = stream.filter(e -> !(e instanceof Monster));
|
||||
|
||||
if(filterPigmen.isChecked())
|
||||
stream = stream.filter(e -> !(e instanceof ZombiePigmanEntity));
|
||||
stream = stream.filter(e -> !(e instanceof ZombifiedPiglinEntity));
|
||||
|
||||
if(filterEndermen.isChecked())
|
||||
stream = stream.filter(e -> !(e instanceof EndermanEntity));
|
||||
@ -261,8 +261,8 @@ public final class KillauraHack extends Hack
|
||||
RenderUtils.applyRenderOffset();
|
||||
|
||||
Box box = new Box(BlockPos.ORIGIN);
|
||||
float p = (renderTarget.getMaximumHealth() - renderTarget.getHealth())
|
||||
/ renderTarget.getMaximumHealth();
|
||||
float p = (renderTarget.getMaxHealth() - renderTarget.getHealth())
|
||||
/ renderTarget.getMaxHealth();
|
||||
float red = p * 2F;
|
||||
float green = 2 - red;
|
||||
|
||||
|
@ -21,7 +21,7 @@ import net.minecraft.entity.mob.AmbientEntity;
|
||||
import net.minecraft.entity.mob.EndermanEntity;
|
||||
import net.minecraft.entity.mob.Monster;
|
||||
import net.minecraft.entity.mob.WaterCreatureEntity;
|
||||
import net.minecraft.entity.mob.ZombiePigmanEntity;
|
||||
import net.minecraft.entity.mob.ZombifiedPiglinEntity;
|
||||
import net.minecraft.entity.passive.AnimalEntity;
|
||||
import net.minecraft.entity.passive.GolemEntity;
|
||||
import net.minecraft.entity.passive.HorseBaseEntity;
|
||||
@ -185,7 +185,7 @@ public final class KillauraLegitHack extends Hack
|
||||
stream = stream.filter(e -> !(e instanceof Monster));
|
||||
|
||||
if(filterPigmen.isChecked())
|
||||
stream = stream.filter(e -> !(e instanceof ZombiePigmanEntity));
|
||||
stream = stream.filter(e -> !(e instanceof ZombifiedPiglinEntity));
|
||||
|
||||
if(filterEndermen.isChecked())
|
||||
stream = stream.filter(e -> !(e instanceof EndermanEntity));
|
||||
@ -288,8 +288,8 @@ public final class KillauraLegitHack extends Hack
|
||||
RenderUtils.applyRenderOffset();
|
||||
|
||||
Box box = new Box(BlockPos.ORIGIN);
|
||||
float p = (target.getMaximumHealth() - target.getHealth())
|
||||
/ target.getMaximumHealth();
|
||||
float p = (target.getMaxHealth() - target.getHealth())
|
||||
/ target.getMaxHealth();
|
||||
float red = p * 2F;
|
||||
float green = 2 - red;
|
||||
|
||||
|
@ -98,7 +98,7 @@ public final class MassTpaHack extends Hack
|
||||
@Override
|
||||
public void onReceivedMessage(ChatInputEvent event)
|
||||
{
|
||||
String message = event.getComponent().asString().toLowerCase();
|
||||
String message = event.getComponent().getString().toLowerCase();
|
||||
if(message.startsWith("\u00a7c[\u00a76wurst\u00a7c]"))
|
||||
return;
|
||||
|
||||
|
@ -23,6 +23,7 @@ import org.lwjgl.opengl.GL11;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.client.network.ClientPlayerEntity;
|
||||
import net.minecraft.client.world.ClientWorld;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.network.Packet;
|
||||
import net.minecraft.network.packet.s2c.play.BlockUpdateS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.ChunkDataS2CPacket;
|
||||
@ -294,7 +295,8 @@ public final class MobSpawnEspHack extends Hack
|
||||
continue;
|
||||
|
||||
BlockState stateDown = world.getBlockState(pos.down());
|
||||
if(!stateDown.isFullOpaque(world, pos.down()))
|
||||
if(!stateDown.allowsSpawning(world, pos.down(),
|
||||
EntityType.ZOMBIE))
|
||||
continue;
|
||||
|
||||
blocks.add(pos);
|
||||
|
@ -20,7 +20,7 @@ import net.minecraft.entity.mob.AmbientEntity;
|
||||
import net.minecraft.entity.mob.EndermanEntity;
|
||||
import net.minecraft.entity.mob.Monster;
|
||||
import net.minecraft.entity.mob.WaterCreatureEntity;
|
||||
import net.minecraft.entity.mob.ZombiePigmanEntity;
|
||||
import net.minecraft.entity.mob.ZombifiedPiglinEntity;
|
||||
import net.minecraft.entity.passive.AnimalEntity;
|
||||
import net.minecraft.entity.passive.GolemEntity;
|
||||
import net.minecraft.entity.passive.HorseBaseEntity;
|
||||
@ -190,7 +190,7 @@ public final class MultiAuraHack extends Hack implements UpdateListener
|
||||
stream = stream.filter(e -> !(e instanceof Monster));
|
||||
|
||||
if(filterPigmen.isChecked())
|
||||
stream = stream.filter(e -> !(e instanceof ZombiePigmanEntity));
|
||||
stream = stream.filter(e -> !(e instanceof ZombifiedPiglinEntity));
|
||||
|
||||
if(filterEndermen.isChecked())
|
||||
stream = stream.filter(e -> !(e instanceof EndermanEntity));
|
||||
@ -235,7 +235,7 @@ public final class MultiAuraHack extends Hack implements UpdateListener
|
||||
|
||||
WurstClient.MC.player.networkHandler
|
||||
.sendPacket(new PlayerMoveC2SPacket.LookOnly(rotations.getYaw(),
|
||||
rotations.getPitch(), MC.player.onGround));
|
||||
rotations.getPitch(), MC.player.isOnGround()));
|
||||
|
||||
MC.interactionManager.attackEntity(player, entity);
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ public final class NameProtectHack extends Hack
|
||||
for(AbstractClientPlayerEntity player : MC.world.getPlayers())
|
||||
{
|
||||
i++;
|
||||
String name = player.getName().asString();
|
||||
String name = player.getName().getString();
|
||||
|
||||
if(string.contains(name))
|
||||
return string.replace(name, "\u00a7oPlayer" + i + "\u00a7r");
|
||||
|
@ -56,7 +56,7 @@ public final class NoClipHack extends Hack implements UpdateListener,
|
||||
|
||||
player.noClip = true;
|
||||
player.fallDistance = 0;
|
||||
player.onGround = false;
|
||||
player.setOnGround(false);
|
||||
|
||||
player.abilities.flying = false;
|
||||
player.setVelocity(0, 0, 0);
|
||||
|
@ -128,11 +128,11 @@ public final class NukerHack extends Hack
|
||||
Stream<BlockPos> stream = blocks.parallelStream();
|
||||
|
||||
List<BlockPos> blocks2 = stream
|
||||
.filter(pos -> eyesPos.squaredDistanceTo(new Vec3d(pos)) <= rangeSq)
|
||||
.filter(pos -> eyesPos.squaredDistanceTo(Vec3d.of(pos)) <= rangeSq)
|
||||
.filter(pos -> BlockUtils.canBeClicked(pos))
|
||||
.filter(mode.getSelected().getValidator(this))
|
||||
.sorted(Comparator.comparingDouble(
|
||||
pos -> eyesPos.squaredDistanceTo(new Vec3d(pos))))
|
||||
pos -> eyesPos.squaredDistanceTo(Vec3d.of(pos))))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if(player.abilities.creativeMode)
|
||||
|
@ -167,23 +167,22 @@ public final class NukerLegitHack extends Hack
|
||||
BlockPos max = center.add(rangeI, rangeI, rangeI);
|
||||
|
||||
return BlockUtils.getAllInBox(min, max).stream()
|
||||
.filter(pos -> eyesVec.squaredDistanceTo(new Vec3d(pos)) <= rangeSq)
|
||||
.filter(pos -> eyesVec.squaredDistanceTo(Vec3d.of(pos)) <= rangeSq)
|
||||
.filter(BlockUtils::canBeClicked).filter(validator)
|
||||
.sorted(Comparator.comparingDouble(
|
||||
pos -> eyesVec.squaredDistanceTo(new Vec3d(pos))))
|
||||
pos -> eyesVec.squaredDistanceTo(Vec3d.of(pos))))
|
||||
.collect(Collectors.toCollection(() -> new ArrayList<>()));
|
||||
}
|
||||
|
||||
private boolean breakBlockExtraLegit(BlockPos pos)
|
||||
{
|
||||
Vec3d eyesPos = RotationUtils.getEyesPos();
|
||||
Vec3d posVec = new Vec3d(pos).add(0.5, 0.5, 0.5);
|
||||
Vec3d posVec = Vec3d.ofCenter(pos);
|
||||
double distanceSqPosVec = eyesPos.squaredDistanceTo(posVec);
|
||||
|
||||
for(Direction side : Direction.values())
|
||||
{
|
||||
Vec3d hitVec =
|
||||
posVec.add(new Vec3d(side.getVector()).multiply(0.5));
|
||||
Vec3d hitVec = posVec.add(Vec3d.of(side.getVector()).multiply(0.5));
|
||||
double distanceSqHitVec = eyesPos.squaredDistanceTo(hitVec);
|
||||
|
||||
// check if hitVec is within range (4.25 blocks)
|
||||
|
@ -43,7 +43,7 @@ public final class ParkourHack extends Hack implements UpdateListener
|
||||
@Override
|
||||
public void onUpdate()
|
||||
{
|
||||
if(!MC.player.onGround || MC.options.keyJump.isPressed())
|
||||
if(!MC.player.isOnGround() || MC.options.keyJump.isPressed())
|
||||
return;
|
||||
|
||||
if(MC.player.isSneaking() || MC.options.keySneak.isPressed())
|
||||
|
@ -10,7 +10,6 @@ package net.wurstclient.hacks;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import net.minecraft.network.Packet;
|
||||
import net.minecraft.network.packet.s2c.play.EntitySpawnGlobalS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.PlaySoundS2CPacket;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
@ -105,7 +104,7 @@ public final class PlayerFinderHack extends Hack
|
||||
.add(RenderUtils.getCameraPos());
|
||||
|
||||
// set end position
|
||||
Vec3d end = new Vec3d(pos).add(0.5, 0.5, 0.5);
|
||||
Vec3d end = Vec3d.ofCenter(pos);
|
||||
|
||||
// draw line
|
||||
GL11.glVertex3d(start.x, start.y, start.z);
|
||||
@ -156,19 +155,23 @@ public final class PlayerFinderHack extends Hack
|
||||
PlaySoundS2CPacket sound = (PlaySoundS2CPacket)packet;
|
||||
newPos = new BlockPos(sound.getX(), sound.getY(), sound.getZ());
|
||||
|
||||
}else if(packet instanceof EntitySpawnGlobalS2CPacket)
|
||||
{
|
||||
EntitySpawnGlobalS2CPacket lightning =
|
||||
(EntitySpawnGlobalS2CPacket)packet;
|
||||
newPos = new BlockPos(lightning.getX() / 32D,
|
||||
lightning.getY() / 32D, lightning.getZ() / 32D);
|
||||
// }else if(packet instanceof EntitySpawnGlobalS2CPacket)
|
||||
// {
|
||||
// EntitySpawnGlobalS2CPacket lightning =
|
||||
// (EntitySpawnGlobalS2CPacket)packet;
|
||||
// newPos = new BlockPos(lightning.getX() / 32D,
|
||||
// lightning.getY() / 32D, lightning.getZ() / 32D);
|
||||
|
||||
// It seems that EntitySpawnGlobalS2CPacket has been deleted from
|
||||
// the game. Further testing is needed to figure out if PlayerFinder
|
||||
// can still work using only PlaySoundS2CPacket.
|
||||
}
|
||||
|
||||
if(newPos == null)
|
||||
return;
|
||||
|
||||
// check distance to player
|
||||
BlockPos playerPos = new BlockPos(MC.player);
|
||||
BlockPos playerPos = new BlockPos(MC.player.getPos());
|
||||
if(Math.abs(playerPos.getX() - newPos.getX()) > 256
|
||||
|| Math.abs(playerPos.getZ() - newPos.getZ()) > 256)
|
||||
pos = newPos;
|
||||
|
@ -18,7 +18,7 @@ import net.minecraft.entity.mob.AmbientEntity;
|
||||
import net.minecraft.entity.mob.EndermanEntity;
|
||||
import net.minecraft.entity.mob.Monster;
|
||||
import net.minecraft.entity.mob.WaterCreatureEntity;
|
||||
import net.minecraft.entity.mob.ZombiePigmanEntity;
|
||||
import net.minecraft.entity.mob.ZombifiedPiglinEntity;
|
||||
import net.minecraft.entity.passive.AnimalEntity;
|
||||
import net.minecraft.entity.passive.GolemEntity;
|
||||
import net.minecraft.entity.passive.HorseBaseEntity;
|
||||
@ -131,7 +131,7 @@ public final class ProtectHack extends Hack
|
||||
public String getRenderName()
|
||||
{
|
||||
if(friend != null)
|
||||
return "Protecting " + friend.getName().asString();
|
||||
return "Protecting " + friend.getName().getString();
|
||||
else
|
||||
return "Protect";
|
||||
}
|
||||
@ -234,7 +234,7 @@ public final class ProtectHack extends Hack
|
||||
stream = stream.filter(e -> !(e instanceof Monster));
|
||||
|
||||
if(filterPigmen.isChecked())
|
||||
stream = stream.filter(e -> !(e instanceof ZombiePigmanEntity));
|
||||
stream = stream.filter(e -> !(e instanceof ZombifiedPiglinEntity));
|
||||
|
||||
if(filterEndermen.isChecked())
|
||||
stream = stream.filter(e -> !(e instanceof EndermanEntity));
|
||||
@ -307,7 +307,7 @@ public final class ProtectHack extends Hack
|
||||
}else
|
||||
{
|
||||
// jump if necessary
|
||||
if(MC.player.horizontalCollision && MC.player.onGround)
|
||||
if(MC.player.horizontalCollision && MC.player.isOnGround())
|
||||
MC.player.jump();
|
||||
|
||||
// swim up if necessary
|
||||
@ -315,7 +315,7 @@ public final class ProtectHack extends Hack
|
||||
MC.player.addVelocity(0, 0.04, 0);
|
||||
|
||||
// control height if flying
|
||||
if(!MC.player.onGround
|
||||
if(!MC.player.isOnGround()
|
||||
&& (MC.player.abilities.flying
|
||||
|| WURST.getHax().flightHack.isEnabled())
|
||||
&& MC.player.squaredDistanceTo(target.getX(), MC.player.getY(),
|
||||
@ -375,7 +375,7 @@ public final class ProtectHack extends Hack
|
||||
|
||||
public EntityPathFinder(Entity entity, double distance)
|
||||
{
|
||||
super(new BlockPos(entity));
|
||||
super(new BlockPos(entity.getPos()));
|
||||
this.entity = entity;
|
||||
distanceSq = distance * distance;
|
||||
setThinkTime(1);
|
||||
@ -384,8 +384,8 @@ public final class ProtectHack extends Hack
|
||||
@Override
|
||||
protected boolean checkDone()
|
||||
{
|
||||
return done = entity.squaredDistanceTo(
|
||||
new Vec3d(current).add(0.5, 0.5, 0.5)) <= distanceSq;
|
||||
return done =
|
||||
entity.squaredDistanceTo(Vec3d.ofCenter(current)) <= distanceSq;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -17,7 +17,7 @@ import net.minecraft.entity.mob.AmbientEntity;
|
||||
import net.minecraft.entity.mob.EndermanEntity;
|
||||
import net.minecraft.entity.mob.Monster;
|
||||
import net.minecraft.entity.mob.WaterCreatureEntity;
|
||||
import net.minecraft.entity.mob.ZombiePigmanEntity;
|
||||
import net.minecraft.entity.mob.ZombifiedPiglinEntity;
|
||||
import net.minecraft.entity.passive.AnimalEntity;
|
||||
import net.minecraft.entity.passive.GolemEntity;
|
||||
import net.minecraft.entity.passive.HorseBaseEntity;
|
||||
@ -148,7 +148,8 @@ public final class RemoteViewHack extends Hack
|
||||
stream = stream.filter(e -> !(e instanceof Monster));
|
||||
|
||||
if(filterPigmen.isChecked())
|
||||
stream = stream.filter(e -> !(e instanceof ZombiePigmanEntity));
|
||||
stream =
|
||||
stream.filter(e -> !(e instanceof ZombifiedPiglinEntity));
|
||||
|
||||
if(filterEndermen.isChecked())
|
||||
stream = stream.filter(e -> !(e instanceof EndermanEntity));
|
||||
@ -202,7 +203,7 @@ public final class RemoteViewHack extends Hack
|
||||
fakePlayer = new FakePlayerEntity();
|
||||
|
||||
// success message
|
||||
ChatUtils.message("Now viewing " + entity.getName().asString() + ".");
|
||||
ChatUtils.message("Now viewing " + entity.getName().getString() + ".");
|
||||
|
||||
// add listener
|
||||
EVENTS.add(UpdateListener.class, this);
|
||||
@ -220,7 +221,7 @@ public final class RemoteViewHack extends Hack
|
||||
if(entity != null)
|
||||
{
|
||||
ChatUtils.message(
|
||||
"No longer viewing " + entity.getName().asString() + ".");
|
||||
"No longer viewing " + entity.getName().getString() + ".");
|
||||
entity.setInvisible(wasInvisible);
|
||||
entity = null;
|
||||
}
|
||||
@ -247,7 +248,7 @@ public final class RemoteViewHack extends Hack
|
||||
.filter(e -> !e.removed && ((LivingEntity)e).getHealth() > 0)
|
||||
.filter(e -> e != MC.player)
|
||||
.filter(e -> !(e instanceof FakePlayerEntity))
|
||||
.filter(e -> viewName.equalsIgnoreCase(e.getName().asString()))
|
||||
.filter(e -> viewName.equalsIgnoreCase(e.getName().getString()))
|
||||
.min(Comparator
|
||||
.comparingDouble(e -> MC.player.squaredDistanceTo(e)))
|
||||
.orElse(null);
|
||||
|
@ -51,7 +51,7 @@ public final class ScaffoldWalkHack extends Hack implements UpdateListener
|
||||
@Override
|
||||
public void onUpdate()
|
||||
{
|
||||
BlockPos belowPlayer = new BlockPos(MC.player).down();
|
||||
BlockPos belowPlayer = new BlockPos(MC.player.getPos()).down();
|
||||
|
||||
// check if block is already placed
|
||||
if(!BlockUtils.getState(belowPlayer).getMaterial().isReplaceable())
|
||||
@ -62,15 +62,14 @@ public final class ScaffoldWalkHack extends Hack implements UpdateListener
|
||||
for(int i = 0; i < 9; i++)
|
||||
{
|
||||
// filter out non-block items
|
||||
ItemStack stack = MC.player.inventory.getInvStack(i);
|
||||
ItemStack stack = MC.player.inventory.getStack(i);
|
||||
if(stack.isEmpty() || !(stack.getItem() instanceof BlockItem))
|
||||
continue;
|
||||
|
||||
// filter out non-solid blocks
|
||||
Block block = Block.getBlockFromItem(stack.getItem());
|
||||
BlockState state = block.getDefaultState();
|
||||
if(!Block.isShapeFullCube(state
|
||||
.getCullingShape(EmptyBlockView.INSTANCE, BlockPos.ORIGIN)))
|
||||
if(!state.isFullCube(EmptyBlockView.INSTANCE, BlockPos.ORIGIN))
|
||||
continue;
|
||||
|
||||
// filter out blocks that would fall
|
||||
@ -108,17 +107,16 @@ public final class ScaffoldWalkHack extends Hack implements UpdateListener
|
||||
Direction side2 = side.getOpposite();
|
||||
|
||||
// check if side is visible (facing away from player)
|
||||
if(eyesPos
|
||||
.squaredDistanceTo(new Vec3d(pos).add(0.5, 0.5, 0.5)) >= eyesPos
|
||||
.squaredDistanceTo(new Vec3d(neighbor).add(0.5, 0.5, 0.5)))
|
||||
if(eyesPos.squaredDistanceTo(Vec3d.ofCenter(pos)) >= eyesPos
|
||||
.squaredDistanceTo(Vec3d.ofCenter(neighbor)))
|
||||
continue;
|
||||
|
||||
// check if neighbor can be right clicked
|
||||
if(!BlockUtils.canBeClicked(neighbor))
|
||||
continue;
|
||||
|
||||
Vec3d hitVec = new Vec3d(neighbor).add(0.5, 0.5, 0.5)
|
||||
.add(new Vec3d(side2.getVector()).multiply(0.5));
|
||||
Vec3d hitVec = Vec3d.ofCenter(neighbor)
|
||||
.add(Vec3d.of(side2.getVector()).multiply(0.5));
|
||||
|
||||
// check if hitVec is within range (4.25 blocks)
|
||||
if(eyesPos.squaredDistanceTo(hitVec) > 18.0625)
|
||||
@ -128,7 +126,7 @@ public final class ScaffoldWalkHack extends Hack implements UpdateListener
|
||||
Rotation rotation = RotationUtils.getNeededRotations(hitVec);
|
||||
PlayerMoveC2SPacket.LookOnly packet =
|
||||
new PlayerMoveC2SPacket.LookOnly(rotation.getYaw(),
|
||||
rotation.getPitch(), MC.player.onGround);
|
||||
rotation.getPitch(), MC.player.isOnGround());
|
||||
MC.player.networkHandler.sendPacket(packet);
|
||||
IMC.getInteractionManager().rightClickBlock(neighbor, side2,
|
||||
hitVec);
|
||||
|
@ -177,7 +177,11 @@ public final class SearchHack extends Hack
|
||||
|
||||
ChunkPos center = getPlayerChunkPos(eyesPos);
|
||||
int range = area.getSelected().chunkRange;
|
||||
int dimensionId = MC.player.dimension.getRawId();
|
||||
|
||||
// 20w21a: Assuming class_5321 is the new Dimension and using its
|
||||
// toString() as an ID. Not sure why it has two Identifiers, but the
|
||||
// combination should be unique for every dimension.
|
||||
int dimensionId = MC.world.getRegistryKey().toString().hashCode();
|
||||
|
||||
addSearchersInRange(center, range, currentBlock, dimensionId);
|
||||
removeSearchersOutOfRange(center, range);
|
||||
|
@ -68,7 +68,7 @@ public final class ServerCrasherHack extends Hack
|
||||
{
|
||||
for(int i = 0; i < 9; i++)
|
||||
{
|
||||
if(!MC.player.inventory.getInvStack(i).isEmpty())
|
||||
if(!MC.player.inventory.getStack(i).isEmpty())
|
||||
continue;
|
||||
|
||||
MC.player.networkHandler.sendPacket(
|
||||
|
@ -51,7 +51,7 @@ public final class SpeedHackHack extends Hack implements UpdateListener
|
||||
MC.player.setSprinting(true);
|
||||
|
||||
// activate mini jump if on ground
|
||||
if(!MC.player.onGround)
|
||||
if(!MC.player.isOnGround())
|
||||
return;
|
||||
|
||||
Vec3d v = MC.player.getVelocity();
|
||||
|
@ -114,10 +114,10 @@ public final class SpeedNukerHack extends Hack
|
||||
BlockPos max = center.add(rangeI, rangeI, rangeI);
|
||||
|
||||
return BlockUtils.getAllInBox(min, max).stream()
|
||||
.filter(pos -> eyesVec.squaredDistanceTo(new Vec3d(pos)) <= rangeSq)
|
||||
.filter(pos -> eyesVec.squaredDistanceTo(Vec3d.of(pos)) <= rangeSq)
|
||||
.filter(BlockUtils::canBeClicked).filter(validator)
|
||||
.sorted(Comparator.comparingDouble(
|
||||
pos -> eyesVec.squaredDistanceTo(new Vec3d(pos))))
|
||||
pos -> eyesVec.squaredDistanceTo(Vec3d.of(pos))))
|
||||
.collect(Collectors.toCollection(() -> new ArrayList<>()));
|
||||
}
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user