package net.minecraft.client.gui;
import java.awt.MouseInfo;
import java.util.List;
import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.GL11;
import net.minecraft.client.Minecraft;
import net.minecraft.stats.AchievementList;
import net.minecraft.client.gui.Gui;
import net.minecraft.client.gui.GuiMultiplayer;
import net.minecraft.client.gui.GuiScreen;
import net.minecraftforge.client.Hacks;
public class GuiHack extends GuiScreen{
public static int offsetX = 0, offsetY = 0;
public boolean doesGuiPauseGame(){
return false;
}
public void initGui(){
Keyboard.enableRepeatEvents(true);
}
public void onGuiClosed(){
Keyboard.enableRepeatEvents(true);
}
protected void keyTyped(char c, int i){
if(i == 1){
mc.displayGuiScreen(null);
return;
}
}
public void drawScreen(int i, int j, float f){
mouseDraggedMode(i, j);
GuiHackTabs.player.draw(fontRenderer); // every tab needs this
GuiHackTabs.combat.draw(fontRenderer);
GuiHackTabs.render.draw(fontRenderer);
GuiHackTabs.world.draw(fontRenderer);
}
protected void mouseClicked(int i, int j, int k){
switch(GuiHackTabs.player.clicked(i, j)){
case 0:
//code to execute when first item in this tab is clicked
GuiHackTabs.player.toggleItem(); //use this to toggle the current item (the color in the rectangle)
Hacks.climb = !Hacks.climb;
break;
case 1:
GuiHackTabs.player.toggleItem();
Hacks.fly = !Hacks.fly;
break;
case 2:
GuiHackTabs.player.toggleItem();
Hacks.jesus = !Hacks.jesus;
break;
case 3:
GuiHackTabs.player.toggleItem();
Hacks.nofall = !Hacks.nofall;
break;
case 4:
GuiHackTabs.player.toggleItem();
Hacks.sneak = !Hacks.sneak;
break;
case 5:
GuiHackTabs.player.toggleItem();
Hacks.sprint = !Hacks.sprint;
break;
case 6:
GuiHackTabs.player.toggleItem();
Hacks.step = !Hacks.step;
break;
}
switch(GuiHackTabs.combat.clicked(i, j)){
case 0:
GuiHackTabs.combat.toggleItem();
Hacks.aimbot = !Hacks.aimbot;
break;
case 1:
GuiHackTabs.combat.toggleItem();
Hacks.animalaura = !Hacks.animalaura;
break;
case 2:
GuiHackTabs.combat.toggleItem();
Hacks.killaura = !Hacks.killaura;
break;
case 3:
GuiHackTabs.combat.toggleItem();
Hacks.mobaura = !Hacks.mobaura;
break;
}
switch(GuiHackTabs.render.clicked(i, j)){
case 0:
GuiHackTabs.render.toggleItem();
Hacks.cavefinder = !Hacks.cavefinder;
break;
case 1:
GuiHackTabs.render.toggleItem();
Hacks.chestesp = !Hacks.chestesp;
break;
case 2:
GuiHackTabs.render.toggleItem();
Hacks.fullbright = !Hacks.fullbright;
break;
case 3:
GuiHackTabs.render.toggleItem();
Hacks.playeresp = !Hacks.playeresp;
break;
case 4:
GuiHackTabs.render.toggleItem();
Hacks.tracers = !Hacks.tracers;
break;
case 5:
GuiHackTabs.render.toggleItem();
Hacks.wallhack = !Hacks.wallhack;
break;
case 6:
GuiHackTabs.render.toggleItem();
Hacks.xray = !Hacks.xray;
break;
}
switch(GuiHackTabs.world.clicked(i, j)){
case 0:
GuiHackTabs.world.toggleItem();
Hacks.autotool = !Hacks.autotool;
break;
case 1:
GuiHackTabs.world.toggleItem();
Hacks.fastbreak = !Hacks.fastbreak;
break;
case 2:
GuiHackTabs.world.toggleItem();
Hacks.fastplace = !Hacks.fastplace;
break;
}
}
public void mouseDraggedMode(int i, int j)
{
GuiHackTabs.player.drag(i+offsetX, j+offsetY); //every tab need this
GuiHackTabs.combat.drag(i+offsetX, j+offsetY);
GuiHackTabs.render.drag(i+offsetX, j+offsetY);
GuiHackTabs.world.drag(i+offsetX, j+offsetY);
}
protected void mouseMovedOrUp(int i, int j, int k){
if(k == 0){
GuiHackTabs.player.dragging(false); //every tab need this
GuiHackTabs.combat.dragging(false);
GuiHackTabs.render.dragging(false);
GuiHackTabs.world.dragging(false);
}
}
/** utils **/
public static boolean clickedInRect(int par0, int par1, int par2, int par3, int par4, int par5){
if(par2 <= par0 && par3 <= par1 && par4 >= par0 && par5 >= par1) return true;
return false;
}
public static void drawOutlinedRect(int x1, int y1, int x2, int y2, int rcolor, int color, int thickness){
Gui.drawRect(x1, y1, x2, y2, rcolor);
Gui.drawRect(x1, y1, x2, y1 + thickness, color);
Gui.drawRect(x1, y2, x2, y2 - thickness, color);
Gui.drawRect(x1, y1, x1 + thickness, y2, color);
Gui.drawRect(x2, y1, x2 - thickness, y2, color);
}
}
package net.minecraft.client.gui;
import java.util.ArrayList;
public class GuiHackTab {
public int posX, posY;
private int x, y;
public int width;
public boolean draggable = false;
private boolean dragging = false;
private String title;
private int toptextcolor;
private int textcolor;
private int bgcolor;
private int bgtopcolor;
private int btnbordercolor;
private ArrayList Items = new ArrayList();
private ArrayList eItems = new ArrayList();
private int curItem;
private int onColor = 0xFF00FF00, offColor = 0xFFFF0000;
public GuiHackTab(int par0, int par1, int par2, String par3, int par4, int par5, int par6, int par7, int par8, boolean par9){
//posX, posY, width, title, toptextcolor, textcolor, bgcolor, bgtopcolor, btnbordercolor
x = posX = par0;
y = posY = par1;
width = par2;
title = par3;
toptextcolor = par4;
textcolor = par5;
bgcolor = par6;
bgtopcolor = par7;
btnbordercolor = par8;
draggable = par9;
}
public void setColors(int par0, int par1){
onColor = par0;
offColor = par1;
}
public void resetPosition(){
posX = x;
posY = y;
}
public void addItem(String par0, boolean par1){
Items.add(par0);
eItems.add(par1);
}
public void setDraggable(boolean par0){
draggable = par0;
if(!par0) dragging = false;
}
public void toggleItem(){
eItems.set(curItem, !(Boolean)eItems.get(curItem));
}
public void toggleItem(int par0){
eItems.set(par0, !(Boolean)eItems.get(par0));
}
public void toggleItem(String par0){
for(int i = 0; i < Items.size(); i++){
if(Items.get(i) == par0){
eItems.set(i, !(Boolean)eItems.get(i));
return;
}
}
}
public void setItem(int par0, boolean par1){
eItems.set(par0, par1);
}
public void setItem(String par0, boolean par1){
for(int i = 0; i < Items.size(); i++){
if(Items.get(i) == par0){
eItems.set(i, par1);
return;
}
}
}
public boolean getItem(int par0){
return (Boolean)eItems.get(par0);
}
public boolean getItem(String par0){
for(int i = 0; i < Items.size(); i++){
if(Items.get(i) == par0){
return (Boolean)eItems.get(i);
}
}
return false;
}
public void draw(FontRenderer f){
Gui.drawRect(posX, posY, posX + width, posY + 12, bgtopcolor);
f.drawString(title, posX + 2, posY + 2, toptextcolor);
for(int i = 0; i < Items.size(); i++){
Gui.drawRect(posX, posY+13+i*12, posX + width, posY+13+(i+1)*12, bgcolor);
GuiHack.drawOutlinedRect(posX + width-18, posY+13+i*12+3, posX + width-3, posY+13+i*12+9, (Boolean)eItems.get(i) ? onColor : offColor, btnbordercolor, -1);
f.drawString(Items.get(i).toString(), posX + 2, posY+13+i*12+2, textcolor);
}
}
public int clicked(int par0, int par1){
if(GuiHack.clickedInRect(par0, par1, posX, posY, posX + width, posY + 12)){
GuiHack.offsetX = posX - par0;
GuiHack.offsetY = posY - par1;
this.dragging(true);
}
for(int i = 0; i < Items.size(); i++){
if(par0 >= posX + width-19 && par1 >= posY+13+i*12+2 && par0 <= posX + width-3 && par1 <= posY+13+i*12+9){
curItem = i;
return i;
}
}
return -1;
}
public void drag(int par0, int par1){
if(!draggable || !dragging) return;
posX = par0;
posY = par1;
}
public void dragging(boolean par0){
dragging = par0;
}
}
package net.minecraft.client.gui;
public class GuiHackTabs {
public static GuiHackTab player;
public static GuiHackTab combat;
public static GuiHackTab render;
public static GuiHackTab world;
public static void createTabs(){
player = new GuiHackTab(1, 1, 100, "Player", -16711681, -1, 2013265920, -1476395008, -3355444, true);
player.setColors(-16711936, -65536);
player.addItem("Climb", false);
player.addItem("Fly", false);
player.addItem("Jesus", false);
player.addItem("NoFall", false);
player.addItem("Sneak", false);
player.addItem("Sprint", false);
player.addItem("Step", false);
combat = new GuiHackTab(2 + player.posX + player.width, 1, 120, "Combat", -16711681, -1, 2013265920, -1476395008, -3355444, true);
combat.setColors(-16711936, -65536);
combat.addItem("Aimbot", false);
combat.addItem("AnimalAura", false);
combat.addItem("KillAura", false);
combat.addItem("MobAura", false);
render = new GuiHackTab(2 + combat.posX + combat.width, 1, 120, "Render", -16711681, -1, 2013265920, -1476395008, -3355444, true);
render.setColors(-16711936, -65536);
render.addItem("Cavefinder", false);
render.addItem("Chest ESP", false);
render.addItem("Fullbright", false);
render.addItem("Player ESP", false);
render.addItem("Tracers", false);
render.addItem("Wallhack", false);
render.addItem("Xray", false);
world = new GuiHackTab(2 + render.posX + render.width, 1, 120, "World", -16711681, -1, 2013265920, -1476395008, -3355444, true);
world.setColors(-16711936, -65536);
world.addItem("Autotool", false);
world.addItem("Fastbreak", false);
world.addItem("Fastplace", false);
}
}
---- Minecraft Crash Report ----
// Uh... Did I do that?
Time: 15/02/14 18:07
Description: Rendering screen
java.lang.NullPointerException
at net.minecraft.client.gui.GuiHack.mouseDraggedMode(GuiHack.java:149)
at net.minecraft.client.gui.GuiHack.drawScreen(GuiHack.java:40)
at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1036)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:952)
at net.minecraft.client.Minecraft.run(Minecraft.java:844)
at net.minecraft.client.main.Main.main(Main.java:93)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:131)
at net.minecraft.launchwrapper.Launch.main(Launch.java:27)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Stacktrace:
at net.minecraft.client.gui.GuiHack.mouseDraggedMode(GuiHack.java:149)
at net.minecraft.client.gui.GuiHack.drawScreen(GuiHack.java:40)
-- Screen render details --
Details:
Screen name: net.minecraft.client.gui.GuiHack
Mouse location: Scaled: (0, 164). Absolute: (427, 240)
Screen size: Scaled: (427, 240). Absolute: (854, 480). Scale factor of 2
-- Affected level --
Details:
Level name: MpServer
All players: 1 total; [EntityClientPlayerMP['Player519'/142, l='MpServer', x=39.13, y=65.62, z=228.19]]
Chunk stats: MultiplayerChunkCache: 441
Level seed: 0
Level generator: ID 00 - default, ver 1. Features enabled: false
Level generator options:
Level spawn location: World: (19,64,179), Chunk: (at 3,4,3 in 1,11; contains blocks 16,0,176 to 31,255,191), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)
Level time: 53662 game time, 53662 day time
Level dimension: 0
Level storage version: 0x00000 - Unknown?
Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false
Forced entities: 21 total; [EntityMinecartChest['entity.MinecartChest.name'/68, l='MpServer', x=36.50, y=64.50, z=220.50], EntityBat['Bat'/69, l='MpServer', x=37.35, y=40.60, z=263.36], EntityClientPlayerMP['Player519'/142, l='MpServer', x=39.13, y=65.62, z=228.19], EntitySquid['Squid'/76, l='MpServer', x=66.73, y=56.00, z=237.00], EntitySquid['Squid'/77, l='MpServer', x=63.95, y=57.00, z=232.71], EntitySquid['Squid'/78, l='MpServer', x=67.70, y=56.43, z=238.31], EntitySquid['Squid'/79, l='MpServer', x=68.40, y=56.00, z=234.68], EntitySquid['Squid'/73, l='MpServer', x=64.92, y=56.00, z=233.51], EntitySquid['Squid'/75, l='MpServer', x=76.34, y=56.34, z=236.84], EntitySquid['Squid'/50, l='MpServer', x=0.69, y=56.00, z=229.50], EntitySquid['Squid'/49, l='MpServer', x=2.38, y=56.34, z=236.72], EntityCreeper['Creeper'/48, l='MpServer', x=11.50, y=56.00, z=221.50], EntitySquid['Squid'/80, l='MpServer', x=65.10, y=56.42, z=232.33], EntityChicken['Chicken'/92, l='MpServer', x=103.56, y=63.00, z=256.56], EntityChicken['Chicken'/89, l='MpServer', x=106.53, y=63.00, z=234.73], EntityBat['Bat'/63, l='MpServer', x=20.51, y=48.58, z=232.80], EntitySlime['Slime'/88, l='MpServer', x=98.78, y=18.00, z=194.22], EntityBat['Bat'/62, l='MpServer', x=20.98, y=50.25, z=231.05], EntityChicken['Chicken'/91, l='MpServer', x=104.34, y=63.00, z=246.31], EntityBat['Bat'/61, l='MpServer', x=15.50, y=51.66, z=216.96], EntityChicken['Chicken'/90, l='MpServer', x=99.44, y=63.00, z=238.35]]
Retry entities: 0 total; []
Server brand: fml,forge
Server type: Integrated singleplayer server
Stacktrace:
at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:440)
at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2326)
at net.minecraft.client.Minecraft.run(Minecraft.java:862)
at net.minecraft.client.main.Main.main(Main.java:93)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:131)
at net.minecraft.launchwrapper.Launch.main(Launch.java:27)
-- System Details --
Details:
Minecraft Version: 1.6.4
Operating System: Windows 7 (amd64) version 6.1
Java Version: 1.7.0_40, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 834248816 bytes (795 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
AABB Pool Size: 8067 (451752 bytes; 0 MB) allocated, 5 (280 bytes; 0 MB) used
Suspicious classes: FML and Forge are installed
IntCache: cache: 0, tcache: 0, allocated: 1, tallocated: 63
FML: MCP v8.11 FML v6.4.49.965 Minecraft Forge 9.11.1.965 3 mods loaded, 3 mods active
mcp{8.09} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
FML{6.4.49.965} [Forge Mod Loader] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
Forge{9.11.1.965} [Minecraft Forge] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
Launched Version: 1.6
LWJGL: 2.9.0
OpenGL: AMD Radeon HD 7700 Series GL version 4.3.12618 Compatibility Profile Context 13.251.0.0, ATI Technologies Inc.
Is Modded: Definitely; Client brand changed to 'fml,forge'
Type: Client (map_client.txt)
Resource Pack: Default
Current Language: English (UK)
Profiler Position: N/A (disabled)
Vec3 Pool Size: 2994 (167664 bytes; 0 MB) allocated, 37 (2072 bytes; 0 MB) used
