Advertisement
Guest User

BotSource

a guest
Dec 24th, 2011
632
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 53.00 KB | None | 0 0
  1. // Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
  2. // Jad home page: http://www.kpdus.com/jad.html
  3. // Decompiler options: packimports(3) braces deadcode fieldsfirst
  4.  
  5. package net.minecraft.src;
  6.  
  7. import java.io.IOException;
  8. import java.net.UnknownHostException;
  9. import java.util.List;
  10. import java.util.Random;
  11.  
  12. import net.minecraft.client.Minecraft;
  13.  
  14. // Referenced classes of package net.minecraft.src:
  15. //            EntityPlayerSP, MathHelper, World, Packet19EntityAction,
  16. //            NetClientHandler, AxisAlignedBB, Packet11PlayerPosition, Packet13PlayerLookMove,
  17. //            Packet12PlayerLook, Packet10Flying, Packet14BlockDig, Packet3Chat,
  18. //            Packet18Animation, Packet9Respawn, Packet101CloseWindow, Container,
  19. //            InventoryPlayer, StatBase, Session, DamageSource,
  20. //            EntityItem
  21.  
  22. public class EntityClientPlayerMP extends EntityPlayerSP
  23. {
  24.  
  25.     public NetClientHandler sendQueue;
  26.     private int inventoryUpdateTickCounter;
  27.     private boolean field_21093_bH;
  28.     private double oldPosX;
  29.     private double field_9378_bz;
  30.     private double oldPosY;
  31.     private double oldPosZ;
  32.     private float oldRotationYaw;
  33.     private float oldRotationPitch;
  34.     private boolean field_9382_bF;
  35.     private boolean field_35227_cs;
  36.     private boolean wasSneaking;
  37.     private int field_12242_bI;
  38.     private int field_39003_d;
  39.     private EntityLiving followTarget;
  40.  
  41.     public EntityClientPlayerMP(Minecraft minecraft, World world, Session session, NetClientHandler netclienthandler)
  42.     {
  43.         super(minecraft, world, session, 0);
  44.         inventoryUpdateTickCounter = 0;
  45.         field_21093_bH = false;
  46.         field_9382_bF = false;
  47.         field_35227_cs = false;
  48.         wasSneaking = false;
  49.         field_12242_bI = 0;
  50.         sendQueue = netclienthandler;
  51.     }
  52.    
  53.     public void onNuker() {
  54.        
  55.             /*double d = posX+((Math.random()*6)-3);
  56.             double d1 = posY;
  57.             double d2 = posZ+((Math.random()*6)-3);
  58.             EntityXPOrb orb = new EntityXPOrb(worldObj, d, d1, d2, 1000);
  59.             worldObj.entityJoinedWorld(orb);*/
  60.             Minecraft minecraft = mc;
  61.             int startY = (int) mc.thePlayer.posY - 1;
  62.             Chunk chunk = minecraft.theWorld.getChunkFromBlockCoords((int) minecraft.thePlayer.posX, (int) minecraft.thePlayer.posZ);
  63.             for (int x = 0; x < 16; x++) {
  64.                     for (int z = 0; z < 16; z++) {
  65.                             for (int y = startY; y < 128; y++) {
  66.                                     int trueX = (chunk.xPosition * 16) + x;
  67.                                     int trueZ = (chunk.zPosition * 16) + z;
  68.                                     if (chunk.getBlockID(x, y, z) != 0) {
  69.                                             minecraft.getSendQueue().addToSendQueue(new Packet14BlockDig(0, trueX, y, trueZ, 0));
  70.                                             minecraft.getSendQueue().addToSendQueue(new Packet14BlockDig(2, trueX, y, trueZ, 0));
  71.                                            
  72.                                     }
  73.                                  
  74.                             }
  75.                     }
  76.             }
  77.        
  78.     }
  79.  
  80.     public boolean attackEntityFrom(DamageSource damagesource, int i)
  81.     {
  82.         return super.attackEntityFrom(damagesource, i);
  83.     }
  84.  
  85.     public void heal(int i)
  86.     {
  87.         super.heal(i);
  88.     }
  89.  
  90.     public void onUpdate()
  91.     {
  92.         if(!worldObj.blockExists(MathHelper.floor_double(posX), worldObj.field_35472_c / 2, MathHelper.floor_double(posZ)))
  93.         {
  94.             return;
  95.         } else
  96.         {
  97.             super.onUpdate();
  98.             onUpdate2();
  99.             return;
  100.         }
  101.     }
  102.  
  103.     public void onUpdate2()
  104.     {  
  105.         if(VariableHandler.a)
  106.         {
  107.             if (auraTarget == null) {
  108.             List list = worldObj.getEntitiesWithinAABB(net.minecraft.src.EntityLiving.class, AxisAlignedBB.getBoundingBoxFromPool(posX, posY, posZ, posX + 1.0D, posY + 1.0D, posZ + 1.0D).expand(10D, 4D, 10D));
  109.             list.remove(this);
  110.             if(!list.isEmpty())
  111.             {
  112.                 auraTarget = (EntityLiving) list.get(worldObj.rand.nextInt(list.size()));
  113.             }
  114.         } else {
  115.             faceEntity(auraTarget, 10F, getVerticalFaceSpeed());
  116.             if (getDistanceToEntity(auraTarget) > 4.0D) {
  117.                 pathToEntity = worldObj.getPathToEntity(this, auraTarget, 6F);
  118.                 if (isInWater()) {
  119.                     motionY = 0.2D;
  120.                 }
  121.                 moveEntityWithHeading(moveStrafing, moveSpeed);
  122.                 int i = MathHelper.floor_double(boundingBox.minY + 0.5D);
  123.                 boolean flag = isInWater();
  124.                 boolean flag1 = handleLavaMovement();  
  125.                 Vec3D vec3d = null;
  126.                 if (pathToEntity != null) {
  127.                 vec3d = pathToEntity.getPosition(this);
  128.                 }
  129.                 isJumping = false;
  130.                 if(isCollidedHorizontally && pathToEntity != null)
  131.                 {
  132.                     isJumping = true;
  133.                 }
  134.                 if(rand.nextFloat() < 0.8F && (flag || flag1))
  135.                 {
  136.                     isJumping = true;
  137.                 }
  138.                
  139.             }
  140.            
  141.            
  142.                
  143.             if (!isSwinging && getDistanceToEntity(auraTarget) < 4.5D) {
  144.                 sendQueue.addToSendQueue(new Packet18Animation(mc.thePlayer, 1));
  145.                 swingItem();
  146.                 mc.playerController.attackEntity(this, auraTarget);
  147.             }
  148.         }
  149.             if (auraTarget != null) {
  150.                 if (!auraTarget.isEntityAlive()) {
  151.                     auraTarget = null;
  152.                 }
  153.             }
  154.  
  155.             if (auraTarget != null && auraTarget instanceof EntityPlayer) {
  156.                 EntityPlayer player = (EntityPlayer) auraTarget;
  157.                 if (player.username.equalsIgnoreCase("grandysong1") || player.username.equalsIgnoreCase("bandosl0lz")) {
  158.                 auraTarget = null;
  159.                 }
  160.             }
  161.            
  162.         } else {
  163.             auraTarget = null;
  164.         }
  165.  
  166.  
  167.         if(inventoryUpdateTickCounter++ == 20)
  168.         {
  169.             sendInventoryChanged();
  170.             inventoryUpdateTickCounter = 0;
  171.         }
  172.         boolean flag = isSprinting();
  173.         if(flag != wasSneaking)
  174.         {
  175.             if(flag)
  176.             {
  177.                 sendQueue.addToSendQueue(new Packet19EntityAction(this, 4));
  178.             } else
  179.             {
  180.                 sendQueue.addToSendQueue(new Packet19EntityAction(this, 5));
  181.             }
  182.             wasSneaking = flag;
  183.         }
  184.         boolean flag1 = isSneaking();
  185.         if(flag1 != field_35227_cs)
  186.         {
  187.             if(flag1)
  188.             {
  189.                 sendQueue.addToSendQueue(new Packet19EntityAction(this, 1));
  190.             } else
  191.             {
  192.                 sendQueue.addToSendQueue(new Packet19EntityAction(this, 2));
  193.             }
  194.             field_35227_cs = flag1;
  195.         }
  196.         double d = posX - oldPosX;
  197.         double d1 = boundingBox.minY - field_9378_bz;
  198.         double d2 = posY - oldPosY;
  199.         double d3 = posZ - oldPosZ;
  200.         double d4 = rotationYaw - oldRotationYaw;
  201.         double d5 = rotationPitch - oldRotationPitch;
  202.         boolean flag2 = d1 != 0.0D || d2 != 0.0D || d != 0.0D || d3 != 0.0D;
  203.         boolean flag3 = d4 != 0.0D || d5 != 0.0D;
  204.         if(ridingEntity != null)
  205.         {
  206.             if(flag3)
  207.             {
  208.                 sendQueue.addToSendQueue(new Packet11PlayerPosition(motionX, -999D, -999D, motionZ, onGround));
  209.             } else
  210.             {
  211.                 sendQueue.addToSendQueue(new Packet13PlayerLookMove(motionX, -999D, -999D, motionZ, rotationYaw, rotationPitch, onGround));
  212.             }
  213.             flag2 = false;
  214.         } else
  215.         if(flag2 && flag3)
  216.         {
  217.             sendQueue.addToSendQueue(new Packet13PlayerLookMove(posX, boundingBox.minY, posY, posZ, rotationYaw, rotationPitch, onGround));
  218.             field_12242_bI = 0;
  219.         } else
  220.         if(flag2)
  221.         {
  222.             sendQueue.addToSendQueue(new Packet11PlayerPosition(posX, boundingBox.minY, posY, posZ, onGround));
  223.             field_12242_bI = 0;
  224.         } else
  225.         if(flag3)
  226.         {
  227.             sendQueue.addToSendQueue(new Packet12PlayerLook(rotationYaw, rotationPitch, onGround));
  228.             field_12242_bI = 0;
  229.         } else
  230.         {
  231.             sendQueue.addToSendQueue(new Packet10Flying(onGround));
  232.             if(field_9382_bF != onGround || field_12242_bI > 200)
  233.             {
  234.                 field_12242_bI = 0;
  235.             } else
  236.             {
  237.                 field_12242_bI++;
  238.             }
  239.         }
  240.         field_9382_bF = onGround;
  241.         if(flag2)
  242.         {
  243.             oldPosX = posX;
  244.             field_9378_bz = boundingBox.minY;
  245.             oldPosY = posY;
  246.             oldPosZ = posZ;
  247.         }
  248.         if(flag3)
  249.         {
  250.             oldRotationYaw = rotationYaw;
  251.             oldRotationPitch = rotationPitch;
  252.         }
  253.     }
  254.  
  255.     public void onDeath(DamageSource damagesource) {
  256.         super.onDeath(damagesource);
  257.     }
  258.  
  259.     public void dropCurrentItem()
  260.     {
  261.         sendQueue.addToSendQueue(new Packet14BlockDig(4, 0, 0, 0, 0));
  262.     }
  263.  
  264.     public void sendInventoryChanged()
  265.     {
  266.     }
  267.  
  268.     protected void joinEntityItemWithWorld(EntityItem entityitem)
  269.     {
  270.     }
  271.  
  272.     public void sendChatMessage(String s)
  273.     {
  274.         sendQueue.addToSendQueue(new Packet3Chat(s));
  275.     }
  276.  
  277.     public void swingItem()
  278.     {
  279.         super.swingItem();
  280.         sendQueue.addToSendQueue(new Packet18Animation(this, 1));
  281.     }
  282.  
  283.     public void respawnPlayer()
  284.     {
  285.         sendInventoryChanged();
  286.         sendQueue.addToSendQueue(new Packet9Respawn((byte)dimension, (byte)worldObj.difficultySetting, worldObj.getWorldSeed(), worldObj.field_35472_c, 0));
  287.     }
  288.  
  289.     protected void damageEntity(DamageSource damagesource, int i)
  290.     {
  291.         if (VariableHandler.a) {
  292.             Entity entity = damagesource.getEntity();
  293.                 if((entity instanceof EntityArrow) && ((EntityArrow)entity).shootingEntity != null)
  294.                 {
  295.                     entity = ((EntityArrow)entity).shootingEntity;
  296.                 }
  297.                 auraTarget = (EntityLiving) entity;
  298.         }
  299.         setEntityHealth(getEntityHealth() - i);
  300.     }
  301.  
  302.     public void closeScreen()
  303.     {
  304.         sendQueue.addToSendQueue(new Packet101CloseWindow(craftingInventory.windowId));
  305.         inventory.setItemStack(null);
  306.         super.closeScreen();
  307.     }
  308.  
  309.     public void setHealth(int i)
  310.     {
  311.         if(field_21093_bH)
  312.         {
  313.             super.setHealth(i);
  314.         } else
  315.         {
  316.             setEntityHealth(i);
  317.             field_21093_bH = true;
  318.         }
  319.     }
  320.  
  321.     public void addStat(StatBase statbase, int i)
  322.     {
  323.         if(statbase == null)
  324.         {
  325.             return;
  326.         }
  327.         if(statbase.isIndependent)
  328.         {
  329.             super.addStat(statbase, i);
  330.         }
  331.     }
  332.  
  333.     public void func_27027_b(StatBase statbase, int i)
  334.     {
  335.         if(statbase == null)
  336.         {
  337.             return;
  338.         }
  339.         if(!statbase.isIndependent)
  340.         {
  341.             super.addStat(statbase, i);
  342.         }
  343.     }
  344.     int y1;
  345.     int x1;
  346.     int z1;
  347.     EntityLiving auraTarget;
  348.     boolean flag = isInWater();
  349.     boolean flag1 = handleLavaMovement();
  350.     public boolean hasPath; //unused
  351.     public PathEntity pathToEntity;
  352. }
  353.  
  354.  
  355. // Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
  356. // Jad home page: http://www.kpdus.com/jad.html
  357. // Decompiler options: packimports(3) braces deadcode fieldsfirst
  358.  
  359. package net.minecraft.src;
  360.  
  361. import java.awt.Color;
  362. import java.util.ArrayList;
  363. import java.util.Random;
  364. import net.minecraft.client.Minecraft;
  365.  
  366. import org.lwjgl.opengl.Display;
  367. import org.lwjgl.opengl.GL11;
  368. import org.lwjgl.input.Keyboard;
  369.  
  370. // Referenced classes of package net.minecraft.src:
  371. //            Gui, ScaledResolution, EntityRenderer, EntityPlayerSP,
  372. //            InventoryPlayer, GameSettings, ItemStack, Block,
  373. //            Potion, PlayerController, RenderEngine, FoodStats,
  374. //            World, WorldInfo, Material, RenderHelper,
  375. //            FontRenderer, MathHelper, GuiChat, ChatLine,
  376. //            EntityClientPlayerMP, KeyBinding, NetClientHandler, GuiSavingLevelString,
  377. //            RenderDragon, EntityDragon, Tessellator, BlockPortal,
  378. //            RenderItem, StringTranslate
  379.  
  380. public class GuiIngame extends Gui
  381. {
  382.  
  383.     private boolean keystates[] = new boolean[256];
  384.     private static RenderItem itemRenderer = new RenderItem();
  385.     private java.util.List chatMessageList;
  386.     private Random rand;
  387.     private Minecraft mc;
  388.     public String field_933_a;
  389.     private int updateCounter;
  390.     private String recordPlaying;
  391.     private int recordPlayingUpFor;
  392.     private boolean recordIsPlaying;
  393.     public float damageGuiPartialTime;
  394.     float prevVignetteBrightness;
  395.  
  396.     public GuiIngame(Minecraft minecraft)
  397.     {
  398.         chatMessageList = new ArrayList();
  399.         rand = new Random();
  400.         field_933_a = null;
  401.         updateCounter = 0;
  402.         recordPlaying = "";
  403.         recordPlayingUpFor = 0;
  404.         recordIsPlaying = false;
  405.         prevVignetteBrightness = 1.0F;
  406.         mc = minecraft;
  407.     }
  408.    
  409.     public boolean checkKey(int i)
  410.     {
  411.         if(mc.currentScreen != null)
  412.         {
  413.             return false;
  414.         }
  415.         if(Keyboard.isKeyDown(i) != keystates[i])
  416.         {
  417.             return keystates[i] = !keystates[i];
  418.         }else
  419.         {
  420.             return false;
  421.         }
  422.     }
  423.  
  424.     public void renderGameOverlay(float f, boolean flag, int i, int j)
  425.     {
  426.         ScaledResolution scaledresolution = new ScaledResolution(mc.gameSettings, mc.displayWidth, mc.displayHeight);
  427.         int k = scaledresolution.getScaledWidth();
  428.         int l = scaledresolution.getScaledHeight();
  429.         FontRenderer fontrenderer = mc.fontRenderer;
  430.         mc.entityRenderer.setupOverlayRendering();
  431.         GL11.glEnable(3042 /*GL_BLEND*/);
  432.         if(Minecraft.isFancyGraphicsEnabled())
  433.         {
  434.             renderVignette(mc.thePlayer.getEntityBrightness(f), k, l);
  435.         } else
  436.         {
  437.             GL11.glBlendFunc(770, 771);
  438.         }
  439.         ItemStack itemstack = mc.thePlayer.inventory.armorItemInSlot(3);
  440.         if(mc.gameSettings.thirdPersonView == 0 && itemstack != null && itemstack.itemID == Block.pumpkin.blockID)
  441.         {
  442.             renderPumpkinBlur(k, l);
  443.         }
  444.         if(!mc.thePlayer.isPotionActive(Potion.potionConfusion))
  445.         {
  446.             float f1 = mc.thePlayer.prevTimeInPortal + (mc.thePlayer.timeInPortal - mc.thePlayer.prevTimeInPortal) * f;
  447.             if(f1 > 0.0F)
  448.             {
  449.                 renderPortalOverlay(f1, k, l);
  450.             }
  451.         }
  452.         if(!mc.playerController.func_35643_e())
  453.         {
  454.             GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  455.             GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, mc.renderEngine.getTexture("/gui/gui.png"));
  456.             InventoryPlayer inventoryplayer = mc.thePlayer.inventory;
  457.             zLevel = -90F;
  458.             drawTexturedModalRect(k / 2 - 91, l - 22, 0, 0, 182, 22);
  459.             drawTexturedModalRect((k / 2 - 91 - 1) + inventoryplayer.currentItem * 20, l - 22 - 1, 0, 22, 24, 22);
  460.             GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, mc.renderEngine.getTexture("/gui/icons.png"));
  461.             GL11.glEnable(3042 /*GL_BLEND*/);
  462.             GL11.glBlendFunc(775, 769);
  463.             drawTexturedModalRect(k / 2 - 7, l / 2 - 7, 0, 0, 16, 16);
  464.             GL11.glDisable(3042 /*GL_BLEND*/);
  465.             boolean flag2 = (mc.thePlayer.heartsLife / 3) % 2 == 1;
  466.             if(mc.thePlayer.heartsLife < 10)
  467.             {
  468.                 flag2 = false;
  469.             }
  470.             int i2 = mc.thePlayer.getEntityHealth();
  471.             int j3 = mc.thePlayer.prevHealth;
  472.             rand.setSeed(updateCounter * 0x4c627);
  473.             boolean flag4 = false;
  474.             FoodStats foodstats = mc.thePlayer.getFoodStats();
  475.             int i5 = foodstats.getFoodLevel();
  476.             int k5 = foodstats.getPrevFoodLevel();
  477.             func_41039_c();
  478.             if(mc.playerController.shouldDrawHUD())
  479.             {
  480.                 int k6 = k / 2 - 91;
  481.                 int j7 = k / 2 + 91;
  482.                 int l7 = mc.thePlayer.xpBarCap();
  483.                 if(l7 > 0)
  484.                 {
  485.                     char c = '\266';
  486.                     int i9 = (int)(mc.thePlayer.currentXP * (float)(c + 1));
  487.                     int l9 = (l - 32) + 3;
  488.                     drawTexturedModalRect(k6, l9, 0, 64, c, 5);
  489.                     if(i9 > 0)
  490.                     {
  491.                         drawTexturedModalRect(k6, l9, 0, 69, i9, 5);
  492.                     }
  493.                 }
  494.                 int k8 = l - 39;
  495.                 int j9 = k8 - 10;
  496.                 int i10 = mc.thePlayer.getPlayerArmorValue();
  497.                 int j10 = -1;
  498.                 if(mc.thePlayer.isPotionActive(Potion.potionRegeneration))
  499.                 {
  500.                     j10 = updateCounter % 25;
  501.                 }
  502.                 for(int l10 = 0; l10 < 10; l10++)
  503.                 {
  504.                     if(i10 > 0)
  505.                     {
  506.                         int k11 = k6 + l10 * 8;
  507.                         if(l10 * 2 + 1 < i10)
  508.                         {
  509.                             drawTexturedModalRect(k11, j9, 34, 9, 9, 9);
  510.                         }
  511.                         if(l10 * 2 + 1 == i10)
  512.                         {
  513.                             drawTexturedModalRect(k11, j9, 25, 9, 9, 9);
  514.                         }
  515.                         if(l10 * 2 + 1 > i10)
  516.                         {
  517.                             drawTexturedModalRect(k11, j9, 16, 9, 9, 9);
  518.                         }
  519.                     }
  520.                     int l11 = 16;
  521.                     if(mc.thePlayer.isPotionActive(Potion.potionPoison))
  522.                     {
  523.                         l11 += 36;
  524.                     }
  525.                     int k12 = 0;
  526.                     if(flag2)
  527.                     {
  528.                         k12 = 1;
  529.                     }
  530.                     int j13 = k6 + l10 * 8;
  531.                     int k13 = k8;
  532.                     if(i2 <= 4)
  533.                     {
  534.                         k13 += rand.nextInt(2);
  535.                     }
  536.                     if(l10 == j10)
  537.                     {
  538.                         k13 -= 2;
  539.                     }
  540.                     byte byte5 = 0;
  541.                     if(mc.theWorld.getWorldInfo().isHardcoreModeEnabled())
  542.                     {
  543.                         byte5 = 5;
  544.                     }
  545.                     drawTexturedModalRect(j13, k13, 16 + k12 * 9, 9 * byte5, 9, 9);
  546.                     if(flag2)
  547.                     {
  548.                         if(l10 * 2 + 1 < j3)
  549.                         {
  550.                             drawTexturedModalRect(j13, k13, l11 + 54, 9 * byte5, 9, 9);
  551.                         }
  552.                         if(l10 * 2 + 1 == j3)
  553.                         {
  554.                             drawTexturedModalRect(j13, k13, l11 + 63, 9 * byte5, 9, 9);
  555.                         }
  556.                     }
  557.                     if(l10 * 2 + 1 < i2)
  558.                     {
  559.                         drawTexturedModalRect(j13, k13, l11 + 36, 9 * byte5, 9, 9);
  560.                     }
  561.                     if(l10 * 2 + 1 == i2)
  562.                     {
  563.                         drawTexturedModalRect(j13, k13, l11 + 45, 9 * byte5, 9, 9);
  564.                     }
  565.                 }
  566.  
  567.                 for(int i11 = 0; i11 < 10; i11++)
  568.                 {
  569.                     int i12 = k8;
  570.                     int l12 = 16;
  571.                     byte byte4 = 0;
  572.                     if(mc.thePlayer.isPotionActive(Potion.potionHunger))
  573.                     {
  574.                         l12 += 36;
  575.                         byte4 = 13;
  576.                     }
  577.                     if(mc.thePlayer.getFoodStats().getFoodSaturationLevel() <= 0.0F && updateCounter % (i5 * 3 + 1) == 0)
  578.                     {
  579.                         i12 += rand.nextInt(3) - 1;
  580.                     }
  581.                     if(flag4)
  582.                     {
  583.                         byte4 = 1;
  584.                     }
  585.                     int l13 = j7 - i11 * 8 - 9;
  586.                     drawTexturedModalRect(l13, i12, 16 + byte4 * 9, 27, 9, 9);
  587.                     if(flag4)
  588.                     {
  589.                         if(i11 * 2 + 1 < k5)
  590.                         {
  591.                             drawTexturedModalRect(l13, i12, l12 + 54, 27, 9, 9);
  592.                         }
  593.                         if(i11 * 2 + 1 == k5)
  594.                         {
  595.                             drawTexturedModalRect(l13, i12, l12 + 63, 27, 9, 9);
  596.                         }
  597.                     }
  598.                     if(i11 * 2 + 1 < i5)
  599.                     {
  600.                         drawTexturedModalRect(l13, i12, l12 + 36, 27, 9, 9);
  601.                     }
  602.                     if(i11 * 2 + 1 == i5)
  603.                     {
  604.                         drawTexturedModalRect(l13, i12, l12 + 45, 27, 9, 9);
  605.                     }
  606.                 }
  607.  
  608.                 if(mc.thePlayer.isInsideOfMaterial(Material.water))
  609.                 {
  610.                     int j11 = (int)Math.ceil(((double)(mc.thePlayer.func_41001_Z() - 2) * 10D) / 300D);
  611.                     int j12 = (int)Math.ceil(((double)mc.thePlayer.func_41001_Z() * 10D) / 300D) - j11;
  612.                     for(int i13 = 0; i13 < j11 + j12; i13++)
  613.                     {
  614.                         if(i13 < j11)
  615.                         {
  616.                             drawTexturedModalRect(j7 - i13 * 8 - 9, j9, 16, 18, 9, 9);
  617.                         } else
  618.                         {
  619.                             drawTexturedModalRect(j7 - i13 * 8 - 9, j9, 25, 18, 9, 9);
  620.                         }
  621.                     }
  622.  
  623.                 }
  624.             }
  625.             GL11.glDisable(3042 /*GL_BLEND*/);
  626.             GL11.glEnable(32826 /*GL_RESCALE_NORMAL_EXT*/);
  627.             RenderHelper.func_41089_c();
  628.             for(int l6 = 0; l6 < 9; l6++)
  629.             {
  630.                 int k7 = (k / 2 - 90) + l6 * 20 + 2;
  631.                 int i8 = l - 16 - 3;
  632.                 renderInventorySlot(l6, k7, i8, f);
  633.             }
  634.  
  635.             RenderHelper.disableStandardItemLighting();
  636.             GL11.glDisable(32826 /*GL_RESCALE_NORMAL_EXT*/);
  637.         }
  638.         if(mc.thePlayer.getSleepTimer() > 0)
  639.         {
  640.             GL11.glDisable(2929 /*GL_DEPTH_TEST*/);
  641.             GL11.glDisable(3008 /*GL_ALPHA_TEST*/);
  642.             int i1 = mc.thePlayer.getSleepTimer();
  643.             float f3 = (float)i1 / 100F;
  644.             if(f3 > 1.0F)
  645.             {
  646.                 f3 = 1.0F - (float)(i1 - 100) / 10F;
  647.             }
  648.             int j2 = (int)(220F * f3) << 24 | 0x101020;
  649.             drawRect(0, 0, k, l, j2);
  650.             GL11.glEnable(3008 /*GL_ALPHA_TEST*/);
  651.             GL11.glEnable(2929 /*GL_DEPTH_TEST*/);
  652.         }
  653.         if(mc.playerController.func_35642_f() && mc.thePlayer.playerLevel > 0)
  654.         {
  655.             boolean flag1 = false;
  656.             int j1 = flag1 ? 0xffffff : 0x80ff20;
  657.             String s = (new StringBuilder()).append("").append(mc.thePlayer.playerLevel).toString();
  658.             int k3 = (k - fontrenderer.getStringWidth(s)) / 2;
  659.             int l3 = l - 31 - 4;
  660.             fontrenderer.drawString(s, k3 + 1, l3, 0);
  661.             fontrenderer.drawString(s, k3 - 1, l3, 0);
  662.             fontrenderer.drawString(s, k3, l3 + 1, 0);
  663.             fontrenderer.drawString(s, k3, l3 - 1, 0);
  664.             fontrenderer.drawString(s, k3, l3, j1);
  665.         }
  666.         if(mc.gameSettings.showDebugInfo)
  667.         {
  668.             GL11.glPushMatrix();
  669.             if(Minecraft.hasPaidCheckTime > 0L)
  670.             {
  671.                 GL11.glTranslatef(0.0F, 32F, 0.0F);
  672.             }
  673.             fontrenderer.drawStringWithShadow((new StringBuilder()).append("Minecraft 1.0.0 (").append(mc.debug).append(") - MobGrinder Bot BETA v1 by thetruefanboi").toString(), 2, 2, 0xffffff);
  674.             fontrenderer.drawStringWithShadow(mc.debugInfoRenders(), 2, 12, 0xffffff);
  675.             fontrenderer.drawStringWithShadow(mc.func_6262_n(), 2, 22, 0xffffff);
  676.             fontrenderer.drawStringWithShadow(mc.debugInfoEntities(), 2, 32, 0xffffff);
  677.             fontrenderer.drawStringWithShadow(mc.func_21002_o(), 2, 42, 0xffffff);
  678.             long l1 = Runtime.getRuntime().maxMemory();
  679.             long l2 = Runtime.getRuntime().totalMemory();
  680.             long l4 = Runtime.getRuntime().freeMemory();
  681.             long l5 = l2 - l4;
  682.             String s1 = (new StringBuilder()).append("Used memory: ").append((l5 * 100L) / l1).append("% (").append(l5 / 1024L / 1024L).append("MB) of ").append(l1 / 1024L / 1024L).append("MB").toString();
  683.             drawString(fontrenderer, s1, k - fontrenderer.getStringWidth(s1) - 2, 2, 0xe0e0e0);
  684.             s1 = (new StringBuilder()).append("Allocated memory: ").append((l2 * 100L) / l1).append("% (").append(l2 / 1024L / 1024L).append("MB)").toString();
  685.             drawString(fontrenderer, s1, k - fontrenderer.getStringWidth(s1) - 2, 12, 0xe0e0e0);
  686.             drawString(fontrenderer, (new StringBuilder()).append("x: ").append(mc.thePlayer.posX).toString(), 2, 64, 0xe0e0e0);
  687.             drawString(fontrenderer, (new StringBuilder()).append("y: ").append(mc.thePlayer.posY).toString(), 2, 72, 0xe0e0e0);
  688.             drawString(fontrenderer, (new StringBuilder()).append("z: ").append(mc.thePlayer.posZ).toString(), 2, 80, 0xe0e0e0);
  689.             drawString(fontrenderer, (new StringBuilder()).append("f: ").append(MathHelper.floor_double((double)((mc.thePlayer.rotationYaw * 4F) / 360F) + 0.5D) & 3).toString(), 2, 88, 0xe0e0e0);
  690.             drawString(fontrenderer, (new StringBuilder()).append("Seed: ").append(mc.theWorld.getWorldSeed()).toString(), 2, 104, 0xe0e0e0);
  691.             GL11.glPopMatrix();
  692.         }
  693.         if (!mc.gameSettings.showDebugInfo) {
  694.             if (VariableHandler.a) {
  695.                 fontrenderer.drawStringWithShadow("Bot Enabled", 2, 2, 0xffffff);
  696.             } else {
  697.                 fontrenderer.drawStringWithShadow("Bot Disabled", 2, 2, 0xffffff);
  698.             }
  699.             if (checkKey(Keyboard.KEY_R)) {
  700.                 VariableHandler.a = !VariableHandler.a;
  701.             }
  702.             }
  703.  
  704.         if(recordPlayingUpFor > 0)
  705.         {
  706.             float f2 = (float)recordPlayingUpFor - f;
  707.             int k1 = (int)((f2 * 256F) / 20F);
  708.             if(k1 > 255)
  709.             {
  710.                 k1 = 255;
  711.             }
  712.             if(k1 > 0)
  713.             {
  714.                 GL11.glPushMatrix();
  715.                 GL11.glTranslatef(k / 2, l - 48, 0.0F);
  716.                 GL11.glEnable(3042 /*GL_BLEND*/);
  717.                 GL11.glBlendFunc(770, 771);
  718.                 int k2 = 0xffffff;
  719.                 if(recordIsPlaying)
  720.                 {
  721.                     k2 = Color.HSBtoRGB(f2 / 50F, 0.7F, 0.6F) & 0xffffff;
  722.                 }
  723.                 fontrenderer.drawString(recordPlaying, -fontrenderer.getStringWidth(recordPlaying) / 2, -4, k2 + (k1 << 24));
  724.                 GL11.glDisable(3042 /*GL_BLEND*/);
  725.                 GL11.glPopMatrix();
  726.             }
  727.         }
  728.         byte byte0 = 10;
  729.         boolean flag3 = false;
  730.         if(mc.currentScreen instanceof GuiChat)
  731.         {
  732.             byte0 = 20;
  733.             flag3 = true;
  734.         }
  735.         GL11.glEnable(3042 /*GL_BLEND*/);
  736.         GL11.glBlendFunc(770, 771);
  737.         GL11.glDisable(3008 /*GL_ALPHA_TEST*/);
  738.         GL11.glPushMatrix();
  739.         GL11.glTranslatef(0.0F, l - 48, 0.0F);
  740.         for(int i3 = 0; i3 < chatMessageList.size() && i3 < byte0; i3++)
  741.         {
  742.             if(((ChatLine)chatMessageList.get(i3)).updateCounter >= 200 && !flag3)
  743.             {
  744.                 continue;
  745.             }
  746.             double d = (double)((ChatLine)chatMessageList.get(i3)).updateCounter / 200D;
  747.             d = 1.0D - d;
  748.             d *= 10D;
  749.             if(d < 0.0D)
  750.             {
  751.                 d = 0.0D;
  752.             }
  753.             if(d > 1.0D)
  754.             {
  755.                 d = 1.0D;
  756.             }
  757.             d *= d;
  758.             int j4 = (int)(255D * d);
  759.             if(flag3)
  760.             {
  761.                 j4 = 255;
  762.             }
  763.             if(j4 > 0)
  764.             {
  765.                 byte byte1 = 2;
  766.                 int i6 = -i3 * 9;
  767.                 String s2 = ((ChatLine)chatMessageList.get(i3)).message;
  768.                 drawRect(byte1, i6 - 1, byte1 + 320, i6 + 8, j4 / 2 << 24);
  769.                 GL11.glEnable(3042 /*GL_BLEND*/);
  770.                 fontrenderer.drawStringWithShadow(s2, byte1, i6, 0xffffff + (j4 << 24));
  771.             }
  772.         }
  773.  
  774.         GL11.glPopMatrix();
  775.         if((mc.thePlayer instanceof EntityClientPlayerMP) && mc.gameSettings.keyBindPlayerList.pressed)
  776.         {
  777.             NetClientHandler netclienthandler = ((EntityClientPlayerMP)mc.thePlayer).sendQueue;
  778.             java.util.List list = netclienthandler.field_35786_c;
  779.             int i4 = netclienthandler.field_35785_d;
  780.             int k4 = i4;
  781.             int j5 = 1;
  782.             for(; k4 > 20; k4 = ((i4 + j5) - 1) / j5)
  783.             {
  784.                 j5++;
  785.             }
  786.  
  787.             int j6 = 300 / j5;
  788.             if(j6 > 150)
  789.             {
  790.                 j6 = 150;
  791.             }
  792.             int i7 = (k - j5 * j6) / 2;
  793.             byte byte2 = 10;
  794.             drawRect(i7 - 1, byte2 - 1, i7 + j6 * j5, byte2 + 9 * k4, 0x80000000);
  795.             for(int j8 = 0; j8 < i4; j8++)
  796.             {
  797.                 int l8 = i7 + (j8 % j5) * j6;
  798.                 int k9 = byte2 + (j8 / j5) * 9;
  799.                 drawRect(l8, k9, (l8 + j6) - 1, k9 + 8, 0x20ffffff);
  800.                 GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  801.                 GL11.glEnable(3008 /*GL_ALPHA_TEST*/);
  802.                 if(j8 >= list.size())
  803.                 {
  804.                     continue;
  805.                 }
  806.                 GuiSavingLevelString guisavinglevelstring = (GuiSavingLevelString)list.get(j8);
  807.                 fontrenderer.drawStringWithShadow(guisavinglevelstring.field_35624_a, l8, k9, 0xffffff);
  808.                 mc.renderEngine.bindTexture(mc.renderEngine.getTexture("/gui/icons.png"));
  809.                 int k10 = 0;
  810.                 byte byte3 = 0;
  811.                 k10 = 0;
  812.                 byte3 = 0;
  813.                 if(guisavinglevelstring.field_35623_b < 0)
  814.                 {
  815.                     byte3 = 5;
  816.                 } else
  817.                 if(guisavinglevelstring.field_35623_b < 150)
  818.                 {
  819.                     byte3 = 0;
  820.                 } else
  821.                 if(guisavinglevelstring.field_35623_b < 300)
  822.                 {
  823.                     byte3 = 1;
  824.                 } else
  825.                 if(guisavinglevelstring.field_35623_b < 600)
  826.                 {
  827.                     byte3 = 2;
  828.                 } else
  829.                 if(guisavinglevelstring.field_35623_b < 1000)
  830.                 {
  831.                     byte3 = 3;
  832.                 } else
  833.                 {
  834.                     byte3 = 4;
  835.                 }
  836.                 zLevel += 100F;
  837.                 drawTexturedModalRect((l8 + j6) - 12, k9, 0 + k10 * 10, 176 + byte3 * 8, 10, 8);
  838.                 zLevel -= 100F;
  839.             }
  840.  
  841.         }
  842.         GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  843.         GL11.glDisable(2896 /*GL_LIGHTING*/);
  844.         GL11.glEnable(3008 /*GL_ALPHA_TEST*/);
  845.     }
  846.  
  847.     private void func_41039_c()
  848.     {
  849.         if(RenderDragon.field_41038_a == null)
  850.         {
  851.             return;
  852.         }
  853.         EntityDragon entitydragon = RenderDragon.field_41038_a;
  854.         RenderDragon.field_41038_a = null;
  855.         FontRenderer fontrenderer = mc.fontRenderer;
  856.         ScaledResolution scaledresolution = new ScaledResolution(mc.gameSettings, mc.displayWidth, mc.displayHeight);
  857.         int i = scaledresolution.getScaledWidth();
  858.         char c = '\266';
  859.         int j = i / 2 - c / 2;
  860.         int k = (int)(((float)entitydragon.func_41010_ax() / (float)entitydragon.getMaxHealth()) * (float)(c + 1));
  861.         byte byte0 = 12;
  862.         drawTexturedModalRect(j, byte0, 0, 74, c, 5);
  863.         drawTexturedModalRect(j, byte0, 0, 74, c, 5);
  864.         if(k > 0)
  865.         {
  866.             drawTexturedModalRect(j, byte0, 0, 79, k, 5);
  867.         }
  868.         String s = "Boss health";
  869.         fontrenderer.drawStringWithShadow(s, i / 2 - fontrenderer.getStringWidth(s) / 2, byte0 - 10, 0xff00ff);
  870.         GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  871.         GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, mc.renderEngine.getTexture("/gui/icons.png"));
  872.     }
  873.  
  874.     private void renderPumpkinBlur(int i, int j)
  875.     {
  876.         GL11.glDisable(2929 /*GL_DEPTH_TEST*/);
  877.         GL11.glDepthMask(false);
  878.         GL11.glBlendFunc(770, 771);
  879.         GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  880.         GL11.glDisable(3008 /*GL_ALPHA_TEST*/);
  881.         GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, mc.renderEngine.getTexture("%blur%/misc/pumpkinblur.png"));
  882.         Tessellator tessellator = Tessellator.instance;
  883.         tessellator.startDrawingQuads();
  884.         tessellator.addVertexWithUV(0.0D, j, -90D, 0.0D, 1.0D);
  885.         tessellator.addVertexWithUV(i, j, -90D, 1.0D, 1.0D);
  886.         tessellator.addVertexWithUV(i, 0.0D, -90D, 1.0D, 0.0D);
  887.         tessellator.addVertexWithUV(0.0D, 0.0D, -90D, 0.0D, 0.0D);
  888.         tessellator.draw();
  889.         GL11.glDepthMask(true);
  890.         GL11.glEnable(2929 /*GL_DEPTH_TEST*/);
  891.         GL11.glEnable(3008 /*GL_ALPHA_TEST*/);
  892.         GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  893.     }
  894.  
  895.     private void renderVignette(float f, int i, int j)
  896.     {
  897.         f = 1.0F - f;
  898.         if(f < 0.0F)
  899.         {
  900.             f = 0.0F;
  901.         }
  902.         if(f > 1.0F)
  903.         {
  904.             f = 1.0F;
  905.         }
  906.         prevVignetteBrightness += (double)(f - prevVignetteBrightness) * 0.01D;
  907.         GL11.glDisable(2929 /*GL_DEPTH_TEST*/);
  908.         GL11.glDepthMask(false);
  909.         GL11.glBlendFunc(0, 769);
  910.         GL11.glColor4f(prevVignetteBrightness, prevVignetteBrightness, prevVignetteBrightness, 1.0F);
  911.         GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, mc.renderEngine.getTexture("%blur%/misc/vignette.png"));
  912.         Tessellator tessellator = Tessellator.instance;
  913.         tessellator.startDrawingQuads();
  914.         tessellator.addVertexWithUV(0.0D, j, -90D, 0.0D, 1.0D);
  915.         tessellator.addVertexWithUV(i, j, -90D, 1.0D, 1.0D);
  916.         tessellator.addVertexWithUV(i, 0.0D, -90D, 1.0D, 0.0D);
  917.         tessellator.addVertexWithUV(0.0D, 0.0D, -90D, 0.0D, 0.0D);
  918.         tessellator.draw();
  919.         GL11.glDepthMask(true);
  920.         GL11.glEnable(2929 /*GL_DEPTH_TEST*/);
  921.         GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  922.         GL11.glBlendFunc(770, 771);
  923.     }
  924.  
  925.     private void renderPortalOverlay(float f, int i, int j)
  926.     {
  927.         if(f < 1.0F)
  928.         {
  929.             f *= f;
  930.             f *= f;
  931.             f = f * 0.8F + 0.2F;
  932.         }
  933.         GL11.glDisable(3008 /*GL_ALPHA_TEST*/);
  934.         GL11.glDisable(2929 /*GL_DEPTH_TEST*/);
  935.         GL11.glDepthMask(false);
  936.         GL11.glBlendFunc(770, 771);
  937.         GL11.glColor4f(1.0F, 1.0F, 1.0F, f);
  938.         GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, mc.renderEngine.getTexture("/terrain.png"));
  939.         float f1 = (float)(Block.portal.blockIndexInTexture % 16) / 16F;
  940.         float f2 = (float)(Block.portal.blockIndexInTexture / 16) / 16F;
  941.         float f3 = (float)(Block.portal.blockIndexInTexture % 16 + 1) / 16F;
  942.         float f4 = (float)(Block.portal.blockIndexInTexture / 16 + 1) / 16F;
  943.         Tessellator tessellator = Tessellator.instance;
  944.         tessellator.startDrawingQuads();
  945.         tessellator.addVertexWithUV(0.0D, j, -90D, f1, f4);
  946.         tessellator.addVertexWithUV(i, j, -90D, f3, f4);
  947.         tessellator.addVertexWithUV(i, 0.0D, -90D, f3, f2);
  948.         tessellator.addVertexWithUV(0.0D, 0.0D, -90D, f1, f2);
  949.         tessellator.draw();
  950.         GL11.glDepthMask(true);
  951.         GL11.glEnable(2929 /*GL_DEPTH_TEST*/);
  952.         GL11.glEnable(3008 /*GL_ALPHA_TEST*/);
  953.         GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  954.     }
  955.  
  956.     private void renderInventorySlot(int i, int j, int k, float f)
  957.     {
  958.         ItemStack itemstack = mc.thePlayer.inventory.mainInventory[i];
  959.         if(itemstack == null)
  960.         {
  961.             return;
  962.         }
  963.         float f1 = (float)itemstack.animationsToGo - f;
  964.         if(f1 > 0.0F)
  965.         {
  966.             GL11.glPushMatrix();
  967.             float f2 = 1.0F + f1 / 5F;
  968.             GL11.glTranslatef(j + 8, k + 12, 0.0F);
  969.             GL11.glScalef(1.0F / f2, (f2 + 1.0F) / 2.0F, 1.0F);
  970.             GL11.glTranslatef(-(j + 8), -(k + 12), 0.0F);
  971.         }
  972.         itemRenderer.renderItemIntoGUI(mc.fontRenderer, mc.renderEngine, itemstack, j, k);
  973.         if(f1 > 0.0F)
  974.         {
  975.             GL11.glPopMatrix();
  976.         }
  977.         itemRenderer.renderItemOverlayIntoGUI(mc.fontRenderer, mc.renderEngine, itemstack, j, k);
  978.     }
  979.  
  980.     public void updateTick()
  981.     {
  982.         if(recordPlayingUpFor > 0)
  983.         {
  984.             recordPlayingUpFor--;
  985.         }
  986.         updateCounter++;
  987.         for(int i = 0; i < chatMessageList.size(); i++)
  988.         {
  989.             ((ChatLine)chatMessageList.get(i)).updateCounter++;
  990.         }
  991.  
  992.     }
  993.  
  994.     public void clearChatMessages()
  995.     {
  996.         chatMessageList.clear();
  997.     }
  998.  
  999.     public void addChatMessage(String s)
  1000.     {
  1001.         int i;
  1002.         for(; mc.fontRenderer.getStringWidth(s) > 320; s = s.substring(i))
  1003.         {
  1004.             for(i = 1; i < s.length() && mc.fontRenderer.getStringWidth(s.substring(0, i + 1)) <= 320; i++) { }
  1005.             addChatMessage(s.substring(0, i));
  1006.         }
  1007.  
  1008.         chatMessageList.add(0, new ChatLine(s));
  1009.         for(; chatMessageList.size() > 50; chatMessageList.remove(chatMessageList.size() - 1)) { }
  1010.     }
  1011.  
  1012.     public void setRecordPlayingMessage(String s)
  1013.     {
  1014.         recordPlaying = (new StringBuilder()).append("Now playing: ").append(s).toString();
  1015.         recordPlayingUpFor = 60;
  1016.         recordIsPlaying = true;
  1017.     }
  1018.  
  1019.     public void addChatMessageTranslate(String s)
  1020.     {
  1021.         StringTranslate stringtranslate = StringTranslate.getInstance();
  1022.         String s1 = stringtranslate.translateKey(s);
  1023.         addChatMessage(s1);
  1024.     }
  1025.    
  1026.     public int enabled() {
  1027.         return 0x00FF00;
  1028.     }
  1029.    
  1030.     public int disabled() {
  1031.         return 0xFF0000;
  1032.     }
  1033.    
  1034. public boolean flag;
  1035. private int checkReps = 1;
  1036. int int1[] = {0, 0, 0};
  1037.  
  1038. }
  1039.  
  1040.  
  1041. package net.minecraft.src;
  1042.  
  1043. public class VariableHandler {
  1044. static boolean a;
  1045. }
  1046.  
  1047.  
  1048. // Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
  1049. // Jad home page: http://www.kpdus.com/jad.html
  1050. // Decompiler options: packimports(3) braces deadcode fieldsfirst
  1051.  
  1052. package net.minecraft.src;
  1053.  
  1054. import java.util.Random;
  1055. import net.minecraft.client.Minecraft;
  1056.  
  1057. // Referenced classes of package net.minecraft.src:
  1058. //            EntityPlayer, MouseFilter, Session, MovementInput,
  1059. //            PlayerController, AchievementList, StatFileWriter, GuiAchievement,
  1060. //            World, SoundManager, Potion, PotionEffect,
  1061. //            AxisAlignedBB, FoodStats, PlayerCapabilities, GuiWinGame,
  1062. //            ItemStack, Item, NBTTagCompound, GuiEditSign,
  1063. //            GuiChest, GuiCrafting, GuiEnchantment, GuiFurnace,
  1064. //            GuiBrewingStand, GuiDispenser, EntityCrit2FX, EffectRenderer,
  1065. //            EntityPickupFX, InventoryPlayer, DamageSource, GuiIngame,
  1066. //            StatBase, Achievement, MathHelper, TileEntitySign,
  1067. //            IInventory, TileEntityFurnace, TileEntityBrewingStand, TileEntityDispenser,
  1068. //            Entity
  1069.  
  1070. public class EntityPlayerSP extends EntityPlayer
  1071. {
  1072.  
  1073.     public MovementInput movementInput;
  1074.     protected Minecraft mc;
  1075.     protected int sprintToggleTimer;
  1076.     public int sprintingTicksLeft;
  1077.     public float renderArmYaw;
  1078.     public float renderArmPitch;
  1079.     public float prevRenderArmYaw;
  1080.     public float prevRenderArmPitch;
  1081.     private MouseFilter field_21903_bJ;
  1082.     private MouseFilter field_21904_bK;
  1083.     private MouseFilter field_21902_bL;
  1084.  
  1085.     public EntityPlayerSP(Minecraft minecraft, World world, Session session, int i)
  1086.     {
  1087.         super(world);
  1088.         sprintToggleTimer = 0;
  1089.         sprintingTicksLeft = 0;
  1090.         field_21903_bJ = new MouseFilter();
  1091.         field_21904_bK = new MouseFilter();
  1092.         field_21902_bL = new MouseFilter();
  1093.         mc = minecraft;
  1094.         dimension = i;
  1095.         if(session != null && session.username != null && session.username.length() > 0)
  1096.         {
  1097.             skinUrl = (new StringBuilder()).append("http://s3.amazonaws.com/MinecraftSkins/").append(session.username).append(".png").toString();
  1098.         }
  1099.         username = session.username;
  1100.     }
  1101.  
  1102.     public void moveEntity(double d, double d1, double d2)
  1103.     {
  1104.         super.moveEntity(d, d1, d2);
  1105.     }
  1106.  
  1107.     public void updateEntityActionState()
  1108.     {
  1109.         super.updateEntityActionState();
  1110.         moveStrafing = movementInput.moveStrafe;
  1111.         moveForward = movementInput.moveForward;
  1112.         if (!VariableHandler.a) {
  1113.         isJumping = movementInput.jump;
  1114.         }
  1115.         prevRenderArmYaw = renderArmYaw;
  1116.         prevRenderArmPitch = renderArmPitch;
  1117.         renderArmPitch += (double)(rotationPitch - renderArmPitch) * 0.5D;
  1118.         renderArmYaw += (double)(rotationYaw - renderArmYaw) * 0.5D;
  1119.     }
  1120.  
  1121.     public void onLivingUpdate()
  1122.     {
  1123.         if(sprintingTicksLeft > 0)
  1124.         {
  1125.             sprintingTicksLeft--;
  1126.             if(sprintingTicksLeft == 0)
  1127.             {
  1128.                 setSprinting(false);
  1129.             }
  1130.         }
  1131.         if(sprintToggleTimer > 0)
  1132.         {
  1133.             sprintToggleTimer--;
  1134.         }
  1135.         if(mc.playerController.func_35643_e())
  1136.         {
  1137.             posX = posZ = 0.5D;
  1138.             posX = 0.0D;
  1139.             posZ = 0.0D;
  1140.             rotationYaw = (float)ticksExisted / 12F;
  1141.             rotationPitch = 10F;
  1142.             posY = 68.5D;
  1143.             return;
  1144.         }
  1145.         if(!mc.statFileWriter.hasAchievementUnlocked(AchievementList.openInventory))
  1146.         {
  1147.             mc.guiAchievement.queueAchievementInformation(AchievementList.openInventory);
  1148.         }
  1149.         prevTimeInPortal = timeInPortal;
  1150.         if(inPortal)
  1151.         {
  1152.             if(!worldObj.multiplayerWorld && ridingEntity != null)
  1153.             {
  1154.                 mountEntity(null);
  1155.             }
  1156.             if(mc.currentScreen != null)
  1157.             {
  1158.                 mc.displayGuiScreen(null);
  1159.             }
  1160.             if(timeInPortal == 0.0F)
  1161.             {
  1162.                 mc.sndManager.playSoundFX("portal.trigger", 1.0F, rand.nextFloat() * 0.4F + 0.8F);
  1163.             }
  1164.             timeInPortal += 0.0125F;
  1165.             if(timeInPortal >= 1.0F)
  1166.             {
  1167.                 timeInPortal = 1.0F;
  1168.                 if(!worldObj.multiplayerWorld)
  1169.                 {
  1170.                     timeUntilPortal = 10;
  1171.                     mc.sndManager.playSoundFX("portal.travel", 1.0F, rand.nextFloat() * 0.4F + 0.8F);
  1172.                     byte byte0 = 0;
  1173.                     if(dimension == -1)
  1174.                     {
  1175.                         byte0 = 0;
  1176.                     } else
  1177.                     {
  1178.                         byte0 = -1;
  1179.                     }
  1180.                     mc.usePortal(byte0);
  1181.                     triggerAchievement(AchievementList.portal);
  1182.                 }
  1183.             }
  1184.             inPortal = false;
  1185.         } else
  1186.         if(isPotionActive(Potion.potionConfusion) && getActivePotionEffect(Potion.potionConfusion).getDuration() > 60)
  1187.         {
  1188.             timeInPortal += 0.006666667F;
  1189.             if(timeInPortal > 1.0F)
  1190.             {
  1191.                 timeInPortal = 1.0F;
  1192.             }
  1193.         } else
  1194.         {
  1195.             if(timeInPortal > 0.0F)
  1196.             {
  1197.                 timeInPortal -= 0.05F;
  1198.             }
  1199.             if(timeInPortal < 0.0F)
  1200.             {
  1201.                 timeInPortal = 0.0F;
  1202.             }
  1203.         }
  1204.         if(timeUntilPortal > 0)
  1205.         {
  1206.             timeUntilPortal--;
  1207.         }
  1208.         boolean flag = movementInput.jump;
  1209.         float f = 0.8F;
  1210.         boolean flag1 = movementInput.moveForward >= f;
  1211.         movementInput.updatePlayerMoveState(this);
  1212.         if(isUsingItem())
  1213.         {
  1214.             movementInput.moveStrafe *= 0.2F;
  1215.             movementInput.moveForward *= 0.2F;
  1216.             sprintToggleTimer = 0;
  1217.         }
  1218.         if(movementInput.sneak && ySize < 0.2F)
  1219.         {
  1220.             ySize = 0.2F;
  1221.         }
  1222.         pushOutOfBlocks(posX - (double)width * 0.34999999999999998D, boundingBox.minY + 0.5D, posZ + (double)width * 0.34999999999999998D);
  1223.         pushOutOfBlocks(posX - (double)width * 0.34999999999999998D, boundingBox.minY + 0.5D, posZ - (double)width * 0.34999999999999998D);
  1224.         pushOutOfBlocks(posX + (double)width * 0.34999999999999998D, boundingBox.minY + 0.5D, posZ - (double)width * 0.34999999999999998D);
  1225.         pushOutOfBlocks(posX + (double)width * 0.34999999999999998D, boundingBox.minY + 0.5D, posZ + (double)width * 0.34999999999999998D);
  1226.         boolean flag2 = (float)getFoodStats().getFoodLevel() > 6F;
  1227.         if(onGround && !flag1 && movementInput.moveForward >= f && !isSprinting() && flag2 && !isUsingItem() && !isPotionActive(Potion.potionBlindness))
  1228.         {
  1229.             if(sprintToggleTimer == 0)
  1230.             {
  1231.                 sprintToggleTimer = 7;
  1232.             } else
  1233.             {
  1234.                 setSprinting(true);
  1235.                 sprintToggleTimer = 0;
  1236.             }
  1237.         }
  1238.         if(isSneaking())
  1239.         {
  1240.             sprintToggleTimer = 0;
  1241.         }
  1242.         if(isSprinting() && (movementInput.moveForward < f || isCollidedHorizontally || !flag2))
  1243.         {
  1244.             setSprinting(false);
  1245.         }
  1246.         if(capabilities.allowFlying && !flag && movementInput.jump)
  1247.         {
  1248.             if(flyToggleTimer == 0)
  1249.             {
  1250.                 flyToggleTimer = 7;
  1251.             } else
  1252.             {
  1253.                 capabilities.isFlying = !capabilities.isFlying;
  1254.                 flyToggleTimer = 0;
  1255.             }
  1256.         }
  1257.         if(capabilities.isFlying)
  1258.         {
  1259.             if(movementInput.sneak)
  1260.             {
  1261.                 motionY -= 0.14999999999999999D;
  1262.             }
  1263.             if(movementInput.jump)
  1264.             {
  1265.                 motionY += 0.14999999999999999D;
  1266.             }
  1267.         }
  1268.         super.onLivingUpdate();
  1269.         if(onGround && capabilities.isFlying)
  1270.         {
  1271.             capabilities.isFlying = false;
  1272.         }
  1273.     }
  1274.  
  1275.     public void func_40182_b(int i)
  1276.     {
  1277.         if(!worldObj.multiplayerWorld)
  1278.         {
  1279.             if(dimension == 1 && i == 1)
  1280.             {
  1281.                 triggerAchievement(AchievementList.theEnd2);
  1282.                 mc.displayGuiScreen(new GuiWinGame());
  1283.             } else
  1284.             {
  1285.                 triggerAchievement(AchievementList.theEnd);
  1286.                 mc.sndManager.playSoundFX("portal.travel", 1.0F, rand.nextFloat() * 0.4F + 0.8F);
  1287.                 mc.usePortal(1);
  1288.             }
  1289.         }
  1290.     }
  1291.  
  1292.     public float getFOVMultiplier()
  1293.     {
  1294.         float f = 1.0F;
  1295.         if(capabilities.isFlying)
  1296.         {
  1297.             f *= 1.1F;
  1298.         }
  1299.         f *= ((landMovementFactor * func_35166_t_()) / speedOnGround + 1.0F) / 2.0F;
  1300.         if(isUsingItem() && getItemInUse().itemID == Item.bow.shiftedIndex)
  1301.         {
  1302.             int i = getItemInUseDuration();
  1303.             float f1 = (float)i / 20F;
  1304.             if(f1 > 1.0F)
  1305.             {
  1306.                 f1 = 1.0F;
  1307.             } else
  1308.             {
  1309.                 f1 *= f1;
  1310.             }
  1311.             f *= 1.0F - f1 * 0.15F;
  1312.         }
  1313.         return f;
  1314.     }
  1315.  
  1316.     public void writeEntityToNBT(NBTTagCompound nbttagcompound)
  1317.     {
  1318.         super.writeEntityToNBT(nbttagcompound);
  1319.         nbttagcompound.setInteger("Score", score);
  1320.     }
  1321.  
  1322.     public void readEntityFromNBT(NBTTagCompound nbttagcompound)
  1323.     {
  1324.         super.readEntityFromNBT(nbttagcompound);
  1325.         score = nbttagcompound.getInteger("Score");
  1326.     }
  1327.  
  1328.     public void closeScreen()
  1329.     {
  1330.         super.closeScreen();
  1331.         mc.displayGuiScreen(null);
  1332.     }
  1333.  
  1334.     public void displayGUIEditSign(TileEntitySign tileentitysign)
  1335.     {
  1336.         mc.displayGuiScreen(new GuiEditSign(tileentitysign));
  1337.     }
  1338.  
  1339.     public void displayGUIChest(IInventory iinventory)
  1340.     {
  1341.         mc.displayGuiScreen(new GuiChest(inventory, iinventory));
  1342.     }
  1343.  
  1344.     public void displayWorkbenchGUI(int i, int j, int k)
  1345.     {
  1346.         mc.displayGuiScreen(new GuiCrafting(inventory, worldObj, i, j, k));
  1347.     }
  1348.  
  1349.     public void func_40181_c(int i, int j, int k)
  1350.     {
  1351.         mc.displayGuiScreen(new GuiEnchantment(inventory, worldObj, i, j, k));
  1352.     }
  1353.  
  1354.     public void displayGUIFurnace(TileEntityFurnace tileentityfurnace)
  1355.     {
  1356.         mc.displayGuiScreen(new GuiFurnace(inventory, tileentityfurnace));
  1357.     }
  1358.  
  1359.     public void func_40180_a(TileEntityBrewingStand tileentitybrewingstand)
  1360.     {
  1361.         mc.displayGuiScreen(new GuiBrewingStand(inventory, tileentitybrewingstand));
  1362.     }
  1363.  
  1364.     public void displayGUIDispenser(TileEntityDispenser tileentitydispenser)
  1365.     {
  1366.         mc.displayGuiScreen(new GuiDispenser(inventory, tileentitydispenser));
  1367.     }
  1368.  
  1369.     public void onCriticalHit(Entity entity)
  1370.     {
  1371.         mc.effectRenderer.addEffect(new EntityCrit2FX(mc.theWorld, entity));
  1372.     }
  1373.  
  1374.     public void func_40183_c(Entity entity)
  1375.     {
  1376.         EntityCrit2FX entitycrit2fx = new EntityCrit2FX(mc.theWorld, entity, "magicCrit");
  1377.         mc.effectRenderer.addEffect(entitycrit2fx);
  1378.     }
  1379.  
  1380.     public void onItemPickup(Entity entity, int i)
  1381.     {
  1382.         mc.effectRenderer.addEffect(new EntityPickupFX(mc.theWorld, entity, this, -0.5F));
  1383.     }
  1384.  
  1385.     public int getPlayerArmorValue()
  1386.     {
  1387.         return inventory.getTotalArmorValue();
  1388.     }
  1389.  
  1390.     public void sendChatMessage(String s)
  1391.     {
  1392.     }
  1393.  
  1394.     public boolean isSneaking()
  1395.     {
  1396.         return movementInput.sneak && !sleeping;
  1397.     }
  1398.  
  1399.     public void setHealth(int i)
  1400.     {
  1401.         int j = getEntityHealth() - i;
  1402.         if(j <= 0)
  1403.         {
  1404.             setEntityHealth(i);
  1405.             if(j < 0)
  1406.             {
  1407.                 heartsLife = heartsHalvesLife / 2;
  1408.             }
  1409.         } else
  1410.         {
  1411.             naturalArmorRating = j;
  1412.             setEntityHealth(getEntityHealth());
  1413.             heartsLife = heartsHalvesLife;
  1414.             damageEntity(DamageSource.generic, j);
  1415.             hurtTime = maxHurtTime = 10;
  1416.         }
  1417.     }
  1418.  
  1419.     public void respawnPlayer()
  1420.     {
  1421.         mc.respawn(false, 0, false);
  1422.     }
  1423.  
  1424.     public void func_6420_o()
  1425.     {
  1426.     }
  1427.  
  1428.     public void addChatMessage(String s)
  1429.     {
  1430.         mc.ingameGUI.addChatMessageTranslate(s);
  1431.     }
  1432.  
  1433.     public void addStat(StatBase statbase, int i)
  1434.     {
  1435.         if(statbase == null)
  1436.         {
  1437.             return;
  1438.         }
  1439.         if(statbase.isAchievement())
  1440.         {
  1441.             Achievement achievement = (Achievement)statbase;
  1442.             if(achievement.parentAchievement == null || mc.statFileWriter.hasAchievementUnlocked(achievement.parentAchievement))
  1443.             {
  1444.                 if(!mc.statFileWriter.hasAchievementUnlocked(achievement))
  1445.                 {
  1446.                     mc.guiAchievement.queueTakenAchievement(achievement);
  1447.                 }
  1448.                 mc.statFileWriter.readStat(statbase, i);
  1449.             }
  1450.         } else
  1451.         {
  1452.             mc.statFileWriter.readStat(statbase, i);
  1453.         }
  1454.     }
  1455.  
  1456.     private boolean isBlockTranslucent(int i, int j, int k)
  1457.     {
  1458.         return worldObj.isBlockNormalCube(i, j, k);
  1459.     }
  1460.  
  1461.     protected boolean pushOutOfBlocks(double d, double d1, double d2)
  1462.     {
  1463.         int i = MathHelper.floor_double(d);
  1464.         int j = MathHelper.floor_double(d1);
  1465.         int k = MathHelper.floor_double(d2);
  1466.         double d3 = d - (double)i;
  1467.         double d4 = d2 - (double)k;
  1468.         if(isBlockTranslucent(i, j, k) || isBlockTranslucent(i, j + 1, k))
  1469.         {
  1470.             boolean flag = !isBlockTranslucent(i - 1, j, k) && !isBlockTranslucent(i - 1, j + 1, k);
  1471.             boolean flag1 = !isBlockTranslucent(i + 1, j, k) && !isBlockTranslucent(i + 1, j + 1, k);
  1472.             boolean flag2 = !isBlockTranslucent(i, j, k - 1) && !isBlockTranslucent(i, j + 1, k - 1);
  1473.             boolean flag3 = !isBlockTranslucent(i, j, k + 1) && !isBlockTranslucent(i, j + 1, k + 1);
  1474.             byte byte0 = -1;
  1475.             double d5 = 9999D;
  1476.             if(flag && d3 < d5)
  1477.             {
  1478.                 d5 = d3;
  1479.                 byte0 = 0;
  1480.             }
  1481.             if(flag1 && 1.0D - d3 < d5)
  1482.             {
  1483.                 d5 = 1.0D - d3;
  1484.                 byte0 = 1;
  1485.             }
  1486.             if(flag2 && d4 < d5)
  1487.             {
  1488.                 d5 = d4;
  1489.                 byte0 = 4;
  1490.             }
  1491.             if(flag3 && 1.0D - d4 < d5)
  1492.             {
  1493.                 double d6 = 1.0D - d4;
  1494.                 byte0 = 5;
  1495.             }
  1496.             float f = 0.1F;
  1497.             if(byte0 == 0)
  1498.             {
  1499.                 motionX = -f;
  1500.             }
  1501.             if(byte0 == 1)
  1502.             {
  1503.                 motionX = f;
  1504.             }
  1505.             if(byte0 == 4)
  1506.             {
  1507.                 motionZ = -f;
  1508.             }
  1509.             if(byte0 == 5)
  1510.             {
  1511.                 motionZ = f;
  1512.             }
  1513.         }
  1514.         return false;
  1515.     }
  1516.  
  1517.     public void setSprinting(boolean flag)
  1518.     {
  1519.         super.setSprinting(flag);
  1520.         if(!flag)
  1521.         {
  1522.             sprintingTicksLeft = 0;
  1523.         } else
  1524.         {
  1525.             sprintingTicksLeft = 600;
  1526.         }
  1527.     }
  1528.  
  1529.     public void setXPStats(float f, int i, int j)
  1530.     {
  1531.         currentXP = f;
  1532.         totalXP = i;
  1533.         playerLevel = j;
  1534.     }
  1535. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement