Created
December 29, 2011 11:43
-
-
Save ShaRose/1533695 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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