Skip to content

Instantly share code, notes, and snippets.

@ShaRose
Created December 29, 2011 11:43
Show Gist options
  • Save ShaRose/1533695 to your computer and use it in GitHub Desktop.
Save ShaRose/1533695 to your computer and use it in GitHub Desktop.
package net.minecraft.src;
// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) braces deadcode
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashSet;
import java.util.Vector;
import net.minecraft.client.Minecraft;
import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.GL11;
import de.matthiasmann.twl.Widget;
public class mod_IngameInvedit extends BaseMod {
private static int InfNum = 99;
private static Field itemDamageField = null;
public int accel[];
int accelSidebar;
int accelStack;
public SettingKey bringitemdown;
public String displayMessage;
public SettingBoolean enableautoresetsmp;
public SettingBoolean enableinf;
public SettingBoolean enablemod;
int givesize;
int globMetadata;
public boolean isfirstrun;
public Vector items;
public int lastpos[];
int lastposSidebar;
int lastposStack;
public SettingInt metascroll;
public SettingKey metascrolldown;
public SettingKey metascrollhome;
public SettingKey metascrollup;
public HashSet names;
public long nexttick[];
long nexttickSidebar;
long nexttickStack;
public RenderItem renderer;
public ModSettingScreen Screen;
public SettingKey seektoitem;
public SettingMulti servermode;
public ModSettings Settings;
public SettingKey sidebardown;
public SettingInt sidebarscroll;
public SettingKey sidebarup;
public SettingKey stacksizedown;
public SettingInt stacksizescroll;
public SettingKey stacksizeup;
public SettingKey showselectionscreen;
int swapvaluesinput;
public int zidx;
@Override
public void load() {
if (mod_IngameInvedit.itemDamageField == null) {
Field[] fields = ItemStack.class.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
if (fields[i].toString().startsWith("private int ")) {
mod_IngameInvedit.itemDamageField = fields[i];
mod_IngameInvedit.itemDamageField.setAccessible(true);
}
}
}
renderer = new RenderItem();
displayMessage = "";
isfirstrun = true;
items = new Vector();
names = new HashSet();
zidx = 0;
Settings = new ModSettings("mod_IngameInveditClone");
Screen = new ModSettingScreen("IngameInvedit");
globMetadata = 0;
swapvaluesinput = 0;
givesize = 0;
lastposSidebar = 0;
lastposStack = 0;
nexttickSidebar = 0L;
nexttickStack = 0L;
accelSidebar = 0;
accelStack = 0;
lastpos = new int[20];
nexttick = new long[20];
accel = new int[20];
try {
Method method = (ModLoader.class).getDeclaredMethod(
"SetInGameHook", new Class[] { BaseMod.class, Boolean.TYPE,
Boolean.TYPE });
method.invoke(null, new Object[] { this, Boolean.valueOf(true),
Boolean.valueOf(false) });
} catch (Throwable throwable) {
}
WidgetClassicTwocolumn scrollWindow = new WidgetClassicTwocolumn();
WidgetClassicTwocolumn keyWindow = new WidgetClassicTwocolumn();
sidebarscroll = Settings.addSetting(scrollWindow, "Sidebar Initial MS",
"sidebar_frame_per_scroll", 100, 10, 1, 500);
stacksizescroll = Settings.addSetting(scrollWindow,
"Stacksize Initial MS", "stacksize_frame_per_scroll", 100, 10,
1, 500);
metascroll = Settings.addSetting(scrollWindow,
"Meta/Damage Initial MS", "metadata_frame_per_scroll", 150, 10,
1, 500);
sidebarup = Settings.addSetting(keyWindow, "Sidebar Up",
"sidebar_scrollup", 13);
stacksizeup = Settings.addSetting(keyWindow, "Stacksize Up",
"stacksize_scrollup", 12);
sidebardown = Settings.addSetting(keyWindow, "Sidebar Down",
"sidebar_scrolldown", 27);
stacksizedown = Settings.addSetting(keyWindow, "Stacksize down",
"stacksize_scrolldown", 26);
bringitemdown = Settings.addSetting(keyWindow, "Change Inv. Item",
"bringitemdown", 25);
seektoitem = Settings.addSetting(keyWindow, "Seek to Item",
"seektoitem", 11);
metascrollup = Settings.addSetting(keyWindow, "Meta/Damage up",
"metadataup", 39);
metascrolldown = Settings.addSetting(keyWindow, "Meta/Damage down",
"metadatadown", 40);
metascrollhome = Settings.addSetting(keyWindow, "Meta/Damage home",
"metadataareset", 38);
enableautoresetsmp = Settings.addSetting(Screen, "Stacksize Reset SMP",
"autoreset", true, "ON", "OFF");
enableinf = Settings.addSetting(Screen, "Infinite Stacks",
"infinitestacks", true, "ON", "OFF");
enablemod = Settings.addSetting(Screen, "Enable mod", "isenabled",
true, "ON", "OFF");
servermode = Settings.addSetting(Screen, "Server Mode", "servermode",
0, new String[] { "Vanilla", "Bukkit", "Zaneris" });
Screen.append(GuiApiHelper.makeButton("Scroll Speeds", "show",
GuiModScreen.class, true, new Class[] { Widget.class },
new WidgetSimplewindow(scrollWindow,
"Ingame Invedit Scroll Speeds")));
Screen.append(GuiApiHelper.makeButton("Keybindings", "show",
GuiModScreen.class, true, new Class[] { Widget.class },
new WidgetSimplewindow(keyWindow, "Ingame invedit Keys")));
Settings.load();
}
public int getMetaScroll() {
if (metascrollhome.isKeyDown()) {
System.out.println("clear");
return -globMetadata;
} else {
return getScroll(2, metascrollup.isKeyDown(),
metascrolldown.isKeyDown(), metascroll);
}
}
public int getScroll(int i, boolean flag, boolean flag1,
SettingInt settingint) {
if (flag && flag1) {
lastpos[i] = 0;
return 0;
}
if (!flag && !flag1) {
nexttick[i] = 0L;
return 0;
}
if ((flag && (lastpos[i] != 1)) || (flag1 && (lastpos[i] != -1))) {
nexttick[i] = 0L;
}
if (nexttick[i] == 0L) {
accel[i] = 0;
}
if (nexttick[i] > System.currentTimeMillis()) {
return 0;
}
lastpos[i] = flag ? 1 : -1;
accel[i]++;
int j = accel[i] / 6;
if (j > 3) {
j = 3;
}
double d = (double) settingint.get() * (1.0D - (j / 6D));
nexttick[i] = (long) d + System.currentTimeMillis();
return flag ? 1 : -1;
}
public int getSidebarScroll() {
return -getScroll(0, sidebarup.isKeyDown(), sidebardown.isKeyDown(),
sidebarscroll);
}
public int getStackScroll() {
return getScroll(1, stacksizeup.isKeyDown(), stacksizedown.isKeyDown(),
stacksizescroll);
}
public int idx_at_id(int i) {
for (int j = 0; j < items.size(); j++) {
if (switchidx(j).itemID == i) {
return j;
}
}
return -1;
}
@Override
public boolean OnTickInGame(float tick, Minecraft minecraft) {
if (enablemod.get()) {
if (isfirstrun) {
isfirstrun = false;
if (Item.itemsList != null) {
for (int i = 0; i < Item.itemsList.length; i++) {
if (Item.itemsList[i] != null) {
items.add(Item.itemsList[i]);
}
}
}
}
boolean flag1 = false;
zidx += getSidebarScroll();
int j = getStackScroll();
if (j != 0) {
flag1 = true;
}
givesize += j;
if (1 > givesize) {
givesize = 64;
}
if (givesize > 64) {
if (enableinf.get() && !minecraft.theWorld.multiplayerWorld) {
if ((givesize != 65)
&& (givesize != mod_IngameInvedit.InfNum)) {
givesize = 1;
} else {
givesize = mod_IngameInvedit.InfNum;
}
} else {
givesize = 1;
}
}
if (minecraft.theWorld.multiplayerWorld) {
globMetadata = 0;
if (swapvaluesinput != 0) {
if (!Keyboard.isKeyDown(seektoitem.get())
&& !Keyboard.isKeyDown(bringitemdown.get())) {
swapvaluesinput = 0;
}
} else if (Keyboard.isKeyDown(seektoitem.get())
&& !Keyboard.isKeyDown(bringitemdown.get())) {
swapvaluesinput = 1;
if (minecraft.thePlayer.inventory.getCurrentItem() != null) {
int k = idx_at_id(minecraft.thePlayer.inventory
.getCurrentItem().itemID);
if (k >= 0) {
zidx = k;
}
}
} else if (bringitemdown.isKeyDown()) {
swapvaluesinput = -1;
int l = switchidx(zidx).itemID;
switch (servermode.get()) {
case 0: // '\0'
minecraft.thePlayer
.sendChatMessage((new StringBuilder())
.append("/give ")
.append(minecraft.thePlayer.username)
.append(" ")
.append(l)
.append(givesize <= 0 ? ""
: (new StringBuilder())
.append(" ")
.append(givesize)
.toString()).toString());
break;
case 1: // '\001'
minecraft.thePlayer
.sendChatMessage((new StringBuilder())
.append("/item ")
.append(l)
.append(givesize <= 0 ? ""
: (new StringBuilder())
.append(" ")
.append(givesize)
.toString()).toString());
break;
case 2: // '\002'
minecraft.thePlayer
.sendChatMessage((new StringBuilder())
.append("/give ")
.append(l)
.append(givesize <= 0 ? ""
: (new StringBuilder())
.append(" ")
.append(givesize)
.toString()).toString());
break;
}
if (enableautoresetsmp.get()) {
givesize = 0;
}
}
} else {
globMetadata += getMetaScroll();
if ((minecraft.thePlayer.inventory.getCurrentItem() == null)
&& bringitemdown.isKeyDown()) {
minecraft.thePlayer.inventory.setInventorySlotContents(
minecraft.thePlayer.inventory.currentItem,
switchidx(zidx));
}
if ((flag1 || bringitemdown.isKeyDown())
&& (minecraft.thePlayer.inventory.getCurrentItem() != null)) {
minecraft.thePlayer.inventory.getCurrentItem().stackSize = givesize;
}
if (swapvaluesinput != 0) {
if (!seektoitem.isKeyDown() && !bringitemdown.isKeyDown()) {
swapvaluesinput = 0;
}
} else if (seektoitem.isKeyDown() && !bringitemdown.isKeyDown()) {
swapvaluesinput = 1;
if (minecraft.thePlayer.inventory.getCurrentItem() != null) {
int i1 = idx_at_id(minecraft.thePlayer.inventory
.getCurrentItem().itemID);
if (i1 >= 0) {
zidx = i1;
}
}
} else if (bringitemdown.isKeyDown()) {
swapvaluesinput = -1;
if (minecraft.thePlayer.inventory.getCurrentItem() != null) {
minecraft.thePlayer.inventory.getCurrentItem().itemID = switchidx(zidx).itemID;
try {
mod_IngameInvedit.itemDamageField.set(
minecraft.thePlayer.inventory
.getCurrentItem(), switchidx(zidx)
.getItemDamage());
} catch (Throwable ex) {
ex.printStackTrace();
}
} else {
minecraft.thePlayer.inventory.setInventorySlotContents(
minecraft.thePlayer.inventory.currentItem,
switchidx(zidx));
}
}
if (enableinf.get()) {
for (int j1 = 0; j1 < minecraft.thePlayer.inventory.mainInventory.length; j1++) {
if ((minecraft.thePlayer.inventory.mainInventory[j1] == null)
|| (minecraft.thePlayer.inventory.mainInventory[j1].stackSize <= 64)) {
continue;
}
minecraft.thePlayer.inventory.mainInventory[j1].stackSize = mod_IngameInvedit.InfNum;
if (!minecraft.thePlayer.inventory.mainInventory[j1]
.getHasSubtypes()) {
try {
mod_IngameInvedit.itemDamageField
.set(minecraft.thePlayer.inventory.mainInventory[j1],
0);
} catch (Throwable ex) {
ex.printStackTrace();
}
}
for (int k1 = 0; k1 < minecraft.thePlayer.inventory.mainInventory.length; k1++) {
if ((minecraft.thePlayer.inventory.mainInventory[k1] != null)
&& (minecraft.thePlayer.inventory.mainInventory[k1].stackSize <= 1)
&& (minecraft.thePlayer.inventory.mainInventory[k1].itemID == minecraft.thePlayer.inventory.mainInventory[j1].itemID)
&& (!minecraft.thePlayer.inventory.mainInventory[k1]
.getHasSubtypes() || (minecraft.thePlayer.inventory.mainInventory[k1]
.getItemDamage() == minecraft.thePlayer.inventory.mainInventory[j1]
.getItemDamage()))) {
minecraft.thePlayer.inventory.mainInventory[k1] = null;
}
}
}
}
}
for (; zidx < 0; zidx += items.size()) {
}
for (; zidx >= items.size(); zidx -= items.size()) {
}
render(zidx, minecraft,tick);
}
return true;
}
private static String GetItemNameForStack(ItemStack stack) {
return stack.getItem().getItemNameIS(stack);
}
public void render(int i, Minecraft minecraft,float interp) {
GL11.glDisable(3042 /*GL_BLEND*/ /* GL_BLEND */);
GL11.glEnable(32826 /*GL_RESCALE_NORMAL_EXT*/ /* GL_RESCALE_NORMAL_EXT */);
RenderHelper.enableStandardItemLighting();
ScaledResolution scaledresolution = new ScaledResolution(
minecraft.gameSettings, minecraft.displayWidth,
minecraft.displayHeight);
float lerp = 0;
for (int j = -3; j <= 3; j++) {
try {
renderer.renderItemIntoGUI(minecraft.fontRenderer,
minecraft.renderEngine, switchidx(i + j),
scaledresolution.getScaledWidth() - (j != 0 ? 24 : 30),
(scaledresolution.getScaledHeight() / 2) + (19 * j));
renderer.renderItemOverlayIntoGUI(minecraft.fontRenderer,
minecraft.renderEngine, switchidx(i + j),
scaledresolution.getScaledWidth() - (j != 0 ? 24 : 30),
(scaledresolution.getScaledHeight() / 2) + (19 * j));
} catch (NullPointerException nullpointerexception) {
System.out.println(minecraft.fontRenderer);
System.out.println(minecraft.renderEngine);
System.out.println(switchidx(i + j));
throw nullpointerexception;
}
}
RenderHelper.disableStandardItemLighting();
GL11.glDisable(32826 /*GL_RESCALE_NORMAL_EXT*/ /* GL_RESCALE_NORMAL_EXT */);
if (GetItemNameForStack(switchidx(i)) != null) {
String s = StringTranslate.getInstance().translateNamedKey(
GetItemNameForStack(switchidx(i)));
if (givesize > 0) {
if (s == null) {
s = (new StringBuilder()).append("").append(givesize)
.toString();
} else {
s = (new StringBuilder()).append("(").append(givesize)
.append(") ").append(s).toString();
}
}
if ((s != null) && (s.length() > 0)) {
minecraft.fontRenderer
.drawStringWithShadow(
s,
scaledresolution.getScaledWidth()
- minecraft.fontRenderer
.getStringWidth(s) - 10,
scaledresolution.getScaledHeight() - 10,
0xffffff);
}
minecraft.fontRenderer
.drawStringWithShadow(
(new StringBuilder())
.append("Damage: ")
.append(globMetadata)
.append(switchidx(i).getHasSubtypes() ? " subitem"
: "").toString(),
scaledresolution.getScaledWidth()
- minecraft.fontRenderer
.getStringWidth((new StringBuilder())
.append("Damage: ")
.append(globMetadata)
.append(switchidx(i)
.getHasSubtypes() ? " subitem"
: "").toString())
- 10,
scaledresolution.getScaledHeight() - 20, 0xffffff);
minecraft.fontRenderer.drawStringWithShadow(
(new StringBuilder()).append("ID: ")
.append(switchidx(i).itemID).toString(),
scaledresolution.getScaledWidth()
- minecraft.fontRenderer
.getStringWidth((new StringBuilder())
.append("ID: ")
.append(switchidx(i).itemID)
.toString()) - 10, scaledresolution
.getScaledHeight() - 30, 0xffffff);
}
}
public ItemStack switchidx(int i) {
for (; i < 0; i += items.size()) {
}
for (; i >= items.size(); i -= items.size()) {
}
int j = globMetadata;
ItemStack itemstack = new ItemStack((Item) items.get(i));
for (boolean flag = false; !flag && (j != 0);) {
ItemStack itemstack1;
if (itemstack.getHasSubtypes()) {
itemstack1 = new ItemStack((Item) items.get(i), 1, j);
} else {
itemstack1 = new ItemStack((Item) items.get(i));
try {
mod_IngameInvedit.itemDamageField.set(itemstack1,
Math.min(j, itemstack1.getMaxDamage()));
} catch (Throwable e) {
}
}
try {
GetItemNameForStack(itemstack1);
itemstack = itemstack1;
flag = true;
} catch (NullPointerException nullpointerexception) {
} catch (ArrayIndexOutOfBoundsException arrayindexoutofboundsexception) {
}
if (j > 0) {
j--;
} else {
j++;
}
}
return itemstack;
}
@Override
public String getVersion() {
return "1.0.0";
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment