Rewrite multiplayer, fix chunk loading

This commit is contained in:
PeytonPlayz595 2024-03-23 14:34:31 -04:00
parent 3bb6fb09c2
commit ebe6ef8e93
96 changed files with 17920 additions and 13335 deletions

File diff suppressed because one or more lines are too long

View File

@ -18,10 +18,11 @@ public class GameSettings {
File file1 = new File("filesystem");
File file = new File(file1, "options.txt");
if(!file.exists()) {
file.createNewFile();
return;
}
byte[] fileData = new byte[0];
byte[] fileData = new byte[(int) file.length()];
try (FileInputStream fis = new FileInputStream(file)) {
fis.read(fileData);
} catch(IOException e) {
@ -73,8 +74,8 @@ public class GameSettings {
Minecraft.getMinecraft().gameSettings.anaglyph = var3[1].equals("true");
}
if(var3[0].equals("limitFramerate")) {
Minecraft.getMinecraft().gameSettings.limitFramerate = var3[1].equals("true");
if(var3[0].equals("showFPS")) {
Minecraft.getMinecraft().gameSettings.showFPS = var3[1].equals("true");
}
if(var3[0].equals("difficulty")) {
@ -93,6 +94,10 @@ public class GameSettings {
Minecraft.getMinecraft().gameSettings.field_12259_z = var3[1];
}
if(var3[0].equals("username")) {
Minecraft.getMinecraft().gameSettings.username = var3[1];
}
for(int var4 = 0; var4 < Minecraft.getMinecraft().gameSettings.keyBindings.length; ++var4) {
if(var3[0].equals("key_" + Minecraft.getMinecraft().gameSettings.keyBindings[var4].keyDescription)) {
Minecraft.getMinecraft().gameSettings.keyBindings[var4].keyCode = Integer.parseInt(var3[1]);
@ -120,10 +125,16 @@ public class GameSettings {
var1.println("viewDistance:" + Minecraft.getMinecraft().gameSettings.renderDistance);
var1.println("bobView:" + Minecraft.getMinecraft().gameSettings.viewBobbing);
var1.println("anaglyph3d:" + Minecraft.getMinecraft().gameSettings.anaglyph);
var1.println("limitFramerate:" + Minecraft.getMinecraft().gameSettings.limitFramerate);
var1.println("showFPS:" + Minecraft.getMinecraft().gameSettings.showFPS);
var1.println("difficulty:" + Minecraft.getMinecraft().gameSettings.difficulty);
var1.println("fancyGraphics:" + Minecraft.getMinecraft().gameSettings.fancyGraphics);
var1.println("skin:" + Minecraft.getMinecraft().gameSettings.skin);
if(Minecraft.getMinecraft().gameSettings.field_12259_z.length() != 0) {
var1.println("lastServer:" + Minecraft.getMinecraft().gameSettings.field_12259_z);
}
if(Minecraft.getMinecraft().gameSettings.username.length() != 0) {
var1.println("username:" + Minecraft.getMinecraft().gameSettings.username);
}
for(int var2 = 0; var2 < Minecraft.getMinecraft().gameSettings.keyBindings.length; ++var2) {
var1.println("key_" + Minecraft.getMinecraft().gameSettings.keyBindings[var2].keyDescription + ":" + Minecraft.getMinecraft().gameSettings.keyBindings[var2].keyCode);

View File

@ -44,6 +44,8 @@ import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.filechooser.FileFilter;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
import org.lwjgl.LWJGLException;
import org.lwjgl.Sys;
import org.lwjgl.input.Keyboard;
@ -1088,6 +1090,188 @@ public class EaglerAdapterImpl2 {
Display.sync(performanceToFps);
}
private static final Set<String> rateLimitedAddresses = new HashSet();
private static final Set<String> blockedAddresses = new HashSet();
private static WebSocketClient clientSocket = null;
private static final Object socketSync = new Object();
private static LinkedList<byte[]> readPackets = new LinkedList();
private static class EaglerSocketClient extends WebSocketClient {
private Exception currentException = null;
private boolean wasAbleToConnect = false;
private String serverUriString;
private boolean socketIsAlive = false;
public EaglerSocketClient(URI serverUri, String str) throws IOException, InterruptedException {
super(serverUri);
this.setTcpNoDelay(true);
this.setConnectionLostTimeout(5);
System.out.println("[ws] connecting to " + serverUri.toString());
rateLimitStatus = null;
if (!this.connectBlocking(5, TimeUnit.SECONDS)) {
synchronized (socketSync) {
if (rateLimitStatus == null) {
if (blockedAddresses.contains(str)) {
rateLimitStatus = RateLimit.BLOCKED;
} else if (rateLimitedAddresses.contains(str)) {
rateLimitStatus = RateLimit.FAILED_POSSIBLY_LOCKED;
} else {
rateLimitStatus = RateLimit.FAILED;
}
}
}
throw new IOException("could not connect socket", currentException);
}
serverUriString = str;
}
@Override
public void onClose(int arg0, String arg1, boolean arg2) {
synchronized (socketSync) {
readPackets.clear();
System.out.println("[ws] disconnecting - " + currentException);
currentException = null;
if (!wasAbleToConnect && rateLimitStatus == null) {
if (blockedAddresses.contains(serverUriString)) {
rateLimitStatus = RateLimit.LOCKED;
} else if (rateLimitedAddresses.contains(serverUriString)) {
rateLimitStatus = RateLimit.FAILED_POSSIBLY_LOCKED;
} else {
rateLimitStatus = RateLimit.FAILED;
}
} else if (!socketIsAlive && (blockedAddresses.contains(serverUriString)
|| rateLimitedAddresses.contains(serverUriString))) {
rateLimitStatus = RateLimit.LOCKED;
}
}
}
@Override
public void onError(Exception arg0) {
currentException = arg0;
}
@Override
public void onMessage(String arg0) {
wasAbleToConnect = true;
synchronized (socketSync) {
if (arg0.equalsIgnoreCase("BLOCKED")) {
rateLimitedAddresses.add(serverUriString);
if (rateLimitStatus == null) {
rateLimitStatus = RateLimit.BLOCKED;
}
} else if (arg0.equalsIgnoreCase("LOCKED")) {
blockedAddresses.add(serverUriString);
rateLimitedAddresses.add(serverUriString);
if (rateLimitStatus == null) {
rateLimitStatus = RateLimit.NOW_LOCKED;
}
}
}
this.close();
currentException = null;
}
@Override
public void onMessage(ByteBuffer arg0) {
wasAbleToConnect = true;
synchronized (socketSync) {
readPackets.add(arg0.array());
}
currentException = null;
}
@Override
public void onOpen(ServerHandshake arg0) {
System.out.println("[ws] connected.");
}
}
public static final boolean startConnection(String uri) {
if (clientSocket != null) {
clientSocket.close();
}
rateLimitStatus = null;
try {
clientSocket = new EaglerSocketClient(new URI(uri), uri);
return true;
} catch (InterruptedException e) {
clientSocket = null;
} catch (URISyntaxException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
public static final void endConnection() {
synchronized (socketSync) {
if (clientSocket.isOpen()) {
clientSocket.close();
}
clientSocket = null;
readPackets.clear();
}
}
public static final boolean connectionOpen() {
return clientSocket != null && clientSocket.isOpen();
}
public static final void writePacket(byte[] packet) {
if (clientSocket != null && clientSocket.isOpen()) {
clientSocket.send(ByteBuffer.wrap(packet));
}
}
public static final byte[] readPacket() {
synchronized (socketSync) {
if (!readPackets.isEmpty()) {
return readPackets.remove(0);
}
}
return null;
}
private static RateLimit rateLimitStatus = null;
public static enum RateLimit {
NONE, FAILED, BLOCKED, FAILED_POSSIBLY_LOCKED, LOCKED, NOW_LOCKED;
}
public static final RateLimit getRateLimitStatus() {
RateLimit l = rateLimitStatus;
rateLimitStatus = null;
return l;
}
public static final void logRateLimit(String addr, RateLimit l) {
synchronized (socketSync) {
if (l == RateLimit.LOCKED) {
blockedAddresses.add(addr);
} else {
rateLimitedAddresses.add(addr);
}
}
}
public static final RateLimit checkRateLimitHistory(String addr) {
synchronized (socketSync) {
if (blockedAddresses.contains(addr)) {
return RateLimit.LOCKED;
} else if (rateLimitedAddresses.contains(addr)) {
return RateLimit.BLOCKED;
} else {
return RateLimit.NONE;
}
}
}
public static final byte[] loadLocalStorage(String key) {
try {
File f = new File("_eagstorage." + key + ".dat");

View File

@ -6,12 +6,19 @@ import java.util.*;
public class ChunkLoader implements IChunkLoader {
public ChunkLoader(String file, boolean flag) {
if(file != null) {
File file1 = new File("filesystem");
saveDir = new File(file1, file);
} else {
saveDir = null;
}
createIfNecessary = flag;
}
private File chunkFileForXZ(int i, int j) {
if(saveDir == null) {
return null;
}
String s = (new StringBuilder()).append("c.").append(Integer.toString(i, 36)).append(".").append(Integer.toString(j, 36)).append(".dat").toString();
String s1 = Integer.toString(i & 0x3f, 36);
String s2 = Integer.toString(j & 0x3f, 36);
@ -40,6 +47,9 @@ public class ChunkLoader implements IChunkLoader {
}
public Chunk loadChunk(World world, int i, int j) {
if(saveDir == null) {
return null;
}
File file = chunkFileForXZ(i, j);
if (file != null && file.exists()) {
try {
@ -74,6 +84,9 @@ public class ChunkLoader implements IChunkLoader {
}
public void saveChunk(World world, Chunk chunk) {
if(saveDir == null) {
return;
}
world.func_663_l();
File file = chunkFileForXZ(chunk.xPosition, chunk.zPosition);
if (file.exists()) {

View File

@ -14,6 +14,7 @@ import net.minecraft.src.EntityRenderer;
import net.minecraft.src.FontRenderer;
import net.minecraft.src.GLAllocation;
import net.minecraft.src.GameSettings;
import net.minecraft.src.GuiChat;
import net.minecraft.src.GuiConflictWarning;
import net.minecraft.src.GuiGameOver;
import net.minecraft.src.GuiIngame;
@ -289,17 +290,13 @@ public class Minecraft implements Runnable {
this.sndManager.func_338_a(this.thePlayer, this.timer.renderPartialTicks);
this.checkGLError("Pre render");
GL11.glEnable(GL11.GL_TEXTURE_2D);
if(this.theWorld != null) {
if(this.theWorld != null && !this.theWorld.multiplayerWorld) {
while(this.theWorld.func_6465_g()) {
}
}
if(this.gameSettings.limitFramerate) {
try {
Thread.sleep(5L);
} catch (InterruptedException e) {
e.printStackTrace();
}
if(this.theWorld != null && this.theWorld.multiplayerWorld) {
this.theWorld.func_6465_g();
}
if(!(Keyboard.getEventKey() == 33 && Keyboard.isKeyDown(8))) {
@ -351,7 +348,7 @@ public class Minecraft implements Runnable {
GL11.optimize();
++var3;
for(this.field_6316_m = true && this.currentScreen != null && this.currentScreen.doesGuiPauseGame(); System.currentTimeMillis() >= var1 + 1000L;) {
for(this.field_6316_m = !this.isMultiplayerWorld() && this.currentScreen != null && this.currentScreen.doesGuiPauseGame(); System.currentTimeMillis() >= var1 + 1000L;) {
this.field_6292_I = var3 + " fps, " + WorldRenderer.field_1762_b + " chunk updates";
WorldRenderer.field_1762_b = 0;
debugFPS = var3;
@ -715,6 +712,10 @@ public class Minecraft implements Runnable {
if(Keyboard.getEventKey() == this.gameSettings.keyBindDrop.keyCode) {
this.thePlayer.dropPlayerItemWithRandomChoice(this.thePlayer.inventory.decrStackSize(this.thePlayer.inventory.currentItem, 1), false);
}
if(this.isMultiplayerWorld() && Keyboard.getEventKey() == this.gameSettings.keyBindChat.keyCode) {
this.displayGuiScreen(new GuiChat());
}
}
for(int var4 = 0; var4 < 9; ++var4) {
@ -774,6 +775,9 @@ public class Minecraft implements Runnable {
}
this.theWorld.difficultySetting = this.gameSettings.difficulty;
if(this.theWorld.multiplayerWorld) {
this.theWorld.difficultySetting = 3;
}
if(!this.field_6316_m) {
this.field_9243_r.func_911_a();
@ -787,7 +791,7 @@ public class Minecraft implements Runnable {
this.theWorld.func_633_c();
}
if(!this.field_6316_m) {
if(!this.field_6316_m || this.isMultiplayerWorld()) {
this.theWorld.tick();
}
@ -803,6 +807,10 @@ public class Minecraft implements Runnable {
this.field_6287_N = System.currentTimeMillis();
}
public boolean isMultiplayerWorld() {
return this.theWorld != null && this.theWorld.multiplayerWorld;
}
public void func_6247_b(String var1) {
this.func_6261_a((World)null);
System.gc();
@ -869,15 +877,20 @@ public class Minecraft implements Runnable {
System.out.println("Player is " + this.thePlayer);
if(var1 != null) {
this.field_6327_b.func_717_a(var1);
//if(!this.isMultiplayerWorld()) {
if(!this.isMultiplayerWorld()) {
if(var3 == null) {
this.thePlayer = (EntityPlayerSP)var1.func_4085_a(EntityPlayerSP.class);
}
//}
} else if(this.thePlayer != null) {
this.thePlayer.preparePlayerToSpawn();
if(var1 != null) {
var1.entityJoinedWorld(this.thePlayer);
}
}
//if(!var1.multiplayerWorld) {
if(!var1.multiplayerWorld) {
this.func_6255_d(var2);
//}
}
System.out.println("Player is now " + this.thePlayer);
if(this.thePlayer == null) {

View File

@ -290,7 +290,7 @@ public class Block {
}
public void dropBlockAsItemWithChance(World var1, int var2, int var3, int var4, int var5, float var6) {
//if(!var1.multiplayerWorld) {
if(!var1.multiplayerWorld) {
int var7 = this.quantityDropped(var1.rand);
for(int var8 = 0; var8 < var7; ++var8) {
@ -308,7 +308,7 @@ public class Block {
}
}
//}
}
}
public float func_227_a(Entity var1) {

View File

@ -132,9 +132,9 @@ public class BlockButton extends Block {
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
//if(var1.multiplayerWorld) {
//return true;
//} else {
if(var1.multiplayerWorld) {
return true;
} else {
int var6 = var1.getBlockMetadata(var2, var3, var4);
int var7 = var6 & 7;
int var8 = 8 - (var6 & 8);
@ -160,7 +160,7 @@ public class BlockButton extends Block {
var1.scheduleBlockUpdate(var2, var3, var4, this.blockID);
return true;
}
//}
}
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
@ -203,7 +203,7 @@ public class BlockButton extends Block {
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
//if(!var1.multiplayerWorld) {
if(!var1.multiplayerWorld) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if((var6 & 8) != 0) {
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 & 7);
@ -224,7 +224,7 @@ public class BlockButton extends Block {
var1.playSoundEffect((double)var2 + 0.5D, (double)var3 + 0.5D, (double)var4 + 0.5D, "random.click", 0.3F, 0.5F);
var1.func_701_b(var2, var3, var4, var2, var3, var4);
}
//}
}
}
public void func_237_e() {

View File

@ -84,7 +84,7 @@ public class BlockCrops extends BlockFlower {
public void onBlockDestroyedByPlayer(World var1, int var2, int var3, int var4, int var5) {
super.onBlockDestroyedByPlayer(var1, var2, var3, var4, var5);
//if(!var1.multiplayerWorld) {
if(!var1.multiplayerWorld) {
for(int var6 = 0; var6 < 3; ++var6) {
if(var1.rand.nextInt(15) <= var5) {
float var7 = 0.7F;
@ -96,7 +96,7 @@ public class BlockCrops extends BlockFlower {
var1.entityJoinedWorld(var11);
}
}
//}
}
}

View File

@ -33,12 +33,12 @@ public class BlockJukeBox extends Block {
}
public void dropBlockAsItemWithChance(World var1, int var2, int var3, int var4, int var5, float var6) {
//if(!var1.multiplayerWorld) {
if(!var1.multiplayerWorld) {
if(var5 > 0) {
this.ejectRecord(var1, var2, var3, var4, var5);
}
super.dropBlockAsItemWithChance(var1, var2, var3, var4, var5, var6);
//}
}
}
}

View File

@ -133,9 +133,9 @@ public class BlockLever extends Block {
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
//if(var1.multiplayerWorld) {
//return true;
//} else {
if(var1.multiplayerWorld) {
return true;
} else {
int var6 = var1.getBlockMetadata(var2, var3, var4);
int var7 = var6 & 7;
int var8 = 8 - (var6 & 8);
@ -156,7 +156,7 @@ public class BlockLever extends Block {
}
return true;
//}
}
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {

View File

@ -52,15 +52,15 @@ public class BlockMinecartTrack extends Block {
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
//if(!var1.multiplayerWorld) {
if(!var1.multiplayerWorld) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 15);
this.func_4031_h(var1, var2, var3, var4);
//}
}
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
//if(!var1.multiplayerWorld) {
if(!var1.multiplayerWorld) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
boolean var7 = false;
if(!var1.isBlockOpaqueCube(var2, var3 - 1, var4)) {
@ -90,12 +90,12 @@ public class BlockMinecartTrack extends Block {
this.func_4031_h(var1, var2, var3, var4);
}
//}
}
}
private void func_4031_h(World var1, int var2, int var3, int var4) {
//if(!var1.multiplayerWorld) {
if(!var1.multiplayerWorld) {
(new MinecartTrackLogic(this, var1, var2, var3, var4)).func_792_a(var1.isBlockIndirectlyGettingPowered(var2, var3, var4));
//}
}
}
}

View File

@ -131,9 +131,9 @@ public class BlockPortal extends BlockBreakable {
}
public void onEntityCollidedWithBlock(World var1, int var2, int var3, int var4, Entity var5) {
//if(!var1.multiplayerWorld) {
if(!var1.multiplayerWorld) {
var5.func_4039_q();
//}
}
}
public void randomDisplayTick(World var1, int var2, int var3, int var4, Random var5) {

View File

@ -51,19 +51,19 @@ public class BlockPressurePlate extends Block {
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
//if(!var1.multiplayerWorld) {
if(!var1.multiplayerWorld) {
if(var1.getBlockMetadata(var2, var3, var4) != 0) {
this.setStateIfMobInteractsWithPlate(var1, var2, var3, var4);
}
//}
}
}
public void onEntityCollidedWithBlock(World var1, int var2, int var3, int var4, Entity var5) {
//if(!var1.multiplayerWorld) {
if(!var1.multiplayerWorld) {
if(var1.getBlockMetadata(var2, var3, var4) != 1) {
this.setStateIfMobInteractsWithPlate(var1, var2, var3, var4);
}
//}
}
}
private void setStateIfMobInteractsWithPlate(World var1, int var2, int var3, int var4) {

View File

@ -149,7 +149,7 @@ public class BlockRedstoneWire extends Block {
public void onBlockAdded(World var1, int var2, int var3, int var4) {
super.onBlockAdded(var1, var2, var3, var4);
//if(!var1.multiplayerWorld) {
if(!var1.multiplayerWorld) {
this.updateAndPropagateCurrentStrength(var1, var2, var3, var4);
var1.notifyBlocksOfNeighborChange(var2, var3 + 1, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
@ -181,12 +181,12 @@ public class BlockRedstoneWire extends Block {
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 - 1, var4 + 1);
}
//}
}
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
super.onBlockRemoval(var1, var2, var3, var4);
//if(!var1.multiplayerWorld) {
if(!var1.multiplayerWorld) {
var1.notifyBlocksOfNeighborChange(var2, var3 + 1, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
this.updateAndPropagateCurrentStrength(var1, var2, var3, var4);
@ -218,7 +218,7 @@ public class BlockRedstoneWire extends Block {
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 - 1, var4 + 1);
}
//}
}
}
private int getMaxCurrentStrength(World var1, int var2, int var3, int var4, int var5) {
@ -231,7 +231,7 @@ public class BlockRedstoneWire extends Block {
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
//if(!var1.multiplayerWorld) {
if(!var1.multiplayerWorld) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
boolean var7 = this.canPlaceBlockAt(var1, var2, var3, var4);
if(!var7) {
@ -242,7 +242,7 @@ public class BlockRedstoneWire extends Block {
}
super.onNeighborBlockChange(var1, var2, var3, var4, var5);
//}
}
}
public int idDropped(int var1, Random var2) {

View File

@ -30,10 +30,10 @@ public class BlockTNT extends Block {
}
public void onBlockDestroyedByPlayer(World var1, int var2, int var3, int var4, int var5) {
//if(!var1.multiplayerWorld) {
if(!var1.multiplayerWorld) {
EntityTNTPrimed var6 = new EntityTNTPrimed(var1, (double)((float)var2 + 0.5F), (double)((float)var3 + 0.5F), (double)((float)var4 + 0.5F));
var1.entityJoinedWorld(var6);
var1.playSoundAtEntity(var6, "random.fuse", 1.0F, 1.0F);
//}
}
}
}

View File

@ -264,7 +264,7 @@ public class Chunk {
int var9 = this.xPosition * 16 + var1;
int var10 = this.zPosition * 16 + var3;
this.blocks[var1 << 11 | var3 << 7 | var2] = var6;
if(var8 != 0) {
if(var8 != 0 && !this.worldObj.multiplayerWorld) {
Block.blocksList[var8].onBlockRemoval(this.worldObj, var9, var2, var10);
}
@ -319,7 +319,7 @@ public class Chunk {
this.worldObj.func_616_a(EnumSkyBlock.Sky, var8, var2, var9, var8, var2, var9);
this.worldObj.func_616_a(EnumSkyBlock.Block, var8, var2, var9, var8, var2, var9);
this.func_996_c(var1, var3);
if(var4 != 0) {
if(var4 != 0 && !this.worldObj.multiplayerWorld) {
Block.blocksList[var4].onBlockAdded(this.worldObj, var8, var2, var9);
}

View File

@ -190,7 +190,9 @@ public abstract class Entity {
this.field_9307_bi = false;
}
if(this.fire > 0) {
if(this.worldObj.multiplayerWorld) {
this.fire = 0;
} else if(this.fire > 0) {
if(this.isImmuneToFire) {
this.fire -= 4;
if(this.fire < 0) {

View File

@ -232,14 +232,14 @@ public class EntityArrow extends Entity {
}
public void onCollideWithPlayer(EntityPlayer var1) {
//if(!this.worldObj.multiplayerWorld) {
if(!this.worldObj.multiplayerWorld) {
if(this.inGround && this.field_682_g == var1 && this.arrowShake <= 0 && var1.inventory.addItemStackToInventory(new ItemStack(Item.arrow.shiftedIndex, 1))) {
this.worldObj.playSoundAtEntity(this, "random.pop", 0.2F, ((this.rand.nextFloat() - this.rand.nextFloat()) * 0.7F + 1.0F) * 2.0F);
var1.func_443_a_(this, 1);
this.setEntityDead();
}
//}
}
}
public float func_392_h_() {

View File

@ -55,7 +55,7 @@ public class EntityBoat extends Entity {
}
public boolean canAttackEntity(Entity var1, int var2) {
if(!this.isDead) {
if(!this.worldObj.multiplayerWorld && !this.isDead) {
this.field_808_c = -this.field_808_c;
this.field_806_b = 10;
this.field_807_a += var2 * 10;
@ -136,41 +136,41 @@ public class EntityBoat extends Entity {
double var8;
double var10;
double var23;
//if(this.worldObj.multiplayerWorld) {
//if(this.field_9394_d > 0) {
//var23 = this.posX + (this.field_9393_e - this.posX) / (double)this.field_9394_d;
//var6 = this.posY + (this.field_9392_f - this.posY) / (double)this.field_9394_d;
//var8 = this.posZ + (this.field_9391_g - this.posZ) / (double)this.field_9394_d;
if(this.worldObj.multiplayerWorld) {
if(this.field_9394_d > 0) {
var23 = this.posX + (this.field_9393_e - this.posX) / (double)this.field_9394_d;
var6 = this.posY + (this.field_9392_f - this.posY) / (double)this.field_9394_d;
var8 = this.posZ + (this.field_9391_g - this.posZ) / (double)this.field_9394_d;
//for(var10 = this.field_9390_h - (double)this.rotationYaw; var10 < -180.0D; var10 += 360.0D) {
//}
for(var10 = this.field_9390_h - (double)this.rotationYaw; var10 < -180.0D; var10 += 360.0D) {
}
//while(var10 >= 180.0D) {
//var10 -= 360.0D;
//}
while(var10 >= 180.0D) {
var10 -= 360.0D;
}
//this.rotationYaw = (float)((double)this.rotationYaw + var10 / (double)this.field_9394_d);
//this.rotationPitch = (float)((double)this.rotationPitch + (this.field_9389_i - (double)this.rotationPitch) / (double)this.field_9394_d);
//--this.field_9394_d;
//this.setPosition(var23, var6, var8);
//this.setRotation(this.rotationYaw, this.rotationPitch);
//} else {
//var23 = this.posX + this.motionX;
//var6 = this.posY + this.motionY;
//var8 = this.posZ + this.motionZ;
//this.setPosition(var23, var6, var8);
//if(this.onGround) {
//this.motionX *= 0.5D;
//this.motionY *= 0.5D;
//this.motionZ *= 0.5D;
//}
this.rotationYaw = (float)((double)this.rotationYaw + var10 / (double)this.field_9394_d);
this.rotationPitch = (float)((double)this.rotationPitch + (this.field_9389_i - (double)this.rotationPitch) / (double)this.field_9394_d);
--this.field_9394_d;
this.setPosition(var23, var6, var8);
this.setRotation(this.rotationYaw, this.rotationPitch);
} else {
var23 = this.posX + this.motionX;
var6 = this.posY + this.motionY;
var8 = this.posZ + this.motionZ;
this.setPosition(var23, var6, var8);
if(this.onGround) {
this.motionX *= 0.5D;
this.motionY *= 0.5D;
this.motionZ *= 0.5D;
}
//this.motionX *= (double)0.99F;
//this.motionY *= (double)0.95F;
//this.motionZ *= (double)0.99F;
//}
this.motionX *= (double)0.99F;
this.motionY *= (double)0.95F;
this.motionZ *= (double)0.99F;
}
//} else {
} else {
var23 = var2 * 2.0D - 1.0D;
this.motionY += (double)0.04F * var23;
if(this.riddenByEntity != null) {
@ -226,7 +226,7 @@ public class EntityBoat extends Entity {
}
if(this.field_9297_aI && var8 > 0.15D) {
//if(!this.worldObj.multiplayerWorld) {
if(!this.worldObj.multiplayerWorld) {
this.setEntityDead();
int var24;
@ -237,7 +237,7 @@ public class EntityBoat extends Entity {
for(var24 = 0; var24 < 2; ++var24) {
this.dropItemWithOffset(Item.stick.shiftedIndex, 1, 0.0F);
}
//}
}
} else {
this.motionX *= (double)0.99F;
this.motionY *= (double)0.95F;
@ -284,7 +284,7 @@ public class EntityBoat extends Entity {
this.riddenByEntity = null;
}
//}
}
}
public void func_366_i_() {
@ -309,9 +309,9 @@ public class EntityBoat extends Entity {
if(this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayer && this.riddenByEntity != var1) {
return true;
} else {
//if(!this.worldObj.multiplayerWorld) {
if(!this.worldObj.multiplayerWorld) {
var1.mountEntity(this);
//}
}
return true;
}

View File

@ -40,7 +40,7 @@ public class EntityChicken extends EntityAnimals {
}
this.field_752_b += this.field_755_h * 2.0F;
if(--this.timeUntilNextEgg <= 0) {
if(!this.worldObj.multiplayerWorld && --this.timeUntilNextEgg <= 0) {
this.worldObj.playSoundAtEntity(this, "mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F);
this.dropItem(Item.egg.shiftedIndex, 1);
this.timeUntilNextEgg = this.rand.nextInt(6000) + 6000;

View File

@ -0,0 +1,145 @@
package net.minecraft.src;
import net.minecraft.client.Minecraft;
public class EntityClientPlayerMP extends EntityPlayerSP {
private NetClientHandler field_797_bg;
private int field_9380_bx = 0;
private double field_9379_by;
private double field_9378_bz;
private double field_9377_bA;
private double field_9376_bB;
private float field_9385_bC;
private float field_9384_bD;
private InventoryPlayer field_9383_bE = new InventoryPlayer((EntityPlayer)null);
private boolean field_9382_bF = false;
private boolean field_9381_bG = false;
private int field_12242_bI = 0;
public EntityClientPlayerMP(Minecraft var1, World var2, Session var3, NetClientHandler var4) {
super(var1, var2, var3, 0);
this.field_797_bg = var4;
}
public boolean canAttackEntity(Entity var1, int var2) {
return false;
}
public void heal(int var1) {
}
public void onUpdate() {
if(this.worldObj.blockExists(MathHelper.floor_double(this.posX), 64, MathHelper.floor_double(this.posZ))) {
super.onUpdate();
this.func_4056_N();
}
}
public void func_6420_o() {
}
public void func_4056_N() {
if(this.field_9380_bx++ == 20) {
this.sendInventoryChanged();
this.field_9380_bx = 0;
}
boolean var1 = this.func_381_o();
if(var1 != this.field_9381_bG) {
if(var1) {
this.field_797_bg.addToSendQueue(new Packet18ArmAnimation(this, 104));
} else {
this.field_797_bg.addToSendQueue(new Packet18ArmAnimation(this, 105));
}
this.field_9381_bG = var1;
}
double var2 = this.posX - this.field_9379_by;
double var4 = this.boundingBox.minY - this.field_9378_bz;
double var6 = this.posY - this.field_9377_bA;
double var8 = this.posZ - this.field_9376_bB;
double var10 = (double)(this.rotationYaw - this.field_9385_bC);
double var12 = (double)(this.rotationPitch - this.field_9384_bD);
boolean var14 = var4 != 0.0D || var6 != 0.0D || var2 != 0.0D || var8 != 0.0D;
boolean var15 = var10 != 0.0D || var12 != 0.0D;
if(this.ridingEntity != null) {
if(var15) {
this.field_797_bg.addToSendQueue(new Packet11PlayerPosition(this.motionX, -999.0D, -999.0D, this.motionZ, this.onGround));
} else {
this.field_797_bg.addToSendQueue(new Packet13PlayerLookMove(this.motionX, -999.0D, -999.0D, this.motionZ, this.rotationYaw, this.rotationPitch, this.onGround));
}
var14 = false;
} else if(var14 && var15) {
this.field_797_bg.addToSendQueue(new Packet13PlayerLookMove(this.posX, this.boundingBox.minY, this.posY, this.posZ, this.rotationYaw, this.rotationPitch, this.onGround));
this.field_12242_bI = 0;
} else if(var14) {
this.field_797_bg.addToSendQueue(new Packet11PlayerPosition(this.posX, this.boundingBox.minY, this.posY, this.posZ, this.onGround));
this.field_12242_bI = 0;
} else if(var15) {
this.field_797_bg.addToSendQueue(new Packet12PlayerLook(this.rotationYaw, this.rotationPitch, this.onGround));
this.field_12242_bI = 0;
} else {
this.field_797_bg.addToSendQueue(new Packet10Flying(this.onGround));
if(this.field_9382_bF == this.onGround && this.field_12242_bI <= 20) {
++this.field_12242_bI;
} else {
this.field_12242_bI = 0;
}
}
this.field_9382_bF = this.onGround;
if(var14) {
this.field_9379_by = this.posX;
this.field_9378_bz = this.boundingBox.minY;
this.field_9377_bA = this.posY;
this.field_9376_bB = this.posZ;
}
if(var15) {
this.field_9385_bC = this.rotationYaw;
this.field_9384_bD = this.rotationPitch;
}
}
private void sendInventoryChanged() {
if(!this.inventory.compareInventory(this.field_9383_bE)) {
this.field_797_bg.addToSendQueue(new Packet5PlayerInventory(-1, this.inventory.mainInventory));
this.field_797_bg.addToSendQueue(new Packet5PlayerInventory(-2, this.inventory.craftingInventory));
this.field_797_bg.addToSendQueue(new Packet5PlayerInventory(-3, this.inventory.armorInventory));
this.field_9383_bE = this.inventory.copyInventory();
}
}
protected void joinEntityItemWithWorld(EntityItem var1) {
Packet21PickupSpawn var2 = new Packet21PickupSpawn(var1);
this.field_797_bg.addToSendQueue(var2);
var1.posX = (double)var2.xPosition / 32.0D;
var1.posY = (double)var2.yPosition / 32.0D;
var1.posZ = (double)var2.zPosition / 32.0D;
var1.motionX = (double)var2.rotation / 128.0D;
var1.motionY = (double)var2.pitch / 128.0D;
var1.motionZ = (double)var2.roll / 128.0D;
}
public void sendChatMessage(String var1) {
this.field_797_bg.addToSendQueue(new Packet3Chat(var1));
}
public void func_457_w() {
super.func_457_w();
this.field_797_bg.addToSendQueue(new Packet18ArmAnimation(this, 1));
}
public void func_9367_r() {
this.sendInventoryChanged();
this.field_797_bg.addToSendQueue(new Packet9());
}
protected void damageEntity(int var1) {
this.health -= var1;
}
}

View File

@ -38,16 +38,16 @@ public class EntityCreeper extends EntityMobs {
public void onUpdate() {
this.lastActiveTime = this.timeSinceIgnited;
// if(this.worldObj.multiplayerWorld) {
// this.timeSinceIgnited += this.creeperState;
// if(this.timeSinceIgnited < 0) {
// this.timeSinceIgnited = 0;
// }
//
// if(this.timeSinceIgnited >= this.fuseTime) {
// this.timeSinceIgnited = this.fuseTime;
// }
// }
if(this.worldObj.multiplayerWorld) {
this.timeSinceIgnited += this.creeperState;
if(this.timeSinceIgnited < 0) {
this.timeSinceIgnited = 0;
}
if(this.timeSinceIgnited >= this.fuseTime) {
this.timeSinceIgnited = this.fuseTime;
}
}
super.onUpdate();
}
@ -63,9 +63,9 @@ public class EntityCreeper extends EntityMobs {
}
this.lastActiveTime = this.timeSinceIgnited;
//if(this.worldObj.multiplayerWorld) {
//super.func_418_b_();
//} else {
if(this.worldObj.multiplayerWorld) {
super.func_418_b_();
} else {
if(this.timeSinceIgnited > 0 && this.creeperState < 0) {
--this.timeSinceIgnited;
}
@ -78,7 +78,7 @@ public class EntityCreeper extends EntityMobs {
if(this.creeperState != 1) {
this.creeperState = -1;
}
//}
}
}

View File

@ -135,7 +135,7 @@ public class EntityFish extends Entity {
this.setPosition(var21, var22, var23);
this.setRotation(this.rotationYaw, this.rotationPitch);
} else {
//if(!this.worldObj.multiplayerWorld) {
if(!this.worldObj.multiplayerWorld) {
ItemStack var1 = this.field_4097_b.getCurrentEquippedItem();
if(this.field_4097_b.isDead || !this.field_4097_b.isEntityAlive() || var1 == null || var1.getItem() != Item.fishingRod || this.getDistanceSqToEntity(this.field_4097_b) > 1024.0D) {
this.setEntityDead();
@ -153,7 +153,7 @@ public class EntityFish extends Entity {
this.field_4096_c = null;
}
//}
}
if(this.field_4098_a > 0) {
--this.field_4098_a;

View File

@ -178,7 +178,7 @@ public class EntityItem extends Entity {
}
public void onCollideWithPlayer(EntityPlayer var1) {
//if(!this.worldObj.multiplayerWorld) {
if(!this.worldObj.multiplayerWorld) {
int var2 = this.item.stackSize;
if(this.field_805_c == 0 && var1.inventory.addItemStackToInventory(this.item)) {
this.worldObj.playSoundAtEntity(this, "random.pop", 0.2F, ((this.rand.nextFloat() - this.rand.nextFloat()) * 0.7F + 1.0F) * 2.0F);
@ -186,6 +186,6 @@ public class EntityItem extends Entity {
this.setEntityDead();
}
//}
}
}
}

View File

@ -108,7 +108,7 @@ public class EntityLiving extends Entity {
this.canAttackEntity((Entity)null, 1);
}
if(this.isImmuneToFire) {
if(this.isImmuneToFire || this.worldObj.multiplayerWorld) {
this.fire = 0;
}
@ -299,9 +299,9 @@ public class EntityLiving extends Entity {
}
public boolean canAttackEntity(Entity var1, int var2) {
//if(this.worldObj.multiplayerWorld) {
//return false;
//} else {
if(this.worldObj.multiplayerWorld) {
return false;
} else {
this.field_9344_ag = 0;
if(this.health <= 0) {
return false;
@ -355,7 +355,7 @@ public class EntityLiving extends Entity {
return true;
}
//}
}
}
public void func_9280_g() {
@ -404,7 +404,7 @@ public class EntityLiving extends Entity {
}
this.field_9327_S = true;
//if(!this.worldObj.multiplayerWorld) {
if(!this.worldObj.multiplayerWorld) {
int var2 = this.getDropItemId();
if(var2 > 0) {
int var3 = this.rand.nextInt(3);
@ -413,7 +413,7 @@ public class EntityLiving extends Entity {
this.dropItem(var2, 1);
}
}
//}
}
this.worldObj.func_9425_a(this, (byte)3);
}

View File

@ -65,7 +65,7 @@ public class EntityMinecart extends Entity implements IInventory {
}
public boolean canAttackEntity(Entity var1, int var2) {
if(!this.isDead) {
if(!this.worldObj.multiplayerWorld && !this.isDead) {
this.c = -this.c;
this.b = 10;
this.func_9281_M();
@ -136,30 +136,30 @@ public class EntityMinecart extends Entity implements IInventory {
}
double var7;
//if(this.worldObj.multiplayerWorld && this.field_9415_k > 0) {
//if(this.field_9415_k > 0) {
//double var41 = this.posX + (this.field_9414_l - this.posX) / (double)this.field_9415_k;
//double var42 = this.posY + (this.field_9413_m - this.posY) / (double)this.field_9415_k;
//double var5 = this.posZ + (this.field_9412_n - this.posZ) / (double)this.field_9415_k;
if(this.worldObj.multiplayerWorld && this.field_9415_k > 0) {
if(this.field_9415_k > 0) {
double var41 = this.posX + (this.field_9414_l - this.posX) / (double)this.field_9415_k;
double var42 = this.posY + (this.field_9413_m - this.posY) / (double)this.field_9415_k;
double var5 = this.posZ + (this.field_9412_n - this.posZ) / (double)this.field_9415_k;
//for(var7 = this.field_9411_o - (double)this.rotationYaw; var7 < -180.0D; var7 += 360.0D) {
//}
for(var7 = this.field_9411_o - (double)this.rotationYaw; var7 < -180.0D; var7 += 360.0D) {
}
//while(var7 >= 180.0D) {
//var7 -= 360.0D;
//}
while(var7 >= 180.0D) {
var7 -= 360.0D;
}
//this.rotationYaw = (float)((double)this.rotationYaw + var7 / (double)this.field_9415_k);
//this.rotationPitch = (float)((double)this.rotationPitch + (this.field_9410_p - (double)this.rotationPitch) / (double)this.field_9415_k);
//--this.field_9415_k;
//this.setPosition(var41, var42, var5);
//this.setRotation(this.rotationYaw, this.rotationPitch);
//} else {
//this.setPosition(this.posX, this.posY, this.posZ);
//this.setRotation(this.rotationYaw, this.rotationPitch);
//}
this.rotationYaw = (float)((double)this.rotationYaw + var7 / (double)this.field_9415_k);
this.rotationPitch = (float)((double)this.rotationPitch + (this.field_9410_p - (double)this.rotationPitch) / (double)this.field_9415_k);
--this.field_9415_k;
this.setPosition(var41, var42, var5);
this.setRotation(this.rotationYaw, this.rotationPitch);
} else {
this.setPosition(this.posX, this.posY, this.posZ);
this.setRotation(this.rotationYaw, this.rotationPitch);
}
//} else {
} else {
this.prevPosX = this.posX;
this.prevPosY = this.posY;
this.prevPosZ = this.posZ;
@ -408,7 +408,7 @@ public class EntityMinecart extends Entity implements IInventory {
this.worldObj.spawnParticle("largesmoke", this.posX, this.posY + 0.8D, this.posZ, 0.0D, 0.0D, 0.0D);
}
//}
}
}
public Vec3D func_515_a(double var1, double var3, double var5, double var7) {
@ -551,7 +551,7 @@ public class EntityMinecart extends Entity implements IInventory {
}
public void applyEntityCollision(Entity var1) {
//if(!this.worldObj.multiplayerWorld) {
if(!this.worldObj.multiplayerWorld) {
if(var1 != this.riddenByEntity) {
if(var1 instanceof EntityLiving && !(var1 instanceof EntityPlayer) && this.d == 0 && this.motionX * this.motionX + this.motionZ * this.motionZ > 0.01D && this.riddenByEntity == null && var1.ridingEntity == null) {
var1.mountEntity(this);
@ -609,7 +609,7 @@ public class EntityMinecart extends Entity implements IInventory {
}
}
//}
}
}
public int getSizeInventory() {
@ -665,9 +665,9 @@ public class EntityMinecart extends Entity implements IInventory {
return true;
}
//if(!this.worldObj.multiplayerWorld) {
if(!this.worldObj.multiplayerWorld) {
var1.mountEntity(this);
//}
}
} else if(this.d == 1) {
var1.displayGUIChest(this);
} else if(this.d == 2) {

View File

@ -0,0 +1,102 @@
package net.minecraft.src;
public class EntityOtherPlayerMP extends EntityPlayer {
private int field_785_bg;
private double field_784_bh;
private double field_783_bi;
private double field_782_bj;
private double field_780_bk;
private double field_786_bl;
float a = 0.0F;
public EntityOtherPlayerMP(World var1, String var2) {
super(var1);
this.field_771_i = var2;
this.yOffset = 0.0F;
this.field_9286_aZ = 0.0F;
if(var2 != null && var2.length() > 0) {
this.skinUrl = "http://www.minecraft.net/skin/" + var2 + ".png";
System.out.println("Loading texture " + this.skinUrl);
}
this.field_9314_ba = true;
this.field_619_ac = 10.0D;
}
public boolean canAttackEntity(Entity var1, int var2) {
return true;
}
public void setPositionAndRotation2(double var1, double var3, double var5, float var7, float var8, int var9) {
this.yOffset = 0.0F;
this.field_784_bh = var1;
this.field_783_bi = var3;
this.field_782_bj = var5;
this.field_780_bk = (double)var7;
this.field_786_bl = (double)var8;
this.field_785_bg = var9;
}
public void onUpdate() {
super.onUpdate();
this.field_705_Q = this.field_704_R;
double var1 = this.posX - this.prevPosX;
double var3 = this.posZ - this.prevPosZ;
float var5 = MathHelper.sqrt_double(var1 * var1 + var3 * var3) * 4.0F;
if(var5 > 1.0F) {
var5 = 1.0F;
}
this.field_704_R += (var5 - this.field_704_R) * 0.4F;
this.field_703_S += this.field_704_R;
}
public float func_392_h_() {
return 0.0F;
}
public void onLivingUpdate() {
super.func_418_b_();
if(this.field_785_bg > 0) {
double var1 = this.posX + (this.field_784_bh - this.posX) / (double)this.field_785_bg;
double var3 = this.posY + (this.field_783_bi - this.posY) / (double)this.field_785_bg;
double var5 = this.posZ + (this.field_782_bj - this.posZ) / (double)this.field_785_bg;
double var7;
for(var7 = this.field_780_bk - (double)this.rotationYaw; var7 < -180.0D; var7 += 360.0D) {
}
while(var7 >= 180.0D) {
var7 -= 360.0D;
}
this.rotationYaw = (float)((double)this.rotationYaw + var7 / (double)this.field_785_bg);
this.rotationPitch = (float)((double)this.rotationPitch + (this.field_786_bl - (double)this.rotationPitch) / (double)this.field_785_bg);
--this.field_785_bg;
this.setPosition(var1, var3, var5);
this.setRotation(this.rotationYaw, this.rotationPitch);
}
this.field_775_e = this.field_774_f;
float var9 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ);
float var2 = (float)Math.atan(-this.motionY * (double)0.2F) * 15.0F;
if(var9 > 0.1F) {
var9 = 0.1F;
}
if(!this.onGround || this.health <= 0) {
var9 = 0.0F;
}
if(this.onGround || this.health <= 0) {
var2 = 0.0F;
}
this.field_774_f += (var9 - this.field_774_f) * 0.4F;
this.field_9328_R += (var2 - this.field_9328_R) * 0.8F;
}
public boolean func_381_o() {
return this.field_12240_bw;
}
}

View File

@ -10,7 +10,7 @@ public class EntitySheep extends EntityAnimals {
}
public boolean canAttackEntity(Entity var1, int var2) {
if(!this.sheared && var1 instanceof EntityLiving) {
if(!this.worldObj.multiplayerWorld && !this.sheared && var1 instanceof EntityLiving) {
this.sheared = true;
int var3 = 1 + this.rand.nextInt(3);

View File

@ -120,7 +120,7 @@ public class EntitySnowball extends Entity {
var2 = Vec3D.createVector(var3.hitVec.xCoord, var3.hitVec.yCoord, var3.hitVec.zCoord);
}
//if(!this.worldObj.multiplayerWorld) {
if(!this.worldObj.multiplayerWorld) {
Entity var4 = null;
List var5 = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expands(1.0D, 1.0D, 1.0D));
double var6 = 0.0D;
@ -144,7 +144,7 @@ public class EntitySnowball extends Entity {
if(var4 != null) {
var3 = new MovingObjectPosition(var4);
}
//}
}
if(var3 != null) {
if(var3.entityHit != null && var3.entityHit.canAttackEntity(this.field_811_g, 0)) {

View File

@ -22,7 +22,7 @@ public class GameSettings {
public int renderDistance = 0;
public boolean viewBobbing = true;
public boolean anaglyph = false;
public boolean limitFramerate = false;
public boolean showFPS = false;
public boolean fancyGraphics = true;
public String skin = "Default";
public KeyBinding keyBindForward = new KeyBinding("Forward", 17);
@ -41,6 +41,7 @@ public class GameSettings {
public int difficulty = 2;
public boolean thirdPersonView = false;
public String field_12259_z = "";
public String username = "";
public GameSettings(Minecraft var1) {
this.mc = var1;
@ -94,7 +95,7 @@ public class GameSettings {
}
if(var1 == 7) {
this.limitFramerate = !this.limitFramerate;
this.showFPS = !this.showFPS;
}
if(var1 == 8) {
@ -118,9 +119,11 @@ public class GameSettings {
}
public String getOptionDisplayString(int var1) {
return var1 == 0 ? "Music: " + (this.musicVolume > 0.0F ? (int)(this.musicVolume * 100.0F) + "%" : "OFF") : (var1 == 1 ? "Sound: " + (this.soundVolume > 0.0F ? (int)(this.soundVolume * 100.0F) + "%" : "OFF") : (var1 == 2 ? "Invert mouse: " + (this.invertMouse ? "ON" : "OFF") : (var1 == 3 ? (this.mouseSensitivity == 0.0F ? "Sensitivity: *yawn*" : (this.mouseSensitivity == 1.0F ? "Sensitivity: HYPERSPEED!!!" : "Sensitivity: " + (int)(this.mouseSensitivity * 200.0F) + "%")) : (var1 == 4 ? "Render distance: " + RENDER_DISTANCES[this.renderDistance] : (var1 == 5 ? "View bobbing: " + (this.viewBobbing ? "ON" : "OFF") : (var1 == 6 ? "3d anaglyph: " + (this.anaglyph ? "ON" : "OFF") : (var1 == 7 ? "Limit framerate: " + (this.limitFramerate ? "ON" : "OFF") : (var1 == 8 ? "Difficulty: " + DIFFICULTY_LEVELS[this.difficulty] : (var1 == 9 ? "Graphics: " + (this.fancyGraphics ? "FANCY" : "FAST") : "")))))))));
return var1 == 0 ? "Music: " + (this.musicVolume > 0.0F ? (int)(this.musicVolume * 100.0F) + "%" : "OFF") : (var1 == 1 ? "Sound: " + (this.soundVolume > 0.0F ? (int)(this.soundVolume * 100.0F) + "%" : "OFF") : (var1 == 2 ? "Invert mouse: " + (this.invertMouse ? "ON" : "OFF") : (var1 == 3 ? (this.mouseSensitivity == 0.0F ? "Sensitivity: *yawn*" : (this.mouseSensitivity == 1.0F ? "Sensitivity: HYPERSPEED!!!" : "Sensitivity: " + (int)(this.mouseSensitivity * 200.0F) + "%")) : (var1 == 4 ? "Render distance: " + RENDER_DISTANCES[this.renderDistance] : (var1 == 5 ? "View bobbing: " + (this.viewBobbing ? "ON" : "OFF") : (var1 == 6 ? "3d anaglyph: " + (this.anaglyph ? "ON" : "OFF") : (var1 == 7 ? "Show FPS: " + (this.showFPS ? "ON" : "OFF") : (var1 == 8 ? "Difficulty: " + DIFFICULTY_LEVELS[this.difficulty] : (var1 == 9 ? "Graphics: " + (this.fancyGraphics ? "FANCY" : "FAST") : "")))))))));
}
private boolean loadOptionsFuckedUp = false;
public void loadOptions() {
if(!GL11.isWebGL) {
net.PeytonPlayz585.minecraft.GameSettings.loadOptions();
@ -174,8 +177,8 @@ public class GameSettings {
this.anaglyph = var3[1].equals("true");
}
if(var3[0].equals("limitFramerate")) {
this.limitFramerate = var3[1].equals("true");
if(var3[0].equals("showFPS")) {
this.showFPS = var3[1].equals("true");
}
if(var3[0].equals("difficulty")) {
@ -190,20 +193,41 @@ public class GameSettings {
this.skin = var3[1];
}
if(!loadOptionsFuckedUp) {
if(var3[0].equals("username")) {
this.username = var3[1];
}
if(var3[0].equals("lastServer")) {
this.field_12259_z = var3[1];
}
} else {
this.username = "";
this.field_12259_z = "";
}
for(int var4 = 0; var4 < this.keyBindings.length; ++var4) {
if(var3[0].equals("key_" + this.keyBindings[var4].keyDescription)) {
this.keyBindings[var4].keyCode = Integer.parseInt(var3[1]);
}
}
if(loadOptionsFuckedUp) {
this.saveOptions();
}
}
} catch (Exception var5) {
//What the fuck -_-
if(!loadOptionsFuckedUp) {
loadOptionsFuckedUp = true;
this.loadOptions();
return;
} else {
//womp womp
System.out.println("Failed to load options");
var5.printStackTrace();
}
}
}
@ -226,11 +250,18 @@ public class GameSettings {
var1.println("viewDistance:" + this.renderDistance);
var1.println("bobView:" + this.viewBobbing);
var1.println("anaglyph3d:" + this.anaglyph);
var1.println("limitFramerate:" + this.limitFramerate);
var1.println("showFPS:" + this.showFPS);
var1.println("difficulty:" + this.difficulty);
var1.println("fancyGraphics:" + this.fancyGraphics);
var1.println("skin:" + this.skin);
if(!this.field_12259_z.isEmpty() && !this.field_12259_z.isBlank()) {
var1.println("lastServer:" + this.field_12259_z);
}
if(!this.username.isEmpty() && !this.username.isBlank()) {
var1.println("username:" + this.username);
}
for(int var2 = 0; var2 < this.keyBindings.length; ++var2) {
var1.println("key_" + this.keyBindings[var2].keyDescription + ":" + this.keyBindings[var2].keyCode);
}

View File

@ -0,0 +1,65 @@
package net.minecraft.src;
import net.minecraft.client.Minecraft;
public class GuiConnecting extends GuiScreen {
private NetClientHandler clientHandler;
private boolean cancelled = false;
public GuiConnecting(Minecraft var1, String var2) {
var1.func_6261_a((World)null);
(new ThreadConnectToServer(this, var1, var2)).start();
}
public void updateScreen() {
if(this.clientHandler != null) {
this.clientHandler.processReadPackets();
}
}
protected void keyTyped(char var1, int var2) {
}
public void initGui() {
this.controlList.clear();
this.controlList.add(new GuiButton(0, this.width / 2 - 100, this.height / 4 + 120 + 12, "Cancel"));
}
protected void actionPerformed(GuiButton var1) {
if(var1.id == 0) {
this.cancelled = true;
if(this.clientHandler != null) {
this.clientHandler.disconnect();
}
this.mc.displayGuiScreen(new GuiMainMenu());
}
}
public void drawScreen(int var1, int var2, float var3) {
this.drawDefaultBackground();
if(this.clientHandler == null) {
this.drawCenteredString(this.fontRenderer, "Connecting to the server...", this.width / 2, this.height / 2 - 50, 16777215);
this.drawCenteredString(this.fontRenderer, "", this.width / 2, this.height / 2 - 10, 16777215);
} else {
this.drawCenteredString(this.fontRenderer, "Logging in...", this.width / 2, this.height / 2 - 50, 16777215);
this.drawCenteredString(this.fontRenderer, this.clientHandler.field_1209_a, this.width / 2, this.height / 2 - 10, 16777215);
}
super.drawScreen(var1, var2, var3);
}
static NetClientHandler setNetClientHandler(GuiConnecting var0, NetClientHandler var1) {
return var0.clientHandler = var1;
}
static boolean isCancelled(GuiConnecting var0) {
return var0.cancelled;
}
static NetClientHandler getNetClientHandler(GuiConnecting var0) {
return var0.clientHandler;
}
}

View File

@ -0,0 +1,38 @@
package net.minecraft.src;
public class GuiDownloadTerrain extends GuiScreen {
private NetClientHandler netHandler;
private int updateCounter = 0;
public GuiDownloadTerrain(NetClientHandler var1) {
this.netHandler = var1;
}
protected void keyTyped(char var1, int var2) {
}
public void initGui() {
this.controlList.clear();
}
public void updateScreen() {
++this.updateCounter;
if(this.updateCounter % 20 == 0) {
this.netHandler.addToSendQueue(new Packet0KeepAlive());
}
if(this.netHandler != null) {
this.netHandler.processReadPackets();
}
}
protected void actionPerformed(GuiButton var1) {
}
public void drawScreen(int var1, int var2, float var3) {
this.drawBackground(0);
this.drawCenteredString(this.fontRenderer, "Downloading terrain", this.width / 2, this.height / 2 - 50, 16777215);
super.drawScreen(var1, var2, var3);
}
}

View File

@ -143,7 +143,7 @@ public class GuiIngame extends Gui {
RenderHelper.disableStandardItemLighting();
GL11.glDisable(GL12.GL_RESCALE_NORMAL);
String var23;
if(Keyboard.getEventKey() == 33 && Keyboard.isKeyDown(4)) {
if((Keyboard.getEventKey() == 33 && Keyboard.isKeyDown(4)) || this.mc.gameSettings.showFPS) {
var8.drawStringWithShadow("Minecraft Alpha v1.2.6 (" + this.mc.field_6292_I + ")", 2, 2, 16777215);
var8.drawStringWithShadow(this.mc.func_6241_m(), 2, 12, 16777215);
var8.drawStringWithShadow(this.mc.func_6262_n(), 2, 22, 16777215);

View File

@ -12,6 +12,10 @@ public class GuiIngameMenu extends GuiScreen {
this.updateCounter2 = 0;
this.controlList.clear();
this.controlList.add(new GuiButton(1, this.width / 2 - 100, this.height / 4 + 48, "Save and quit to title"));
if(this.mc.isMultiplayerWorld()) {
((GuiButton)this.controlList.get(0)).displayString = "Disconnect";
}
this.controlList.add(new GuiButton(4, this.width / 2 - 100, this.height / 4 + 24, "Back to game"));
this.controlList.add(new GuiButton(0, this.width / 2 - 100, this.height / 4 + 96, "Options..."));
}
@ -23,6 +27,10 @@ public class GuiIngameMenu extends GuiScreen {
if(var1.id == 1) {
Minecraft.getMinecraft().justLeftWorld = true;
if(this.mc.isMultiplayerWorld()) {
this.mc.theWorld.sendQuittingDisconnectingPacket();
}
this.mc.func_6261_a((World)null);
this.mc.displayGuiScreen(new GuiMainMenu());
}

View File

@ -73,11 +73,12 @@ public class GuiMainMenu extends GuiScreen {
}
this.controlList.add(new GuiButton(1, this.width / 2 - 100, this.height / 4 + 48, "Singleplayer"));
//GuiButton button;
//this.controlList.add(button = new GuiButton(2, this.width / 2 - 100, this.height / 4 + 72, "Multiplayer"));
//button.enabled = false;
this.controlList.add(new GuiButton(3, this.width / 2 - 100, this.height / 4 + 72, "Mods and Texture Packs"));
this.controlList.add(new GuiButton(2, this.width / 2 - 100, this.height / 4 + 72, "Multiplayer"));
this.controlList.add(new GuiButton(3, this.width / 2 - 100, this.height / 4 + 96, "Mods and Texture Packs"));
this.controlList.add(new GuiButton(0, this.width / 2 - 100, this.height / 4 + 120 + 12, "Options..."));
if(this.mc.field_6320_i == null) {
((GuiButton)this.controlList.get(1)).enabled = false;
}
}
protected void actionPerformed(GuiButton var1) {
@ -90,7 +91,7 @@ public class GuiMainMenu extends GuiScreen {
}
if(var1.id == 2) {
//this.mc.displayGuiScreen(new GuiMultiplayer(this));
this.mc.displayGuiScreen(new GuiMultiplayer(this));
}
if(var1.id == 3) {

View File

@ -0,0 +1,180 @@
package net.minecraft.src;
import net.PeytonPlayz585.input.Keyboard;
import net.minecraft.client.Minecraft;
public class GuiMultiplayer extends GuiScreen {
private GuiScreen updateCounter;
private int parentScreen = 0;
private String serverAddress = "";
private String username = "";
private boolean serverTextBox;
private boolean usernameTextBox;
public GuiMultiplayer(GuiScreen var1) {
this.updateCounter = var1;
}
public void updateScreen() {
++this.parentScreen;
}
public void initGui() {
usernameTextBox = true;
serverTextBox = false;
this.controlList.clear();
this.controlList.add(new GuiButton(0, this.width / 2 - 100, this.height / 4 + 96 + 12, "Connect"));
this.controlList.add(new GuiButton(1, this.width / 2 - 100, this.height / 4 + 120 + 12, "Cancel"));
this.serverAddress = this.mc.gameSettings.field_12259_z.replaceAll("_", ":");
this.username = this.mc.gameSettings.username;
((GuiButton)this.controlList.get(0)).enabled = this.serverAddress.length() > 0 && this.username.length() > 0 && !this.serverAddress.isBlank() && !this.username.isBlank() && !this.serverAddress.isEmpty() && !this.username.isEmpty();
}
protected void actionPerformed(GuiButton var1) {
if(var1.enabled) {
if(var1.id == 1) {
this.mc.displayGuiScreen(this.updateCounter);
} else if(var1.id == 0) {
Minecraft.getMinecraft().field_6320_i = new Session(this.username);
this.mc.gameSettings.field_12259_z = this.serverAddress.replaceAll(":", "_");
this.mc.gameSettings.username = this.username;
this.mc.gameSettings.saveOptions();
String[] var2 = this.serverAddress.split(":");
this.mc.displayGuiScreen(new GuiConnecting(this.mc, serverAddress));
}
}
}
protected void mouseClicked(int var1, int var2, int var3) {
if(var3 == 0) {
if(var1 >= this.width / 2 - 100 && var1 < (this.width / 2 - 100) + 200 && var2 >= this.height / 4 - 10 + 10 + 18 && var2 < (this.height / 4 - 10 + 10 + 18) + 20) {
Keyboard.enableRepeatEvents(true);
usernameTextBox = true;
serverTextBox = false;
} else if(var1 >= this.width / 2 - 100 && var1 < (this.width / 2 - 100) + 200 && var2 >= this.height / 4 - 10 + 50 + 18 && var2 < (this.height / 4 - 10 + 50 + 18) + 20) {
Keyboard.enableRepeatEvents(true);
serverTextBox = true;
usernameTextBox = false;
} else {
Keyboard.enableRepeatEvents(false);
usernameTextBox = false;
serverTextBox = false;
}
}
super.mouseClicked(var1, var2, var3);
}
private int func_4067_a(String var1, int var2) {
try {
return Integer.parseInt(var1.trim());
} catch (Exception var4) {
return var2;
}
}
protected void keyTyped(char var1, int var2) {
if(this.serverTextBox) {
if(var1 == 22) {
String var3 = null;
if(var3 == null) {
var3 = "";
}
int var4 = 32 - this.serverAddress.length();
if(var4 > var3.length()) {
var4 = var3.length();
}
if(var4 > 0) {
this.serverAddress = this.serverAddress + var3.substring(0, var4);
}
}
if(var1 == 13) {
this.actionPerformed((GuiButton)this.controlList.get(0));
}
if(var2 == 14 && this.serverAddress.length() > 0) {
this.serverAddress = this.serverAddress.substring(0, this.serverAddress.length() - 1);
}
if(" !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\'abcdefghijklmnopqrstuvwxyz{|}~\u2302\u00c7\u00fc\u00e9\u00e2\u00e4\u00e0\u00e5\u00e7\u00ea\u00eb\u00e8\u00ef\u00ee\u00ec\u00c4\u00c5\u00c9\u00e6\u00c6\u00f4\u00f6\u00f2\u00fb\u00f9\u00ff\u00d6\u00dc\u00f8\u00a3\u00d8\u00d7\u0192\u00e1\u00ed\u00f3\u00fa\u00f1\u00d1\u00aa\u00ba\u00bf\u00ae\u00ac\u00bd\u00bc\u00a1\u00ab\u00bb".indexOf(var1) >= 0 && this.serverAddress.length() < 32) {
this.serverAddress = this.serverAddress + var1;
}
((GuiButton)this.controlList.get(0)).enabled = this.serverAddress.length() > 0 && this.username.length() > 0 && !this.serverAddress.isBlank() && !this.username.isBlank() && !this.serverAddress.isEmpty() && !this.username.isEmpty();
} else if(this.usernameTextBox) {
if(var1 == 22) {
String var3 = null;
if(var3 == null) {
var3 = "";
}
int var4 = 16 - this.username.length();
if(var4 > var3.length()) {
var4 = var3.length();
}
if(var4 > 0) {
this.username = this.username + var3.substring(0, var4);
}
}
if(var1 == 13) {
this.actionPerformed((GuiButton)this.controlList.get(0));
}
if(var2 == 14 && this.username.length() > 0) {
this.username = this.username.substring(0, this.username.length() - 1);
}
if(" !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\'abcdefghijklmnopqrstuvwxyz{|}~\u2302\u00c7\u00fc\u00e9\u00e2\u00e4\u00e0\u00e5\u00e7\u00ea\u00eb\u00e8\u00ef\u00ee\u00ec\u00c4\u00c5\u00c9\u00e6\u00c6\u00f4\u00f6\u00f2\u00fb\u00f9\u00ff\u00d6\u00dc\u00f8\u00a3\u00d8\u00d7\u0192\u00e1\u00ed\u00f3\u00fa\u00f1\u00d1\u00aa\u00ba\u00bf\u00ae\u00ac\u00bd\u00bc\u00a1\u00ab\u00bb".indexOf(var1) >= 0 && this.username.length() < 16) {
if(containsOnlyAZ09("" + var1)) {
this.username = this.username + var1;
}
}
((GuiButton)this.controlList.get(0)).enabled = this.serverAddress.length() > 0 && this.username.length() > 0 && !this.serverAddress.isBlank() && !this.username.isBlank() && !this.serverAddress.isEmpty() && !this.username.isEmpty();
}
}
public void drawScreen(int var1, int var2, float var3) {
this.drawDefaultBackground();
this.drawCenteredString(this.fontRenderer, "Play Multiplayer", this.width / 2, this.height / 4 - 60 + 20, 16777215);
//this.drawString(this.fontRenderer, "Minecraft Multiplayer is currently not finished, but there", this.width / 2 - 140, this.height / 4 - 60 + 60 + 0, 10526880);
//this.drawString(this.fontRenderer, "is some buggy early testing going on.", this.width / 2 - 140, this.height / 4 - 60 + 60 + 9, 10526880);
this.drawString(this.fontRenderer, "Server IP:", this.width / 2 - 100, this.height / 4 - 50 + 60 + 36, 10526880);
this.drawString(this.fontRenderer, "Username:", this.width / 2 - 100, this.height / 4 - 90 + 60 + 36, 10526880);
int var4 = this.width / 2 - 100;
int var5 = this.height / 4 - 10 + 50 + 18;
short var6 = 200;
byte var7 = 20;
this.drawRect(var4 - 1, var5 - 1, var4 + var6 + 1, var5 + var7 + 1, -6250336);
this.drawRect(var4, var5, var4 + var6, var5 + var7, -16777216);
if(this.serverTextBox) {
this.drawString(this.fontRenderer, this.serverAddress + (this.parentScreen / 6 % 2 == 0 ? "_" : ""), var4 + 4, var5 + (var7 - 8) / 2, 14737632);
} else {
this.drawString(this.fontRenderer, this.serverAddress, var4 + 4, var5 + (var7 - 8) / 2, 14737632);
}
int var8 = this.width / 2 - 100;
int var9 = this.height / 4 - 10 + 10 + 18;
short var10 = 200;
byte var11 = 20;
this.drawRect(var8 - 1, var9 - 1, var8 + var10 + 1, var9 + var11 + 1, -6250336);
this.drawRect(var8, var9, var8 + var10, var9 + var11, -16777216);
if(this.usernameTextBox) {
this.drawString(this.fontRenderer, this.username + (this.parentScreen / 6 % 2 == 0 ? "_" : ""), var8 + 4, var9 + (var11 - 8) / 2, 14737632);
} else {
this.drawString(this.fontRenderer, this.username, var8 + 4, var9 + (var11 - 8) / 2, 14737632);
}
super.drawScreen(var1, var2, var3);
}
private boolean containsOnlyAZ09(String input) {
return input.matches("[a-z0-9]+") || input.matches("[A-Z0-9]+");
}
}

View File

@ -30,9 +30,9 @@ public class ItemBoat extends Item {
int var25 = var24.blockX;
int var26 = var24.blockY;
int var27 = var24.blockZ;
//if(!var2.multiplayerWorld) {
if(!var2.multiplayerWorld) {
var2.entityJoinedWorld(new EntityBoat(var2, (double)((float)var25 + 0.5F), (double)((float)var26 + 1.5F), (double)((float)var27 + 0.5F)));
//}
}
--var1.stackSize;
}

View File

@ -9,9 +9,9 @@ public class ItemBow extends Item {
public ItemStack onItemRightClick(ItemStack var1, World var2, EntityPlayer var3) {
if(var3.inventory.consumeInventoryItem(Item.arrow.shiftedIndex)) {
var2.playSoundAtEntity(var3, "random.bow", 1.0F, 1.0F / (itemRand.nextFloat() * 0.4F + 0.8F));
//if(!var2.multiplayerWorld) {
if(!var2.multiplayerWorld) {
var2.entityJoinedWorld(new EntityArrow(var2, var3));
//}
}
}
return var1;

View File

@ -21,9 +21,9 @@ public class ItemFishingRod extends Item {
var3.func_457_w();
} else {
var2.playSoundAtEntity(var3, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F));
//if(!var2.multiplayerWorld) {
if(!var2.multiplayerWorld) {
var2.entityJoinedWorld(new EntityFish(var2, var3));
//}
}
var3.func_457_w();
}

View File

@ -15,9 +15,9 @@ public class ItemHoe extends Item {
} else {
Block var10 = Block.tilledField;
var3.playSoundEffect((double)((float)var4 + 0.5F), (double)((float)var5 + 0.5F), (double)((float)var6 + 0.5F), var10.stepSound.func_1145_d(), (var10.stepSound.func_1147_b() + 1.0F) / 2.0F, var10.stepSound.func_1144_c() * 0.8F);
//if(var3.multiplayerWorld) {
//return true;
//} else {
if(var3.multiplayerWorld) {
return true;
} else {
var3.setBlockWithNotify(var4, var5, var6, var10.blockID);
var1.damageItem(1);
if(var3.rand.nextInt(8) == 0 && var8 == Block.grass.blockID) {
@ -35,7 +35,7 @@ public class ItemHoe extends Item {
}
return true;
//}
}
}
}

View File

@ -12,9 +12,9 @@ public class ItemMinecart extends Item {
public boolean onItemUse(ItemStack var1, EntityPlayer var2, World var3, int var4, int var5, int var6, int var7) {
int var8 = var3.getBlockId(var4, var5, var6);
if(var8 == Block.minecartTrack.blockID) {
//(!var3.multiplayerWorld) {
if(!var3.multiplayerWorld) {
var3.entityJoinedWorld(new EntityMinecart(var3, (double)((float)var4 + 0.5F), (double)((float)var5 + 0.5F), (double)((float)var6 + 0.5F), this.field_317_a));
//}
}
--var1.stackSize;
return true;

View File

@ -9,9 +9,9 @@ public class ItemSnowball extends Item {
public ItemStack onItemRightClick(ItemStack var1, World var2, EntityPlayer var3) {
--var1.stackSize;
var2.playSoundAtEntity(var3, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F));
//if(!var2.multiplayerWorld) {
if(!var2.multiplayerWorld) {
var2.entityJoinedWorld(new EntitySnowball(var2, var3));
//}
}
return var1;
}

View File

@ -0,0 +1,421 @@
package net.minecraft.src;
import java.io.IOException;
import java.net.UnknownHostException;
import java.util.Random;
import net.minecraft.client.Minecraft;
public class NetClientHandler extends NetHandler {
private boolean disconnected = false;
private NetworkManager netManager;
public String field_1209_a;
private Minecraft mc;
private WorldClient worldClient;
private boolean field_1210_g = false;
Random rand = new Random();
public NetClientHandler(Minecraft var1, String var2) throws IOException, UnknownHostException {
this.mc = var1;
this.netManager = new NetworkManager(var2, this);
}
public void processReadPackets() {
if(!this.disconnected) {
this.netManager.readPacket();
}
}
public void handleLogin(Packet1Login var1) {
this.mc.field_6327_b = new PlayerControllerMP(this.mc, this);
this.worldClient = new WorldClient(this, var1.field_4074_d, var1.field_4073_e);
this.worldClient.multiplayerWorld = true;
this.mc.func_6261_a(this.worldClient);
this.mc.displayGuiScreen(new GuiDownloadTerrain(this));
this.mc.thePlayer.field_620_ab = var1.protocolVersion;
System.out.println("clientEntityId: " + var1.protocolVersion);
}
public void handlePickupSpawn(Packet21PickupSpawn var1) {
double var2 = (double)var1.xPosition / 32.0D;
double var4 = (double)var1.yPosition / 32.0D;
double var6 = (double)var1.zPosition / 32.0D;
EntityItem var8 = new EntityItem(this.worldClient, var2, var4, var6, new ItemStack(var1.itemId, var1.count));
var8.motionX = (double)var1.rotation / 128.0D;
var8.motionY = (double)var1.pitch / 128.0D;
var8.motionZ = (double)var1.roll / 128.0D;
var8.field_9303_br = var1.xPosition;
var8.field_9302_bs = var1.yPosition;
var8.field_9301_bt = var1.zPosition;
this.worldClient.func_712_a(var1.entityId, var8);
}
public void handleVehicleSpawn(Packet23VehicleSpawn var1) {
double var2 = (double)var1.xPosition / 32.0D;
double var4 = (double)var1.yPosition / 32.0D;
double var6 = (double)var1.zPosition / 32.0D;
Object var8 = null;
if(var1.type == 10) {
var8 = new EntityMinecart(this.worldClient, var2, var4, var6, 0);
}
if(var1.type == 11) {
var8 = new EntityMinecart(this.worldClient, var2, var4, var6, 1);
}
if(var1.type == 12) {
var8 = new EntityMinecart(this.worldClient, var2, var4, var6, 2);
}
if(var1.type == 90) {
var8 = new EntityFish(this.worldClient, var2, var4, var6);
}
if(var1.type == 60) {
var8 = new EntityArrow(this.worldClient, var2, var4, var6);
}
if(var1.type == 61) {
var8 = new EntitySnowball(this.worldClient, var2, var4, var6);
}
if(var1.type == 1) {
var8 = new EntityBoat(this.worldClient, var2, var4, var6);
}
if(var1.type == 50) {
var8 = new EntityTNTPrimed(this.worldClient, var2, var4, var6);
}
if(var8 != null) {
((Entity)var8).field_9303_br = var1.xPosition;
((Entity)var8).field_9302_bs = var1.yPosition;
((Entity)var8).field_9301_bt = var1.zPosition;
((Entity)var8).rotationYaw = 0.0F;
((Entity)var8).rotationPitch = 0.0F;
((Entity)var8).field_620_ab = var1.entityId;
this.worldClient.func_712_a(var1.entityId, (Entity)var8);
}
}
public void func_6498_a(Packet28 var1) {
Entity var2 = this.func_12246_a(var1.field_6367_a);
if(var2 != null) {
var2.setVelocity((double)var1.field_6366_b / 8000.0D, (double)var1.field_6369_c / 8000.0D, (double)var1.field_6368_d / 8000.0D);
}
}
public void handleNamedEntitySpawn(Packet20NamedEntitySpawn var1) {
double var2 = (double)var1.xPosition / 32.0D;
double var4 = (double)var1.yPosition / 32.0D;
double var6 = (double)var1.zPosition / 32.0D;
float var8 = (float)(var1.rotation * 360) / 256.0F;
float var9 = (float)(var1.pitch * 360) / 256.0F;
EntityOtherPlayerMP var10 = new EntityOtherPlayerMP(this.mc.theWorld, var1.name);
var10.field_9303_br = var1.xPosition;
var10.field_9302_bs = var1.yPosition;
var10.field_9301_bt = var1.zPosition;
int var11 = var1.currentItem;
if(var11 == 0) {
var10.inventory.mainInventory[var10.inventory.currentItem] = null;
} else {
var10.inventory.mainInventory[var10.inventory.currentItem] = new ItemStack(var11);
}
var10.setPositionAndRotation(var2, var4, var6, var8, var9);
this.worldClient.func_712_a(var1.entityId, var10);
}
public void handleEntityTeleport(Packet34EntityTeleport var1) {
Entity var2 = this.func_12246_a(var1.entityId);
if(var2 != null) {
var2.field_9303_br = var1.xPosition;
var2.field_9302_bs = var1.yPosition;
var2.field_9301_bt = var1.zPosition;
double var3 = (double)var2.field_9303_br / 32.0D;
double var5 = (double)var2.field_9302_bs / 32.0D + 1.0D / 64.0D;
double var7 = (double)var2.field_9301_bt / 32.0D;
float var9 = (float)(var1.yaw * 360) / 256.0F;
float var10 = (float)(var1.pitch * 360) / 256.0F;
var2.setPositionAndRotation2(var3, var5, var7, var9, var10, 3);
}
}
public void handleEntity(Packet30Entity var1) {
Entity var2 = this.func_12246_a(var1.entityId);
if(var2 != null) {
var2.field_9303_br += var1.xPosition;
var2.field_9302_bs += var1.yPosition;
var2.field_9301_bt += var1.zPosition;
double var3 = (double)var2.field_9303_br / 32.0D;
double var5 = (double)var2.field_9302_bs / 32.0D + 1.0D / 64.0D;
double var7 = (double)var2.field_9301_bt / 32.0D;
float var9 = var1.rotating ? (float)(var1.yaw * 360) / 256.0F : var2.rotationYaw;
float var10 = var1.rotating ? (float)(var1.pitch * 360) / 256.0F : var2.rotationPitch;
var2.setPositionAndRotation2(var3, var5, var7, var9, var10, 3);
}
}
public void handleDestroyEntity(Packet29DestroyEntity var1) {
this.worldClient.func_710_c(var1.entityId);
}
public void handleFlying(Packet10Flying var1) {
EntityPlayerSP var2 = this.mc.thePlayer;
double var3 = var2.posX;
double var5 = var2.posY;
double var7 = var2.posZ;
float var9 = var2.rotationYaw;
float var10 = var2.rotationPitch;
if(var1.moving) {
var3 = var1.xPosition;
var5 = var1.yPosition;
var7 = var1.zPosition;
}
if(var1.rotating) {
var9 = var1.yaw;
var10 = var1.pitch;
}
var2.field_9287_aY = 0.0F;
var2.motionX = var2.motionY = var2.motionZ = 0.0D;
var2.setPositionAndRotation(var3, var5, var7, var9, var10);
var1.xPosition = var2.posX;
var1.yPosition = var2.boundingBox.minY;
var1.zPosition = var2.posZ;
var1.stance = var2.posY;
this.netManager.addToSendQueue(var1);
if(!this.field_1210_g) {
this.mc.thePlayer.prevPosX = this.mc.thePlayer.posX;
this.mc.thePlayer.prevPosY = this.mc.thePlayer.posY;
this.mc.thePlayer.prevPosZ = this.mc.thePlayer.posZ;
this.field_1210_g = true;
this.mc.displayGuiScreen((GuiScreen)null);
}
}
public void handlePreChunk(Packet50PreChunk var1) {
this.worldClient.func_713_a(var1.xPosition, var1.yPosition, var1.mode);
}
public void handleMultiBlockChange(Packet52MultiBlockChange var1) {
Chunk var2 = this.worldClient.getChunkFromChunkCoords(var1.xPosition, var1.zPosition);
int var3 = var1.xPosition * 16;
int var4 = var1.zPosition * 16;
for(int var5 = 0; var5 < var1.size; ++var5) {
short var6 = var1.coordinateArray[var5];
int var7 = var1.typeArray[var5] & 255;
byte var8 = var1.metadataArray[var5];
int var9 = var6 >> 12 & 15;
int var10 = var6 >> 8 & 15;
int var11 = var6 & 255;
var2.setBlockIDWithMetadata(var9, var11, var10, var7, var8);
this.worldClient.func_711_c(var9 + var3, var11, var10 + var4, var9 + var3, var11, var10 + var4);
this.worldClient.func_701_b(var9 + var3, var11, var10 + var4, var9 + var3, var11, var10 + var4);
}
}
public void handleMapChunk(Packet51MapChunk var1) {
this.worldClient.func_711_c(var1.xPosition, var1.yPosition, var1.zPosition, var1.xPosition + var1.xSize - 1, var1.yPosition + var1.ySize - 1, var1.zPosition + var1.zSize - 1);
this.worldClient.func_693_a(var1.xPosition, var1.yPosition, var1.zPosition, var1.xSize, var1.ySize, var1.zSize, var1.chunk);
}
public void handleBlockChange(Packet53BlockChange var1) {
this.worldClient.func_714_c(var1.xPosition, var1.yPosition, var1.zPosition, var1.type, var1.metadata);
}
public void handleKickDisconnect(Packet255KickDisconnect var1) {
this.netManager.networkShutdown("Got kicked");
this.disconnected = true;
this.mc.func_6261_a((World)null);
this.mc.displayGuiScreen(new GuiConnectFailed("Disconnected by server", var1.reason));
}
public void handleErrorMessage(String var1) {
if(!this.disconnected) {
this.disconnected = true;
this.mc.func_6261_a((World)null);
this.mc.displayGuiScreen(new GuiConnectFailed("Connection lost", var1));
}
}
public void addToSendQueue(Packet var1) {
if(!this.disconnected) {
this.netManager.addToSendQueue(var1);
}
}
public void handleCollect(Packet22Collect var1) {
Entity var2 = this.func_12246_a(var1.collectedEntityId);
Object var3 = (EntityLiving)this.func_12246_a(var1.collectorEntityId);
if(var3 == null) {
var3 = this.mc.thePlayer;
}
if(var2 != null) {
this.worldClient.playSoundAtEntity(var2, "random.pop", 0.2F, ((this.rand.nextFloat() - this.rand.nextFloat()) * 0.7F + 1.0F) * 2.0F);
this.mc.field_6321_h.func_1192_a(new EntityPickupFX(this.mc.theWorld, var2, (Entity)var3, -0.5F));
this.worldClient.func_710_c(var1.collectedEntityId);
}
}
public void handleBlockItemSwitch(Packet16BlockItemSwitch var1) {
Entity var2 = this.func_12246_a(var1.unused);
if(var2 != null) {
EntityPlayer var3 = (EntityPlayer)var2;
int var4 = var1.id;
if(var4 == 0) {
var3.inventory.mainInventory[var3.inventory.currentItem] = null;
} else {
var3.inventory.mainInventory[var3.inventory.currentItem] = new ItemStack(var4);
}
}
}
public void handleChat(Packet3Chat var1) {
this.mc.ingameGUI.addChatMessage(var1.message);
}
public void handleArmAnimation(Packet18ArmAnimation var1) {
Entity var2 = this.func_12246_a(var1.entityId);
if(var2 != null) {
if(var1.animate == 1) {
EntityPlayer var3 = (EntityPlayer)var2;
var3.func_457_w();
} else if(var1.animate == 100) {
var2.field_9300_bu = true;
} else if(var1.animate == 101) {
var2.field_9300_bu = false;
} else if(var1.animate == 102) {
var2.field_9299_bv = true;
} else if(var1.animate == 103) {
var2.field_9299_bv = false;
} else if(var1.animate == 104) {
var2.field_12240_bw = true;
} else if(var1.animate == 105) {
var2.field_12240_bw = false;
} else if(var1.animate == 2) {
var2.func_9280_g();
}
}
}
public void handleAddToInventory(Packet17AddToInventory var1) {
this.mc.thePlayer.inventory.addItemStackToInventory(new ItemStack(var1.id, var1.count, var1.durability));
}
public void handleHandshake(Packet2Handshake var1) {
this.addToSendQueue(new Packet1Login(this.mc.field_6320_i.inventory, "Password", 6));
}
public void disconnect() {
this.disconnected = true;
this.netManager.networkShutdown("Closed");
}
public void handleMobSpawn(Packet24MobSpawn var1) {
double var2 = (double)var1.xPosition / 32.0D;
double var4 = (double)var1.yPosition / 32.0D;
double var6 = (double)var1.zPosition / 32.0D;
float var8 = (float)(var1.yaw * 360) / 256.0F;
float var9 = (float)(var1.pitch * 360) / 256.0F;
EntityLiving var10 = (EntityLiving)EntityList.createEntity(var1.type, this.mc.theWorld);
var10.field_9303_br = var1.xPosition;
var10.field_9302_bs = var1.yPosition;
var10.field_9301_bt = var1.zPosition;
var10.field_620_ab = var1.entityId;
var10.setPositionAndRotation(var2, var4, var6, var8, var9);
var10.field_9343_G = true;
this.worldClient.func_712_a(var1.entityId, var10);
}
public void handleUpdateTime(Packet4UpdateTime var1) {
this.mc.theWorld.setWorldTime(var1.time);
}
public void handlePlayerInventory(Packet5PlayerInventory var1) {
EntityPlayerSP var2 = this.mc.thePlayer;
if(var1.type == -1) {
var2.inventory.mainInventory = var1.stacks;
}
if(var1.type == -2) {
var2.inventory.craftingInventory = var1.stacks;
}
if(var1.type == -3) {
var2.inventory.armorInventory = var1.stacks;
}
}
public void handleComplexEntity(Packet59ComplexEntity var1) {
if(var1.entityNBT.getInteger("x") == var1.xPosition) {
if(var1.entityNBT.getInteger("y") == var1.yPosition) {
if(var1.entityNBT.getInteger("z") == var1.zPosition) {
TileEntity var2 = this.worldClient.getBlockTileEntity(var1.xPosition, var1.yPosition, var1.zPosition);
if(var2 != null) {
try {
var2.readFromNBT(var1.entityNBT);
} catch (Exception var4) {
}
this.worldClient.func_701_b(var1.xPosition, var1.yPosition, var1.zPosition, var1.xPosition, var1.yPosition, var1.zPosition);
}
}
}
}
}
public void handleSpawnPosition(Packet6SpawnPosition var1) {
this.worldClient.spawnX = var1.xPosition;
this.worldClient.spawnY = var1.yPosition;
this.worldClient.spawnZ = var1.zPosition;
}
public void func_6497_a(Packet39 var1) {
Object var2 = this.func_12246_a(var1.field_6365_a);
Entity var3 = this.func_12246_a(var1.field_6364_b);
if(var1.field_6365_a == this.mc.thePlayer.field_620_ab) {
var2 = this.mc.thePlayer;
}
if(var2 != null) {
((Entity)var2).mountEntity(var3);
}
}
public void func_9447_a(Packet38 var1) {
Entity var2 = this.func_12246_a(var1.field_9274_a);
if(var2 != null) {
var2.func_9282_a(var1.field_9273_b);
}
}
private Entity func_12246_a(int var1) {
return (Entity)(var1 == this.mc.thePlayer.field_620_ab ? this.mc.thePlayer : this.worldClient.func_709_b(var1));
}
public void handleHealth(Packet8 var1) {
this.mc.thePlayer.setHealth(var1.healthMP);
}
public void func_9448_a(Packet9 var1) {
this.mc.respawn();
}
public void func_12245_a(Packet60 var1) {
Explosion var2 = new Explosion(this.mc.theWorld, (Entity)null, var1.field_12236_a, var1.field_12235_b, var1.field_12239_c, var1.field_12238_d);
var2.field_12251_g = var1.field_12237_e;
var2.func_12247_b();
}
}

View File

@ -0,0 +1,140 @@
package net.minecraft.src;
public class NetHandler {
public void handleMapChunk(Packet51MapChunk var1) {
}
public void func_4114_b(Packet var1) {
}
public void handleErrorMessage(String var1) {
}
public void handleKickDisconnect(Packet255KickDisconnect var1) {
this.func_4114_b(var1);
}
public void handleLogin(Packet1Login var1) {
this.func_4114_b(var1);
}
public void handleFlying(Packet10Flying var1) {
this.func_4114_b(var1);
}
public void handleMultiBlockChange(Packet52MultiBlockChange var1) {
this.func_4114_b(var1);
}
public void handleBlockDig(Packet14BlockDig var1) {
this.func_4114_b(var1);
}
public void handleBlockChange(Packet53BlockChange var1) {
this.func_4114_b(var1);
}
public void handlePreChunk(Packet50PreChunk var1) {
this.func_4114_b(var1);
}
public void handleNamedEntitySpawn(Packet20NamedEntitySpawn var1) {
this.func_4114_b(var1);
}
public void handleEntity(Packet30Entity var1) {
this.func_4114_b(var1);
}
public void handleEntityTeleport(Packet34EntityTeleport var1) {
this.func_4114_b(var1);
}
public void handlePlace(Packet15Place var1) {
this.func_4114_b(var1);
}
public void handleBlockItemSwitch(Packet16BlockItemSwitch var1) {
this.func_4114_b(var1);
}
public void handleDestroyEntity(Packet29DestroyEntity var1) {
this.func_4114_b(var1);
}
public void handlePickupSpawn(Packet21PickupSpawn var1) {
this.func_4114_b(var1);
}
public void handleCollect(Packet22Collect var1) {
this.func_4114_b(var1);
}
public void handleChat(Packet3Chat var1) {
this.func_4114_b(var1);
}
public void handleAddToInventory(Packet17AddToInventory var1) {
this.func_4114_b(var1);
}
public void handleVehicleSpawn(Packet23VehicleSpawn var1) {
this.func_4114_b(var1);
}
public void handleArmAnimation(Packet18ArmAnimation var1) {
this.func_4114_b(var1);
}
public void handleHandshake(Packet2Handshake var1) {
this.func_4114_b(var1);
}
public void handleMobSpawn(Packet24MobSpawn var1) {
this.func_4114_b(var1);
}
public void handleUpdateTime(Packet4UpdateTime var1) {
this.func_4114_b(var1);
}
public void handlePlayerInventory(Packet5PlayerInventory var1) {
this.func_4114_b(var1);
}
public void handleComplexEntity(Packet59ComplexEntity var1) {
this.func_4114_b(var1);
}
public void handleSpawnPosition(Packet6SpawnPosition var1) {
this.func_4114_b(var1);
}
public void func_6498_a(Packet28 var1) {
this.func_4114_b(var1);
}
public void func_6497_a(Packet39 var1) {
this.func_4114_b(var1);
}
public void func_6499_a(Packet7 var1) {
this.func_4114_b(var1);
}
public void func_9447_a(Packet38 var1) {
this.func_4114_b(var1);
}
public void handleHealth(Packet8 var1) {
this.func_4114_b(var1);
}
public void func_9448_a(Packet9 var1) {
this.func_4114_b(var1);
}
public void func_12245_a(Packet60 var1) {
this.func_4114_b(var1);
}
}

View File

@ -0,0 +1,232 @@
package net.minecraft.src;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.IOException;
import java.io.InputStream;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import net.PeytonPlayz585.opengl.GL11;
public class NetworkManager {
private Object sendQueueLock = new Object();
private boolean isRunning = true;
private List dataPackets = Collections.synchronizedList(new ArrayList());
private List chunkDataPackets = Collections.synchronizedList(new ArrayList());
private NetHandler netHandler;
private boolean isServerTerminating = false;
private boolean isTerminating = false;
private String terminationReason = "";
private int timeSinceLastRead = 0;
private int sendQueueByteLength = 0;
private int chunkDataSendCounter = 0;
public NetworkManager(String var4, NetHandler var3) throws IOException {
this.netHandler = var3;
String uri = null;
System.out.println(uri);
if(var4.startsWith("ws://")) {
uri = var4.substring(5);
}else if(var4.startsWith("wss://")){
uri = var4.substring(6);
}else if(!var4.contains("://")){
uri = var4;
var4 = "ws://" + var4;
}else {
throw new IOException("Invalid URI Protocol!");
}
if(!GL11.startConnection(var4)) {
throw new IOException("Websocket to " + uri + " failed!");
}
}
public void addToSendQueue(Packet var1) {
if(!this.isServerTerminating) {
Object var2 = this.sendQueueLock;
synchronized(var2) {
this.sendQueueByteLength += var1.getPacketSize() + 1;
if(var1.isChunkDataPacket) {
this.chunkDataPackets.add(var1);
} else {
this.dataPackets.add(var1);
}
this.sendPacket();
}
}
}
private ByteArrayOutputStream sendBuffer;
private void sendPacket() {
try {
boolean var1 = true;
Packet var2;
Object var3;
if(!this.dataPackets.isEmpty()) {
var1 = false;
var3 = this.sendQueueLock;
synchronized(var3) {
var2 = (Packet)this.dataPackets.remove(0);
this.sendQueueByteLength -= var2.getPacketSize() + 1;
}
sendBuffer = new ByteArrayOutputStream();
DataOutputStream yee = new DataOutputStream(sendBuffer);
Packet.writePacket(var2, yee);
GL11.writePacket(sendBuffer.toByteArray());
}
if((var1 || this.chunkDataSendCounter-- <= 0) && !this.chunkDataPackets.isEmpty()) {
var1 = false;
var3 = this.sendQueueLock;
synchronized(var3) {
var2 = (Packet)this.chunkDataPackets.remove(0);
this.sendQueueByteLength -= var2.getPacketSize() + 1;
}
sendBuffer = new ByteArrayOutputStream();
DataOutputStream yee = new DataOutputStream(sendBuffer);
Packet.writePacket(var2, yee);
GL11.writePacket(sendBuffer.toByteArray());
this.chunkDataSendCounter = 50;
}
if(var1) {
Thread.sleep(10L);
}
} catch (InterruptedException var8) {
} catch (Exception var9) {
if(!this.isTerminating) {
this.onNetworkError(var9);
}
}
}
private ByteBuffer oldChunkBuffer = null;
private LinkedList<ByteBuffer> readChunks = new LinkedList();
public void readPacket() {
if(this.sendQueueByteLength > 1048576) {
this.networkShutdown("Send buffer overflow");
}
readChunks.clear();
if(oldChunkBuffer != null) {
readChunks.add(oldChunkBuffer);
}
byte[] packet;
while((packet = GL11.readPacket()) != null) {
readChunks.add(ByteBuffer.wrap(packet));
}
if(!readChunks.isEmpty()) {
this.timeSinceLastRead = 0;
int cap = 0;
for(ByteBuffer b : readChunks) {
cap += b.limit();
}
ByteBuffer stream = ByteBuffer.allocate(cap);
for(ByteBuffer b : readChunks) {
stream.put(b);
}
stream.flip();
DataInputStream packetStream = new DataInputStream(new ByteBufferDirectInputStream(stream));
//int var1 = 100;
while(stream.hasRemaining()) {
stream.mark();
try {
Packet pkt = Packet.readPacket(packetStream);
if(pkt == null) {
this.networkShutdown("End of Stream");
}
pkt.processPacket(this.netHandler);
} catch (EOFException e) {
stream.reset();
break;
} catch (IOException e) {
continue;
} catch(ArrayIndexOutOfBoundsException e) {
continue;
} catch(NullPointerException e) {
continue;
} catch(Throwable e2) {
e2.printStackTrace();
}
}
if(stream.hasRemaining()) {
oldChunkBuffer = stream.slice();
}else {
oldChunkBuffer = null;
}
} else {
if(this.timeSinceLastRead++ == 1200) {
this.networkShutdown("Timed out");
}
}
if(this.isTerminating && this.readChunks.isEmpty()) {
this.netHandler.handleErrorMessage(this.terminationReason);
}
}
private void onNetworkError(Exception var1) {
var1.printStackTrace();
this.networkShutdown("Internal exception: " + var1.toString());
}
public void networkShutdown(String var1) {
if(this.isRunning) {
this.isTerminating = true;
this.terminationReason = var1;
this.isRunning = false;
if(GL11.connectionOpen()) {
GL11.endConnection();
}
}
}
static boolean isRunning(NetworkManager var0) {
return var0.isRunning;
}
static boolean isServerTerminating(NetworkManager var0) {
return var0.isServerTerminating;
}
static void readNetworkPacket(NetworkManager var0) {
var0.readPacket();
}
static void sendNetworkPacket(NetworkManager var0) {
var0.sendPacket();
}
private static class ByteBufferDirectInputStream extends InputStream {
private ByteBuffer buf;
private ByteBufferDirectInputStream(ByteBuffer b) {
this.buf = b;
}
@Override
public int read() throws IOException {
return buf.remaining() > 0 ? ((int)buf.get() & 0xFF) : -1;
}
@Override
public int available() {
return buf.remaining();
}
}
}

View File

@ -0,0 +1,110 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public abstract class Packet {
private static Map packetIdToClassMap = new HashMap();
private static Map packetClassToIdMap = new HashMap();
public boolean isChunkDataPacket = false;
static void addIdClassMapping(int var0, Class var1) {
if(packetIdToClassMap.containsKey(Integer.valueOf(var0))) {
throw new IllegalArgumentException("Duplicate packet id:" + var0);
} else if(packetClassToIdMap.containsKey(var1)) {
throw new IllegalArgumentException("Duplicate packet class:" + var1);
} else {
packetIdToClassMap.put(Integer.valueOf(var0), var1);
packetClassToIdMap.put(var1, Integer.valueOf(var0));
}
}
public static Packet getNewPacket(int var0) {
try {
Class var1 = (Class)packetIdToClassMap.get(Integer.valueOf(var0));
return var1 == null ? null : (Packet)var1.newInstance();
} catch (Exception var2) {
var2.printStackTrace();
System.out.println("Skipping packet with id " + var0);
return null;
}
}
public final int getPacketId() {
return ((Integer)packetClassToIdMap.get(this.getClass())).intValue();
}
public static Packet readPacket(DataInputStream var0) throws IOException {
int var1 = var0.read();
if(var1 == -1) {
return null;
} else {
Packet var2 = getNewPacket(var1);
if(var2 == null) {
throw new IOException("Bad packet id " + var1);
} else {
var2.readPacketData(var0);
return var2;
}
}
}
public static void writePacket(Packet var0, DataOutputStream var1) throws IOException {
var1.write(var0.getPacketId());
var0.writePacketData(var1);
}
public abstract void readPacketData(DataInputStream var1) throws IOException;
public abstract void writePacketData(DataOutputStream var1) throws IOException;
public abstract void processPacket(NetHandler var1);
public abstract int getPacketSize();
static {
addIdClassMapping(0, Packet0KeepAlive.class);
addIdClassMapping(1, Packet1Login.class);
addIdClassMapping(2, Packet2Handshake.class);
addIdClassMapping(3, Packet3Chat.class);
addIdClassMapping(4, Packet4UpdateTime.class);
addIdClassMapping(5, Packet5PlayerInventory.class);
addIdClassMapping(6, Packet6SpawnPosition.class);
addIdClassMapping(7, Packet7.class);
addIdClassMapping(8, Packet8.class);
addIdClassMapping(9, Packet9.class);
addIdClassMapping(10, Packet10Flying.class);
addIdClassMapping(11, Packet11PlayerPosition.class);
addIdClassMapping(12, Packet12PlayerLook.class);
addIdClassMapping(13, Packet13PlayerLookMove.class);
addIdClassMapping(14, Packet14BlockDig.class);
addIdClassMapping(15, Packet15Place.class);
addIdClassMapping(16, Packet16BlockItemSwitch.class);
addIdClassMapping(17, Packet17AddToInventory.class);
addIdClassMapping(18, Packet18ArmAnimation.class);
addIdClassMapping(20, Packet20NamedEntitySpawn.class);
addIdClassMapping(21, Packet21PickupSpawn.class);
addIdClassMapping(22, Packet22Collect.class);
addIdClassMapping(23, Packet23VehicleSpawn.class);
addIdClassMapping(24, Packet24MobSpawn.class);
addIdClassMapping(28, Packet28.class);
addIdClassMapping(29, Packet29DestroyEntity.class);
addIdClassMapping(30, Packet30Entity.class);
addIdClassMapping(31, Packet31RelEntityMove.class);
addIdClassMapping(32, Packet32EntityLook.class);
addIdClassMapping(33, Packet33RelEntityMoveLook.class);
addIdClassMapping(34, Packet34EntityTeleport.class);
addIdClassMapping(38, Packet38.class);
addIdClassMapping(39, Packet39.class);
addIdClassMapping(50, Packet50PreChunk.class);
addIdClassMapping(51, Packet51MapChunk.class);
addIdClassMapping(52, Packet52MultiBlockChange.class);
addIdClassMapping(53, Packet53BlockChange.class);
addIdClassMapping(59, Packet59ComplexEntity.class);
addIdClassMapping(60, Packet60.class);
addIdClassMapping(255, Packet255KickDisconnect.class);
}
}

View File

@ -0,0 +1,20 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet0KeepAlive extends Packet {
public void processPacket(NetHandler var1) {
}
public void readPacketData(DataInputStream var1) throws IOException {
}
public void writePacketData(DataOutputStream var1) throws IOException {
}
public int getPacketSize() {
return 0;
}
}

View File

@ -0,0 +1,40 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet10Flying extends Packet {
public double xPosition;
public double yPosition;
public double zPosition;
public double stance;
public float yaw;
public float pitch;
public boolean onGround;
public boolean moving;
public boolean rotating;
public Packet10Flying() {
}
public Packet10Flying(boolean var1) {
this.onGround = var1;
}
public void processPacket(NetHandler var1) {
var1.handleFlying(this);
}
public void readPacketData(DataInputStream var1) throws IOException {
this.onGround = var1.read() != 0;
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.write(this.onGround ? 1 : 0);
}
public int getPacketSize() {
return 1;
}
}

View File

@ -0,0 +1,40 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet11PlayerPosition extends Packet10Flying {
public Packet11PlayerPosition() {
this.moving = true;
}
public Packet11PlayerPosition(double var1, double var3, double var5, double var7, boolean var9) {
this.xPosition = var1;
this.yPosition = var3;
this.stance = var5;
this.zPosition = var7;
this.onGround = var9;
this.moving = true;
}
public void readPacketData(DataInputStream var1) throws IOException {
this.xPosition = var1.readDouble();
this.yPosition = var1.readDouble();
this.stance = var1.readDouble();
this.zPosition = var1.readDouble();
super.readPacketData(var1);
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeDouble(this.xPosition);
var1.writeDouble(this.yPosition);
var1.writeDouble(this.stance);
var1.writeDouble(this.zPosition);
super.writePacketData(var1);
}
public int getPacketSize() {
return 33;
}
}

View File

@ -0,0 +1,34 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet12PlayerLook extends Packet10Flying {
public Packet12PlayerLook() {
this.rotating = true;
}
public Packet12PlayerLook(float var1, float var2, boolean var3) {
this.yaw = var1;
this.pitch = var2;
this.onGround = var3;
this.rotating = true;
}
public void readPacketData(DataInputStream var1) throws IOException {
this.yaw = var1.readFloat();
this.pitch = var1.readFloat();
super.readPacketData(var1);
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeFloat(this.yaw);
var1.writeFloat(this.pitch);
super.writePacketData(var1);
}
public int getPacketSize() {
return 9;
}
}

View File

@ -0,0 +1,48 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet13PlayerLookMove extends Packet10Flying {
public Packet13PlayerLookMove() {
this.rotating = true;
this.moving = true;
}
public Packet13PlayerLookMove(double var1, double var3, double var5, double var7, float var9, float var10, boolean var11) {
this.xPosition = var1;
this.yPosition = var3;
this.stance = var5;
this.zPosition = var7;
this.yaw = var9;
this.pitch = var10;
this.onGround = var11;
this.rotating = true;
this.moving = true;
}
public void readPacketData(DataInputStream var1) throws IOException {
this.xPosition = var1.readDouble();
this.yPosition = var1.readDouble();
this.stance = var1.readDouble();
this.zPosition = var1.readDouble();
this.yaw = var1.readFloat();
this.pitch = var1.readFloat();
super.readPacketData(var1);
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeDouble(this.xPosition);
var1.writeDouble(this.yPosition);
var1.writeDouble(this.stance);
var1.writeDouble(this.zPosition);
var1.writeFloat(this.yaw);
var1.writeFloat(this.pitch);
super.writePacketData(var1);
}
public int getPacketSize() {
return 41;
}
}

View File

@ -0,0 +1,48 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet14BlockDig extends Packet {
public int xPosition;
public int yPosition;
public int zPosition;
public int face;
public int status;
public Packet14BlockDig() {
}
public Packet14BlockDig(int var1, int var2, int var3, int var4, int var5) {
this.status = var1;
this.xPosition = var2;
this.yPosition = var3;
this.zPosition = var4;
this.face = var5;
}
public void readPacketData(DataInputStream var1) throws IOException {
this.status = var1.read();
this.xPosition = var1.readInt();
this.yPosition = var1.read();
this.zPosition = var1.readInt();
this.face = var1.read();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.write(this.status);
var1.writeInt(this.xPosition);
var1.write(this.yPosition);
var1.writeInt(this.zPosition);
var1.write(this.face);
}
public void processPacket(NetHandler var1) {
var1.handleBlockDig(this);
}
public int getPacketSize() {
return 11;
}
}

View File

@ -0,0 +1,48 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet15Place extends Packet {
public int id;
public int xPosition;
public int yPosition;
public int zPosition;
public int direction;
public Packet15Place() {
}
public Packet15Place(int var1, int var2, int var3, int var4, int var5) {
this.id = var1;
this.xPosition = var2;
this.yPosition = var3;
this.zPosition = var4;
this.direction = var5;
}
public void readPacketData(DataInputStream var1) throws IOException {
this.id = var1.readShort();
this.xPosition = var1.readInt();
this.yPosition = var1.read();
this.zPosition = var1.readInt();
this.direction = var1.read();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeShort(this.id);
var1.writeInt(this.xPosition);
var1.write(this.yPosition);
var1.writeInt(this.zPosition);
var1.write(this.direction);
}
public void processPacket(NetHandler var1) {
var1.handlePlace(this);
}
public int getPacketSize() {
return 12;
}
}

View File

@ -0,0 +1,36 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet16BlockItemSwitch extends Packet {
public int unused;
public int id;
public Packet16BlockItemSwitch() {
}
public Packet16BlockItemSwitch(int var1, int var2) {
this.unused = var1;
this.id = var2;
}
public void readPacketData(DataInputStream var1) throws IOException {
this.unused = var1.readInt();
this.id = var1.readShort();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeInt(this.unused);
var1.writeShort(this.id);
}
public void processPacket(NetHandler var1) {
var1.handleBlockItemSwitch(this);
}
public int getPacketSize() {
return 6;
}
}

View File

@ -0,0 +1,31 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet17AddToInventory extends Packet {
public int id;
public int count;
public int durability;
public void readPacketData(DataInputStream var1) throws IOException {
this.id = var1.readShort();
this.count = var1.readByte();
this.durability = var1.readShort();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeShort(this.id);
var1.writeByte(this.count);
var1.writeShort(this.durability);
}
public void processPacket(NetHandler var1) {
var1.handleAddToInventory(this);
}
public int getPacketSize() {
return 5;
}
}

View File

@ -0,0 +1,36 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet18ArmAnimation extends Packet {
public int entityId;
public int animate;
public Packet18ArmAnimation() {
}
public Packet18ArmAnimation(Entity var1, int var2) {
this.entityId = var1.field_620_ab;
this.animate = var2;
}
public void readPacketData(DataInputStream var1) throws IOException {
this.entityId = var1.readInt();
this.animate = var1.readByte();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeInt(this.entityId);
var1.writeByte(this.animate);
}
public void processPacket(NetHandler var1) {
var1.handleArmAnimation(this);
}
public int getPacketSize() {
return 5;
}
}

View File

@ -0,0 +1,46 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet1Login extends Packet {
public int protocolVersion;
public String username;
public String password;
public long field_4074_d;
public byte field_4073_e;
public Packet1Login() {
}
public Packet1Login(String var1, String var2, int var3) {
this.username = var1;
this.password = var2;
this.protocolVersion = var3;
}
public void readPacketData(DataInputStream var1) throws IOException {
this.protocolVersion = var1.readInt();
this.username = var1.readUTF();
this.password = var1.readUTF();
this.field_4074_d = var1.readLong();
this.field_4073_e = var1.readByte();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeInt(this.protocolVersion);
var1.writeUTF(this.username);
var1.writeUTF(this.password);
var1.writeLong(this.field_4074_d);
var1.writeByte(this.field_4073_e);
}
public void processPacket(NetHandler var1) {
var1.handleLogin(this);
}
public int getPacketSize() {
return 4 + this.username.length() + this.password.length() + 4 + 5;
}
}

View File

@ -0,0 +1,61 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet20NamedEntitySpawn extends Packet {
public int entityId;
public String name;
public int xPosition;
public int yPosition;
public int zPosition;
public byte rotation;
public byte pitch;
public int currentItem;
public Packet20NamedEntitySpawn() {
}
public Packet20NamedEntitySpawn(EntityPlayer var1) {
this.entityId = var1.field_620_ab;
this.name = var1.field_771_i;
this.xPosition = MathHelper.floor_double(var1.posX * 32.0D);
this.yPosition = MathHelper.floor_double(var1.posY * 32.0D);
this.zPosition = MathHelper.floor_double(var1.posZ * 32.0D);
this.rotation = (byte)((int)(var1.rotationYaw * 256.0F / 360.0F));
this.pitch = (byte)((int)(var1.rotationPitch * 256.0F / 360.0F));
ItemStack var2 = var1.inventory.getCurrentItem();
this.currentItem = var2 == null ? 0 : var2.itemID;
}
public void readPacketData(DataInputStream var1) throws IOException {
this.entityId = var1.readInt();
this.name = var1.readUTF();
this.xPosition = var1.readInt();
this.yPosition = var1.readInt();
this.zPosition = var1.readInt();
this.rotation = var1.readByte();
this.pitch = var1.readByte();
this.currentItem = var1.readShort();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeInt(this.entityId);
var1.writeUTF(this.name);
var1.writeInt(this.xPosition);
var1.writeInt(this.yPosition);
var1.writeInt(this.zPosition);
var1.writeByte(this.rotation);
var1.writeByte(this.pitch);
var1.writeShort(this.currentItem);
}
public void processPacket(NetHandler var1) {
var1.handleNamedEntitySpawn(this);
}
public int getPacketSize() {
return 28;
}
}

View File

@ -0,0 +1,64 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet21PickupSpawn extends Packet {
public int entityId;
public int xPosition;
public int yPosition;
public int zPosition;
public byte rotation;
public byte pitch;
public byte roll;
public int itemId;
public int count;
public Packet21PickupSpawn() {
}
public Packet21PickupSpawn(EntityItem var1) {
this.entityId = var1.field_620_ab;
this.itemId = var1.item.itemID;
this.count = var1.item.stackSize;
this.xPosition = MathHelper.floor_double(var1.posX * 32.0D);
this.yPosition = MathHelper.floor_double(var1.posY * 32.0D);
this.zPosition = MathHelper.floor_double(var1.posZ * 32.0D);
this.rotation = (byte)((int)(var1.motionX * 128.0D));
this.pitch = (byte)((int)(var1.motionY * 128.0D));
this.roll = (byte)((int)(var1.motionZ * 128.0D));
}
public void readPacketData(DataInputStream var1) throws IOException {
this.entityId = var1.readInt();
this.itemId = var1.readShort();
this.count = var1.readByte();
this.xPosition = var1.readInt();
this.yPosition = var1.readInt();
this.zPosition = var1.readInt();
this.rotation = var1.readByte();
this.pitch = var1.readByte();
this.roll = var1.readByte();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeInt(this.entityId);
var1.writeShort(this.itemId);
var1.writeByte(this.count);
var1.writeInt(this.xPosition);
var1.writeInt(this.yPosition);
var1.writeInt(this.zPosition);
var1.writeByte(this.rotation);
var1.writeByte(this.pitch);
var1.writeByte(this.roll);
}
public void processPacket(NetHandler var1) {
var1.handlePickupSpawn(this);
}
public int getPacketSize() {
return 22;
}
}

View File

@ -0,0 +1,28 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet22Collect extends Packet {
public int collectedEntityId;
public int collectorEntityId;
public void readPacketData(DataInputStream var1) throws IOException {
this.collectedEntityId = var1.readInt();
this.collectorEntityId = var1.readInt();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeInt(this.collectedEntityId);
var1.writeInt(this.collectorEntityId);
}
public void processPacket(NetHandler var1) {
var1.handleCollect(this);
}
public int getPacketSize() {
return 8;
}
}

View File

@ -0,0 +1,37 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet23VehicleSpawn extends Packet {
public int entityId;
public int xPosition;
public int yPosition;
public int zPosition;
public int type;
public void readPacketData(DataInputStream var1) throws IOException {
this.entityId = var1.readInt();
this.type = var1.readByte();
this.xPosition = var1.readInt();
this.yPosition = var1.readInt();
this.zPosition = var1.readInt();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeInt(this.entityId);
var1.writeByte(this.type);
var1.writeInt(this.xPosition);
var1.writeInt(this.yPosition);
var1.writeInt(this.zPosition);
}
public void processPacket(NetHandler var1) {
var1.handleVehicleSpawn(this);
}
public int getPacketSize() {
return 17;
}
}

View File

@ -0,0 +1,56 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet24MobSpawn extends Packet {
public int entityId;
public byte type;
public int xPosition;
public int yPosition;
public int zPosition;
public byte yaw;
public byte pitch;
public Packet24MobSpawn() {
}
public Packet24MobSpawn(EntityLiving var1) {
this.entityId = var1.field_620_ab;
this.type = (byte)EntityList.getEntityID(var1);
this.xPosition = MathHelper.floor_double(var1.posX * 32.0D);
this.yPosition = MathHelper.floor_double(var1.posY * 32.0D);
this.zPosition = MathHelper.floor_double(var1.posZ * 32.0D);
this.yaw = (byte)((int)(var1.rotationYaw * 256.0F / 360.0F));
this.pitch = (byte)((int)(var1.rotationPitch * 256.0F / 360.0F));
}
public void readPacketData(DataInputStream var1) throws IOException {
this.entityId = var1.readInt();
this.type = var1.readByte();
this.xPosition = var1.readInt();
this.yPosition = var1.readInt();
this.zPosition = var1.readInt();
this.yaw = var1.readByte();
this.pitch = var1.readByte();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeInt(this.entityId);
var1.writeByte(this.type);
var1.writeInt(this.xPosition);
var1.writeInt(this.yPosition);
var1.writeInt(this.zPosition);
var1.writeByte(this.yaw);
var1.writeByte(this.pitch);
}
public void processPacket(NetHandler var1) {
var1.handleMobSpawn(this);
}
public int getPacketSize() {
return 19;
}
}

View File

@ -0,0 +1,32 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet255KickDisconnect extends Packet {
public String reason;
public Packet255KickDisconnect() {
}
public Packet255KickDisconnect(String var1) {
this.reason = var1;
}
public void readPacketData(DataInputStream var1) throws IOException {
this.reason = var1.readUTF();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeUTF(this.reason);
}
public void processPacket(NetHandler var1) {
var1.handleKickDisconnect(this);
}
public int getPacketSize() {
return this.reason.length();
}
}

View File

@ -0,0 +1,73 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet28 extends Packet {
public int field_6367_a;
public int field_6366_b;
public int field_6369_c;
public int field_6368_d;
public Packet28() {
}
public Packet28(Entity var1) {
this(var1.field_620_ab, var1.motionX, var1.motionY, var1.motionZ);
}
public Packet28(int var1, double var2, double var4, double var6) {
this.field_6367_a = var1;
double var8 = 3.9D;
if(var2 < -var8) {
var2 = -var8;
}
if(var4 < -var8) {
var4 = -var8;
}
if(var6 < -var8) {
var6 = -var8;
}
if(var2 > var8) {
var2 = var8;
}
if(var4 > var8) {
var4 = var8;
}
if(var6 > var8) {
var6 = var8;
}
this.field_6366_b = (int)(var2 * 8000.0D);
this.field_6369_c = (int)(var4 * 8000.0D);
this.field_6368_d = (int)(var6 * 8000.0D);
}
public void readPacketData(DataInputStream var1) throws IOException {
this.field_6367_a = var1.readInt();
this.field_6366_b = var1.readShort();
this.field_6369_c = var1.readShort();
this.field_6368_d = var1.readShort();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeInt(this.field_6367_a);
var1.writeShort(this.field_6366_b);
var1.writeShort(this.field_6369_c);
var1.writeShort(this.field_6368_d);
}
public void processPacket(NetHandler var1) {
var1.func_6498_a(this);
}
public int getPacketSize() {
return 10;
}
}

View File

@ -0,0 +1,25 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet29DestroyEntity extends Packet {
public int entityId;
public void readPacketData(DataInputStream var1) throws IOException {
this.entityId = var1.readInt();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeInt(this.entityId);
}
public void processPacket(NetHandler var1) {
var1.handleDestroyEntity(this);
}
public int getPacketSize() {
return 4;
}
}

View File

@ -0,0 +1,32 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet2Handshake extends Packet {
public String username;
public Packet2Handshake() {
}
public Packet2Handshake(String var1) {
this.username = var1;
}
public void readPacketData(DataInputStream var1) throws IOException {
this.username = var1.readUTF();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeUTF(this.username);
}
public void processPacket(NetHandler var1) {
var1.handleHandshake(this);
}
public int getPacketSize() {
return 4 + this.username.length() + 4;
}
}

View File

@ -0,0 +1,31 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet30Entity extends Packet {
public int entityId;
public byte xPosition;
public byte yPosition;
public byte zPosition;
public byte yaw;
public byte pitch;
public boolean rotating = false;
public void readPacketData(DataInputStream var1) throws IOException {
this.entityId = var1.readInt();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeInt(this.entityId);
}
public void processPacket(NetHandler var1) {
var1.handleEntity(this);
}
public int getPacketSize() {
return 4;
}
}

View File

@ -0,0 +1,25 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet31RelEntityMove extends Packet30Entity {
public void readPacketData(DataInputStream var1) throws IOException {
super.readPacketData(var1);
this.xPosition = var1.readByte();
this.yPosition = var1.readByte();
this.zPosition = var1.readByte();
}
public void writePacketData(DataOutputStream var1) throws IOException {
super.writePacketData(var1);
var1.writeByte(this.xPosition);
var1.writeByte(this.yPosition);
var1.writeByte(this.zPosition);
}
public int getPacketSize() {
return 7;
}
}

View File

@ -0,0 +1,27 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet32EntityLook extends Packet30Entity {
public Packet32EntityLook() {
this.rotating = true;
}
public void readPacketData(DataInputStream var1) throws IOException {
super.readPacketData(var1);
this.yaw = var1.readByte();
this.pitch = var1.readByte();
}
public void writePacketData(DataOutputStream var1) throws IOException {
super.writePacketData(var1);
var1.writeByte(this.yaw);
var1.writeByte(this.pitch);
}
public int getPacketSize() {
return 6;
}
}

View File

@ -0,0 +1,33 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet33RelEntityMoveLook extends Packet30Entity {
public Packet33RelEntityMoveLook() {
this.rotating = true;
}
public void readPacketData(DataInputStream var1) throws IOException {
super.readPacketData(var1);
this.xPosition = var1.readByte();
this.yPosition = var1.readByte();
this.zPosition = var1.readByte();
this.yaw = var1.readByte();
this.pitch = var1.readByte();
}
public void writePacketData(DataOutputStream var1) throws IOException {
super.writePacketData(var1);
var1.writeByte(this.xPosition);
var1.writeByte(this.yPosition);
var1.writeByte(this.zPosition);
var1.writeByte(this.yaw);
var1.writeByte(this.pitch);
}
public int getPacketSize() {
return 9;
}
}

View File

@ -0,0 +1,52 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet34EntityTeleport extends Packet {
public int entityId;
public int xPosition;
public int yPosition;
public int zPosition;
public byte yaw;
public byte pitch;
public Packet34EntityTeleport() {
}
public Packet34EntityTeleport(Entity var1) {
this.entityId = var1.field_620_ab;
this.xPosition = MathHelper.floor_double(var1.posX * 32.0D);
this.yPosition = MathHelper.floor_double(var1.posY * 32.0D);
this.zPosition = MathHelper.floor_double(var1.posZ * 32.0D);
this.yaw = (byte)((int)(var1.rotationYaw * 256.0F / 360.0F));
this.pitch = (byte)((int)(var1.rotationPitch * 256.0F / 360.0F));
}
public void readPacketData(DataInputStream var1) throws IOException {
this.entityId = var1.readInt();
this.xPosition = var1.readInt();
this.yPosition = var1.readInt();
this.zPosition = var1.readInt();
this.yaw = (byte)var1.read();
this.pitch = (byte)var1.read();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeInt(this.entityId);
var1.writeInt(this.xPosition);
var1.writeInt(this.yPosition);
var1.writeInt(this.zPosition);
var1.write(this.yaw);
var1.write(this.pitch);
}
public void processPacket(NetHandler var1) {
var1.handleEntityTeleport(this);
}
public int getPacketSize() {
return 34;
}
}

View File

@ -0,0 +1,28 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet38 extends Packet {
public int field_9274_a;
public byte field_9273_b;
public void readPacketData(DataInputStream var1) throws IOException {
this.field_9274_a = var1.readInt();
this.field_9273_b = var1.readByte();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeInt(this.field_9274_a);
var1.writeByte(this.field_9273_b);
}
public void processPacket(NetHandler var1) {
var1.func_9447_a(this);
}
public int getPacketSize() {
return 5;
}
}

View File

@ -0,0 +1,28 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet39 extends Packet {
public int field_6365_a;
public int field_6364_b;
public int getPacketSize() {
return 8;
}
public void readPacketData(DataInputStream var1) throws IOException {
this.field_6365_a = var1.readInt();
this.field_6364_b = var1.readInt();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeInt(this.field_6365_a);
var1.writeInt(this.field_6364_b);
}
public void processPacket(NetHandler var1) {
var1.func_6497_a(this);
}
}

View File

@ -0,0 +1,32 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet3Chat extends Packet {
public String message;
public Packet3Chat() {
}
public Packet3Chat(String var1) {
this.message = var1;
}
public void readPacketData(DataInputStream var1) throws IOException {
this.message = var1.readUTF();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeUTF(this.message);
}
public void processPacket(NetHandler var1) {
var1.handleChat(this);
}
public int getPacketSize() {
return this.message.length();
}
}

View File

@ -0,0 +1,25 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet4UpdateTime extends Packet {
public long time;
public void readPacketData(DataInputStream var1) throws IOException {
this.time = var1.readLong();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeLong(this.time);
}
public void processPacket(NetHandler var1) {
var1.handleUpdateTime(this);
}
public int getPacketSize() {
return 8;
}
}

View File

@ -0,0 +1,31 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet50PreChunk extends Packet {
public int xPosition;
public int yPosition;
public boolean mode;
public void readPacketData(DataInputStream var1) throws IOException {
this.xPosition = var1.readInt();
this.yPosition = var1.readInt();
this.mode = var1.read() != 0;
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeInt(this.xPosition);
var1.writeInt(this.yPosition);
var1.write(this.mode ? 1 : 0);
}
public void processPacket(NetHandler var1) {
var1.handlePreChunk(this);
}
public int getPacketSize() {
return 9;
}
}

View File

@ -0,0 +1,65 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.zip.DataFormatException;
import java.util.zip.Inflater;
public class Packet51MapChunk extends Packet {
public int xPosition;
public int yPosition;
public int zPosition;
public int xSize;
public int ySize;
public int zSize;
public byte[] chunk;
private int chunkSize;
public Packet51MapChunk() {
this.isChunkDataPacket = true;
}
public void readPacketData(DataInputStream var1) throws IOException {
this.xPosition = var1.readInt();
this.yPosition = var1.readShort();
this.zPosition = var1.readInt();
this.xSize = var1.read() + 1;
this.ySize = var1.read() + 1;
this.zSize = var1.read() + 1;
int var2 = var1.readInt();
byte[] var3 = new byte[var2];
var1.readFully(var3);
this.chunk = new byte[this.xSize * this.ySize * this.zSize * 5 / 2];
Inflater var4 = new Inflater();
var4.setInput(var3);
try {
var4.inflate(this.chunk);
} catch (DataFormatException var9) {
throw new IOException("Bad compressed data format");
} finally {
var4.end();
}
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeInt(this.xPosition);
var1.writeShort(this.yPosition);
var1.writeInt(this.zPosition);
var1.write(this.xSize - 1);
var1.write(this.ySize - 1);
var1.write(this.zSize - 1);
var1.writeInt(this.chunkSize);
var1.write(this.chunk, 0, this.chunkSize);
}
public void processPacket(NetHandler var1) {
var1.handleMapChunk(this);
}
public int getPacketSize() {
return 17 + this.chunkSize;
}
}

View File

@ -0,0 +1,55 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet52MultiBlockChange extends Packet {
public int xPosition;
public int zPosition;
public short[] coordinateArray;
public byte[] typeArray;
public byte[] metadataArray;
public int size;
public Packet52MultiBlockChange() {
this.isChunkDataPacket = true;
}
public void readPacketData(DataInputStream var1) throws IOException {
this.xPosition = var1.readInt();
this.zPosition = var1.readInt();
this.size = var1.readShort() & '\uffff';
this.coordinateArray = new short[this.size];
this.typeArray = new byte[this.size];
this.metadataArray = new byte[this.size];
for(int var2 = 0; var2 < this.size; ++var2) {
this.coordinateArray[var2] = var1.readShort();
}
var1.readFully(this.typeArray);
var1.readFully(this.metadataArray);
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeInt(this.xPosition);
var1.writeInt(this.zPosition);
var1.writeShort((short)this.size);
for(int var2 = 0; var2 < this.size; ++var2) {
var1.writeShort(this.coordinateArray[var2]);
}
var1.write(this.typeArray);
var1.write(this.metadataArray);
}
public void processPacket(NetHandler var1) {
var1.handleMultiBlockChange(this);
}
public int getPacketSize() {
return 10 + this.size * 4;
}
}

View File

@ -0,0 +1,41 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet53BlockChange extends Packet {
public int xPosition;
public int yPosition;
public int zPosition;
public int type;
public int metadata;
public Packet53BlockChange() {
this.isChunkDataPacket = true;
}
public void readPacketData(DataInputStream var1) throws IOException {
this.xPosition = var1.readInt();
this.yPosition = var1.read();
this.zPosition = var1.readInt();
this.type = var1.read();
this.metadata = var1.read();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeInt(this.xPosition);
var1.write(this.yPosition);
var1.writeInt(this.zPosition);
var1.write(this.type);
var1.write(this.metadata);
}
public void processPacket(NetHandler var1) {
var1.handleBlockChange(this);
}
public int getPacketSize() {
return 11;
}
}

View File

@ -0,0 +1,59 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet59ComplexEntity extends Packet {
public int xPosition;
public int yPosition;
public int zPosition;
public byte[] entityData;
public NBTTagCompound entityNBT;
public Packet59ComplexEntity() {
this.isChunkDataPacket = true;
}
public Packet59ComplexEntity(int var1, int var2, int var3, TileEntity var4) {
this.isChunkDataPacket = true;
this.xPosition = var1;
this.yPosition = var2;
this.zPosition = var3;
this.entityNBT = new NBTTagCompound();
var4.writeToNBT(this.entityNBT);
try {
this.entityData = CompressedStreamTools.func_1142_a(this.entityNBT);
} catch (IOException var6) {
var6.printStackTrace();
}
}
public void readPacketData(DataInputStream var1) throws IOException {
this.xPosition = var1.readInt();
this.yPosition = var1.readShort();
this.zPosition = var1.readInt();
int var2 = var1.readShort() & '\uffff';
this.entityData = new byte[var2];
var1.readFully(this.entityData);
this.entityNBT = CompressedStreamTools.func_1140_a(this.entityData);
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeInt(this.xPosition);
var1.writeShort(this.yPosition);
var1.writeInt(this.zPosition);
var1.writeShort((short)this.entityData.length);
var1.write(this.entityData);
}
public void processPacket(NetHandler var1) {
var1.handleComplexEntity(this);
}
public int getPacketSize() {
return this.entityData.length + 2 + 10;
}
}

View File

@ -0,0 +1,63 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet5PlayerInventory extends Packet {
public int type;
public ItemStack[] stacks;
public Packet5PlayerInventory() {
}
public Packet5PlayerInventory(int var1, ItemStack[] var2) {
this.type = var1;
this.stacks = new ItemStack[var2.length];
for(int var3 = 0; var3 < this.stacks.length; ++var3) {
this.stacks[var3] = var2[var3] == null ? null : var2[var3].copy();
}
}
public void readPacketData(DataInputStream var1) throws IOException {
this.type = var1.readInt();
short var2 = var1.readShort();
this.stacks = new ItemStack[var2];
for(int var3 = 0; var3 < var2; ++var3) {
short var4 = var1.readShort();
if(var4 >= 0) {
byte var5 = var1.readByte();
short var6 = var1.readShort();
this.stacks[var3] = new ItemStack(var4, var5, var6);
}
}
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeInt(this.type);
var1.writeShort(this.stacks.length);
for(int var2 = 0; var2 < this.stacks.length; ++var2) {
if(this.stacks[var2] == null) {
var1.writeShort(-1);
} else {
var1.writeShort((short)this.stacks[var2].itemID);
var1.writeByte((byte)this.stacks[var2].stackSize);
var1.writeShort((short)this.stacks[var2].itemDamage);
}
}
}
public void processPacket(NetHandler var1) {
var1.handlePlayerInventory(this);
}
public int getPacketSize() {
return 6 + this.stacks.length * 5;
}
}

View File

@ -0,0 +1,67 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class Packet60 extends Packet {
public double field_12236_a;
public double field_12235_b;
public double field_12239_c;
public float field_12238_d;
public Set field_12237_e;
public void readPacketData(DataInputStream var1) throws IOException {
this.field_12236_a = var1.readDouble();
this.field_12235_b = var1.readDouble();
this.field_12239_c = var1.readDouble();
this.field_12238_d = var1.readFloat();
int var2 = var1.readInt();
this.field_12237_e = new HashSet();
int var3 = (int)this.field_12236_a;
int var4 = (int)this.field_12235_b;
int var5 = (int)this.field_12239_c;
for(int var6 = 0; var6 < var2; ++var6) {
int var7 = var1.readByte() + var3;
int var8 = var1.readByte() + var4;
int var9 = var1.readByte() + var5;
this.field_12237_e.add(new ChunkPosition(var7, var8, var9));
}
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeDouble(this.field_12236_a);
var1.writeDouble(this.field_12235_b);
var1.writeDouble(this.field_12239_c);
var1.writeFloat(this.field_12238_d);
var1.writeInt(this.field_12237_e.size());
int var2 = (int)this.field_12236_a;
int var3 = (int)this.field_12235_b;
int var4 = (int)this.field_12239_c;
Iterator var5 = this.field_12237_e.iterator();
while(var5.hasNext()) {
ChunkPosition var6 = (ChunkPosition)var5.next();
int var7 = var6.x - var2;
int var8 = var6.y - var3;
int var9 = var6.z - var4;
var1.writeByte(var7);
var1.writeByte(var8);
var1.writeByte(var9);
}
}
public void processPacket(NetHandler var1) {
var1.func_12245_a(this);
}
public int getPacketSize() {
return 32 + this.field_12237_e.size() * 3;
}
}

View File

@ -0,0 +1,31 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet6SpawnPosition extends Packet {
public int xPosition;
public int yPosition;
public int zPosition;
public void readPacketData(DataInputStream var1) throws IOException {
this.xPosition = var1.readInt();
this.yPosition = var1.readInt();
this.zPosition = var1.readInt();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeInt(this.xPosition);
var1.writeInt(this.yPosition);
var1.writeInt(this.zPosition);
}
public void processPacket(NetHandler var1) {
var1.handleSpawnPosition(this);
}
public int getPacketSize() {
return 12;
}
}

View File

@ -0,0 +1,40 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet7 extends Packet {
public int field_9277_a;
public int field_9276_b;
public int field_9278_c;
public Packet7() {
}
public Packet7(int var1, int var2, int var3) {
this.field_9277_a = var1;
this.field_9276_b = var2;
this.field_9278_c = var3;
}
public void readPacketData(DataInputStream var1) throws IOException {
this.field_9277_a = var1.readInt();
this.field_9276_b = var1.readInt();
this.field_9278_c = var1.readByte();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeInt(this.field_9277_a);
var1.writeInt(this.field_9276_b);
var1.writeByte(this.field_9278_c);
}
public void processPacket(NetHandler var1) {
var1.func_6499_a(this);
}
public int getPacketSize() {
return 9;
}
}

View File

@ -0,0 +1,25 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Packet8 extends Packet {
public int healthMP;
public void readPacketData(DataInputStream var1) throws IOException {
this.healthMP = var1.readByte();
}
public void writePacketData(DataOutputStream var1) throws IOException {
var1.writeByte(this.healthMP);
}
public void processPacket(NetHandler var1) {
var1.handleHealth(this);
}
public int getPacketSize() {
return 1;
}
}

View File

@ -0,0 +1,20 @@
package net.minecraft.src;
import java.io.DataInputStream;
import java.io.DataOutputStream;
public class Packet9 extends Packet {
public void processPacket(NetHandler var1) {
var1.func_9448_a(this);
}
public void readPacketData(DataInputStream var1) {
}
public void writePacketData(DataOutputStream var1) {
}
public int getPacketSize() {
return 0;
}
}

View File

@ -0,0 +1,172 @@
package net.minecraft.src;
import net.minecraft.client.Minecraft;
public class PlayerControllerMP extends PlayerController {
private int field_9445_c = -1;
private int field_9444_d = -1;
private int field_9443_e = -1;
private float field_9442_f = 0.0F;
private float field_1080_g = 0.0F;
private float field_9441_h = 0.0F;
private int field_9440_i = 0;
private boolean field_9439_j = false;
private NetClientHandler field_9438_k;
private int field_1075_l = 0;
public PlayerControllerMP(Minecraft var1, NetClientHandler var2) {
super(var1);
this.field_9438_k = var2;
}
public void flipPlayer(EntityPlayer var1) {
var1.rotationYaw = -180.0F;
}
public boolean sendBlockRemoved(int var1, int var2, int var3, int var4) {
this.field_9438_k.addToSendQueue(new Packet14BlockDig(3, var1, var2, var3, var4));
int var5 = this.mc.theWorld.getBlockId(var1, var2, var3);
this.mc.theWorld.getBlockMetadata(var1, var2, var3);
boolean var7 = super.sendBlockRemoved(var1, var2, var3, var4);
ItemStack var8 = this.mc.thePlayer.getCurrentEquippedItem();
if(var8 != null) {
var8.hitBlock(var5, var1, var2, var3);
if(var8.stackSize == 0) {
var8.func_1097_a(this.mc.thePlayer);
this.mc.thePlayer.destroyCurrentEquippedItem();
}
}
return var7;
}
public void clickBlock(int var1, int var2, int var3, int var4) {
this.field_9439_j = true;
this.field_9438_k.addToSendQueue(new Packet14BlockDig(0, var1, var2, var3, var4));
int var5 = this.mc.theWorld.getBlockId(var1, var2, var3);
if(var5 > 0 && this.field_9442_f == 0.0F) {
Block.blocksList[var5].onBlockClicked(this.mc.theWorld, var1, var2, var3, this.mc.thePlayer);
}
if(var5 > 0 && Block.blocksList[var5].func_225_a(this.mc.thePlayer) >= 1.0F) {
this.sendBlockRemoved(var1, var2, var3, var4);
}
}
public void func_6468_a() {
if(this.field_9439_j) {
this.field_9439_j = false;
this.field_9438_k.addToSendQueue(new Packet14BlockDig(2, 0, 0, 0, 0));
this.field_9442_f = 0.0F;
this.field_9440_i = 0;
}
}
public void sendBlockRemoving(int var1, int var2, int var3, int var4) {
this.field_9439_j = true;
this.func_730_e();
this.field_9438_k.addToSendQueue(new Packet14BlockDig(1, var1, var2, var3, var4));
if(this.field_9440_i > 0) {
--this.field_9440_i;
} else {
if(var1 == this.field_9445_c && var2 == this.field_9444_d && var3 == this.field_9443_e) {
int var5 = this.mc.theWorld.getBlockId(var1, var2, var3);
if(var5 == 0) {
return;
}
Block var6 = Block.blocksList[var5];
this.field_9442_f += var6.func_225_a(this.mc.thePlayer);
if(this.field_9441_h % 4.0F == 0.0F && var6 != null) {
this.mc.sndManager.func_336_b(var6.stepSound.func_1145_d(), (float)var1 + 0.5F, (float)var2 + 0.5F, (float)var3 + 0.5F, (var6.stepSound.func_1147_b() + 1.0F) / 8.0F, var6.stepSound.func_1144_c() * 0.5F);
}
++this.field_9441_h;
if(this.field_9442_f >= 1.0F) {
this.sendBlockRemoved(var1, var2, var3, var4);
this.field_9442_f = 0.0F;
this.field_1080_g = 0.0F;
this.field_9441_h = 0.0F;
this.field_9440_i = 5;
}
} else {
this.field_9442_f = 0.0F;
this.field_1080_g = 0.0F;
this.field_9441_h = 0.0F;
this.field_9445_c = var1;
this.field_9444_d = var2;
this.field_9443_e = var3;
}
}
}
public void func_6467_a(float var1) {
if(this.field_9442_f <= 0.0F) {
this.mc.ingameGUI.field_6446_b = 0.0F;
this.mc.field_6323_f.field_1450_i = 0.0F;
} else {
float var2 = this.field_1080_g + (this.field_9442_f - this.field_1080_g) * var1;
this.mc.ingameGUI.field_6446_b = var2;
this.mc.field_6323_f.field_1450_i = var2;
}
}
public float getBlockReachDistance() {
return 4.0F;
}
public void func_717_a(World var1) {
super.func_717_a(var1);
}
public void func_6474_c() {
this.func_730_e();
this.field_1080_g = this.field_9442_f;
//this.mc.sndManager.func_4033_c();
}
private void func_730_e() {
ItemStack var1 = this.mc.thePlayer.inventory.getCurrentItem();
int var2 = 0;
if(var1 != null) {
var2 = var1.itemID;
}
if(var2 != this.field_1075_l) {
this.field_1075_l = var2;
this.field_9438_k.addToSendQueue(new Packet16BlockItemSwitch(0, this.field_1075_l));
}
}
public boolean sendPlaceBlock(EntityPlayer var1, World var2, ItemStack var3, int var4, int var5, int var6, int var7) {
this.func_730_e();
this.field_9438_k.addToSendQueue(new Packet15Place(var3 != null ? var3.itemID : -1, var4, var5, var6, var7));
return super.sendPlaceBlock(var1, var2, var3, var4, var5, var6, var7);
}
public boolean sendUseItem(EntityPlayer var1, World var2, ItemStack var3) {
this.func_730_e();
this.field_9438_k.addToSendQueue(new Packet15Place(var3 != null ? var3.itemID : -1, -1, -1, -1, 255));
return super.sendUseItem(var1, var2, var3);
}
public EntityPlayer func_4087_b(World var1) {
return new EntityClientPlayerMP(this.mc, var1, this.mc.field_6320_i, this.field_9438_k);
}
public void func_6472_b(EntityPlayer var1, Entity var2) {
this.func_730_e();
this.field_9438_k.addToSendQueue(new Packet7(var1.field_620_ab, var2.field_620_ab, 1));
var1.attackTargetEntityWithCurrentItem(var2);
}
public void func_6475_a(EntityPlayer var1, Entity var2) {
this.func_730_e();
this.field_9438_k.addToSendQueue(new Packet7(var1.field_620_ab, var2.field_620_ab, 0));
var1.func_6415_a_(var2);
}
}

View File

@ -0,0 +1,34 @@
package net.minecraft.src;
import net.minecraft.client.Minecraft;
class ThreadConnectToServer extends Thread {
final Minecraft mc;
final String uri;
final GuiConnecting connectingGui;
ThreadConnectToServer(GuiConnecting var1, Minecraft var2, String var3) {
this.connectingGui = var1;
this.mc = var2;
this.uri = var3;
}
public void run() {
try {
GuiConnecting.setNetClientHandler(this.connectingGui, new NetClientHandler(this.mc, this.uri));
if(GuiConnecting.isCancelled(this.connectingGui)) {
return;
}
GuiConnecting.getNetClientHandler(this.connectingGui).addToSendQueue(new Packet2Handshake(this.mc.field_6320_i.inventory));
} catch (Exception var4) {
if(GuiConnecting.isCancelled(this.connectingGui)) {
return;
}
var4.printStackTrace();
this.mc.displayGuiScreen(new GuiConnectFailed("Failed to connect to the server", var4.toString()));
}
}
}

View File

@ -109,7 +109,7 @@ public class TileEntityFurnace extends TileEntity implements IInventory {
--this.furnaceBurnTime;
}
//if(!this.worldObj.multiplayerWorld) {
if(!this.worldObj.multiplayerWorld) {
if(this.furnaceBurnTime == 0 && this.canSmelt()) {
this.currentItemBurnTime = this.furnaceBurnTime = this.getItemBurnTime(this.furnaceItemStacks[1]);
if(this.furnaceBurnTime > 0) {
@ -138,7 +138,7 @@ public class TileEntityFurnace extends TileEntity implements IInventory {
var2 = true;
BlockFurnace.updateFurnaceBlockState(this.furnaceBurnTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord);
}
//}
}
if(var2) {
this.onInventoryChanged();

View File

@ -60,6 +60,7 @@ public class World implements IBlockAccess {
private Set field_9427_K;
private int field_9426_L;
private List field_1012_M;
public boolean multiplayerWorld;
public static NBTTagCompound func_629_a(String var1) {
if(!GL11.isWebGL) {
@ -140,6 +141,7 @@ public class World implements IBlockAccess {
this.field_9427_K = new HashSet();
this.field_9426_L = this.rand.nextInt(12000);
this.field_1012_M = new ArrayList();
this.multiplayerWorld = false;
this.field_9431_w = var1;
this.randomSeed = var3;
this.worldProvider = var2;
@ -175,6 +177,7 @@ public class World implements IBlockAccess {
this.field_9427_K = new HashSet();
this.field_9426_L = this.rand.nextInt(12000);
this.field_1012_M = new ArrayList();
this.multiplayerWorld = false;
this.field_1054_E = var1.field_1054_E;
this.field_9433_s = var1.field_9433_s;
this.field_9432_t = var1.field_9432_t;
@ -222,6 +225,7 @@ public class World implements IBlockAccess {
this.field_9427_K = new HashSet();
this.field_9426_L = this.rand.nextInt(12000);
this.field_1012_M = new ArrayList();
this.multiplayerWorld = false;
this.field_9433_s = var1;
this.field_9431_w = var2;
if(!GL11.isWebGL) {
@ -626,7 +630,7 @@ public class World implements IBlockAccess {
}
private void notifyBlockOfNeighborChange(int var1, int var2, int var3, int var4) {
if(!this.field_1043_h) {
if(!this.field_1043_h && !this.multiplayerWorld) {
Block var5 = Block.blocksList[this.getBlockId(var1, var2, var3)];
if(var5 != null) {
var5.onNeighborBlockChange(this, var1, var2, var3, var4);

View File

@ -0,0 +1,21 @@
package net.minecraft.src;
class WorldBlockPositionType {
int field_1202_a;
int field_1201_b;
int field_1207_c;
int field_1206_d;
int field_1205_e;
int field_1204_f;
final WorldClient field_1203_g;
public WorldBlockPositionType(WorldClient var1, int var2, int var3, int var4, int var5, int var6) {
this.field_1203_g = var1;
this.field_1202_a = var2;
this.field_1201_b = var3;
this.field_1207_c = var4;
this.field_1206_d = 80;
this.field_1205_e = var5;
this.field_1204_f = var6;
}
}

View File

@ -0,0 +1,213 @@
package net.minecraft.src;
import java.io.File;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.Set;
public class WorldClient extends World {
private LinkedList field_1057_z = new LinkedList();
private NetClientHandler sendQueue;
private ChunkProviderClient C;
private boolean D = false;
private MCHashTable field_1055_D = new MCHashTable();
private Set F = new HashSet();
private Set field_1053_F = new HashSet();
public WorldClient(NetClientHandler var1, long var2, int var4) {
super("MpServer", WorldProvider.func_4101_a(var4), var2);
this.sendQueue = var1;
this.spawnX = 8;
this.spawnY = 64;
this.spawnZ = 8;
}
public void tick() {
++this.worldTime;
int var1 = this.calculateSkylightSubtracted(1.0F);
int var2;
if(var1 != this.skylightSubtracted) {
this.skylightSubtracted = var1;
for(var2 = 0; var2 < this.worldAccesses.size(); ++var2) {
((IWorldAccess)this.worldAccesses.get(var2)).func_936_e();
}
}
for(var2 = 0; var2 < 10 && !this.field_1053_F.isEmpty(); ++var2) {
Entity var3 = (Entity)this.field_1053_F.iterator().next();
if(!this.loadedEntityList.contains(var3)) {
this.entityJoinedWorld(var3);
}
}
this.sendQueue.processReadPackets();
for(var2 = 0; var2 < this.field_1057_z.size(); ++var2) {
WorldBlockPositionType var4 = (WorldBlockPositionType)this.field_1057_z.get(var2);
if(--var4.field_1206_d == 0) {
super.setBlockAndMetadata(var4.field_1202_a, var4.field_1201_b, var4.field_1207_c, var4.field_1205_e, var4.field_1204_f);
super.func_665_h(var4.field_1202_a, var4.field_1201_b, var4.field_1207_c);
this.field_1057_z.remove(var2--);
}
}
}
public void func_711_c(int var1, int var2, int var3, int var4, int var5, int var6) {
for(int var7 = 0; var7 < this.field_1057_z.size(); ++var7) {
WorldBlockPositionType var8 = (WorldBlockPositionType)this.field_1057_z.get(var7);
if(var8.field_1202_a >= var1 && var8.field_1201_b >= var2 && var8.field_1207_c >= var3 && var8.field_1202_a <= var4 && var8.field_1201_b <= var5 && var8.field_1207_c <= var6) {
this.field_1057_z.remove(var7--);
}
}
}
protected IChunkProvider func_4081_a(File var1) {
this.C = new ChunkProviderClient(this);
return this.C;
}
public void func_4076_b() {
this.spawnX = 8;
this.spawnY = 64;
this.spawnZ = 8;
}
protected void func_4080_j() {
}
public void scheduleBlockUpdate(int var1, int var2, int var3, int var4) {
}
public boolean TickUpdates(boolean var1) {
return false;
}
public void func_713_a(int var1, int var2, boolean var3) {
if(var3) {
this.C.func_538_d(var1, var2);
} else {
this.C.func_539_c(var1, var2);
}
if(!var3) {
this.func_701_b(var1 * 16, 0, var2 * 16, var1 * 16 + 15, 128, var2 * 16 + 15);
}
}
public boolean entityJoinedWorld(Entity var1) {
boolean var2 = super.entityJoinedWorld(var1);
this.F.add(var1);
if(!var2) {
this.field_1053_F.add(var1);
}
return var2;
}
public void setEntityDead(Entity var1) {
super.setEntityDead(var1);
this.F.remove(var1);
}
protected void obtainEntitySkin(Entity var1) {
super.obtainEntitySkin(var1);
if(this.field_1053_F.contains(var1)) {
this.field_1053_F.remove(var1);
}
}
protected void releaseEntitySkin(Entity var1) {
super.releaseEntitySkin(var1);
if(this.F.contains(var1)) {
this.field_1053_F.add(var1);
}
}
public void func_712_a(int var1, Entity var2) {
Entity var3 = this.func_709_b(var1);
if(var3 != null) {
this.setEntityDead(var3);
}
this.F.add(var2);
var2.field_620_ab = var1;
if(!this.entityJoinedWorld(var2)) {
this.field_1053_F.add(var2);
}
this.field_1055_D.addKey(var1, var2);
}
public Entity func_709_b(int var1) {
return (Entity)this.field_1055_D.lookup(var1);
}
public Entity func_710_c(int var1) {
Entity var2 = (Entity)this.field_1055_D.removeObject(var1);
if(var2 != null) {
this.F.remove(var2);
this.setEntityDead(var2);
}
return var2;
}
public boolean setBlockMetadata(int var1, int var2, int var3, int var4) {
int var5 = this.getBlockId(var1, var2, var3);
int var6 = this.getBlockMetadata(var1, var2, var3);
if(super.setBlockMetadata(var1, var2, var3, var4)) {
this.field_1057_z.add(new WorldBlockPositionType(this, var1, var2, var3, var5, var6));
return true;
} else {
return false;
}
}
public boolean setBlockAndMetadata(int var1, int var2, int var3, int var4, int var5) {
int var6 = this.getBlockId(var1, var2, var3);
int var7 = this.getBlockMetadata(var1, var2, var3);
if(super.setBlockAndMetadata(var1, var2, var3, var4, var5)) {
this.field_1057_z.add(new WorldBlockPositionType(this, var1, var2, var3, var6, var7));
return true;
} else {
return false;
}
}
public boolean setBlock(int var1, int var2, int var3, int var4) {
int var5 = this.getBlockId(var1, var2, var3);
int var6 = this.getBlockMetadata(var1, var2, var3);
if(super.setBlock(var1, var2, var3, var4)) {
this.field_1057_z.add(new WorldBlockPositionType(this, var1, var2, var3, var5, var6));
return true;
} else {
return false;
}
}
public boolean func_714_c(int var1, int var2, int var3, int var4, int var5) {
this.func_711_c(var1, var2, var3, var1, var2, var3);
if(super.setBlockAndMetadata(var1, var2, var3, var4, var5)) {
this.notifyBlockChange(var1, var2, var3, var4);
return true;
} else {
return false;
}
}
public void func_698_b(int var1, int var2, int var3, TileEntity var4) {
if(!this.D) {
this.sendQueue.addToSendQueue(new Packet59ComplexEntity(var1, var2, var3, var4));
}
}
public void sendQuittingDisconnectingPacket() {
this.sendQueue.addToSendQueue(new Packet255KickDisconnect("Quitting"));
}
}

View File

@ -1191,6 +1191,166 @@ public class EaglerAdapterImpl2 {
@JSBody(params = { "name", "cvs" }, script = "var a=document.createElement(\"a\");a.href=cvs.toDataURL(\"image/png\");a.download=name;a.click();")
private static native void saveScreenshot(String name, HTMLCanvasElement cvs);
public static enum RateLimit {
NONE, FAILED, BLOCKED, FAILED_POSSIBLY_LOCKED, LOCKED, NOW_LOCKED;
}
private static final Set<String> rateLimitedAddresses = new HashSet();
private static final Set<String> blockedAddresses = new HashSet();
private static WebSocket sock = null;
private static boolean sockIsConnecting = false;
private static boolean sockIsConnected = false;
private static boolean sockIsAlive = false;
private static LinkedList<byte[]> readPackets = new LinkedList();
private static RateLimit rateLimitStatus = null;
private static String currentSockURI = null;
public static final RateLimit getRateLimitStatus() {
RateLimit l = rateLimitStatus;
rateLimitStatus = null;
return l;
}
public static final void logRateLimit(String addr, RateLimit l) {
if(l == RateLimit.BLOCKED) {
blockedAddresses.add(addr);
}else {
rateLimitedAddresses.add(addr);
}
}
public static final RateLimit checkRateLimitHistory(String addr) {
if(blockedAddresses.contains(addr)) {
return RateLimit.LOCKED;
}else if(rateLimitedAddresses.contains(addr)) {
return RateLimit.BLOCKED;
}else {
return RateLimit.NONE;
}
}
@Async
public static native String connectWebSocket(String sockURI);
private static void connectWebSocket(String sockURI, final AsyncCallback<String> cb) {
sockIsConnecting = true;
sockIsConnected = false;
sockIsAlive = false;
rateLimitStatus = null;
currentSockURI = sockURI;
try {
sock = WebSocket.create(sockURI);
} catch(Throwable t) {
sockIsConnecting = false;
sockIsAlive = false;
return;
}
sock.setBinaryType("arraybuffer");
sock.onOpen(new EventListener<Event>() {
@Override
public void handleEvent(Event evt) {
sockIsConnecting = false;
sockIsAlive = false;
sockIsConnected = true;
readPackets.clear();
cb.complete("okay");
}
});
sock.onClose(new EventListener<CloseEvent>() {
@Override
public void handleEvent(CloseEvent evt) {
sock = null;
if(sockIsConnecting) {
if(rateLimitStatus == null) {
if(blockedAddresses.contains(currentSockURI)) {
rateLimitStatus = RateLimit.LOCKED;
}else if(rateLimitedAddresses.contains(currentSockURI)) {
rateLimitStatus = RateLimit.FAILED_POSSIBLY_LOCKED;
}else {
rateLimitStatus = RateLimit.FAILED;
}
}
}else if(!sockIsAlive) {
if(rateLimitStatus == null) {
if(blockedAddresses.contains(currentSockURI)) {
rateLimitStatus = RateLimit.LOCKED;
}else if(rateLimitedAddresses.contains(currentSockURI)) {
rateLimitStatus = RateLimit.BLOCKED;
}
}
}
boolean b = sockIsConnecting;
sockIsConnecting = false;
sockIsConnected = false;
sockIsAlive = false;
if(b) cb.complete("fail");
}
});
sock.onMessage(new EventListener<MessageEvent>() {
@Override
public void handleEvent(MessageEvent evt) {
sockIsAlive = true;
if(isString(evt.getData())) {
String stat = evt.getDataAsString();
if(stat.equalsIgnoreCase("BLOCKED")) {
if(rateLimitStatus == null) {
rateLimitStatus = RateLimit.BLOCKED;
}
rateLimitedAddresses.add(currentSockURI);
}else if(stat.equalsIgnoreCase("LOCKED")) {
if(rateLimitStatus == null) {
rateLimitStatus = RateLimit.NOW_LOCKED;
}
rateLimitedAddresses.add(currentSockURI);
blockedAddresses.add(currentSockURI);
}
sockIsConnecting = false;
sockIsConnected = false;
sock.close();
return;
}
Uint8Array a = Uint8Array.create(evt.getDataAsArray());
byte[] b = new byte[a.getByteLength()];
for(int i = 0; i < b.length; ++i) {
b[i] = (byte) (a.get(i) & 0xFF);
}
readPackets.add(b);
}
});
}
public static final boolean startConnection(String uri) {
String res = connectWebSocket(uri);
return "fail".equals(res) ? false : true;
}
public static final void endConnection() {
if(sock == null || sock.getReadyState() == 3) {
sockIsConnecting = false;
}
if(sock != null && !sockIsConnecting) sock.close();
}
public static final boolean connectionOpen() {
if(sock == null || sock.getReadyState() == 3) {
sockIsConnecting = false;
}
return sock != null && !sockIsConnecting && sock.getReadyState() != 3;
}
@JSBody(params = { "sock", "buffer" }, script = "sock.send(buffer);")
private static native void nativeBinarySend(WebSocket sock, ArrayBuffer buffer);
public static final void writePacket(byte[] packet) {
if(sock != null && !sockIsConnecting) {
Uint8Array arr = Uint8Array.create(packet.length);
arr.set(packet);
nativeBinarySend(sock, arr.getBuffer());
}
}
public static final byte[] readPacket() {
if(!readPackets.isEmpty()) {
return readPackets.remove(0);
}else {
return null;
}
}
public static final byte[] loadLocalStorage(String key) {
String s = win.getLocalStorage().getItem("_eaglercraft_beta."+key);
if(s != null) {

View File

@ -15,6 +15,9 @@ public class ChunkLoader implements IChunkLoader {
}
private String chunkFileForXZ_OLD(int var1, int var2) {
if(saveDir == null) {
return null;
}
String var3 = "c." + Integer.toString(var1, 36) + "." + Integer.toString(var2, 36) + ".dat";
String var4 = Integer.toString(var1 & 63, 36);
String var5 = Integer.toString(var2 & 63, 36);
@ -30,6 +33,9 @@ public class ChunkLoader implements IChunkLoader {
public static final String CHUNK_CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
public String chunkFileForXZ(int x, int z) {
if(saveDir == null) {
return null;
}
boolean oldChunk = false;
String oldChunkPath = chunkFileForXZ_OLD(x, z);
if(oldChunkPath != null) {
@ -52,37 +58,32 @@ public class ChunkLoader implements IChunkLoader {
return s;
}
public Chunk loadChunk(World var1, int var2, int var3) throws IOException {
String var4 = this.chunkFileForXZ(var2, var3);
if(GL11.readFile(var4) != null) {
try {
public Chunk loadChunk(World var1, int x, int z) throws IOException {
if(saveDir == null) {
return null;
}
String var4 = this.chunkFileForXZ(x, z);
byte[] data = GL11.readFile(var4);
ByteArrayInputStream var5 = new ByteArrayInputStream(data);
if(data != null) {
try {
NBTTagCompound var6;
if(GL11.isCompressed(data)) {
var6 = CompressedStreamTools.func_1138_a(var5);
var6 = CompressedStreamTools.func_1138_a(new ByteArrayInputStream(data));
} else {
var6 = (NBTTagCompound) NBTBase.readTag(new DataInputStream(var5));
var6 = (NBTTagCompound) NBTBase.readTag(new DataInputStream(new ByteArrayInputStream(data)));
}
if(!var6.hasKey("Level")) {
System.out.println("Chunk file at " + var2 + "," + var3 + " is missing level data, skipping");
var6 = var6.getCompoundTag("Level");
int xx = var6.getInteger("xPos");
int zz = var6.getInteger("zPos");
if(x != xx || z != zz) {
System.out.println("Chunk file at " + x + "," + z + " is in the wrong location; relocating. (Expected " + x + ", " + z + ", got " + xx + ", " + zz + ")");
String name = chunkFileForXZ(xx, zz);
GL11.renameFile(var4, name);
return null;
}
if(!var6.getCompoundTag("Level").hasKey("Blocks")) {
System.out.println("Chunk file at " + var2 + "," + var3 + " is missing block data, skipping");
return null;
}
Chunk var7 = loadChunkIntoWorldFromCompound(var1, var6.getCompoundTag("Level"));
if(!var7.isAtLocation(var2, var3)) {
System.out.println("Chunk file at " + var2 + "," + var3 + " is in the wrong location; relocating. (Expected " + var2 + ", " + var3 + ", got " + var7.xPosition + ", " + var7.zPosition + ")");
var6.setInteger("xPos", var2);
var6.setInteger("zPos", var3);
var7 = loadChunkIntoWorldFromCompound(var1, var6.getCompoundTag("Level"));
}
return var7;
return loadChunkIntoWorldFromCompound(var1, var6);
} catch (Exception var8) {
var8.printStackTrace();
}
@ -92,6 +93,9 @@ public class ChunkLoader implements IChunkLoader {
}
public void saveChunk(World var1, Chunk var2) throws IOException {
if(saveDir == null) {
return;
}
var1.func_663_l();
String var3 = this.chunkFileForXZ(var2.xPosition, var2.zPosition);
if(GL11.readFile(var3) != null) {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long