From ca62d2cae1d903d628d0354de87a515f53c3eba3 Mon Sep 17 00:00:00 2001 From: catfoolyou Date: Thu, 27 Feb 2025 10:59:22 -0500 Subject: [PATCH] Fixed server crash --- .idea/misc.xml | 2 +- .../bungee/eaglercraft/WebSocketProxy.java | 1 - .../net/md_5/bungee/netty/ChannelWrapper.java | 2 +- lwjgl-rundir/eaglercraft.jar | Bin 3719435 -> 3702716 bytes lwjgl-rundir/resources/credits.txt | 10 +- lwjgl-rundir/resources/environment/clouds.png | Bin 13674 -> 0 bytes .../resources/environment/end_sky.png | Bin 43274 -> 0 bytes .../resources/environment/moon_phases.png | Bin 1531 -> 0 bytes lwjgl-rundir/resources/environment/rain.png | Bin 2503 -> 0 bytes lwjgl-rundir/resources/environment/snow.png | Bin 781 -> 0 bytes lwjgl-rundir/resources/environment/sun.png | Bin 675 -> 0 bytes .../resources/textures/colormap/foliage.png | Bin 17661 -> 0 bytes .../resources/textures/colormap/grass.png | Bin 25187 -> 0 bytes .../resources/textures/items/clock.txt | 0 .../resources/textures/items/compass.txt | 0 sp-server/src_aux/AnvilChunkLoader.java | 371 -------------- .../src_aux/AnvilChunkLoaderPending.java | 11 - sp-server/src_aux/AnvilConverterData.java | 21 - sp-server/src_aux/AnvilSaveConverter.java | 191 ------- .../src_aux/AnvilSaveConverterFileFilter.java | 16 - sp-server/src_aux/AnvilSaveHandler.java | 50 -- sp-server/src_aux/ChunkLoader.java | 122 ----- sp-server/src_aux/DedicatedServer.java | 368 ------------- sp-server/src_aux/RegionFile.java | 284 ---------- sp-server/src_aux/RegionFileCache.java | 75 --- sp-server/src_aux/RegionFileChunkBuffer.java | 22 - sp-server/src_aux/SaveFormatOld.java | 141 ----- sp-server/src_aux/SaveHandler.java | 287 ----------- sp-server/src_aux/ServerListenThread.java | 106 ---- sp-server/src_aux/TcpConnection.java | 484 ------------------ sp-server/src_aux/TcpMasterThread.java | 34 -- sp-server/src_aux/TcpMonitorThread.java | 22 - sp-server/src_aux/TcpReaderThread.java | 31 -- sp-server/src_aux/TcpWriterThread.java | 46 -- .../lax1dude/eaglercraft/ConfigConstants.java | 5 +- .../net/minecraft/server/MinecraftServer.java | 9 +- .../net/minecraft/src/AnvilChunkLoader.java | 425 --------------- .../src/AnvilChunkLoaderPending.java | 13 - .../net/minecraft/src/AnvilConverterData.java | 23 - .../src/AnvilConverterException.java | 9 - .../net/minecraft/src/AnvilSaveConverter.java | 263 ---------- .../src/AnvilSaveConverterFileFilter.java | 19 - .../net/minecraft/src/AnvilSaveHandler.java | 63 --- .../java/net/minecraft/src/ChunkLoader.java | 130 ----- .../java/net/minecraft/src/GLAllocation.java | 2 +- .../net/minecraft/src/GuiSelectWorld.java | 6 +- .../java/net/minecraft/src/ISaveFormat.java | 2 +- src/main/java/net/minecraft/src/Render.java | 175 ++++--- .../java/net/minecraft/src/RenderEngine.java | 1 - .../java/net/minecraft/src/SaveFormatOld.java | 2 +- .../net/minecraft/src/TextureManager.java | 1 - .../java/net/minecraft/src/TextureMap.java | 9 +- 52 files changed, 107 insertions(+), 3747 deletions(-) delete mode 100644 lwjgl-rundir/resources/environment/clouds.png delete mode 100644 lwjgl-rundir/resources/environment/end_sky.png delete mode 100644 lwjgl-rundir/resources/environment/moon_phases.png delete mode 100644 lwjgl-rundir/resources/environment/rain.png delete mode 100644 lwjgl-rundir/resources/environment/snow.png delete mode 100644 lwjgl-rundir/resources/environment/sun.png delete mode 100644 lwjgl-rundir/resources/textures/colormap/foliage.png delete mode 100644 lwjgl-rundir/resources/textures/colormap/grass.png create mode 100644 lwjgl-rundir/resources/textures/items/clock.txt create mode 100644 lwjgl-rundir/resources/textures/items/compass.txt delete mode 100644 sp-server/src_aux/AnvilChunkLoader.java delete mode 100644 sp-server/src_aux/AnvilChunkLoaderPending.java delete mode 100644 sp-server/src_aux/AnvilConverterData.java delete mode 100644 sp-server/src_aux/AnvilSaveConverter.java delete mode 100644 sp-server/src_aux/AnvilSaveConverterFileFilter.java delete mode 100644 sp-server/src_aux/AnvilSaveHandler.java delete mode 100644 sp-server/src_aux/ChunkLoader.java delete mode 100644 sp-server/src_aux/DedicatedServer.java delete mode 100644 sp-server/src_aux/RegionFile.java delete mode 100644 sp-server/src_aux/RegionFileCache.java delete mode 100644 sp-server/src_aux/RegionFileChunkBuffer.java delete mode 100644 sp-server/src_aux/SaveFormatOld.java delete mode 100644 sp-server/src_aux/SaveHandler.java delete mode 100644 sp-server/src_aux/ServerListenThread.java delete mode 100644 sp-server/src_aux/TcpConnection.java delete mode 100644 sp-server/src_aux/TcpMasterThread.java delete mode 100644 sp-server/src_aux/TcpMonitorThread.java delete mode 100644 sp-server/src_aux/TcpReaderThread.java delete mode 100644 sp-server/src_aux/TcpWriterThread.java delete mode 100644 src/main/java/net/minecraft/src/AnvilChunkLoader.java delete mode 100644 src/main/java/net/minecraft/src/AnvilChunkLoaderPending.java delete mode 100644 src/main/java/net/minecraft/src/AnvilConverterData.java delete mode 100644 src/main/java/net/minecraft/src/AnvilConverterException.java delete mode 100644 src/main/java/net/minecraft/src/AnvilSaveConverter.java delete mode 100644 src/main/java/net/minecraft/src/AnvilSaveConverterFileFilter.java delete mode 100644 src/main/java/net/minecraft/src/AnvilSaveHandler.java diff --git a/.idea/misc.xml b/.idea/misc.xml index 8bddb52..18ad7e3 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/eaglerbungee/src/main/java/net/md_5/bungee/eaglercraft/WebSocketProxy.java b/eaglerbungee/src/main/java/net/md_5/bungee/eaglercraft/WebSocketProxy.java index 0362d1f..7493f63 100644 --- a/eaglerbungee/src/main/java/net/md_5/bungee/eaglercraft/WebSocketProxy.java +++ b/eaglerbungee/src/main/java/net/md_5/bungee/eaglercraft/WebSocketProxy.java @@ -118,7 +118,6 @@ public class WebSocketProxy extends SimpleChannelInboundHandler { public void sendPacket(ByteBuffer arg1) { if(tcpChannel != null && tcpChannel.isOpen()) { - System.out.println("[WebsocketProxy] - sending packet"); tcpChannel.write(Unpooled.wrappedBuffer(arg1)); } } diff --git a/eaglerbungee/src/main/java/net/md_5/bungee/netty/ChannelWrapper.java b/eaglerbungee/src/main/java/net/md_5/bungee/netty/ChannelWrapper.java index d7bf954..c2b58f0 100644 --- a/eaglerbungee/src/main/java/net/md_5/bungee/netty/ChannelWrapper.java +++ b/eaglerbungee/src/main/java/net/md_5/bungee/netty/ChannelWrapper.java @@ -26,7 +26,7 @@ public class ChannelWrapper { this.ch.write(packet); } - ch.unsafe().flushNow(); + //ch.unsafe().flushNow(); } } diff --git a/lwjgl-rundir/eaglercraft.jar b/lwjgl-rundir/eaglercraft.jar index 06ca86dd1097d7d14291a40ed21d7484940b0099..3734eef22ca014bce9b2448a1355a0e4f8c9a270 100644 GIT binary patch delta 143736 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 O+nzcVvO8dPR`?$a;uG5d diff --git a/lwjgl-rundir/resources/credits.txt b/lwjgl-rundir/resources/credits.txt index 18ec63e..92924d7 100644 --- a/lwjgl-rundir/resources/credits.txt +++ b/lwjgl-rundir/resources/credits.txt @@ -1,16 +1,10 @@ Eaglercraft 1.6.4 is an AOT compiled port of mojang's minecraft 1.6.4 designed to run in an html5/javascript environment, using TeaVM and lax1dude's opengl 1.3 emulator to simulate a desktop java enviroment fully compatible with minecraft java edition -§1This §1port §1was §1created §1by §1Catfoolyou -this project based on eaglercraft 1.5.2 by lax1dude and ayunami2000 +§1This §1port §1was §1created §1by §4Catfoolyou -compiling the javascript and emulating the JRE is largely made possible by the TeaVM project, created by Alexey Andreev and is available for free at §nhttp://teavm.org/§r under Apache License 2.0 -eaglercraft also makes use of jCraft's jzlib port, available at §nhttp://www.jcraft.com/jzlib/§r under BSD-style licensing. - -all graphical assets in this project were ripped from mojang's official minecraft.jar for minecraft version 1.6.4 and they are mojang's intellectual property. assets ommitted include the minecraft soundtrack and music disks and all software references to the mojang/minecraft api. - -eaglercraft servers are powered by md_5's BungeeCord and the CraftBukkit project available at §nhttps://bukkit.org/§r. BungeeCord has been modified to accept eaglercraft's strange login packets and to host a websocket server to translate browser connections to raw TCP that vanilla minecraft servers can understand. All java plugins designed for CraftBukkit 1.6.4 are compatible with this configuration. +All graphical assets in this project were ripped from mojang's official minecraft.jar for minecraft version 1.6.4 and they are mojang's intellectual property. assets ommitted include the minecraft soundtrack and music disks and all software references to the mojang/minecraft api. scroll down for the detailed license statements diff --git a/lwjgl-rundir/resources/environment/clouds.png b/lwjgl-rundir/resources/environment/clouds.png deleted file mode 100644 index a67c44d2b58f9e3199da1ce09f91b529cf400503..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13674 zcmV-wHI>SVP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00009 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 diff --git a/lwjgl-rundir/resources/environment/rain.png b/lwjgl-rundir/resources/environment/rain.png deleted file mode 100644 index 2dc4b1cdc4e0ad52f67dd13a5c4c9c558988c195..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2503 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 uh-a72{dx@UilGh!~X)ViCVV+ diff --git a/lwjgl-rundir/resources/environment/snow.png b/lwjgl-rundir/resources/environment/snow.png deleted file mode 100644 index 189890307f422c8995a862316307974fc27bfc24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 781 zcmeAS@N?(olHy`uVBq!ia0vp^4h#&83><7g7PDIch+;{1^mSxl*x1kgCy^D%S4j2< z@?~JCQe$9fXklRZ1r%y{!N5>zz`*b-fq}tl1_Oh5!JJ)zHb4o^0*}aI1_r*vAk26? ze?l7i(^Pd+}pdS^Bx=UFdX>z-+%c@MThQXjY}foC~+1jMdk&bUGzOLWved&w> z*w1j!Ll`pp6J7;Zt~&W;*|}~1CDxi>xc1mRtoX^CYZWr?AQj=O`7FpCJ5HNA=tq^a_>s5 zxs2A{=WnoZ91-!TzwBdwu)K2mJNYOn%}rkp}S$N%r@RX$^UMDW82RAN9pf&-6Pu??=o`;WQYbVTN~7; z{9%8C?7dgkdyEeJZ3KFropVZFez5ICxA3AbdzvRjXs{gOT(P^rTP=ZUFVlSy87666 T6*G5W8fEZw^>bP0l+XkKo%|_f diff --git a/lwjgl-rundir/resources/environment/sun.png b/lwjgl-rundir/resources/environment/sun.png deleted file mode 100644 index 08de644b7c67d6355d3e0e7d547db3825f585248..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 675 zcmV;U0$lxxP)Y};Q_S6?e)^K%*vAgwBOInw1bNP!o<{}+2IiRrfP$BpjDL* z26t7!)Ekex#wIQT2=g?q8*62UBOpjTdP->_ z^mJNYU-z+_8)v#^6IP=kMXkVL^JtqeaZr;&ggzV=giKGLfCfW`(0M=GMvZ9R8pPuTMmj=Y;a=coN z-`<>Y!IDi}1c-wa5`!ijf#WcJq`t~WT-v8Vp@aDTKKb~Ve11+bE?BZD4#Ef~g+$Ud z2^)1wVEU+h28hInAoTUm*Fh5pVFZ(+CQPMv&gwt}G-%~BMubKRigoDg@2>rP;Ua)A zf~^TaG=?sLzkhNO`0`tE5M)E}yIz}pvx#fdL_>;H0tBd21WZi&aKkWCL_bD=ivYr; z5{dtVAeKbYhpfjq)@{mj5%EEb`>NoDCxTcnI}!MgWz5&LzQz$hIAIe}KAGW>;_@GT zjUnQ(#R$Z)cRISn!7Jq0rMb}2(N19z55EUb#b?j%J4eJr5P!+q`fcyc1Y!UH002ov JPDHLkV1lgKGt>Y8 diff --git a/lwjgl-rundir/resources/textures/colormap/foliage.png b/lwjgl-rundir/resources/textures/colormap/foliage.png deleted file mode 100644 index dcc119eefdd8f95111ef6e9cebe8462f8214e95c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17661 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 dSX{9o=+Lf_?fY{GQv}|=37J3d(i}> 4 & 255)); - var11.setByteArray("Blocks", var10.getBlockLSBArray()); - - if (var10.getBlockMSBArray() != null) { - var11.setByteArray("Add", var10.getBlockMSBArray().data); - } - - var11.setByteArray("Data", var10.getMetadataArray().data); - var11.setByteArray("BlockLight", var10.getBlocklightArray().data); - - if (var6) { - var11.setByteArray("SkyLight", var10.getSkylightArray().data); - } else { - var11.setByteArray("SkyLight", new byte[var10.getBlocklightArray().data.length]); - } - - var5.appendTag(var11); - } - } - - par3NBTTagCompound.setTag("Sections", var5); - par3NBTTagCompound.setByteArray("Biomes", par1Chunk.getBiomeArray()); - par1Chunk.hasEntities = false; - NBTTagList var16 = new NBTTagList(); - Iterator var18; - - for (var8 = 0; var8 < par1Chunk.entityLists.length; ++var8) { - var18 = par1Chunk.entityLists[var8].iterator(); - - while (var18.hasNext()) { - Entity var20 = (Entity) var18.next(); - var11 = new NBTTagCompound(); - - if (var20.addEntityID(var11)) { - par1Chunk.hasEntities = true; - var16.appendTag(var11); - } - } - } - - par3NBTTagCompound.setTag("Entities", var16); - NBTTagList var17 = new NBTTagList(); - var18 = par1Chunk.chunkTileEntityMap.values().iterator(); - - while (var18.hasNext()) { - TileEntity var21 = (TileEntity) var18.next(); - var11 = new NBTTagCompound(); - var21.writeToNBT(var11); - var17.appendTag(var11); - } - - par3NBTTagCompound.setTag("TileEntities", var17); - List var19 = par2World.getPendingBlockUpdates(par1Chunk, false); - - if (var19 != null) { - long var22 = par2World.getTotalWorldTime(); - NBTTagList var12 = new NBTTagList(); - Iterator var13 = var19.iterator(); - - while (var13.hasNext()) { - NextTickListEntry var14 = (NextTickListEntry) var13.next(); - NBTTagCompound var15 = new NBTTagCompound(); - var15.setInteger("i", var14.blockID); - var15.setInteger("x", var14.xCoord); - var15.setInteger("y", var14.yCoord); - var15.setInteger("z", var14.zCoord); - var15.setInteger("t", (int) (var14.scheduledTime - var22)); - var15.setInteger("p", var14.field_82754_f); - var12.appendTag(var15); - } - - par3NBTTagCompound.setTag("TileTicks", var12); - } - } - - /** - * Reads the data stored in the passed NBTTagCompound and creates a Chunk with - * that data in the passed World. Returns the created Chunk. - */ - private Chunk readChunkFromNBT(World par1World, NBTTagCompound par2NBTTagCompound) { - int var3 = par2NBTTagCompound.getInteger("xPos"); - int var4 = par2NBTTagCompound.getInteger("zPos"); - Chunk var5 = new Chunk(par1World, var3, var4); - var5.heightMap = par2NBTTagCompound.getIntArray("HeightMap"); - var5.isTerrainPopulated = par2NBTTagCompound.getBoolean("TerrainPopulated"); - NBTTagList var6 = par2NBTTagCompound.getTagList("Sections"); - byte var7 = 16; - ExtendedBlockStorage[] var8 = new ExtendedBlockStorage[var7]; - boolean var9 = !par1World.provider.hasNoSky; - - for (int var10 = 0; var10 < var6.tagCount(); ++var10) { - NBTTagCompound var11 = (NBTTagCompound) var6.tagAt(var10); - byte var12 = var11.getByte("Y"); - ExtendedBlockStorage var13 = new ExtendedBlockStorage(var12 << 4, var9); - var13.setBlockLSBArray(var11.getByteArray("Blocks")); - - if (var11.hasKey("Add")) { - var13.setBlockMSBArray(new NibbleArray(var11.getByteArray("Add"), 4)); - } - - var13.setBlockMetadataArray(new NibbleArray(var11.getByteArray("Data"), 4)); - var13.setBlocklightArray(new NibbleArray(var11.getByteArray("BlockLight"), 4)); - - if (var9) { - var13.setSkylightArray(new NibbleArray(var11.getByteArray("SkyLight"), 4)); - } - - var13.removeInvalidBlocks(); - var8[var12] = var13; - } - - var5.setStorageArrays(var8); - - if (par2NBTTagCompound.hasKey("Biomes")) { - var5.setBiomeArray(par2NBTTagCompound.getByteArray("Biomes")); - } - - NBTTagList var17 = par2NBTTagCompound.getTagList("Entities"); - - if (var17 != null) { - for (int var18 = 0; var18 < var17.tagCount(); ++var18) { - NBTTagCompound var20 = (NBTTagCompound) var17.tagAt(var18); - Entity var22 = EntityList.createEntityFromNBT(var20, par1World); - var5.hasEntities = true; - - if (var22 != null) { - var5.addEntity(var22); - Entity var14 = var22; - - for (NBTTagCompound var15 = var20; var15.hasKey("Riding"); var15 = var15.getCompoundTag("Riding")) { - Entity var16 = EntityList.createEntityFromNBT(var15.getCompoundTag("Riding"), par1World); - - if (var16 != null) { - var5.addEntity(var16); - var14.mountEntity(var16); - } - - var14 = var16; - } - } - } - } - - NBTTagList var19 = par2NBTTagCompound.getTagList("TileEntities"); - - if (var19 != null) { - for (int var21 = 0; var21 < var19.tagCount(); ++var21) { - NBTTagCompound var24 = (NBTTagCompound) var19.tagAt(var21); - TileEntity var26 = TileEntity.createAndLoadEntity(var24); - - if (var26 != null) { - var5.addTileEntity(var26); - } - } - } - - if (par2NBTTagCompound.hasKey("TileTicks")) { - NBTTagList var23 = par2NBTTagCompound.getTagList("TileTicks"); - - if (var23 != null) { - for (int var25 = 0; var25 < var23.tagCount(); ++var25) { - NBTTagCompound var27 = (NBTTagCompound) var23.tagAt(var25); - par1World.scheduleBlockUpdateFromLoad(var27.getInteger("x"), var27.getInteger("y"), - var27.getInteger("z"), var27.getInteger("i"), var27.getInteger("t"), var27.getInteger("p")); - } - } - } - - return var5; - } -} diff --git a/sp-server/src_aux/AnvilChunkLoaderPending.java b/sp-server/src_aux/AnvilChunkLoaderPending.java deleted file mode 100644 index df5d13d..0000000 --- a/sp-server/src_aux/AnvilChunkLoaderPending.java +++ /dev/null @@ -1,11 +0,0 @@ -package net.minecraft.src; - -class AnvilChunkLoaderPending { - public final ChunkCoordIntPair chunkCoordinate; - public final NBTTagCompound nbtTags; - - public AnvilChunkLoaderPending(ChunkCoordIntPair par1ChunkCoordIntPair, NBTTagCompound par2NBTTagCompound) { - this.chunkCoordinate = par1ChunkCoordIntPair; - this.nbtTags = par2NBTTagCompound; - } -} diff --git a/sp-server/src_aux/AnvilConverterData.java b/sp-server/src_aux/AnvilConverterData.java deleted file mode 100644 index 3b4f89e..0000000 --- a/sp-server/src_aux/AnvilConverterData.java +++ /dev/null @@ -1,21 +0,0 @@ -package net.minecraft.src; - -public class AnvilConverterData { - public long lastUpdated; - public boolean terrainPopulated; - public byte[] heightmap; - public NibbleArrayReader blockLight; - public NibbleArrayReader skyLight; - public NibbleArrayReader data; - public byte[] blocks; - public NBTTagList entities; - public NBTTagList tileEntities; - public NBTTagList tileTicks; - public final int x; - public final int z; - - public AnvilConverterData(int par1, int par2) { - this.x = par1; - this.z = par2; - } -} diff --git a/sp-server/src_aux/AnvilSaveConverter.java b/sp-server/src_aux/AnvilSaveConverter.java deleted file mode 100644 index b1bcb2a..0000000 --- a/sp-server/src_aux/AnvilSaveConverter.java +++ /dev/null @@ -1,191 +0,0 @@ -package net.minecraft.src; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Iterator; -import net.minecraft.server.MinecraftServer; - -public class AnvilSaveConverter extends SaveFormatOld { - public AnvilSaveConverter(File par1File) { - super(par1File); - } - - protected int getSaveVersion() { - return 19133; - } - - public void flushCache() { - RegionFileCache.clearRegionFileReferences(); - } - - /** - * Returns back a loader for the specified save directory - */ - public ISaveHandler getSaveLoader(String par1Str, boolean par2) { - return new AnvilSaveHandler(this.savesDirectory, par1Str, par2); - } - - /** - * gets if the map is old chunk saving (true) or McRegion (false) - */ - public boolean isOldMapFormat(String par1Str) { - WorldInfo var2 = this.getWorldInfo(par1Str); - return var2 != null && var2.getSaveVersion() != this.getSaveVersion(); - } - - /** - * converts the map to mcRegion - */ - public boolean convertMapFormat(String par1Str, IProgressUpdate par2IProgressUpdate) { - par2IProgressUpdate.setLoadingProgress(0); - ArrayList var3 = new ArrayList(); - ArrayList var4 = new ArrayList(); - ArrayList var5 = new ArrayList(); - File var6 = new File(this.savesDirectory, par1Str); - File var7 = new File(var6, "DIM-1"); - File var8 = new File(var6, "DIM1"); - MinecraftServer.getServer().getLogAgent().func_98233_a("Scanning folders..."); - this.addRegionFilesToCollection(var6, var3); - - if (var7.exists()) { - this.addRegionFilesToCollection(var7, var4); - } - - if (var8.exists()) { - this.addRegionFilesToCollection(var8, var5); - } - - int var9 = var3.size() + var4.size() + var5.size(); - MinecraftServer.getServer().getLogAgent().func_98233_a("Total conversion count is " + var9); - WorldInfo var10 = this.getWorldInfo(par1Str); - Object var11 = null; - - if (var10.getTerrainType() == WorldType.FLAT) { - var11 = new WorldChunkManagerHell(BiomeGenBase.plains, 0.5F, 0.5F); - } else { - var11 = new WorldChunkManager(var10.getSeed(), var10.getTerrainType()); - } - - this.convertFile(new File(var6, "region"), var3, (WorldChunkManager) var11, 0, var9, par2IProgressUpdate); - this.convertFile(new File(var7, "region"), var4, new WorldChunkManagerHell(BiomeGenBase.hell, 1.0F, 0.0F), - var3.size(), var9, par2IProgressUpdate); - this.convertFile(new File(var8, "region"), var5, new WorldChunkManagerHell(BiomeGenBase.sky, 0.5F, 0.0F), - var3.size() + var4.size(), var9, par2IProgressUpdate); - var10.setSaveVersion(19133); - - if (var10.getTerrainType() == WorldType.DEFAULT_1_1) { - var10.setTerrainType(WorldType.DEFAULT); - } - - this.createFile(par1Str); - ISaveHandler var12 = this.getSaveLoader(par1Str, false); - var12.saveWorldInfo(var10); - return true; - } - - /** - * par: filename for the level.dat_mcr backup - */ - private void createFile(String par1Str) { - File var2 = new File(this.savesDirectory, par1Str); - - if (!var2.exists()) { - System.out.println("Warning: Unable to create level.dat_mcr backup"); - } else { - File var3 = new File(var2, "level.dat"); - - if (!var3.exists()) { - System.out.println("Warning: Unable to create level.dat_mcr backup"); - } else { - File var4 = new File(var2, "level.dat_mcr"); - - if (!var3.renameTo(var4)) { - System.out.println("Warning: Unable to create level.dat_mcr backup"); - } - } - } - } - - private void convertFile(File par1File, Iterable par2Iterable, WorldChunkManager par3WorldChunkManager, int par4, - int par5, IProgressUpdate par6IProgressUpdate) { - Iterator var7 = par2Iterable.iterator(); - - while (var7.hasNext()) { - File var8 = (File) var7.next(); - this.convertChunks(par1File, var8, par3WorldChunkManager, par4, par5, par6IProgressUpdate); - ++par4; - int var9 = (int) Math.round(100.0D * (double) par4 / (double) par5); - par6IProgressUpdate.setLoadingProgress(var9); - } - } - - /** - * copies a 32x32 chunk set from par2File to par1File, via AnvilConverterData - */ - private void convertChunks(File par1File, File par2File, WorldChunkManager par3WorldChunkManager, int par4, - int par5, IProgressUpdate par6IProgressUpdate) { - try { - String var7 = par2File.getName(); - RegionFile var8 = new RegionFile(par2File); - RegionFile var9 = new RegionFile( - new File(par1File, var7.substring(0, var7.length() - ".mcr".length()) + ".mca")); - - for (int var10 = 0; var10 < 32; ++var10) { - int var11; - - for (var11 = 0; var11 < 32; ++var11) { - if (var8.isChunkSaved(var10, var11) && !var9.isChunkSaved(var10, var11)) { - DataInputStream var12 = var8.getChunkDataInputStream(var10, var11); - - if (var12 == null) { - MinecraftServer.getServer().getLogAgent().func_98236_b("Failed to fetch input stream"); - } else { - NBTTagCompound var13 = CompressedStreamTools.read(var12); - var12.close(); - NBTTagCompound var14 = var13.getCompoundTag("Level"); - AnvilConverterData var15 = ChunkLoader.load(var14); - NBTTagCompound var16 = new NBTTagCompound(); - NBTTagCompound var17 = new NBTTagCompound(); - var16.setTag("Level", var17); - ChunkLoader.convertToAnvilFormat(var15, var17, par3WorldChunkManager); - DataOutputStream var18 = var9.getChunkDataOutputStream(var10, var11); - CompressedStreamTools.write(var16, var18); - var18.close(); - } - } - } - - var11 = (int) Math.round(100.0D * (double) (par4 * 1024) / (double) (par5 * 1024)); - int var20 = (int) Math - .round(100.0D * (double) ((var10 + 1) * 32 + par4 * 1024) / (double) (par5 * 1024)); - - if (var20 > var11) { - par6IProgressUpdate.setLoadingProgress(var20); - } - } - - var8.close(); - var9.close(); - } catch (IOException var19) { - var19.printStackTrace(); - } - } - - /** - * filters the files in the par1 directory, and adds them to the par2 - * collections - */ - private void addRegionFilesToCollection(File par1File, Collection par2Collection) { - File var3 = new File(par1File, "region"); - File[] var4 = var3.listFiles(new AnvilSaveConverterFileFilter(this)); - - if (var4 != null) { - Collections.addAll(par2Collection, var4); - } - } -} diff --git a/sp-server/src_aux/AnvilSaveConverterFileFilter.java b/sp-server/src_aux/AnvilSaveConverterFileFilter.java deleted file mode 100644 index 9d6a70d..0000000 --- a/sp-server/src_aux/AnvilSaveConverterFileFilter.java +++ /dev/null @@ -1,16 +0,0 @@ -package net.minecraft.src; - -import java.io.File; -import java.io.FilenameFilter; - -class AnvilSaveConverterFileFilter implements FilenameFilter { - final AnvilSaveConverter parent; - - AnvilSaveConverterFileFilter(AnvilSaveConverter par1AnvilSaveConverter) { - this.parent = par1AnvilSaveConverter; - } - - public boolean accept(File par1File, String par2Str) { - return par2Str.endsWith(".mcr"); - } -} diff --git a/sp-server/src_aux/AnvilSaveHandler.java b/sp-server/src_aux/AnvilSaveHandler.java deleted file mode 100644 index 00334a8..0000000 --- a/sp-server/src_aux/AnvilSaveHandler.java +++ /dev/null @@ -1,50 +0,0 @@ -package net.minecraft.src; - -import java.io.File; - -public class AnvilSaveHandler extends SaveHandler { - public AnvilSaveHandler(File par1File, String par2Str, boolean par3) { - super(par1File, par2Str, par3); - } - - /** - * initializes and returns the chunk loader for the specified world provider - */ - public IChunkLoader getChunkLoader(WorldProvider par1WorldProvider) { - File var2 = this.getWorldDirectory(); - File var3; - - if (par1WorldProvider instanceof WorldProviderHell) { - var3 = new File(var2, "DIM-1"); - var3.mkdirs(); - return new AnvilChunkLoader(var3); - } else if (par1WorldProvider instanceof WorldProviderEnd) { - var3 = new File(var2, "DIM1"); - var3.mkdirs(); - return new AnvilChunkLoader(var3); - } else { - return new AnvilChunkLoader(var2); - } - } - - /** - * Saves the given World Info with the given NBTTagCompound as the Player. - */ - public void saveWorldInfoWithPlayer(WorldInfo par1WorldInfo, NBTTagCompound par2NBTTagCompound) { - par1WorldInfo.setSaveVersion(19133); - super.saveWorldInfoWithPlayer(par1WorldInfo, par2NBTTagCompound); - } - - /** - * Called to flush all changes to disk, waiting for them to complete. - */ - public void flush() { - try { - ThreadedFileIOBase.threadedIOInstance.waitForFinish(); - } catch (InterruptedException var2) { - var2.printStackTrace(); - } - - RegionFileCache.clearRegionFileReferences(); - } -} diff --git a/sp-server/src_aux/ChunkLoader.java b/sp-server/src_aux/ChunkLoader.java deleted file mode 100644 index e9b2209..0000000 --- a/sp-server/src_aux/ChunkLoader.java +++ /dev/null @@ -1,122 +0,0 @@ -package net.minecraft.src; - -public class ChunkLoader { - public static AnvilConverterData load(NBTTagCompound par0NBTTagCompound) { - int var1 = par0NBTTagCompound.getInteger("xPos"); - int var2 = par0NBTTagCompound.getInteger("zPos"); - AnvilConverterData var3 = new AnvilConverterData(var1, var2); - var3.blocks = par0NBTTagCompound.getByteArray("Blocks"); - var3.data = new NibbleArrayReader(par0NBTTagCompound.getByteArray("Data"), 7); - var3.skyLight = new NibbleArrayReader(par0NBTTagCompound.getByteArray("SkyLight"), 7); - var3.blockLight = new NibbleArrayReader(par0NBTTagCompound.getByteArray("BlockLight"), 7); - var3.heightmap = par0NBTTagCompound.getByteArray("HeightMap"); - var3.terrainPopulated = par0NBTTagCompound.getBoolean("TerrainPopulated"); - var3.entities = par0NBTTagCompound.getTagList("Entities"); - var3.tileEntities = par0NBTTagCompound.getTagList("TileEntities"); - var3.tileTicks = par0NBTTagCompound.getTagList("TileTicks"); - - try { - var3.lastUpdated = par0NBTTagCompound.getLong("LastUpdate"); - } catch (ClassCastException var5) { - var3.lastUpdated = (long) par0NBTTagCompound.getInteger("LastUpdate"); - } - - return var3; - } - - public static void convertToAnvilFormat(AnvilConverterData par0AnvilConverterData, - NBTTagCompound par1NBTTagCompound, WorldChunkManager par2WorldChunkManager) { - par1NBTTagCompound.setInteger("xPos", par0AnvilConverterData.x); - par1NBTTagCompound.setInteger("zPos", par0AnvilConverterData.z); - par1NBTTagCompound.setLong("LastUpdate", par0AnvilConverterData.lastUpdated); - int[] var3 = new int[par0AnvilConverterData.heightmap.length]; - - for (int var4 = 0; var4 < par0AnvilConverterData.heightmap.length; ++var4) { - var3[var4] = par0AnvilConverterData.heightmap[var4]; - } - - par1NBTTagCompound.setIntArray("HeightMap", var3); - par1NBTTagCompound.setBoolean("TerrainPopulated", par0AnvilConverterData.terrainPopulated); - NBTTagList var16 = new NBTTagList("Sections"); - int var7; - - for (int var5 = 0; var5 < 8; ++var5) { - boolean var6 = true; - - for (var7 = 0; var7 < 16 && var6; ++var7) { - int var8 = 0; - - while (var8 < 16 && var6) { - int var9 = 0; - - while (true) { - if (var9 < 16) { - int var10 = var7 << 11 | var9 << 7 | var8 + (var5 << 4); - byte var11 = par0AnvilConverterData.blocks[var10]; - - if (var11 == 0) { - ++var9; - continue; - } - - var6 = false; - } - - ++var8; - break; - } - } - } - - if (!var6) { - byte[] var19 = new byte[4096]; - NibbleArray var20 = new NibbleArray(var19.length, 4); - NibbleArray var21 = new NibbleArray(var19.length, 4); - NibbleArray var22 = new NibbleArray(var19.length, 4); - - for (int var23 = 0; var23 < 16; ++var23) { - for (int var12 = 0; var12 < 16; ++var12) { - for (int var13 = 0; var13 < 16; ++var13) { - int var14 = var23 << 11 | var13 << 7 | var12 + (var5 << 4); - byte var15 = par0AnvilConverterData.blocks[var14]; - var19[var12 << 8 | var13 << 4 | var23] = (byte) (var15 & 255); - var20.set(var23, var12, var13, - par0AnvilConverterData.data.get(var23, var12 + (var5 << 4), var13)); - var21.set(var23, var12, var13, - par0AnvilConverterData.skyLight.get(var23, var12 + (var5 << 4), var13)); - var22.set(var23, var12, var13, - par0AnvilConverterData.blockLight.get(var23, var12 + (var5 << 4), var13)); - } - } - } - - NBTTagCompound var24 = new NBTTagCompound(); - var24.setByte("Y", (byte) (var5 & 255)); - var24.setByteArray("Blocks", var19); - var24.setByteArray("Data", var20.data); - var24.setByteArray("SkyLight", var21.data); - var24.setByteArray("BlockLight", var22.data); - var16.appendTag(var24); - } - } - - par1NBTTagCompound.setTag("Sections", var16); - byte[] var17 = new byte[256]; - - for (int var18 = 0; var18 < 16; ++var18) { - for (var7 = 0; var7 < 16; ++var7) { - var17[var7 << 4 - | var18] = (byte) (par2WorldChunkManager.getBiomeGenAt(par0AnvilConverterData.x << 4 | var18, - par0AnvilConverterData.z << 4 | var7).biomeID & 255); - } - } - - par1NBTTagCompound.setByteArray("Biomes", var17); - par1NBTTagCompound.setTag("Entities", par0AnvilConverterData.entities); - par1NBTTagCompound.setTag("TileEntities", par0AnvilConverterData.tileEntities); - - if (par0AnvilConverterData.tileTicks != null) { - par1NBTTagCompound.setTag("TileTicks", par0AnvilConverterData.tileTicks); - } - } -} diff --git a/sp-server/src_aux/DedicatedServer.java b/sp-server/src_aux/DedicatedServer.java deleted file mode 100644 index 7b46f5e..0000000 --- a/sp-server/src_aux/DedicatedServer.java +++ /dev/null @@ -1,368 +0,0 @@ -package net.minecraft.src; - -import java.io.File; -import java.io.IOException; -import java.net.InetAddress; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Random; -import net.minecraft.server.MinecraftServer; - -public class DedicatedServer extends MinecraftServer implements IServer { - private final List pendingCommandList = Collections.synchronizedList(new ArrayList()); - private final ILogAgent field_98131_l; - private RConThreadQuery theRConThreadQuery; - private RConThreadMain theRConThreadMain; - private PropertyManager settings; - private boolean canSpawnStructures; - private EnumGameType gameType; - private NetworkListenThread networkThread; - private boolean guiIsEnabled = false; - - public DedicatedServer(File par1File) { - super(par1File); - this.field_98131_l = new LogAgent("Minecraft-Server", (String) null, - (new File(par1File, "server.log")).getAbsolutePath()); - new DedicatedServerSleepThread(this); - } - - /** - * Initialises the server and starts it. - */ - protected boolean startServer() throws IOException { - DedicatedServerCommandThread var1 = new DedicatedServerCommandThread(this); - var1.setDaemon(true); - var1.start(); - this.getLogAgent().func_98233_a("Starting minecraft server version 1.5.2"); - - if (Runtime.getRuntime().maxMemory() / 1024L / 1024L < 512L) { - this.getLogAgent().func_98236_b( - "To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\""); - } - - this.getLogAgent().func_98233_a("Loading properties"); - this.settings = new PropertyManager(new File("server.properties"), this.getLogAgent()); - - if (this.isSinglePlayer()) { - this.setHostname("127.0.0.1"); - } else { - this.setOnlineMode(this.settings.getBooleanProperty("online-mode", true)); - this.setHostname(this.settings.getStringProperty("server-ip", "")); - } - - this.setCanSpawnAnimals(this.settings.getBooleanProperty("spawn-animals", true)); - this.setCanSpawnNPCs(this.settings.getBooleanProperty("spawn-npcs", true)); - this.setAllowPvp(this.settings.getBooleanProperty("pvp", true)); - this.setAllowFlight(this.settings.getBooleanProperty("allow-flight", false)); - this.setTexturePack(this.settings.getStringProperty("texture-pack", "")); - this.setMOTD(this.settings.getStringProperty("motd", "A Minecraft Server")); - this.func_104055_i(this.settings.getBooleanProperty("force-gamemode", false)); - - if (this.settings.getIntProperty("difficulty", 1) < 0) { - this.settings.setProperty("difficulty", Integer.valueOf(0)); - } else if (this.settings.getIntProperty("difficulty", 1) > 3) { - this.settings.setProperty("difficulty", Integer.valueOf(3)); - } - - this.canSpawnStructures = this.settings.getBooleanProperty("generate-structures", true); - int var2 = this.settings.getIntProperty("gamemode", EnumGameType.SURVIVAL.getID()); - this.gameType = WorldSettings.getGameTypeById(var2); - this.getLogAgent().func_98233_a("Default game type: " + this.gameType); - InetAddress var3 = null; - - if (this.getServerHostname().length() > 0) { - var3 = InetAddress.getByName(this.getServerHostname()); - } - - if (this.getServerPort() < 0) { - this.setServerPort(this.settings.getIntProperty("server-port", 25565)); - } - - this.getLogAgent().func_98233_a("Generating keypair"); - this.setKeyPair(CryptManager.generateKeyPair()); - this.getLogAgent() - .func_98233_a("Starting Minecraft server on " - + (this.getServerHostname().length() == 0 ? "*" : this.getServerHostname()) + ":" - + this.getServerPort()); - - try { - this.networkThread = new DedicatedServerListenThread(this, var3, this.getServerPort()); - } catch (IOException var16) { - this.getLogAgent().func_98236_b("**** FAILED TO BIND TO PORT!"); - this.getLogAgent().logWarningFormatted("The exception was: {0}", new Object[] { var16.toString() }); - this.getLogAgent().func_98236_b("Perhaps a server is already running on that port?"); - return false; - } - - if (!this.isServerInOnlineMode()) { - this.getLogAgent().func_98236_b("**** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!"); - this.getLogAgent().func_98236_b("The server will make no attempt to authenticate usernames. Beware."); - this.getLogAgent().func_98236_b( - "While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose."); - this.getLogAgent() - .func_98236_b("To change this, set \"online-mode\" to \"true\" in the server.properties file."); - } - - this.setConfigurationManager(new DedicatedPlayerList(this)); - long var4 = System.nanoTime(); - - if (this.getFolderName() == null) { - this.setFolderName(this.settings.getStringProperty("level-name", "world")); - } - - String var6 = this.settings.getStringProperty("level-seed", ""); - String var7 = this.settings.getStringProperty("level-type", "DEFAULT"); - String var8 = this.settings.getStringProperty("generator-settings", ""); - long var9 = (new Random()).nextLong(); - - if (var6.length() > 0) { - try { - long var11 = Long.parseLong(var6); - - if (var11 != 0L) { - var9 = var11; - } - } catch (NumberFormatException var15) { - var9 = (long) var6.hashCode(); - } - } - - WorldType var17 = WorldType.parseWorldType(var7); - - if (var17 == null) { - var17 = WorldType.DEFAULT; - } - - this.setBuildLimit(this.settings.getIntProperty("max-build-height", 256)); - this.setBuildLimit((this.getBuildLimit() + 8) / 16 * 16); - this.setBuildLimit(MathHelper.clamp_int(this.getBuildLimit(), 64, 256)); - this.settings.setProperty("max-build-height", Integer.valueOf(this.getBuildLimit())); - this.getLogAgent().func_98233_a("Preparing level \"" + this.getFolderName() + "\""); - this.loadAllWorlds(this.getFolderName(), this.getFolderName(), var9, var17, var8); - long var12 = System.nanoTime() - var4; - String var14 = String.format("%.3fs", new Object[] { Double.valueOf((double) var12 / 1.0E9D) }); - this.getLogAgent().func_98233_a("Done (" + var14 + ")! For help, type \"help\" or \"?\""); - - if (this.settings.getBooleanProperty("enable-query", false)) { - this.getLogAgent().func_98233_a("Starting GS4 status listener"); - this.theRConThreadQuery = new RConThreadQuery(this); - this.theRConThreadQuery.startThread(); - } - - if (this.settings.getBooleanProperty("enable-rcon", false)) { - this.getLogAgent().func_98233_a("Starting remote control listener"); - this.theRConThreadMain = new RConThreadMain(this); - this.theRConThreadMain.startThread(); - } - - return true; - } - - public boolean canStructuresSpawn() { - return this.canSpawnStructures; - } - - public EnumGameType getGameType() { - return this.gameType; - } - - /** - * Defaults to "1" (Easy) for the dedicated server, defaults to "2" (Normal) on - * the client. - */ - public int getDifficulty() { - return this.settings.getIntProperty("difficulty", 1); - } - - /** - * Defaults to false. - */ - public boolean isHardcore() { - return this.settings.getBooleanProperty("hardcore", false); - } - - /** - * Called on exit from the main run() loop. - */ - protected void finalTick(CrashReport par1CrashReport) { - while (this.isServerRunning()) { - this.executePendingCommands(); - - try { - Thread.sleep(10L); - } catch (InterruptedException var3) { - var3.printStackTrace(); - } - } - } - - /** - * Adds the server info, including from theWorldServer, to the crash report. - */ - public CrashReport addServerInfoToCrashReport(CrashReport par1CrashReport) { - par1CrashReport = super.addServerInfoToCrashReport(par1CrashReport); - par1CrashReport.func_85056_g().addCrashSectionCallable("Is Modded", new CallableType(this)); - par1CrashReport.func_85056_g().addCrashSectionCallable("Type", new CallableServerType(this)); - return par1CrashReport; - } - - /** - * Directly calls System.exit(0), instantly killing the program. - */ - protected void systemExitNow() { - System.exit(0); - } - - public void updateTimeLightAndEntities() { - super.updateTimeLightAndEntities(); - this.executePendingCommands(); - } - - public boolean getAllowNether() { - return this.settings.getBooleanProperty("allow-nether", true); - } - - public boolean allowSpawnMonsters() { - return this.settings.getBooleanProperty("spawn-monsters", true); - } - - public void addServerStatsToSnooper(PlayerUsageSnooper par1PlayerUsageSnooper) { - par1PlayerUsageSnooper.addData("whitelist_enabled", - Boolean.valueOf(this.getDedicatedPlayerList().isWhiteListEnabled())); - par1PlayerUsageSnooper.addData("whitelist_count", - Integer.valueOf(this.getDedicatedPlayerList().getWhiteListedPlayers().size())); - super.addServerStatsToSnooper(par1PlayerUsageSnooper); - } - - /** - * Returns whether snooping is enabled or not. - */ - public boolean isSnooperEnabled() { - return this.settings.getBooleanProperty("snooper-enabled", true); - } - - public void addPendingCommand(String par1Str, ICommandSender par2ICommandSender) { - this.pendingCommandList.add(new ServerCommand(par1Str, par2ICommandSender)); - } - - public void executePendingCommands() { - while (!this.pendingCommandList.isEmpty()) { - ServerCommand var1 = (ServerCommand) this.pendingCommandList.remove(0); - this.getCommandManager().executeCommand(var1.sender, var1.command); - } - } - - public boolean isDedicatedServer() { - return true; - } - - public DedicatedPlayerList getDedicatedPlayerList() { - return (DedicatedPlayerList) super.getConfigurationManager(); - } - - public NetworkListenThread getNetworkThread() { - return this.networkThread; - } - - /** - * Gets an integer property. If it does not exist, set it to the specified - * value. - */ - public int getIntProperty(String par1Str, int par2) { - return this.settings.getIntProperty(par1Str, par2); - } - - /** - * Gets a string property. If it does not exist, set it to the specified value. - */ - public String getStringProperty(String par1Str, String par2Str) { - return this.settings.getStringProperty(par1Str, par2Str); - } - - /** - * Gets a boolean property. If it does not exist, set it to the specified value. - */ - public boolean getBooleanProperty(String par1Str, boolean par2) { - return this.settings.getBooleanProperty(par1Str, par2); - } - - /** - * Saves an Object with the given property name. - */ - public void setProperty(String par1Str, Object par2Obj) { - this.settings.setProperty(par1Str, par2Obj); - } - - /** - * Saves all of the server properties to the properties file. - */ - public void saveProperties() { - this.settings.saveProperties(); - } - - /** - * Returns the filename where server properties are stored - */ - public String getSettingsFilename() { - File var1 = this.settings.getPropertiesFile(); - return var1 != null ? var1.getAbsolutePath() : "No settings file"; - } - - public void enableGui() { - ServerGUI.initGUI(this); - this.guiIsEnabled = true; - } - - public boolean getGuiEnabled() { - return this.guiIsEnabled; - } - - /** - * On dedicated does nothing. On integrated, sets commandsAllowedForAll, - * gameType and allows external connections. - */ - public String shareToLAN(EnumGameType par1EnumGameType, boolean par2) { - return ""; - } - - /** - * Return whether command blocks are enabled. - */ - public boolean isCommandBlockEnabled() { - return this.settings.getBooleanProperty("enable-command-block", false); - } - - /** - * Return the spawn protection area's size. - */ - public int getSpawnProtectionSize() { - return this.settings.getIntProperty("spawn-protection", super.getSpawnProtectionSize()); - } - - public boolean func_96290_a(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer) { - if (par1World.provider.dimensionId != 0) { - return false; - } else if (this.getDedicatedPlayerList().getOps().isEmpty()) { - return false; - } else if (this.getDedicatedPlayerList().areCommandsAllowed(par5EntityPlayer.username)) { - return false; - } else if (this.getSpawnProtectionSize() <= 0) { - return false; - } else { - ChunkCoordinates var6 = par1World.getSpawnPoint(); - int var7 = MathHelper.abs_int(par2 - var6.posX); - int var8 = MathHelper.abs_int(par4 - var6.posZ); - int var9 = Math.max(var7, var8); - return var9 <= this.getSpawnProtectionSize(); - } - } - - public ILogAgent getLogAgent() { - return this.field_98131_l; - } - - public ServerConfigurationManager getConfigurationManager() { - return this.getDedicatedPlayerList(); - } -} diff --git a/sp-server/src_aux/RegionFile.java b/sp-server/src_aux/RegionFile.java deleted file mode 100644 index bb4ff9a..0000000 --- a/sp-server/src_aux/RegionFile.java +++ /dev/null @@ -1,284 +0,0 @@ -package net.minecraft.src; - -import java.io.BufferedInputStream; -import java.io.ByteArrayInputStream; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.File; -import java.io.IOException; -import java.io.RandomAccessFile; -import java.util.ArrayList; -import java.util.zip.DeflaterOutputStream; -import java.util.zip.GZIPInputStream; -import java.util.zip.InflaterInputStream; - -public class RegionFile { - private static final byte[] emptySector = new byte[4096]; - private final File fileName; - private RandomAccessFile dataFile; - private final int[] offsets = new int[1024]; - private final int[] chunkTimestamps = new int[1024]; - private ArrayList sectorFree; - - /** McRegion sizeDelta */ - private int sizeDelta; - private long lastModified = 0L; - - public RegionFile(File par1File) { - this.fileName = par1File; - this.sizeDelta = 0; - - try { - if (par1File.exists()) { - this.lastModified = par1File.lastModified(); - } - - this.dataFile = new RandomAccessFile(par1File, "rw"); - int var2; - - if (this.dataFile.length() < 4096L) { - for (var2 = 0; var2 < 1024; ++var2) { - this.dataFile.writeInt(0); - } - - for (var2 = 0; var2 < 1024; ++var2) { - this.dataFile.writeInt(0); - } - - this.sizeDelta += 8192; - } - - if ((this.dataFile.length() & 4095L) != 0L) { - for (var2 = 0; (long) var2 < (this.dataFile.length() & 4095L); ++var2) { - this.dataFile.write(0); - } - } - - var2 = (int) this.dataFile.length() / 4096; - this.sectorFree = new ArrayList(var2); - int var3; - - for (var3 = 0; var3 < var2; ++var3) { - this.sectorFree.add(Boolean.valueOf(true)); - } - - this.sectorFree.set(0, Boolean.valueOf(false)); - this.sectorFree.set(1, Boolean.valueOf(false)); - this.dataFile.seek(0L); - int var4; - - for (var3 = 0; var3 < 1024; ++var3) { - var4 = this.dataFile.readInt(); - this.offsets[var3] = var4; - - if (var4 != 0 && (var4 >> 8) + (var4 & 255) <= this.sectorFree.size()) { - for (int var5 = 0; var5 < (var4 & 255); ++var5) { - this.sectorFree.set((var4 >> 8) + var5, Boolean.valueOf(false)); - } - } - } - - for (var3 = 0; var3 < 1024; ++var3) { - var4 = this.dataFile.readInt(); - this.chunkTimestamps[var3] = var4; - } - } catch (IOException var6) { - var6.printStackTrace(); - } - } - - /** - * args: x, y - get uncompressed chunk stream from the region file - */ - public synchronized DataInputStream getChunkDataInputStream(int par1, int par2) { - if (this.outOfBounds(par1, par2)) { - return null; - } else { - try { - int var3 = this.getOffset(par1, par2); - - if (var3 == 0) { - return null; - } else { - int var4 = var3 >> 8; - int var5 = var3 & 255; - - if (var4 + var5 > this.sectorFree.size()) { - return null; - } else { - this.dataFile.seek((long) (var4 * 4096)); - int var6 = this.dataFile.readInt(); - - if (var6 > 4096 * var5) { - return null; - } else if (var6 <= 0) { - return null; - } else { - byte var7 = this.dataFile.readByte(); - byte[] var8; - - if (var7 == 1) { - var8 = new byte[var6 - 1]; - this.dataFile.read(var8); - return new DataInputStream( - new BufferedInputStream(new GZIPInputStream(new ByteArrayInputStream(var8)))); - } else if (var7 == 2) { - var8 = new byte[var6 - 1]; - this.dataFile.read(var8); - return new DataInputStream(new BufferedInputStream( - new InflaterInputStream(new ByteArrayInputStream(var8)))); - } else { - return null; - } - } - } - } - } catch (IOException var9) { - return null; - } - } - } - - /** - * args: x, z - get an output stream used to write chunk data, data is on disk - * when the returned stream is closed - */ - public DataOutputStream getChunkDataOutputStream(int par1, int par2) { - return this.outOfBounds(par1, par2) ? null - : new DataOutputStream(new DeflaterOutputStream(new RegionFileChunkBuffer(this, par1, par2))); - } - - /** - * args: x, z, data, length - write chunk data at (x, z) to disk - */ - protected synchronized void write(int par1, int par2, byte[] par3ArrayOfByte, int par4) { - try { - int var5 = this.getOffset(par1, par2); - int var6 = var5 >> 8; - int var7 = var5 & 255; - int var8 = (par4 + 5) / 4096 + 1; - - if (var8 >= 256) { - return; - } - - if (var6 != 0 && var7 == var8) { - this.write(var6, par3ArrayOfByte, par4); - } else { - int var9; - - for (var9 = 0; var9 < var7; ++var9) { - this.sectorFree.set(var6 + var9, Boolean.valueOf(true)); - } - - var9 = this.sectorFree.indexOf(Boolean.valueOf(true)); - int var10 = 0; - int var11; - - if (var9 != -1) { - for (var11 = var9; var11 < this.sectorFree.size(); ++var11) { - if (var10 != 0) { - if (((Boolean) this.sectorFree.get(var11)).booleanValue()) { - ++var10; - } else { - var10 = 0; - } - } else if (((Boolean) this.sectorFree.get(var11)).booleanValue()) { - var9 = var11; - var10 = 1; - } - - if (var10 >= var8) { - break; - } - } - } - - if (var10 >= var8) { - var6 = var9; - this.setOffset(par1, par2, var9 << 8 | var8); - - for (var11 = 0; var11 < var8; ++var11) { - this.sectorFree.set(var6 + var11, Boolean.valueOf(false)); - } - - this.write(var6, par3ArrayOfByte, par4); - } else { - this.dataFile.seek(this.dataFile.length()); - var6 = this.sectorFree.size(); - - for (var11 = 0; var11 < var8; ++var11) { - this.dataFile.write(emptySector); - this.sectorFree.add(Boolean.valueOf(false)); - } - - this.sizeDelta += 4096 * var8; - this.write(var6, par3ArrayOfByte, par4); - this.setOffset(par1, par2, var6 << 8 | var8); - } - } - - this.setChunkTimestamp(par1, par2, (int) (System.currentTimeMillis() / 1000L)); - } catch (IOException var12) { - var12.printStackTrace(); - } - } - - /** - * args: sectorNumber, data, length - write the chunk data to this RegionFile - */ - private void write(int par1, byte[] par2ArrayOfByte, int par3) throws IOException { - this.dataFile.seek((long) (par1 * 4096)); - this.dataFile.writeInt(par3 + 1); - this.dataFile.writeByte(2); - this.dataFile.write(par2ArrayOfByte, 0, par3); - } - - /** - * args: x, z - check region bounds - */ - private boolean outOfBounds(int par1, int par2) { - return par1 < 0 || par1 >= 32 || par2 < 0 || par2 >= 32; - } - - /** - * args: x, y - get chunk's offset in region file - */ - private int getOffset(int par1, int par2) { - return this.offsets[par1 + par2 * 32]; - } - - /** - * args: x, z, - true if chunk has been saved / converted - */ - public boolean isChunkSaved(int par1, int par2) { - return this.getOffset(par1, par2) != 0; - } - - /** - * args: x, z, offset - sets the chunk's offset in the region file - */ - private void setOffset(int par1, int par2, int par3) throws IOException { - this.offsets[par1 + par2 * 32] = par3; - this.dataFile.seek((long) ((par1 + par2 * 32) * 4)); - this.dataFile.writeInt(par3); - } - - /** - * args: x, z, timestamp - sets the chunk's write timestamp - */ - private void setChunkTimestamp(int par1, int par2, int par3) throws IOException { - this.chunkTimestamps[par1 + par2 * 32] = par3; - this.dataFile.seek((long) (4096 + (par1 + par2 * 32) * 4)); - this.dataFile.writeInt(par3); - } - - /** - * close this RegionFile and prevent further writes - */ - public void close() throws IOException { - if (this.dataFile != null) { - this.dataFile.close(); - } - } -} diff --git a/sp-server/src_aux/RegionFileCache.java b/sp-server/src_aux/RegionFileCache.java deleted file mode 100644 index 9d67f19..0000000 --- a/sp-server/src_aux/RegionFileCache.java +++ /dev/null @@ -1,75 +0,0 @@ -package net.minecraft.src; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.File; -import java.io.IOException; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -public class RegionFileCache { - /** A map containing Files as keys and RegionFiles as values */ - private static final Map regionsByFilename = new HashMap(); - - public static synchronized RegionFile createOrLoadRegionFile(File par0File, int par1, int par2) { - File var3 = new File(par0File, "region"); - File var4 = new File(var3, "r." + (par1 >> 5) + "." + (par2 >> 5) + ".mca"); - RegionFile var5 = (RegionFile) regionsByFilename.get(var4); - - if (var5 != null) { - return var5; - } else { - if (!var3.exists()) { - var3.mkdirs(); - } - - if (regionsByFilename.size() >= 256) { - clearRegionFileReferences(); - } - - RegionFile var6 = new RegionFile(var4); - regionsByFilename.put(var4, var6); - return var6; - } - } - - /** - * clears region file references - */ - public static synchronized void clearRegionFileReferences() { - Iterator var0 = regionsByFilename.values().iterator(); - - while (var0.hasNext()) { - RegionFile var1 = (RegionFile) var0.next(); - - try { - if (var1 != null) { - var1.close(); - } - } catch (IOException var3) { - var3.printStackTrace(); - } - } - - regionsByFilename.clear(); - } - - /** - * Returns an input stream for the specified chunk. Args: worldDir, chunkX, - * chunkZ - */ - public static DataInputStream getChunkInputStream(File par0File, int par1, int par2) { - RegionFile var3 = createOrLoadRegionFile(par0File, par1, par2); - return var3.getChunkDataInputStream(par1 & 31, par2 & 31); - } - - /** - * Returns an output stream for the specified chunk. Args: worldDir, chunkX, - * chunkZ - */ - public static DataOutputStream getChunkOutputStream(File par0File, int par1, int par2) { - RegionFile var3 = createOrLoadRegionFile(par0File, par1, par2); - return var3.getChunkDataOutputStream(par1 & 31, par2 & 31); - } -} diff --git a/sp-server/src_aux/RegionFileChunkBuffer.java b/sp-server/src_aux/RegionFileChunkBuffer.java deleted file mode 100644 index c14f2d3..0000000 --- a/sp-server/src_aux/RegionFileChunkBuffer.java +++ /dev/null @@ -1,22 +0,0 @@ -package net.minecraft.src; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; - -class RegionFileChunkBuffer extends ByteArrayOutputStream { - private int chunkX; - private int chunkZ; - - final RegionFile regionFile; - - public RegionFileChunkBuffer(RegionFile par1RegionFile, int par2, int par3) { - super(8096); - this.regionFile = par1RegionFile; - this.chunkX = par2; - this.chunkZ = par3; - } - - public void close() throws IOException { - this.regionFile.write(this.chunkX, this.chunkZ, this.buf, this.count); - } -} diff --git a/sp-server/src_aux/SaveFormatOld.java b/sp-server/src_aux/SaveFormatOld.java deleted file mode 100644 index ac883f6..0000000 --- a/sp-server/src_aux/SaveFormatOld.java +++ /dev/null @@ -1,141 +0,0 @@ -package net.minecraft.src; - -import java.io.File; -import java.io.FileInputStream; - -public class SaveFormatOld implements ISaveFormat { - /** - * Reference to the File object representing the directory for the world saves - */ - protected final File savesDirectory; - - public SaveFormatOld(File par1File) { - if (!par1File.exists()) { - par1File.mkdirs(); - } - - this.savesDirectory = par1File; - } - - public void flushCache() { - } - - /** - * gets the world info - */ - public WorldInfo getWorldInfo(String par1Str) { - File var2 = new File(this.savesDirectory, par1Str); - - if (!var2.exists()) { - return null; - } else { - File var3 = new File(var2, "level.dat"); - NBTTagCompound var4; - NBTTagCompound var5; - - if (var3.exists()) { - try { - var4 = CompressedStreamTools.readCompressed(new FileInputStream(var3)); - var5 = var4.getCompoundTag("Data"); - return new WorldInfo(var5); - } catch (Exception var7) { - var7.printStackTrace(); - } - } - - var3 = new File(var2, "level.dat_old"); - - if (var3.exists()) { - try { - var4 = CompressedStreamTools.readCompressed(new FileInputStream(var3)); - var5 = var4.getCompoundTag("Data"); - return new WorldInfo(var5); - } catch (Exception var6) { - var6.printStackTrace(); - } - } - - return null; - } - } - - /** - * @args: Takes one argument - the name of the directory of the world to - * delete. @desc: Delete the world by deleting the associated directory - * recursively. - */ - public boolean deleteWorldDirectory(String par1Str) { - File var2 = new File(this.savesDirectory, par1Str); - - if (!var2.exists()) { - return true; - } else { - System.out.println("Deleting level " + par1Str); - - for (int var3 = 1; var3 <= 5; ++var3) { - System.out.println("Attempt " + var3 + "..."); - - if (deleteFiles(var2.listFiles())) { - break; - } - - System.out.println("Unsuccessful in deleting contents."); - - if (var3 < 5) { - try { - Thread.sleep(500L); - } catch (InterruptedException var5) { - ; - } - } - } - - return var2.delete(); - } - } - - /** - * @args: Takes one argument - the list of files and directories to - * delete. @desc: Deletes the files and directory listed in the list - * recursively. - */ - protected static boolean deleteFiles(File[] par0ArrayOfFile) { - for (int var1 = 0; var1 < par0ArrayOfFile.length; ++var1) { - File var2 = par0ArrayOfFile[var1]; - System.out.println("Deleting " + var2); - - if (var2.isDirectory() && !deleteFiles(var2.listFiles())) { - System.out.println("Couldn\'t delete directory " + var2); - return false; - } - - if (!var2.delete()) { - System.out.println("Couldn\'t delete file " + var2); - return false; - } - } - - return true; - } - - /** - * Returns back a loader for the specified save directory - */ - public ISaveHandler getSaveLoader(String par1Str, boolean par2) { - return new SaveHandler(this.savesDirectory, par1Str, par2); - } - - /** - * gets if the map is old chunk saving (true) or McRegion (false) - */ - public boolean isOldMapFormat(String par1Str) { - return false; - } - - /** - * converts the map to mcRegion - */ - public boolean convertMapFormat(String par1Str, IProgressUpdate par2IProgressUpdate) { - return false; - } -} diff --git a/sp-server/src_aux/SaveHandler.java b/sp-server/src_aux/SaveHandler.java deleted file mode 100644 index 6240892..0000000 --- a/sp-server/src_aux/SaveHandler.java +++ /dev/null @@ -1,287 +0,0 @@ -package net.minecraft.src; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import net.minecraft.server.MinecraftServer; - -public class SaveHandler implements ISaveHandler, IPlayerFileData { - /** The directory in which to save world data. */ - private final File worldDirectory; - - /** The directory in which to save player data. */ - private final File playersDirectory; - private final File mapDataDir; - - /** - * The time in milliseconds when this field was initialized. Stored in the - * session lock file. - */ - private final long initializationTime = System.currentTimeMillis(); - - /** The directory name of the world */ - private final String saveDirectoryName; - - public SaveHandler(File par1File, String par2Str, boolean par3) { - this.worldDirectory = new File(par1File, par2Str); - this.worldDirectory.mkdirs(); - this.playersDirectory = new File(this.worldDirectory, "players"); - this.mapDataDir = new File(this.worldDirectory, "data"); - this.mapDataDir.mkdirs(); - this.saveDirectoryName = par2Str; - - if (par3) { - this.playersDirectory.mkdirs(); - } - - this.setSessionLock(); - } - - /** - * Creates a session lock file for this process - */ - private void setSessionLock() { - try { - File var1 = new File(this.worldDirectory, "session.lock"); - DataOutputStream var2 = new DataOutputStream(new FileOutputStream(var1)); - - try { - var2.writeLong(this.initializationTime); - } finally { - var2.close(); - } - } catch (IOException var7) { - var7.printStackTrace(); - throw new RuntimeException("Failed to check session lock, aborting"); - } - } - - /** - * Gets the File object corresponding to the base directory of this world. - */ - protected File getWorldDirectory() { - return this.worldDirectory; - } - - /** - * Checks the session lock to prevent save collisions - */ - public void checkSessionLock() throws MinecraftException { - try { - File var1 = new File(this.worldDirectory, "session.lock"); - DataInputStream var2 = new DataInputStream(new FileInputStream(var1)); - - try { - if (var2.readLong() != this.initializationTime) { - throw new MinecraftException("The save is being accessed from another location, aborting"); - } - } finally { - var2.close(); - } - } catch (IOException var7) { - throw new MinecraftException("Failed to check session lock, aborting"); - } - } - - /** - * initializes and returns the chunk loader for the specified world provider - */ - public IChunkLoader getChunkLoader(WorldProvider par1WorldProvider) { - throw new RuntimeException("Old Chunk Storage is no longer supported."); - } - - /** - * Loads and returns the world info - */ - public WorldInfo loadWorldInfo() { - File var1 = new File(this.worldDirectory, "level.dat"); - NBTTagCompound var2; - NBTTagCompound var3; - - if (var1.exists()) { - try { - var2 = CompressedStreamTools.readCompressed(new FileInputStream(var1)); - var3 = var2.getCompoundTag("Data"); - return new WorldInfo(var3); - } catch (Exception var5) { - var5.printStackTrace(); - } - } - - var1 = new File(this.worldDirectory, "level.dat_old"); - - if (var1.exists()) { - try { - var2 = CompressedStreamTools.readCompressed(new FileInputStream(var1)); - var3 = var2.getCompoundTag("Data"); - return new WorldInfo(var3); - } catch (Exception var4) { - var4.printStackTrace(); - } - } - - return null; - } - - /** - * Saves the given World Info with the given NBTTagCompound as the Player. - */ - public void saveWorldInfoWithPlayer(WorldInfo par1WorldInfo, NBTTagCompound par2NBTTagCompound) { - NBTTagCompound var3 = par1WorldInfo.cloneNBTCompound(par2NBTTagCompound); - NBTTagCompound var4 = new NBTTagCompound(); - var4.setTag("Data", var3); - - try { - File var5 = new File(this.worldDirectory, "level.dat_new"); - File var6 = new File(this.worldDirectory, "level.dat_old"); - File var7 = new File(this.worldDirectory, "level.dat"); - CompressedStreamTools.writeCompressed(var4, new FileOutputStream(var5)); - - if (var6.exists()) { - var6.delete(); - } - - var7.renameTo(var6); - - if (var7.exists()) { - var7.delete(); - } - - var5.renameTo(var7); - - if (var5.exists()) { - var5.delete(); - } - } catch (Exception var8) { - var8.printStackTrace(); - } - } - - /** - * used to update level.dat from old format to MCRegion format - */ - public void saveWorldInfo(WorldInfo par1WorldInfo) { - NBTTagCompound var2 = par1WorldInfo.getNBTTagCompound(); - NBTTagCompound var3 = new NBTTagCompound(); - var3.setTag("Data", var2); - - try { - File var4 = new File(this.worldDirectory, "level.dat_new"); - File var5 = new File(this.worldDirectory, "level.dat_old"); - File var6 = new File(this.worldDirectory, "level.dat"); - CompressedStreamTools.writeCompressed(var3, new FileOutputStream(var4)); - - if (var5.exists()) { - var5.delete(); - } - - var6.renameTo(var5); - - if (var6.exists()) { - var6.delete(); - } - - var4.renameTo(var6); - - if (var4.exists()) { - var4.delete(); - } - } catch (Exception var7) { - var7.printStackTrace(); - } - } - - /** - * Writes the player data to disk from the specified PlayerEntityMP. - */ - public void writePlayerData(EntityPlayer par1EntityPlayer) { - try { - NBTTagCompound var2 = new NBTTagCompound(); - par1EntityPlayer.writeToNBT(var2); - File var3 = new File(this.playersDirectory, par1EntityPlayer.username + ".dat.tmp"); - File var4 = new File(this.playersDirectory, par1EntityPlayer.username + ".dat"); - CompressedStreamTools.writeCompressed(var2, new FileOutputStream(var3)); - - if (var4.exists()) { - var4.delete(); - } - - var3.renameTo(var4); - } catch (Exception var5) { - MinecraftServer.getServer().getLogAgent() - .func_98236_b("Failed to save player data for " + par1EntityPlayer.username); - } - } - - /** - * Reads the player data from disk into the specified PlayerEntityMP. - */ - public NBTTagCompound readPlayerData(EntityPlayer par1EntityPlayer) { - NBTTagCompound var2 = this.getPlayerData(par1EntityPlayer.username); - - if (var2 != null) { - par1EntityPlayer.readFromNBT(var2); - } - - return var2; - } - - /** - * Gets the player data for the given playername as a NBTTagCompound. - */ - public NBTTagCompound getPlayerData(String par1Str) { - try { - File var2 = new File(this.playersDirectory, par1Str + ".dat"); - - if (var2.exists()) { - return CompressedStreamTools.readCompressed(new FileInputStream(var2)); - } - } catch (Exception var3) { - MinecraftServer.getServer().getLogAgent().func_98236_b("Failed to load player data for " + par1Str); - } - - return null; - } - - public IPlayerFileData getPlayerNBTManager() { - return this; - } - - /** - * Returns an array of usernames for which player.dat exists for. - */ - public String[] getAvailablePlayerDat() { - String[] var1 = this.playersDirectory.list(); - - for (int var2 = 0; var2 < var1.length; ++var2) { - if (var1[var2].endsWith(".dat")) { - var1[var2] = var1[var2].substring(0, var1[var2].length() - 4); - } - } - - return var1; - } - - /** - * Called to flush all changes to disk, waiting for them to complete. - */ - public void flush() { - } - - /** - * Gets the file location of the given map - */ - public File getMapFileFromName(String par1Str) { - return new File(this.mapDataDir, par1Str + ".dat"); - } - - /** - * Returns the name of the directory where world information is saved. - */ - public String getWorldDirectoryName() { - return this.saveDirectoryName; - } -} diff --git a/sp-server/src_aux/ServerListenThread.java b/sp-server/src_aux/ServerListenThread.java deleted file mode 100644 index 99a204b..0000000 --- a/sp-server/src_aux/ServerListenThread.java +++ /dev/null @@ -1,106 +0,0 @@ -package net.minecraft.src; - -import java.io.IOException; -import java.net.InetAddress; -import java.net.ServerSocket; -import java.net.Socket; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; - -import net.lax1dude.eaglercraft.sp.WorkerListenThread; - -public class ServerListenThread extends Thread { - private final List pendingConnections = Collections.synchronizedList(new ArrayList()); - - /** - * This map stores a list of InetAddresses and the last time which they - * connected at - */ - private final HashMap recentConnections = new HashMap(); - private int connectionCounter = 0; - private final ServerSocket myServerSocket; - private WorkerListenThread myNetworkListenThread; - private final InetAddress myServerAddress; - private final int myPort; - - public ServerListenThread(WorkerListenThread par1NetworkListenThread, InetAddress par2InetAddress, int par3) - throws IOException { - super("Listen thread"); - this.myNetworkListenThread = par1NetworkListenThread; - this.myPort = par3; - this.myServerSocket = new ServerSocket(par3, 0, par2InetAddress); - this.myServerAddress = par2InetAddress == null ? this.myServerSocket.getInetAddress() : par2InetAddress; - this.myServerSocket.setPerformancePreferences(0, 2, 1); - } - - public void processPendingConnections() { - List var1 = this.pendingConnections; - - synchronized (this.pendingConnections) { - for (int var2 = 0; var2 < this.pendingConnections.size(); ++var2) { - NetLoginHandler var3 = (NetLoginHandler) this.pendingConnections.get(var2); - - try { - var3.tryLogin(); - } catch (Exception var6) { - var3.kickUser("Internal server error"); - this.myNetworkListenThread.getServer().getLogAgent().logWarningException( - "Failed to handle packet for " + var3.getUsernameAndAddress() + ": " + var6, var6); - } - - if (var3.finishedProcessing) { - this.pendingConnections.remove(var2--); - } - - var3.myTCPConnection.wakeThreads(); - } - } - } - - public void run() { - while (this.myNetworkListenThread.isListening) { - try { - Socket var1 = this.myServerSocket.accept(); - NetLoginHandler var2 = new NetLoginHandler(this.myNetworkListenThread.getServer(), var1, - "Connection #" + this.connectionCounter++); - this.addPendingConnection(var2); - } catch (IOException var3) { - var3.printStackTrace(); - } - } - - this.myNetworkListenThread.getServer().getLogAgent().func_98233_a("Closing listening thread"); - } - - private void addPendingConnection(NetLoginHandler par1NetLoginHandler) { - if (par1NetLoginHandler == null) { - throw new IllegalArgumentException("Got null pendingconnection!"); - } else { - List var2 = this.pendingConnections; - - synchronized (this.pendingConnections) { - this.pendingConnections.add(par1NetLoginHandler); - } - } - } - - public void func_71769_a(InetAddress par1InetAddress) { - if (par1InetAddress != null) { - HashMap var2 = this.recentConnections; - - synchronized (this.recentConnections) { - this.recentConnections.remove(par1InetAddress); - } - } - } - - public void func_71768_b() { - try { - this.myServerSocket.close(); - } catch (Throwable var2) { - ; - } - } -} diff --git a/sp-server/src_aux/TcpConnection.java b/sp-server/src_aux/TcpConnection.java deleted file mode 100644 index 96efe06..0000000 --- a/sp-server/src_aux/TcpConnection.java +++ /dev/null @@ -1,484 +0,0 @@ -package net.minecraft.src; - -import java.io.BufferedOutputStream; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.net.Socket; -import java.net.SocketAddress; -import java.net.SocketException; -import java.security.PrivateKey; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import java.util.concurrent.atomic.AtomicInteger; -import javax.crypto.SecretKey; - -public class TcpConnection implements INetworkManager { - public static AtomicInteger field_74471_a = new AtomicInteger(); - public static AtomicInteger field_74469_b = new AtomicInteger(); - - /** The object used for synchronization on the send queue. */ - private final Object sendQueueLock = new Object(); - private final ILogAgent field_98215_i; - - /** The socket used by this network manager. */ - private Socket networkSocket; - - /** The InetSocketAddress of the remote endpoint */ - private final SocketAddress remoteSocketAddress; - - /** The input stream connected to the socket. */ - private volatile DataInputStream socketInputStream; - - /** The output stream connected to the socket. */ - private volatile DataOutputStream socketOutputStream; - - /** Whether the network is currently operational. */ - private volatile boolean isRunning = true; - - /** - * Whether this network manager is currently terminating (and should ignore - * further errors). - */ - private volatile boolean isTerminating = false; - - /** - * Linked list of packets that have been read and are awaiting processing. - */ - private List readPackets = Collections.synchronizedList(new ArrayList()); - - /** Linked list of packets awaiting sending. */ - private List dataPackets = Collections.synchronizedList(new ArrayList()); - - /** Linked list of packets with chunk data that are awaiting sending. */ - private List chunkDataPackets = Collections.synchronizedList(new ArrayList()); - - /** A reference to the NetHandler object. */ - private NetHandler theNetHandler; - - /** - * Whether this server is currently terminating. If this is a client, this is - * always false. - */ - private boolean isServerTerminating = false; - - /** The thread used for writing. */ - private Thread writeThread; - - /** The thread used for reading. */ - private Thread readThread; - - /** A String indicating why the network has shutdown. */ - private String terminationReason = ""; - private Object[] field_74480_w; - private int field_74490_x = 0; - - /** - * The length in bytes of the packets in both send queues (data and chunkData). - */ - private int sendQueueByteLength = 0; - public static int[] field_74470_c = new int[256]; - public static int[] field_74467_d = new int[256]; - public int field_74468_e = 0; - boolean isInputBeingDecrypted = false; - boolean isOutputEncrypted = false; - private SecretKey sharedKeyForEncryption = null; - private PrivateKey field_74463_A = null; - - /** - * Delay for sending pending chunk data packets (as opposed to pending non-chunk - * data packets) - */ - private int chunkDataPacketsDelay = 50; - - public TcpConnection(ILogAgent par1ILogAgent, Socket par2Socket, String par3Str, NetHandler par4NetHandler, - PrivateKey par5PrivateKey) throws IOException { - this.field_74463_A = par5PrivateKey; - this.networkSocket = par2Socket; - this.field_98215_i = par1ILogAgent; - this.remoteSocketAddress = par2Socket.getRemoteSocketAddress(); - this.theNetHandler = par4NetHandler; - - try { - par2Socket.setSoTimeout(30000); - par2Socket.setTrafficClass(24); - } catch (SocketException var7) { - System.err.println(var7.getMessage()); - } - - this.socketInputStream = new DataInputStream(par2Socket.getInputStream()); - this.socketOutputStream = new DataOutputStream(new BufferedOutputStream(par2Socket.getOutputStream(), 5120)); - this.readThread = new TcpReaderThread(this, par3Str + " read thread"); - this.writeThread = new TcpWriterThread(this, par3Str + " write thread"); - this.readThread.start(); - this.writeThread.start(); - } - - /** - * Sets the NetHandler for this NetworkManager. Server-only. - */ - public void setNetHandler(NetHandler par1NetHandler) { - this.theNetHandler = par1NetHandler; - } - - /** - * Adds the packet to the correct send queue (chunk data packets go to a - * separate queue). - */ - public void addToSendQueue(Packet par1Packet) { - if (!this.isServerTerminating) { - Object var2 = this.sendQueueLock; - - synchronized (this.sendQueueLock) { - this.sendQueueByteLength += par1Packet.getPacketSize() + 1; - this.dataPackets.add(par1Packet); - } - } - } - - /** - * Sends a data packet if there is one to send, or sends a chunk data packet if - * there is one and the counter is up, or does nothing. - */ - private boolean sendPacket() { - boolean var1 = false; - - try { - int[] var10000; - int var10001; - Packet var2; - - if (this.field_74468_e == 0 || !this.dataPackets.isEmpty() && System.currentTimeMillis() - - ((Packet) this.dataPackets.get(0)).creationTimeMillis >= (long) this.field_74468_e) { - var2 = this.func_74460_a(false); - - if (var2 != null) { - Packet.writePacket(var2, this.socketOutputStream); - - if (var2 instanceof Packet252SharedKey && !this.isOutputEncrypted) { - if (!this.theNetHandler.isServerHandler()) { - this.sharedKeyForEncryption = ((Packet252SharedKey) var2).getSharedKey(); - } - - this.encryptOuputStream(); - } - - var10000 = field_74467_d; - var10001 = var2.getPacketId(); - var10000[var10001] += var2.getPacketSize() + 1; - var1 = true; - } - } - - if (this.chunkDataPacketsDelay-- <= 0 && (this.field_74468_e == 0 - || !this.chunkDataPackets.isEmpty() && System.currentTimeMillis() - ((Packet) this.chunkDataPackets - .get(0)).creationTimeMillis >= (long) this.field_74468_e)) { - var2 = this.func_74460_a(true); - - if (var2 != null) { - Packet.writePacket(var2, this.socketOutputStream); - var10000 = field_74467_d; - var10001 = var2.getPacketId(); - var10000[var10001] += var2.getPacketSize() + 1; - this.chunkDataPacketsDelay = 0; - var1 = true; - } - } - - return var1; - } catch (Exception var3) { - if (!this.isTerminating) { - this.onNetworkError(var3); - } - - return false; - } - } - - private Packet func_74460_a(boolean par1) { - Packet var2 = null; - List var3 = par1 ? this.chunkDataPackets : this.dataPackets; - Object var4 = this.sendQueueLock; - - synchronized (this.sendQueueLock) { - while (!var3.isEmpty() && var2 == null) { - var2 = (Packet) var3.remove(0); - this.sendQueueByteLength -= var2.getPacketSize() + 1; - - if (this.func_74454_a(var2, par1)) { - var2 = null; - } - } - - return var2; - } - } - - private boolean func_74454_a(Packet par1Packet, boolean par2) { - if (!par1Packet.isRealPacket()) { - return false; - } else { - List var3 = par2 ? this.chunkDataPackets : this.dataPackets; - Iterator var4 = var3.iterator(); - Packet var5; - - do { - if (!var4.hasNext()) { - return false; - } - - var5 = (Packet) var4.next(); - } while (var5.getPacketId() != par1Packet.getPacketId()); - - return par1Packet.containsSameEntityIDAs(var5); - } - } - - /** - * Wakes reader and writer threads - */ - public void wakeThreads() { - if (this.readThread != null) { - this.readThread.interrupt(); - } - - if (this.writeThread != null) { - this.writeThread.interrupt(); - } - } - - /** - * Reads a single packet from the input stream and adds it to the read queue. If - * no packet is read, it shuts down the network. - */ - private boolean readPacket() { - boolean var1 = false; - - try { - Packet var2 = Packet.readPacket(this.field_98215_i, this.socketInputStream, - this.theNetHandler.isServerHandler(), this.networkSocket); - - if (var2 != null) { - if (var2 instanceof Packet252SharedKey && !this.isInputBeingDecrypted) { - if (this.theNetHandler.isServerHandler()) { - this.sharedKeyForEncryption = ((Packet252SharedKey) var2).getSharedKey(this.field_74463_A); - } - - this.decryptInputStream(); - } - - int[] var10000 = field_74470_c; - int var10001 = var2.getPacketId(); - var10000[var10001] += var2.getPacketSize() + 1; - - if (!this.isServerTerminating) { - if (var2.canProcessAsync() && this.theNetHandler.canProcessPacketsAsync()) { - this.field_74490_x = 0; - var2.processPacket(this.theNetHandler); - } else { - this.readPackets.add(var2); - } - } - - var1 = true; - } else { - this.networkShutdown("disconnect.endOfStream", new Object[0]); - } - - return var1; - } catch (Exception var3) { - if (!this.isTerminating) { - this.onNetworkError(var3); - } - - return false; - } - } - - /** - * Used to report network errors and causes a network shutdown. - */ - private void onNetworkError(Exception par1Exception) { - par1Exception.printStackTrace(); - this.networkShutdown("disconnect.genericReason", - new Object[] { "Internal exception: " + par1Exception.toString() }); - } - - /** - * Shuts down the network with the specified reason. Closes all streams and - * sockets, spawns NetworkMasterThread to stop reading and writing threads. - */ - public void networkShutdown(String par1Str, Object... par2ArrayOfObj) { - if (this.isRunning) { - this.isTerminating = true; - this.terminationReason = par1Str; - this.field_74480_w = par2ArrayOfObj; - this.isRunning = false; - (new TcpMasterThread(this)).start(); - - try { - this.socketInputStream.close(); - } catch (Throwable var6) { - ; - } - - try { - this.socketOutputStream.close(); - } catch (Throwable var5) { - ; - } - - try { - this.networkSocket.close(); - } catch (Throwable var4) { - ; - } - - this.socketInputStream = null; - this.socketOutputStream = null; - this.networkSocket = null; - } - } - - /** - * Checks timeouts and processes all pending read packets. - */ - public void processReadPackets() { - if (this.sendQueueByteLength > 2097152) { - this.networkShutdown("disconnect.overflow", new Object[0]); - } - - if (this.readPackets.isEmpty()) { - if (this.field_74490_x++ == 1200) { - this.networkShutdown("disconnect.timeout", new Object[0]); - } - } else { - this.field_74490_x = 0; - } - - int var1 = 1000; - - while (!this.readPackets.isEmpty() && var1-- >= 0) { - Packet var2 = (Packet) this.readPackets.remove(0); - var2.processPacket(this.theNetHandler); - } - - this.wakeThreads(); - - if (this.isTerminating && this.readPackets.isEmpty()) { - this.theNetHandler.handleErrorMessage(this.terminationReason, this.field_74480_w); - } - } - - /** - * Returns the socket address of the remote side. Server-only. - */ - public SocketAddress getRemoteAddress() { - return this.remoteSocketAddress; - } - - /** - * Shuts down the server. (Only actually used on the server) - */ - public void serverShutdown() { - if (!this.isServerTerminating) { - this.wakeThreads(); - this.isServerTerminating = true; - this.readThread.interrupt(); - (new TcpMonitorThread(this)).start(); - } - } - - private void decryptInputStream() throws IOException { - this.isInputBeingDecrypted = true; - InputStream var1 = this.networkSocket.getInputStream(); - this.socketInputStream = new DataInputStream( - CryptManager.decryptInputStream(this.sharedKeyForEncryption, var1)); - } - - /** - * flushes the stream and replaces it with an encryptedOutputStream - */ - private void encryptOuputStream() throws IOException { - this.socketOutputStream.flush(); - this.isOutputEncrypted = true; - BufferedOutputStream var1 = new BufferedOutputStream( - CryptManager.encryptOuputStream(this.sharedKeyForEncryption, this.networkSocket.getOutputStream()), - 5120); - this.socketOutputStream = new DataOutputStream(var1); - } - - /** - * Returns the number of chunk data packets waiting to be sent. - */ - public int getNumChunkDataPackets() { - return this.chunkDataPackets.size(); - } - - public Socket getSocket() { - return this.networkSocket; - } - - /** - * Whether the network is operational. - */ - static boolean isRunning(TcpConnection par0TcpConnection) { - return par0TcpConnection.isRunning; - } - - /** - * Is the server terminating? Client side aways returns false. - */ - static boolean isServerTerminating(TcpConnection par0TcpConnection) { - return par0TcpConnection.isServerTerminating; - } - - /** - * Static accessor to readPacket. - */ - static boolean readNetworkPacket(TcpConnection par0TcpConnection) { - return par0TcpConnection.readPacket(); - } - - /** - * Static accessor to sendPacket. - */ - static boolean sendNetworkPacket(TcpConnection par0TcpConnection) { - return par0TcpConnection.sendPacket(); - } - - static DataOutputStream getOutputStream(TcpConnection par0TcpConnection) { - return par0TcpConnection.socketOutputStream; - } - - /** - * Gets whether the Network manager is terminating. - */ - static boolean isTerminating(TcpConnection par0TcpConnection) { - return par0TcpConnection.isTerminating; - } - - /** - * Sends the network manager an error - */ - static void sendError(TcpConnection par0TcpConnection, Exception par1Exception) { - par0TcpConnection.onNetworkError(par1Exception); - } - - /** - * Returns the read thread. - */ - static Thread getReadThread(TcpConnection par0TcpConnection) { - return par0TcpConnection.readThread; - } - - /** - * Returns the write thread. - */ - static Thread getWriteThread(TcpConnection par0TcpConnection) { - return par0TcpConnection.writeThread; - } -} diff --git a/sp-server/src_aux/TcpMasterThread.java b/sp-server/src_aux/TcpMasterThread.java deleted file mode 100644 index 4ffb658..0000000 --- a/sp-server/src_aux/TcpMasterThread.java +++ /dev/null @@ -1,34 +0,0 @@ -package net.minecraft.src; - -class TcpMasterThread extends Thread { - final TcpConnection theTcpConnection; - - TcpMasterThread(TcpConnection par1TcpConnection) { - this.theTcpConnection = par1TcpConnection; - } - - @SuppressWarnings("deprecation") - public void run() { - try { - Thread.sleep(5000L); - - if (TcpConnection.getReadThread(this.theTcpConnection).isAlive()) { - try { - TcpConnection.getReadThread(this.theTcpConnection).stop(); - } catch (Throwable var3) { - ; - } - } - - if (TcpConnection.getWriteThread(this.theTcpConnection).isAlive()) { - try { - TcpConnection.getWriteThread(this.theTcpConnection).stop(); - } catch (Throwable var2) { - ; - } - } - } catch (InterruptedException var4) { - var4.printStackTrace(); - } - } -} diff --git a/sp-server/src_aux/TcpMonitorThread.java b/sp-server/src_aux/TcpMonitorThread.java deleted file mode 100644 index 9b223a8..0000000 --- a/sp-server/src_aux/TcpMonitorThread.java +++ /dev/null @@ -1,22 +0,0 @@ -package net.minecraft.src; - -class TcpMonitorThread extends Thread { - final TcpConnection theTcpConnection; - - TcpMonitorThread(TcpConnection par1TcpConnection) { - this.theTcpConnection = par1TcpConnection; - } - - public void run() { - try { - Thread.sleep(2000L); - - if (TcpConnection.isRunning(this.theTcpConnection)) { - TcpConnection.getWriteThread(this.theTcpConnection).interrupt(); - this.theTcpConnection.networkShutdown("disconnect.closed", new Object[0]); - } - } catch (Exception var2) { - var2.printStackTrace(); - } - } -} diff --git a/sp-server/src_aux/TcpReaderThread.java b/sp-server/src_aux/TcpReaderThread.java deleted file mode 100644 index f65f890..0000000 --- a/sp-server/src_aux/TcpReaderThread.java +++ /dev/null @@ -1,31 +0,0 @@ -package net.minecraft.src; - -class TcpReaderThread extends Thread { - final TcpConnection theTcpConnection; - - TcpReaderThread(TcpConnection par1TcpConnection, String par2Str) { - super(par2Str); - this.theTcpConnection = par1TcpConnection; - } - - public void run() { - TcpConnection.field_74471_a.getAndIncrement(); - - try { - while (TcpConnection.isRunning(this.theTcpConnection) - && !TcpConnection.isServerTerminating(this.theTcpConnection)) { - while (true) { - if (!TcpConnection.readNetworkPacket(this.theTcpConnection)) { - try { - sleep(2L); - } catch (InterruptedException var5) { - ; - } - } - } - } - } finally { - TcpConnection.field_74471_a.getAndDecrement(); - } - } -} diff --git a/sp-server/src_aux/TcpWriterThread.java b/sp-server/src_aux/TcpWriterThread.java deleted file mode 100644 index c3bd28b..0000000 --- a/sp-server/src_aux/TcpWriterThread.java +++ /dev/null @@ -1,46 +0,0 @@ -package net.minecraft.src; - -import java.io.IOException; - -class TcpWriterThread extends Thread { - final TcpConnection theTcpConnection; - - TcpWriterThread(TcpConnection par1TcpConnection, String par2Str) { - super(par2Str); - this.theTcpConnection = par1TcpConnection; - } - - public void run() { - TcpConnection.field_74469_b.getAndIncrement(); - - try { - while (TcpConnection.isRunning(this.theTcpConnection)) { - boolean var1; - - for (var1 = false; TcpConnection.sendNetworkPacket(this.theTcpConnection); var1 = true) { - ; - } - - try { - if (var1 && TcpConnection.getOutputStream(this.theTcpConnection) != null) { - TcpConnection.getOutputStream(this.theTcpConnection).flush(); - } - } catch (IOException var8) { - if (!TcpConnection.isTerminating(this.theTcpConnection)) { - TcpConnection.sendError(this.theTcpConnection, var8); - } - - var8.printStackTrace(); - } - - try { - sleep(2L); - } catch (InterruptedException var7) { - ; - } - } - } finally { - TcpConnection.field_74469_b.getAndDecrement(); - } - } -} diff --git a/src/main/java/net/lax1dude/eaglercraft/ConfigConstants.java b/src/main/java/net/lax1dude/eaglercraft/ConfigConstants.java index 94ea817..e88a767 100644 --- a/src/main/java/net/lax1dude/eaglercraft/ConfigConstants.java +++ b/src/main/java/net/lax1dude/eaglercraft/ConfigConstants.java @@ -1,10 +1,11 @@ package net.lax1dude.eaglercraft; +import java.util.Arrays; import java.util.List; public class ConfigConstants { - public static final String version = "25w05a"; + public static final String version = "25w09a"; public static final String mainMenuString = "Eaglercraft " + version; public static final String forkMe = null; @@ -17,7 +18,7 @@ public class ConfigConstants { public static String mainMenuItemLine2 = null; public static String mainMenuItemLink = null; - public static List splashTexts = null; + public static List splashTexts = Arrays.asList("Darviglet!", "eaglerenophile!", "You Eagler!", "Yeeeeeee!", "yeee", "EEEEEEEEE!", "You Darvig!", "You Vigg!", ":>", "|>", "You Yumpster!", "No longer on Gitpod", "MiG Mad Marine", "Wild Weasel", "YGBSM", "Union Aerospace Corporation"); public static List relays = null; diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java index 4a815d4..fe49fc5 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -10,7 +10,6 @@ import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.List; -import net.minecraft.src.AnvilSaveConverter; import net.minecraft.src.AxisAlignedBB; import net.minecraft.src.CallableIsServerModded; import net.minecraft.src.CallableServerMemoryStats; @@ -53,7 +52,7 @@ public abstract class MinecraftServer implements ICommandSender, Runnable, IPlay { /** Instance of Minecraft Server. */ private static MinecraftServer mcServer; - private final ISaveFormat anvilConverterForAnvilFile; + //private final ISaveFormat anvilConverterForAnvilFile; /** The PlayerUsageSnooper instance. */ private final PlayerUsageSnooper usageSnooper = new PlayerUsageSnooper("server", this, getSystemTimeMillis()); @@ -166,7 +165,7 @@ public abstract class MinecraftServer implements ICommandSender, Runnable, IPlay mcServer = this; this.anvilFile = par1File; this.commandManager = new ServerCommandManager(); - this.anvilConverterForAnvilFile = new AnvilSaveConverter(par1File); + //this.anvilConverterForAnvilFile = new AnvilSaveConverter(par1File); this.registerDispenseBehaviors(); } @@ -212,7 +211,7 @@ public abstract class MinecraftServer implements ICommandSender, Runnable, IPlay this.setUserMessage("menu.loadingLevel"); this.worldServers = new WorldServer[3]; this.timeOfLastDimensionTick = new long[this.worldServers.length][100]; - ISaveHandler var7 = this.anvilConverterForAnvilFile.getSaveLoader(par1Str, true); + ISaveHandler var7 = null; WorldInfo var9 = var7.loadWorldInfo(); WorldSettings var8; @@ -1044,7 +1043,7 @@ public abstract class MinecraftServer implements ICommandSender, Runnable, IPlay public ISaveFormat getActiveAnvilConverter() { - return this.anvilConverterForAnvilFile; + return null; } /** diff --git a/src/main/java/net/minecraft/src/AnvilChunkLoader.java b/src/main/java/net/minecraft/src/AnvilChunkLoader.java deleted file mode 100644 index d46929d..0000000 --- a/src/main/java/net/minecraft/src/AnvilChunkLoader.java +++ /dev/null @@ -1,425 +0,0 @@ -package net.minecraft.src; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Set; - -public class AnvilChunkLoader implements IChunkLoader, IThreadedFileIO -{ - private List chunksToRemove = new ArrayList(); - private Set pendingAnvilChunksCoordinates = new HashSet(); - private Object syncLockObject = new Object(); - - /** Save directory for chunks using the Anvil format */ - private final File chunkSaveLocation; - - public AnvilChunkLoader(File par1File) - { - this.chunkSaveLocation = par1File; - } - - /** - * Loads the specified(XZ) chunk into the specified world. - */ - public Chunk loadChunk(World par1World, int par2, int par3) throws IOException - { - NBTTagCompound var4 = null; - ChunkCoordIntPair var5 = new ChunkCoordIntPair(par2, par3); - Object var6 = this.syncLockObject; - - synchronized (this.syncLockObject) - { - if (this.pendingAnvilChunksCoordinates.contains(var5)) - { - for (int var7 = 0; var7 < this.chunksToRemove.size(); ++var7) - { - if (((AnvilChunkLoaderPending)this.chunksToRemove.get(var7)).chunkCoordinate.equals(var5)) - { - var4 = ((AnvilChunkLoaderPending)this.chunksToRemove.get(var7)).nbtTags; - break; - } - } - } - } - - if (var4 == null) - { - DataInputStream var10 = RegionFileCache.getChunkInputStream(this.chunkSaveLocation, par2, par3); - - if (var10 == null) - { - return null; - } - - var4 = CompressedStreamTools.read(var10); - } - - return this.checkedReadChunkFromNBT(par1World, par2, par3, var4); - } - - /** - * Wraps readChunkFromNBT. Checks the coordinates and several NBT tags. - */ - protected Chunk checkedReadChunkFromNBT(World par1World, int par2, int par3, NBTTagCompound par4NBTTagCompound) - { - if (!par4NBTTagCompound.hasKey("Level")) - { - System.err.println("Chunk file at " + par2 + "," + par3 + " is missing level data, skipping"); - return null; - } - else if (!par4NBTTagCompound.getCompoundTag("Level").hasKey("Sections")) - { - System.err.println("Chunk file at " + par2 + "," + par3 + " is missing block data, skipping"); - return null; - } - else - { - Chunk var5 = this.readChunkFromNBT(par1World, par4NBTTagCompound.getCompoundTag("Level")); - - if (!var5.isAtLocation(par2, par3)) - { - System.err.println("Chunk file at " + par2 + "," + par3 + " is in the wrong location; relocating. (Expected " + par2 + ", " + par3 + ", got " + var5.xPosition + ", " + var5.zPosition + ")"); - par4NBTTagCompound.setInteger("xPos", par2); - par4NBTTagCompound.setInteger("zPos", par3); - var5 = this.readChunkFromNBT(par1World, par4NBTTagCompound.getCompoundTag("Level")); - } - - return var5; - } - } - - public void saveChunk(World par1World, Chunk par2Chunk) throws MinecraftException, IOException - { - par1World.checkSessionLock(); - - try - { - NBTTagCompound var3 = new NBTTagCompound(); - NBTTagCompound var4 = new NBTTagCompound(); - var3.setTag("Level", var4); - this.writeChunkToNBT(par2Chunk, par1World, var4); - this.addChunkToPending(par2Chunk.getChunkCoordIntPair(), var3); - } - catch (Exception var5) - { - var5.printStackTrace(); - } - } - - protected void addChunkToPending(ChunkCoordIntPair par1ChunkCoordIntPair, NBTTagCompound par2NBTTagCompound) - { - Object var3 = this.syncLockObject; - - synchronized (this.syncLockObject) - { - if (this.pendingAnvilChunksCoordinates.contains(par1ChunkCoordIntPair)) - { - for (int var4 = 0; var4 < this.chunksToRemove.size(); ++var4) - { - if (((AnvilChunkLoaderPending)this.chunksToRemove.get(var4)).chunkCoordinate.equals(par1ChunkCoordIntPair)) - { - this.chunksToRemove.set(var4, new AnvilChunkLoaderPending(par1ChunkCoordIntPair, par2NBTTagCompound)); - return; - } - } - } - - this.chunksToRemove.add(new AnvilChunkLoaderPending(par1ChunkCoordIntPair, par2NBTTagCompound)); - this.pendingAnvilChunksCoordinates.add(par1ChunkCoordIntPair); - ThreadedFileIOBase.threadedIOInstance.queueIO(this); - } - } - - /** - * Returns a boolean stating if the write was unsuccessful. - */ - public boolean writeNextIO() - { - AnvilChunkLoaderPending var1 = null; - Object var2 = this.syncLockObject; - - synchronized (this.syncLockObject) - { - if (this.chunksToRemove.isEmpty()) - { - return false; - } - - var1 = (AnvilChunkLoaderPending)this.chunksToRemove.remove(0); - this.pendingAnvilChunksCoordinates.remove(var1.chunkCoordinate); - } - - if (var1 != null) - { - try - { - this.writeChunkNBTTags(var1); - } - catch (Exception var4) - { - var4.printStackTrace(); - } - } - - return true; - } - - private void writeChunkNBTTags(AnvilChunkLoaderPending par1AnvilChunkLoaderPending) throws IOException - { - DataOutputStream var2 = RegionFileCache.getChunkOutputStream(this.chunkSaveLocation, par1AnvilChunkLoaderPending.chunkCoordinate.chunkXPos, par1AnvilChunkLoaderPending.chunkCoordinate.chunkZPos); - CompressedStreamTools.write(par1AnvilChunkLoaderPending.nbtTags, var2); - var2.close(); - } - - /** - * Save extra data associated with this Chunk not normally saved during autosave, only during chunk unload. - * Currently unused. - */ - public void saveExtraChunkData(World par1World, Chunk par2Chunk) {} - - /** - * Called every World.tick() - */ - public void chunkTick() {} - - /** - * Save extra data not associated with any Chunk. Not saved during autosave, only during world unload. Currently - * unused. - */ - public void saveExtraData() - { - while (this.writeNextIO()) - { - ; - } - } - - /** - * Writes the Chunk passed as an argument to the NBTTagCompound also passed, using the World argument to retrieve - * the Chunk's last update time. - */ - private void writeChunkToNBT(Chunk par1Chunk, World par2World, NBTTagCompound par3NBTTagCompound) - { - par3NBTTagCompound.setInteger("xPos", par1Chunk.xPosition); - par3NBTTagCompound.setInteger("zPos", par1Chunk.zPosition); - par3NBTTagCompound.setLong("LastUpdate", par2World.getTotalWorldTime()); - par3NBTTagCompound.setIntArray("HeightMap", par1Chunk.heightMap); - par3NBTTagCompound.setBoolean("TerrainPopulated", par1Chunk.isTerrainPopulated); - par3NBTTagCompound.setLong("InhabitedTime", par1Chunk.inhabitedTime); - ExtendedBlockStorage[] var4 = par1Chunk.getBlockStorageArray(); - NBTTagList var5 = new NBTTagList("Sections"); - boolean var6 = !par2World.provider.hasNoSky; - ExtendedBlockStorage[] var7 = var4; - int var8 = var4.length; - NBTTagCompound var11; - - for (int var9 = 0; var9 < var8; ++var9) - { - ExtendedBlockStorage var10 = var7[var9]; - - if (var10 != null) - { - var11 = new NBTTagCompound(); - var11.setByte("Y", (byte)(var10.getYLocation() >> 4 & 255)); - var11.setByteArray("Blocks", var10.getBlockLSBArray()); - - if (var10.getBlockMSBArray() != null) - { - var11.setByteArray("Add", var10.getBlockMSBArray().data); - } - - var11.setByteArray("Data", var10.getMetadataArray().data); - var11.setByteArray("BlockLight", var10.getBlocklightArray().data); - - if (var6) - { - var11.setByteArray("SkyLight", var10.getSkylightArray().data); - } - else - { - var11.setByteArray("SkyLight", new byte[var10.getBlocklightArray().data.length]); - } - - var5.appendTag(var11); - } - } - - par3NBTTagCompound.setTag("Sections", var5); - par3NBTTagCompound.setByteArray("Biomes", par1Chunk.getBiomeArray()); - par1Chunk.hasEntities = false; - NBTTagList var16 = new NBTTagList(); - Iterator var18; - - for (var8 = 0; var8 < par1Chunk.entityLists.length; ++var8) - { - var18 = par1Chunk.entityLists[var8].iterator(); - - while (var18.hasNext()) - { - Entity var20 = (Entity)var18.next(); - var11 = new NBTTagCompound(); - - if (var20.writeToNBTOptional(var11)) - { - par1Chunk.hasEntities = true; - var16.appendTag(var11); - } - } - } - - par3NBTTagCompound.setTag("Entities", var16); - NBTTagList var17 = new NBTTagList(); - var18 = par1Chunk.chunkTileEntityMap.values().iterator(); - - while (var18.hasNext()) - { - TileEntity var21 = (TileEntity)var18.next(); - var11 = new NBTTagCompound(); - var21.writeToNBT(var11); - var17.appendTag(var11); - } - - par3NBTTagCompound.setTag("TileEntities", var17); - List var19 = par2World.getPendingBlockUpdates(par1Chunk, false); - - if (var19 != null) - { - long var22 = par2World.getTotalWorldTime(); - NBTTagList var12 = new NBTTagList(); - Iterator var13 = var19.iterator(); - - while (var13.hasNext()) - { - NextTickListEntry var14 = (NextTickListEntry)var13.next(); - NBTTagCompound var15 = new NBTTagCompound(); - var15.setInteger("i", var14.blockID); - var15.setInteger("x", var14.xCoord); - var15.setInteger("y", var14.yCoord); - var15.setInteger("z", var14.zCoord); - var15.setInteger("t", (int)(var14.scheduledTime - var22)); - var15.setInteger("p", var14.priority); - var12.appendTag(var15); - } - - par3NBTTagCompound.setTag("TileTicks", var12); - } - } - - /** - * Reads the data stored in the passed NBTTagCompound and creates a Chunk with that data in the passed World. - * Returns the created Chunk. - */ - private Chunk readChunkFromNBT(World par1World, NBTTagCompound par2NBTTagCompound) - { - int var3 = par2NBTTagCompound.getInteger("xPos"); - int var4 = par2NBTTagCompound.getInteger("zPos"); - Chunk var5 = new Chunk(par1World, var3, var4); - var5.heightMap = par2NBTTagCompound.getIntArray("HeightMap"); - var5.isTerrainPopulated = par2NBTTagCompound.getBoolean("TerrainPopulated"); - var5.inhabitedTime = par2NBTTagCompound.getLong("InhabitedTime"); - NBTTagList var6 = par2NBTTagCompound.getTagList("Sections"); - byte var7 = 16; - ExtendedBlockStorage[] var8 = new ExtendedBlockStorage[var7]; - boolean var9 = !par1World.provider.hasNoSky; - - for (int var10 = 0; var10 < var6.tagCount(); ++var10) - { - NBTTagCompound var11 = (NBTTagCompound)var6.tagAt(var10); - byte var12 = var11.getByte("Y"); - ExtendedBlockStorage var13 = new ExtendedBlockStorage(var12 << 4, var9); - var13.setBlockLSBArray(var11.getByteArray("Blocks")); - - if (var11.hasKey("Add")) - { - var13.setBlockMSBArray(new NibbleArray(var11.getByteArray("Add"), 4)); - } - - var13.setBlockMetadataArray(new NibbleArray(var11.getByteArray("Data"), 4)); - var13.setBlocklightArray(new NibbleArray(var11.getByteArray("BlockLight"), 4)); - - if (var9) - { - var13.setSkylightArray(new NibbleArray(var11.getByteArray("SkyLight"), 4)); - } - - var13.removeInvalidBlocks(); - var8[var12] = var13; - } - - var5.setStorageArrays(var8); - - if (par2NBTTagCompound.hasKey("Biomes")) - { - var5.setBiomeArray(par2NBTTagCompound.getByteArray("Biomes")); - } - - NBTTagList var17 = par2NBTTagCompound.getTagList("Entities"); - - if (var17 != null) - { - for (int var18 = 0; var18 < var17.tagCount(); ++var18) - { - NBTTagCompound var20 = (NBTTagCompound)var17.tagAt(var18); - Entity var22 = EntityList.createEntityFromNBT(var20, par1World); - var5.hasEntities = true; - - if (var22 != null) - { - var5.addEntity(var22); - Entity var14 = var22; - - for (NBTTagCompound var15 = var20; var15.hasKey("Riding"); var15 = var15.getCompoundTag("Riding")) - { - Entity var16 = EntityList.createEntityFromNBT(var15.getCompoundTag("Riding"), par1World); - - if (var16 != null) - { - var5.addEntity(var16); - var14.mountEntity(var16); - } - - var14 = var16; - } - } - } - } - - NBTTagList var19 = par2NBTTagCompound.getTagList("TileEntities"); - - if (var19 != null) - { - for (int var21 = 0; var21 < var19.tagCount(); ++var21) - { - NBTTagCompound var24 = (NBTTagCompound)var19.tagAt(var21); - TileEntity var26 = TileEntity.createAndLoadEntity(var24); - - if (var26 != null) - { - var5.addTileEntity(var26); - } - } - } - - if (par2NBTTagCompound.hasKey("TileTicks")) - { - NBTTagList var23 = par2NBTTagCompound.getTagList("TileTicks"); - - if (var23 != null) - { - for (int var25 = 0; var25 < var23.tagCount(); ++var25) - { - NBTTagCompound var27 = (NBTTagCompound)var23.tagAt(var25); - par1World.scheduleBlockUpdateFromLoad(var27.getInteger("x"), var27.getInteger("y"), var27.getInteger("z"), var27.getInteger("i"), var27.getInteger("t"), var27.getInteger("p")); - } - } - } - - return var5; - } -} diff --git a/src/main/java/net/minecraft/src/AnvilChunkLoaderPending.java b/src/main/java/net/minecraft/src/AnvilChunkLoaderPending.java deleted file mode 100644 index a44d167..0000000 --- a/src/main/java/net/minecraft/src/AnvilChunkLoaderPending.java +++ /dev/null @@ -1,13 +0,0 @@ -package net.minecraft.src; - -class AnvilChunkLoaderPending -{ - public final ChunkCoordIntPair chunkCoordinate; - public final NBTTagCompound nbtTags; - - public AnvilChunkLoaderPending(ChunkCoordIntPair par1ChunkCoordIntPair, NBTTagCompound par2NBTTagCompound) - { - this.chunkCoordinate = par1ChunkCoordIntPair; - this.nbtTags = par2NBTTagCompound; - } -} diff --git a/src/main/java/net/minecraft/src/AnvilConverterData.java b/src/main/java/net/minecraft/src/AnvilConverterData.java deleted file mode 100644 index a91b693..0000000 --- a/src/main/java/net/minecraft/src/AnvilConverterData.java +++ /dev/null @@ -1,23 +0,0 @@ -package net.minecraft.src; - -public class AnvilConverterData -{ - public long lastUpdated; - public boolean terrainPopulated; - public byte[] heightmap; - public NibbleArrayReader blockLight; - public NibbleArrayReader skyLight; - public NibbleArrayReader data; - public byte[] blocks; - public NBTTagList entities; - public NBTTagList tileEntities; - public NBTTagList tileTicks; - public final int x; - public final int z; - - public AnvilConverterData(int par1, int par2) - { - this.x = par1; - this.z = par2; - } -} diff --git a/src/main/java/net/minecraft/src/AnvilConverterException.java b/src/main/java/net/minecraft/src/AnvilConverterException.java deleted file mode 100644 index f484761..0000000 --- a/src/main/java/net/minecraft/src/AnvilConverterException.java +++ /dev/null @@ -1,9 +0,0 @@ -package net.minecraft.src; - -public class AnvilConverterException extends Exception -{ - public AnvilConverterException(String par1Str) - { - super(par1Str); - } -} diff --git a/src/main/java/net/minecraft/src/AnvilSaveConverter.java b/src/main/java/net/minecraft/src/AnvilSaveConverter.java deleted file mode 100644 index 22e5261..0000000 --- a/src/main/java/net/minecraft/src/AnvilSaveConverter.java +++ /dev/null @@ -1,263 +0,0 @@ -package net.minecraft.src; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import net.minecraft.server.MinecraftServer; - -public class AnvilSaveConverter extends SaveFormatOld -{ - public AnvilSaveConverter(File par1File) - { - super(par1File); - } - - public List getSaveList() throws AnvilConverterException - { - if (this.savesDirectory != null && this.savesDirectory.exists() && this.savesDirectory.isDirectory()) - { - ArrayList var1 = new ArrayList(); - File[] var2 = this.savesDirectory.listFiles(); - File[] var3 = var2; - int var4 = var2.length; - - for (int var5 = 0; var5 < var4; ++var5) - { - File var6 = var3[var5]; - - if (var6.isDirectory()) - { - String var7 = var6.getName(); - WorldInfo var8 = this.getWorldInfo(var7); - - if (var8 != null && (var8.getSaveVersion() == 19132 || var8.getSaveVersion() == 19133)) - { - boolean var9 = var8.getSaveVersion() != this.getSaveVersion(); - String var10 = var8.getWorldName(); - - if (var10 == null || MathHelper.stringNullOrLengthZero(var10)) - { - var10 = var7; - } - - long var11 = 0L; - var1.add(new SaveFormatComparator(var7, var10, var8.getLastTimePlayed(), var11, var8.getGameType(), var9, var8.isHardcoreModeEnabled(), var8.areCommandsAllowed())); - } - } - } - - return var1; - } - else - { - throw new AnvilConverterException("Unable to read or access folder where game worlds are saved!"); - } - } - - protected int getSaveVersion() - { - return 19133; - } - - public void flushCache() - { - RegionFileCache.clearRegionFileReferences(); - } - - /** - * Returns back a loader for the specified save directory - */ - public ISaveHandler getSaveLoader(String par1Str, boolean par2) - { - return new AnvilSaveHandler(this.savesDirectory, par1Str, par2); - } - - /** - * Checks if the save directory uses the old map format - */ - public boolean isOldMapFormat(String par1Str) - { - WorldInfo var2 = this.getWorldInfo(par1Str); - return var2 != null && var2.getSaveVersion() != this.getSaveVersion(); - } - - /** - * Converts the specified map to the new map format. Args: worldName, loadingScreen - */ - public boolean convertMapFormat(String par1Str, IProgressUpdate par2IProgressUpdate) - { - par2IProgressUpdate.setLoadingProgress(0); - ArrayList var3 = new ArrayList(); - ArrayList var4 = new ArrayList(); - ArrayList var5 = new ArrayList(); - File var6 = new File(this.savesDirectory, par1Str); - File var7 = new File(var6, "DIM-1"); - File var8 = new File(var6, "DIM1"); - MinecraftServer.getServer().getLogAgent().logInfo("Scanning folders..."); - this.addRegionFilesToCollection(var6, var3); - - if (var7.exists()) - { - this.addRegionFilesToCollection(var7, var4); - } - - if (var8.exists()) - { - this.addRegionFilesToCollection(var8, var5); - } - - int var9 = var3.size() + var4.size() + var5.size(); - MinecraftServer.getServer().getLogAgent().logInfo("Total conversion count is " + var9); - WorldInfo var10 = this.getWorldInfo(par1Str); - Object var11 = null; - - if (var10.getTerrainType() == WorldType.FLAT) - { - var11 = new WorldChunkManagerHell(BiomeGenBase.plains, 0.5F, 0.5F); - } - else - { - var11 = new WorldChunkManager(var10.getSeed(), var10.getTerrainType()); - } - - this.convertFile(new File(var6, "region"), var3, (WorldChunkManager)var11, 0, var9, par2IProgressUpdate); - this.convertFile(new File(var7, "region"), var4, new WorldChunkManagerHell(BiomeGenBase.hell, 1.0F, 0.0F), var3.size(), var9, par2IProgressUpdate); - this.convertFile(new File(var8, "region"), var5, new WorldChunkManagerHell(BiomeGenBase.sky, 0.5F, 0.0F), var3.size() + var4.size(), var9, par2IProgressUpdate); - var10.setSaveVersion(19133); - - if (var10.getTerrainType() == WorldType.DEFAULT_1_1) - { - var10.setTerrainType(WorldType.DEFAULT); - } - - this.createFile(par1Str); - ISaveHandler var12 = this.getSaveLoader(par1Str, false); - var12.saveWorldInfo(var10); - return true; - } - - /** - * par: filename for the level.dat_mcr backup - */ - private void createFile(String par1Str) - { - File var2 = new File(this.savesDirectory, par1Str); - - if (!var2.exists()) - { - System.out.println("Warning: Unable to create level.dat_mcr backup"); - } - else - { - File var3 = new File(var2, "level.dat"); - - if (!var3.exists()) - { - System.out.println("Warning: Unable to create level.dat_mcr backup"); - } - else - { - File var4 = new File(var2, "level.dat_mcr"); - - if (!var3.renameTo(var4)) - { - System.out.println("Warning: Unable to create level.dat_mcr backup"); - } - } - } - } - - private void convertFile(File par1File, Iterable par2Iterable, WorldChunkManager par3WorldChunkManager, int par4, int par5, IProgressUpdate par6IProgressUpdate) - { - Iterator var7 = par2Iterable.iterator(); - - while (var7.hasNext()) - { - File var8 = (File)var7.next(); - this.convertChunks(par1File, var8, par3WorldChunkManager, par4, par5, par6IProgressUpdate); - ++par4; - int var9 = (int)Math.round(100.0D * (double)par4 / (double)par5); - par6IProgressUpdate.setLoadingProgress(var9); - } - } - - /** - * copies a 32x32 chunk set from par2File to par1File, via AnvilConverterData - */ - private void convertChunks(File par1File, File par2File, WorldChunkManager par3WorldChunkManager, int par4, int par5, IProgressUpdate par6IProgressUpdate) - { - try - { - String var7 = par2File.getName(); - RegionFile var8 = new RegionFile(par2File); - RegionFile var9 = new RegionFile(new File(par1File, var7.substring(0, var7.length() - ".mcr".length()) + ".mca")); - - for (int var10 = 0; var10 < 32; ++var10) - { - int var11; - - for (var11 = 0; var11 < 32; ++var11) - { - if (var8.isChunkSaved(var10, var11) && !var9.isChunkSaved(var10, var11)) - { - DataInputStream var12 = var8.getChunkDataInputStream(var10, var11); - - if (var12 == null) - { - MinecraftServer.getServer().getLogAgent().logWarning("Failed to fetch input stream"); - } - else - { - NBTTagCompound var13 = CompressedStreamTools.read(var12); - var12.close(); - NBTTagCompound var14 = var13.getCompoundTag("Level"); - AnvilConverterData var15 = ChunkLoader.load(var14); - NBTTagCompound var16 = new NBTTagCompound(); - NBTTagCompound var17 = new NBTTagCompound(); - var16.setTag("Level", var17); - ChunkLoader.convertToAnvilFormat(var15, var17, par3WorldChunkManager); - DataOutputStream var18 = var9.getChunkDataOutputStream(var10, var11); - CompressedStreamTools.write(var16, var18); - var18.close(); - } - } - } - - var11 = (int)Math.round(100.0D * (double)(par4 * 1024) / (double)(par5 * 1024)); - int var20 = (int)Math.round(100.0D * (double)((var10 + 1) * 32 + par4 * 1024) / (double)(par5 * 1024)); - - if (var20 > var11) - { - par6IProgressUpdate.setLoadingProgress(var20); - } - } - - var8.close(); - var9.close(); - } - catch (IOException var19) - { - var19.printStackTrace(); - } - } - - /** - * filters the files in the par1 directory, and adds them to the par2 collections - */ - private void addRegionFilesToCollection(File par1File, Collection par2Collection) - { - File var3 = new File(par1File, "region"); - File[] var4 = var3.listFiles(new AnvilSaveConverterFileFilter(this)); - - if (var4 != null) - { - Collections.addAll(par2Collection, var4); - } - } -} diff --git a/src/main/java/net/minecraft/src/AnvilSaveConverterFileFilter.java b/src/main/java/net/minecraft/src/AnvilSaveConverterFileFilter.java deleted file mode 100644 index 184c045..0000000 --- a/src/main/java/net/minecraft/src/AnvilSaveConverterFileFilter.java +++ /dev/null @@ -1,19 +0,0 @@ -package net.minecraft.src; - -import java.io.File; -import java.io.FilenameFilter; - -class AnvilSaveConverterFileFilter implements FilenameFilter -{ - final AnvilSaveConverter parent; - - AnvilSaveConverterFileFilter(AnvilSaveConverter par1AnvilSaveConverter) - { - this.parent = par1AnvilSaveConverter; - } - - public boolean accept(File par1File, String par2Str) - { - return par2Str.endsWith(".mcr"); - } -} diff --git a/src/main/java/net/minecraft/src/AnvilSaveHandler.java b/src/main/java/net/minecraft/src/AnvilSaveHandler.java deleted file mode 100644 index 82e976e..0000000 --- a/src/main/java/net/minecraft/src/AnvilSaveHandler.java +++ /dev/null @@ -1,63 +0,0 @@ -package net.minecraft.src; - -import java.io.File; - -public class AnvilSaveHandler extends SaveHandler -{ - public AnvilSaveHandler(File par1File, String par2Str, boolean par3) - { - super(par1File, par2Str, par3); - } - - /** - * Returns the chunk loader with the provided world provider - */ - public IChunkLoader getChunkLoader(WorldProvider par1WorldProvider) - { - File var2 = this.getWorldDirectory(); - File var3; - - if (par1WorldProvider instanceof WorldProviderHell) - { - var3 = new File(var2, "DIM-1"); - var3.mkdirs(); - return new AnvilChunkLoader(var3); - } - else if (par1WorldProvider instanceof WorldProviderEnd) - { - var3 = new File(var2, "DIM1"); - var3.mkdirs(); - return new AnvilChunkLoader(var3); - } - else - { - return new AnvilChunkLoader(var2); - } - } - - /** - * Saves the given World Info with the given NBTTagCompound as the Player. - */ - public void saveWorldInfoWithPlayer(WorldInfo par1WorldInfo, NBTTagCompound par2NBTTagCompound) - { - par1WorldInfo.setSaveVersion(19133); - super.saveWorldInfoWithPlayer(par1WorldInfo, par2NBTTagCompound); - } - - /** - * Called to flush all changes to disk, waiting for them to complete. - */ - public void flush() - { - try - { - ThreadedFileIOBase.threadedIOInstance.waitForFinish(); - } - catch (InterruptedException var2) - { - var2.printStackTrace(); - } - - RegionFileCache.clearRegionFileReferences(); - } -} diff --git a/src/main/java/net/minecraft/src/ChunkLoader.java b/src/main/java/net/minecraft/src/ChunkLoader.java index 390ec14..3fd31fc 100644 --- a/src/main/java/net/minecraft/src/ChunkLoader.java +++ b/src/main/java/net/minecraft/src/ChunkLoader.java @@ -2,135 +2,5 @@ package net.minecraft.src; public class ChunkLoader { - public static AnvilConverterData load(NBTTagCompound par0NBTTagCompound) - { - int var1 = par0NBTTagCompound.getInteger("xPos"); - int var2 = par0NBTTagCompound.getInteger("zPos"); - AnvilConverterData var3 = new AnvilConverterData(var1, var2); - var3.blocks = par0NBTTagCompound.getByteArray("Blocks"); - var3.data = new NibbleArrayReader(par0NBTTagCompound.getByteArray("Data"), 7); - var3.skyLight = new NibbleArrayReader(par0NBTTagCompound.getByteArray("SkyLight"), 7); - var3.blockLight = new NibbleArrayReader(par0NBTTagCompound.getByteArray("BlockLight"), 7); - var3.heightmap = par0NBTTagCompound.getByteArray("HeightMap"); - var3.terrainPopulated = par0NBTTagCompound.getBoolean("TerrainPopulated"); - var3.entities = par0NBTTagCompound.getTagList("Entities"); - var3.tileEntities = par0NBTTagCompound.getTagList("TileEntities"); - var3.tileTicks = par0NBTTagCompound.getTagList("TileTicks"); - try - { - var3.lastUpdated = par0NBTTagCompound.getLong("LastUpdate"); - } - catch (ClassCastException var5) - { - var3.lastUpdated = (long)par0NBTTagCompound.getInteger("LastUpdate"); - } - - return var3; - } - - public static void convertToAnvilFormat(AnvilConverterData par0AnvilConverterData, NBTTagCompound par1NBTTagCompound, WorldChunkManager par2WorldChunkManager) - { - par1NBTTagCompound.setInteger("xPos", par0AnvilConverterData.x); - par1NBTTagCompound.setInteger("zPos", par0AnvilConverterData.z); - par1NBTTagCompound.setLong("LastUpdate", par0AnvilConverterData.lastUpdated); - int[] var3 = new int[par0AnvilConverterData.heightmap.length]; - - for (int var4 = 0; var4 < par0AnvilConverterData.heightmap.length; ++var4) - { - var3[var4] = par0AnvilConverterData.heightmap[var4]; - } - - par1NBTTagCompound.setIntArray("HeightMap", var3); - par1NBTTagCompound.setBoolean("TerrainPopulated", par0AnvilConverterData.terrainPopulated); - NBTTagList var16 = new NBTTagList("Sections"); - int var7; - - for (int var5 = 0; var5 < 8; ++var5) - { - boolean var6 = true; - - for (var7 = 0; var7 < 16 && var6; ++var7) - { - int var8 = 0; - - while (var8 < 16 && var6) - { - int var9 = 0; - - while (true) - { - if (var9 < 16) - { - int var10 = var7 << 11 | var9 << 7 | var8 + (var5 << 4); - byte var11 = par0AnvilConverterData.blocks[var10]; - - if (var11 == 0) - { - ++var9; - continue; - } - - var6 = false; - } - - ++var8; - break; - } - } - } - - if (!var6) - { - byte[] var19 = new byte[4096]; - NibbleArray var20 = new NibbleArray(var19.length, 4); - NibbleArray var21 = new NibbleArray(var19.length, 4); - NibbleArray var22 = new NibbleArray(var19.length, 4); - - for (int var23 = 0; var23 < 16; ++var23) - { - for (int var12 = 0; var12 < 16; ++var12) - { - for (int var13 = 0; var13 < 16; ++var13) - { - int var14 = var23 << 11 | var13 << 7 | var12 + (var5 << 4); - byte var15 = par0AnvilConverterData.blocks[var14]; - var19[var12 << 8 | var13 << 4 | var23] = (byte)(var15 & 255); - var20.set(var23, var12, var13, par0AnvilConverterData.data.get(var23, var12 + (var5 << 4), var13)); - var21.set(var23, var12, var13, par0AnvilConverterData.skyLight.get(var23, var12 + (var5 << 4), var13)); - var22.set(var23, var12, var13, par0AnvilConverterData.blockLight.get(var23, var12 + (var5 << 4), var13)); - } - } - } - - NBTTagCompound var24 = new NBTTagCompound(); - var24.setByte("Y", (byte)(var5 & 255)); - var24.setByteArray("Blocks", var19); - var24.setByteArray("Data", var20.data); - var24.setByteArray("SkyLight", var21.data); - var24.setByteArray("BlockLight", var22.data); - var16.appendTag(var24); - } - } - - par1NBTTagCompound.setTag("Sections", var16); - byte[] var17 = new byte[256]; - - for (int var18 = 0; var18 < 16; ++var18) - { - for (var7 = 0; var7 < 16; ++var7) - { - var17[var7 << 4 | var18] = (byte)(par2WorldChunkManager.getBiomeGenAt(par0AnvilConverterData.x << 4 | var18, par0AnvilConverterData.z << 4 | var7).biomeID & 255); - } - } - - par1NBTTagCompound.setByteArray("Biomes", var17); - par1NBTTagCompound.setTag("Entities", par0AnvilConverterData.entities); - par1NBTTagCompound.setTag("TileEntities", par0AnvilConverterData.tileEntities); - - if (par0AnvilConverterData.tileTicks != null) - { - par1NBTTagCompound.setTag("TileTicks", par0AnvilConverterData.tileTicks); - } - } } diff --git a/src/main/java/net/minecraft/src/GLAllocation.java b/src/main/java/net/minecraft/src/GLAllocation.java index 89c0829..f18ca48 100644 --- a/src/main/java/net/minecraft/src/GLAllocation.java +++ b/src/main/java/net/minecraft/src/GLAllocation.java @@ -86,4 +86,4 @@ public class GLAllocation { public static FloatBuffer createDirectFloatBuffer(int par0) { return EaglerAdapter.isWebGL ? FloatBuffer.wrap(new float[par0]) : createDirectByteBuffer(par0 << 2).asFloatBuffer(); } -} \ No newline at end of file +} diff --git a/src/main/java/net/minecraft/src/GuiSelectWorld.java b/src/main/java/net/minecraft/src/GuiSelectWorld.java index be55ebe..1e456a3 100644 --- a/src/main/java/net/minecraft/src/GuiSelectWorld.java +++ b/src/main/java/net/minecraft/src/GuiSelectWorld.java @@ -66,7 +66,7 @@ public class GuiSelectWorld extends GuiScreen { this.loadSaves(); } - catch (AnvilConverterException var2) + catch (Exception var2) { var2.printStackTrace(); this.mc.displayGuiScreen(new GuiErrorScreen("Unable to load words", var2.getMessage())); @@ -86,7 +86,7 @@ public class GuiSelectWorld extends GuiScreen /** * loads the saves */ - private void loadSaves() throws AnvilConverterException + private void loadSaves() throws Exception { ISaveFormat var1 = this.mc.getSaveLoader(); this.saveList = var1.getSaveList(); @@ -232,7 +232,7 @@ public class GuiSelectWorld extends GuiScreen { this.loadSaves(); } - catch (AnvilConverterException var5) + catch (Exception var5) { var5.printStackTrace(); } diff --git a/src/main/java/net/minecraft/src/ISaveFormat.java b/src/main/java/net/minecraft/src/ISaveFormat.java index 153ff5c..2be033d 100644 --- a/src/main/java/net/minecraft/src/ISaveFormat.java +++ b/src/main/java/net/minecraft/src/ISaveFormat.java @@ -9,7 +9,7 @@ public interface ISaveFormat */ ISaveHandler getSaveLoader(String var1, boolean var2); - List getSaveList() throws AnvilConverterException; + List getSaveList() throws Exception; void flushCache(); diff --git a/src/main/java/net/minecraft/src/Render.java b/src/main/java/net/minecraft/src/Render.java index 24432a2..5cc0a83 100644 --- a/src/main/java/net/minecraft/src/Render.java +++ b/src/main/java/net/minecraft/src/Render.java @@ -39,50 +39,57 @@ public abstract class Render par1TextureLocation.bindTexture(); } + private static final TextureLocation terrain = new TextureLocation("/terrain.png"); /** * Renders fire on top of the entity. Args: entity, x, y, z, partialTickTime */ - private void renderEntityOnFire(Entity par1Entity, double par2, double par4, double par6, float par8) - { + private void renderEntityOnFire(Entity par1Entity, double par2, double par4, double par6, float par8) { EaglerAdapter.glDisable(EaglerAdapter.GL_LIGHTING); Icon var9 = Block.fire.getFireIcon(0); Icon var10 = Block.fire.getFireIcon(1); EaglerAdapter.glPushMatrix(); - EaglerAdapter.glTranslatef((float)par2, (float)par4, (float)par6); + EaglerAdapter.glTranslatef((float) par2, (float) par4, (float) par6); float var11 = par1Entity.width * 1.4F; EaglerAdapter.glScalef(var11, var11, var11); + terrain.bindTexture(); + EaglerAdapter.glTexParameteri(EaglerAdapter.GL_TEXTURE_2D, EaglerAdapter.GL_TEXTURE_MIN_FILTER, EaglerAdapter.GL_NEAREST); + EaglerAdapter.glTexParameteri(EaglerAdapter.GL_TEXTURE_2D, EaglerAdapter.GL_TEXTURE_MAG_FILTER, EaglerAdapter.GL_NEAREST); Tessellator var12 = Tessellator.instance; float var13 = 0.5F; float var14 = 0.0F; float var15 = par1Entity.height / var11; - float var16 = (float)(par1Entity.posY - par1Entity.boundingBox.minY); + float var16 = (float) (par1Entity.posY - par1Entity.boundingBox.minY); EaglerAdapter.glRotatef(-this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - EaglerAdapter.glTranslatef(0.0F, 0.0F, -0.3F + (float)((int)var15) * 0.02F); + EaglerAdapter.glTranslatef(0.0F, 0.0F, -0.3F + (float) ((int) var15) * 0.02F); EaglerAdapter.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); float var17 = 0.0F; int var18 = 0; var12.startDrawingQuads(); - while (var15 > 0.0F) - { - Icon var19 = var18 % 2 == 0 ? var9 : var10; - this.bindTexture(TextureMap.locationBlocksTexture); + while (var15 > 0.0F) { + Icon var19; + + if (var18 % 2 == 0) { + var19 = var9; + } else { + var19 = var10; + } + float var20 = var19.getMinU(); float var21 = var19.getMinV(); float var22 = var19.getMaxU(); float var23 = var19.getMaxV(); - if (var18 / 2 % 2 == 0) - { + if (var18 / 2 % 2 == 0) { float var24 = var22; var22 = var20; var20 = var24; } - var12.addVertexWithUV((double)(var13 - var14), (double)(0.0F - var16), (double)var17, (double)var22, (double)var23); - var12.addVertexWithUV((double)(-var13 - var14), (double)(0.0F - var16), (double)var17, (double)var20, (double)var23); - var12.addVertexWithUV((double)(-var13 - var14), (double)(1.4F - var16), (double)var17, (double)var20, (double)var21); - var12.addVertexWithUV((double)(var13 - var14), (double)(1.4F - var16), (double)var17, (double)var22, (double)var21); + var12.addVertexWithUV((double) (var13 - var14), (double) (0.0F - var16), (double) var17, (double) var22, (double) var23); + var12.addVertexWithUV((double) (-var13 - var14), (double) (0.0F - var16), (double) var17, (double) var20, (double) var23); + var12.addVertexWithUV((double) (-var13 - var14), (double) (1.4F - var16), (double) var17, (double) var20, (double) var21); + var12.addVertexWithUV((double) (var13 - var14), (double) (1.4F - var16), (double) var17, (double) var22, (double) var21); var15 -= 0.45F; var16 -= 0.45F; var13 *= 0.9F; @@ -95,56 +102,54 @@ public abstract class Render EaglerAdapter.glEnable(EaglerAdapter.GL_LIGHTING); } + private static final TextureLocation shadow = new TextureLocation("%clamp%/misc/shadow.png"); + /** - * Renders the entity shadows at the position, shadow alpha and partialTickTime. Args: entity, x, y, z, shadowAlpha, - * partialTickTime + * Renders the entity shadows at the position, shadow alpha and partialTickTime. + * Args: entity, x, y, z, shadowAlpha, partialTickTime */ - private void renderShadow(Entity par1Entity, double par2, double par4, double par6, float par8, float par9) - { + private void renderShadow(Entity par1Entity, double par2, double par4, double par6, float par8, float par9) { EaglerAdapter.glEnable(EaglerAdapter.GL_BLEND); + EaglerAdapter.glDisable(EaglerAdapter.GL_ALPHA_TEST); EaglerAdapter.glBlendFunc(EaglerAdapter.GL_SRC_ALPHA, EaglerAdapter.GL_ONE_MINUS_SRC_ALPHA); - shadowTextures.bindTexture(); + shadow.bindTexture(); + EaglerAdapter.glTexParameteri(EaglerAdapter.GL_TEXTURE_2D, EaglerAdapter.GL_TEXTURE_WRAP_S, EaglerAdapter.GL_CLAMP); + EaglerAdapter.glTexParameteri(EaglerAdapter.GL_TEXTURE_2D, EaglerAdapter.GL_TEXTURE_WRAP_T, EaglerAdapter.GL_CLAMP); World var10 = this.getWorldFromRenderManager(); EaglerAdapter.glDepthMask(false); float var11 = this.shadowSize; - if (par1Entity instanceof EntityLiving) - { - EntityLiving var12 = (EntityLiving)par1Entity; + if (par1Entity instanceof EntityLiving) { + EntityLiving var12 = (EntityLiving) par1Entity; var11 *= var12.getRenderSizeModifier(); - if (var12.isChild()) - { + if (var12.isChild()) { var11 *= 0.5F; } } - double var35 = par1Entity.lastTickPosX + (par1Entity.posX - par1Entity.lastTickPosX) * (double)par9; - double var14 = par1Entity.lastTickPosY + (par1Entity.posY - par1Entity.lastTickPosY) * (double)par9 + (double)par1Entity.getShadowSize(); - double var16 = par1Entity.lastTickPosZ + (par1Entity.posZ - par1Entity.lastTickPosZ) * (double)par9; - int var18 = MathHelper.floor_double(var35 - (double)var11); - int var19 = MathHelper.floor_double(var35 + (double)var11); - int var20 = MathHelper.floor_double(var14 - (double)var11); + double var35 = par1Entity.lastTickPosX + (par1Entity.posX - par1Entity.lastTickPosX) * (double) par9; + double var14 = par1Entity.lastTickPosY + (par1Entity.posY - par1Entity.lastTickPosY) * (double) par9 + (double) par1Entity.getShadowSize(); + double var16 = par1Entity.lastTickPosZ + (par1Entity.posZ - par1Entity.lastTickPosZ) * (double) par9; + int var18 = MathHelper.floor_double(var35 - (double) var11); + int var19 = MathHelper.floor_double(var35 + (double) var11); + int var20 = MathHelper.floor_double(var14 - (double) var11); int var21 = MathHelper.floor_double(var14); - int var22 = MathHelper.floor_double(var16 - (double)var11); - int var23 = MathHelper.floor_double(var16 + (double)var11); + int var22 = MathHelper.floor_double(var16 - (double) var11); + int var23 = MathHelper.floor_double(var16 + (double) var11); double var24 = par2 - var35; double var26 = par4 - var14; double var28 = par6 - var16; Tessellator var30 = Tessellator.instance; var30.startDrawingQuads(); - for (int var31 = var18; var31 <= var19; ++var31) - { - for (int var32 = var20; var32 <= var21; ++var32) - { - for (int var33 = var22; var33 <= var23; ++var33) - { + for (int var31 = var18; var31 <= var19; ++var31) { + for (int var32 = var20; var32 <= var21; ++var32) { + for (int var33 = var22; var33 <= var23; ++var33) { int var34 = var10.getBlockId(var31, var32 - 1, var33); - if (var34 > 0 && var10.getBlockLightValue(var31, var32, var33) > 3) - { - this.renderShadowOnBlock(Block.blocksList[var34], par2, par4 + (double)par1Entity.getShadowSize(), par6, var31, var32, var33, par8, var11, var24, var26 + (double)par1Entity.getShadowSize(), var28); + if (var34 > 0 && var10.getBlockLightValue(var31, var32, var33) > 3) { + this.renderShadowOnBlock(Block.blocksList[var34], par2, par4 + (double) par1Entity.getShadowSize(), par6, var31, var32, var33, par8, var11, var24, var26 + (double) par1Entity.getShadowSize(), var28); } } } @@ -153,60 +158,57 @@ public abstract class Render var30.draw(); EaglerAdapter.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); EaglerAdapter.glDisable(EaglerAdapter.GL_BLEND); + EaglerAdapter.glEnable(EaglerAdapter.GL_ALPHA_TEST); EaglerAdapter.glDepthMask(true); } /** * Returns the render manager's world object */ - private World getWorldFromRenderManager() - { + private World getWorldFromRenderManager() { return this.renderManager.worldObj; } /** - * Renders a shadow projected down onto the specified block. Brightness of the block plus how far away on the Y axis - * determines the alpha of the shadow. Args: block, centerX, centerY, centerZ, blockX, blockY, blockZ, baseAlpha, + * Renders a shadow projected down onto the specified block. Brightness of the + * block plus how far away on the Y axis determines the alpha of the shadow. + * Args: block, centerX, centerY, centerZ, blockX, blockY, blockZ, baseAlpha, * shadowSize, xOffset, yOffset, zOffset */ - private void renderShadowOnBlock(Block par1Block, double par2, double par4, double par6, int par8, int par9, int par10, float par11, float par12, double par13, double par15, double par17) - { + private void renderShadowOnBlock(Block par1Block, double par2, double par4, double par6, int par8, int par9, int par10, float par11, float par12, double par13, double par15, double par17) { Tessellator var19 = Tessellator.instance; - if (par1Block.renderAsNormalBlock()) - { - double var20 = ((double)par11 - (par4 - ((double)par9 + par15)) / 2.0D) * 0.5D * (double)this.getWorldFromRenderManager().getLightBrightness(par8, par9, par10); + if (par1Block.renderAsNormalBlock()) { + double var20 = ((double) par11 - (par4 - ((double) par9 + par15)) / 2.0D) * 0.5D * (double) this.getWorldFromRenderManager().getLightBrightness(par8, par9, par10); - if (var20 >= 0.0D) - { - if (var20 > 1.0D) - { + if (var20 >= 0.0D) { + if (var20 > 1.0D) { var20 = 1.0D; } - var19.setColorRGBA_F(1.0F, 1.0F, 1.0F, (float)var20); - double var22 = (double)par8 + par1Block.getBlockBoundsMinX() + par13; - double var24 = (double)par8 + par1Block.getBlockBoundsMaxX() + par13; - double var26 = (double)par9 + par1Block.getBlockBoundsMinY() + par15 + 0.015625D; - double var28 = (double)par10 + par1Block.getBlockBoundsMinZ() + par17; - double var30 = (double)par10 + par1Block.getBlockBoundsMaxZ() + par17; - float var32 = (float)((par2 - var22) / 2.0D / (double)par12 + 0.5D); - float var33 = (float)((par2 - var24) / 2.0D / (double)par12 + 0.5D); - float var34 = (float)((par6 - var28) / 2.0D / (double)par12 + 0.5D); - float var35 = (float)((par6 - var30) / 2.0D / (double)par12 + 0.5D); - var19.addVertexWithUV(var22, var26, var28, (double)var32, (double)var34); - var19.addVertexWithUV(var22, var26, var30, (double)var32, (double)var35); - var19.addVertexWithUV(var24, var26, var30, (double)var33, (double)var35); - var19.addVertexWithUV(var24, var26, var28, (double)var33, (double)var34); + var19.setColorRGBA_F(1.0F, 1.0F, 1.0F, (float) var20); + double var22 = (double) par8 + par1Block.getBlockBoundsMinX() + par13; + double var24 = (double) par8 + par1Block.getBlockBoundsMaxX() + par13; + double var26 = (double) par9 + par1Block.getBlockBoundsMinY() + par15 + 0.015625D; + double var28 = (double) par10 + par1Block.getBlockBoundsMinZ() + par17; + double var30 = (double) par10 + par1Block.getBlockBoundsMaxZ() + par17; + float var32 = (float) ((par2 - var22) / 2.0D / (double) par12 + 0.5D); + float var33 = (float) ((par2 - var24) / 2.0D / (double) par12 + 0.5D); + float var34 = (float) ((par6 - var28) / 2.0D / (double) par12 + 0.5D); + float var35 = (float) ((par6 - var30) / 2.0D / (double) par12 + 0.5D); + var19.addVertexWithUV(var22, var26, var28, (double) var32, (double) var34); + var19.addVertexWithUV(var22, var26, var30, (double) var32, (double) var35); + var19.addVertexWithUV(var24, var26, var30, (double) var33, (double) var35); + var19.addVertexWithUV(var24, var26, var28, (double) var33, (double) var34); } } } /** - * Renders a white box with the bounds of the AABB translated by the offset. Args: aabb, x, y, z + * Renders a white box with the bounds of the AABB translated by the offset. + * Args: aabb, x, y, z */ - public static void renderOffsetAABB(AxisAlignedBB par0AxisAlignedBB, double par1, double par3, double par5) - { + public static void renderOffsetAABB(AxisAlignedBB par0AxisAlignedBB, double par1, double par3, double par5) { EaglerAdapter.glDisable(EaglerAdapter.GL_TEXTURE_2D); Tessellator var7 = Tessellator.instance; EaglerAdapter.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); @@ -250,8 +252,7 @@ public abstract class Render /** * Adds to the tesselator a box using the aabb for the bounds. Args: aabb */ - public static void renderAABB(AxisAlignedBB par0AxisAlignedBB) - { + public static void renderAABB(AxisAlignedBB par0AxisAlignedBB) { Tessellator var1 = Tessellator.instance; var1.startDrawingQuads(); var1.addVertex(par0AxisAlignedBB.minX, par0AxisAlignedBB.maxY, par0AxisAlignedBB.minZ); @@ -284,29 +285,25 @@ public abstract class Render /** * Sets the RenderManager. */ - public void setRenderManager(RenderManager par1RenderManager) - { + public void setRenderManager(RenderManager par1RenderManager) { this.renderManager = par1RenderManager; } /** - * Renders the entity's shadow and fire (if its on fire). Args: entity, x, y, z, yaw, partialTickTime + * Renders the entity's shadow and fire (if its on fire). Args: entity, x, y, z, + * yaw, partialTickTime */ - public void doRenderShadowAndFire(Entity par1Entity, double par2, double par4, double par6, float par8, float par9) - { - if (this.renderManager.options.fancyGraphics && this.shadowSize > 0.0F && !par1Entity.isInvisible()) - { + public void doRenderShadowAndFire(Entity par1Entity, double par2, double par4, double par6, float par8, float par9) { + if (this.renderManager.options.fancyGraphics && this.shadowSize > 0.0F && !par1Entity.isInvisible()) { double var10 = this.renderManager.getDistanceToCamera(par1Entity.posX, par1Entity.posY, par1Entity.posZ); - float var12 = (float)((1.0D - var10 / 256.0D) * (double)this.shadowOpaque); + float var12 = (float) ((1.0D - var10 / 256.0D) * (double) this.shadowOpaque); - if (var12 > 0.0F) - { + if (var12 > 0.0F) { this.renderShadow(par1Entity, par2, par4, par6, var12, par9); } } - if (par1Entity.canRenderOnFire()) - { + if (par1Entity.canRenderOnFire()) { this.renderEntityOnFire(par1Entity, par2, par4, par6, par9); } } @@ -314,10 +311,10 @@ public abstract class Render /** * Returns the font renderer from the set render manager */ - public FontRenderer getFontRendererFromRenderManager() - { + public FontRenderer getFontRendererFromRenderManager() { return this.renderManager.getFontRenderer(); } - public void updateIcons(IconRegister par1IconRegister) {} + public void updateIcons(IconRegister par1IconRegister) { + } } diff --git a/src/main/java/net/minecraft/src/RenderEngine.java b/src/main/java/net/minecraft/src/RenderEngine.java index 615f1fa..ecd8dff 100644 --- a/src/main/java/net/minecraft/src/RenderEngine.java +++ b/src/main/java/net/minecraft/src/RenderEngine.java @@ -10,7 +10,6 @@ import net.lax1dude.eaglercraft.EaglerAdapter; import net.lax1dude.eaglercraft.EaglerImage; import net.lax1dude.eaglercraft.TextureLocation; import net.lax1dude.eaglercraft.TextureTerrainMap; -import net.minecraft.src.Minecraft; public class RenderEngine { private HashMap textureMap = new HashMap(); diff --git a/src/main/java/net/minecraft/src/SaveFormatOld.java b/src/main/java/net/minecraft/src/SaveFormatOld.java index df7d955..8413859 100644 --- a/src/main/java/net/minecraft/src/SaveFormatOld.java +++ b/src/main/java/net/minecraft/src/SaveFormatOld.java @@ -23,7 +23,7 @@ public class SaveFormatOld implements ISaveFormat this.savesDirectory = par1File; } - public List getSaveList() throws AnvilConverterException + public List getSaveList() throws Exception { ArrayList var1 = new ArrayList(); diff --git a/src/main/java/net/minecraft/src/TextureManager.java b/src/main/java/net/minecraft/src/TextureManager.java index ea68545..dda54ee 100644 --- a/src/main/java/net/minecraft/src/TextureManager.java +++ b/src/main/java/net/minecraft/src/TextureManager.java @@ -6,7 +6,6 @@ import java.util.List; import net.lax1dude.eaglercraft.EaglerAdapter; import net.lax1dude.eaglercraft.EaglerImage; -import net.minecraft.src.Minecraft; public class TextureManager { private static TextureManager instance; diff --git a/src/main/java/net/minecraft/src/TextureMap.java b/src/main/java/net/minecraft/src/TextureMap.java index 147d291..66af9e7 100644 --- a/src/main/java/net/minecraft/src/TextureMap.java +++ b/src/main/java/net/minecraft/src/TextureMap.java @@ -10,7 +10,6 @@ import java.util.Map; import net.lax1dude.eaglercraft.EaglerAdapter; import net.lax1dude.eaglercraft.EaglerImage; import net.lax1dude.eaglercraft.TextureLocation; -import net.minecraft.src.Minecraft; public class TextureMap implements IconRegister { public static final TextureLocation locationBlocksTexture = new TextureLocation("textures/atlas/blocks.png"); @@ -129,7 +128,7 @@ public class TextureMap implements IconRegister { String var13 = this.basePath + var29 + ".txt"; ITexturePack var14 = Minecraft.getMinecraft().texturePackList.getSelectedTexturePack(); boolean var15 = !var14.func_98138_b("/" + this.basePath + var29 + ".png", false); - + if(var14.func_98138_b("/" + var13, false)) { System.out.println("Found animation info for: " + var13); var11.readAnimationInfo("/" + var13); @@ -170,14 +169,14 @@ public class TextureMap implements IconRegister { if (par1Str == null) { (new RuntimeException("Don\'t register null!")).printStackTrace(); } - + TextureStitched var2 = (TextureStitched) this.textureStichedMap.get(par1Str); - + if (var2 == null) { var2 = TextureStitched.makeTextureStitched(par1Str); this.textureStichedMap.put(par1Str, var2); } - + return var2; } }

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