This commit is contained in:
eaglercraft 2024-10-19 17:22:26 -07:00
commit 207270171f
79 changed files with 918 additions and 702 deletions

View file

@ -195,13 +195,6 @@ public class LoadingScreenRenderer implements IProgressUpdate {
(float) (l / 2 - 4 + 8), 16777215);
}
this.mc.updateDisplay();
try {
Thread.yield();
} catch (Exception var15) {
;
}
}
}
}

View file

@ -25,7 +25,6 @@ import net.lax1dude.eaglercraft.v1_8.PauseMenuCustomizeState;
import net.lax1dude.eaglercraft.v1_8.PointerInputAbstraction;
import net.lax1dude.eaglercraft.v1_8.Touch;
import net.lax1dude.eaglercraft.v1_8.cookie.ServerCookieDataStore;
import net.lax1dude.eaglercraft.v1_8.internal.PlatformInput;
import org.apache.commons.lang3.Validate;
@ -228,7 +227,7 @@ public class Minecraft implements IThreadListener {
private static Minecraft theMinecraft;
public PlayerControllerMP playerController;
private boolean fullscreen;
private boolean enableGLErrorChecking = true;
private boolean enableGLErrorChecking = false;
private boolean hasCrashed;
private CrashReport crashReporter;
public int displayWidth;
@ -271,7 +270,7 @@ public class Minecraft implements IThreadListener {
long systemTime = getSystemTime();
private int joinPlayerCounter;
public final FrameTimer field_181542_y = new FrameTimer();
long field_181543_z = System.nanoTime();
long field_181543_z = EagRuntime.nanoTime();
private final boolean jvm64bit;
private EaglercraftNetworkManager myNetworkManager;
private boolean integratedServerIsRunning;
@ -347,6 +346,7 @@ public class Minecraft implements IThreadListener {
this.tempDisplayHeight = gameConfig.displayInfo.height;
this.fullscreen = gameConfig.displayInfo.fullscreen;
this.jvm64bit = isJvm64bit();
this.enableGLErrorChecking = EagRuntime.getConfiguration().isCheckGLErrors();
String serverToJoin = EagRuntime.getConfiguration().getServerToJoin();
if (serverToJoin != null) {
ServerAddress addr = AddressResolver.resolveAddressFromURI(serverToJoin);
@ -795,14 +795,14 @@ public class Minecraft implements IThreadListener {
if (SingleplayerServerController.isWorldRunning()) {
SingleplayerServerController.shutdownEaglercraftServer();
while (SingleplayerServerController.getStatusState() == IntegratedServerState.WORLD_UNLOADING) {
EagUtils.sleep(50l);
EagUtils.sleep(50);
SingleplayerServerController.runTick();
}
}
if (SingleplayerServerController.isIntegratedServerWorkerAlive()
&& SingleplayerServerController.canKillWorker()) {
SingleplayerServerController.killWorker();
EagUtils.sleep(50l);
EagUtils.sleep(50);
}
} finally {
EagRuntime.destroy();
@ -817,7 +817,7 @@ public class Minecraft implements IThreadListener {
* Called repeatedly from run()
*/
private void runGameLoop() throws IOException {
long i = System.nanoTime();
long i = EagRuntime.nanoTime();
if (Display.isCloseRequested()) {
this.shutdown();
}
@ -839,26 +839,16 @@ public class Minecraft implements IThreadListener {
}
}
long l = System.nanoTime();
long l = EagRuntime.nanoTime();
if (this.timer.elapsedTicks > 1) {
long watchdog = EagRuntime.steadyTimeMillis();
for (int j = 0; j < this.timer.elapsedTicks; ++j) {
this.runTick();
if (j < this.timer.elapsedTicks - 1) {
PointerInputAbstraction.runGameLoop();
}
long millis = EagRuntime.steadyTimeMillis();
if (millis - watchdog > 50l) {
watchdog = millis;
EagRuntime.immediateContinue();
}
}
} else if (this.timer.elapsedTicks == 1) {
for (int j = 0; j < this.timer.elapsedTicks; ++j) {
this.runTick();
if (j < this.timer.elapsedTicks - 1) {
PointerInputAbstraction.runGameLoop();
}
}
long i1 = System.nanoTime() - l;
long i1 = EagRuntime.nanoTime() - l;
this.checkGLError("Pre render");
this.mcSoundHandler.setListener(this.thePlayer, this.timer.renderPartialTicks);
@ -887,7 +877,7 @@ public class Minecraft implements IThreadListener {
this.checkGLError("Post render");
++this.fpsCounter;
long k = System.nanoTime();
long k = EagRuntime.nanoTime();
this.field_181542_y.func_181747_a(k - this.field_181543_z);
this.field_181543_z = k;
@ -906,9 +896,9 @@ public class Minecraft implements IThreadListener {
this.fpsCounter = 0;
}
if (this.isFramerateLimitBelowMax()) {
Display.sync(this.getLimitFramerate());
}
// if (this.isFramerateLimitBelowMax()) {
// Display.sync(this.getLimitFramerate());
// }
Mouse.tickCursorShape();
}
@ -919,7 +909,11 @@ public class Minecraft implements IThreadListener {
} else {
this.gameSettings.enableVsync = false;
}
Display.update();
if (!this.gameSettings.enableVsync && this.isFramerateLimitBelowMax()) {
Display.update(this.getLimitFramerate());
} else {
Display.update(0);
}
this.checkWindowResize();
}
@ -1388,7 +1382,7 @@ public class Minecraft implements IThreadListener {
while (Keyboard.next()) {
int k = Keyboard.getEventKey() == 0 ? Keyboard.getEventCharacter() + 256 : Keyboard.getEventKey();
if (k == 0x1D && (areKeysLocked() || isFullScreen())) {
if (k == 0x1D && (Keyboard.areKeysLocked() || isFullScreen())) {
KeyBinding.setKeyBindState(gameSettings.keyBindSprint.getKeyCode(), Keyboard.getEventKeyState());
}
KeyBinding.setKeyBindState(k, Keyboard.getEventKeyState());
@ -2413,10 +2407,6 @@ public class Minecraft implements IThreadListener {
return EaglercraftGPU.glGetInteger(GL_MAX_TEXTURE_SIZE);
}
public boolean areKeysLocked() {
return PlatformInput.lockKeys;
}
public ModelManager getModelManager() {
return modelManager;
}

View file

@ -122,7 +122,7 @@ public class GuiChat extends GuiScreenVisualViewport {
* on the key), keyCode (lwjgl Keyboard key code)
*/
protected void keyTyped(char parChar1, int parInt1) {
if (parInt1 == 1 && (this.mc.gameSettings.keyBindClose.getKeyCode() == 0 || this.mc.areKeysLocked())) {
if (parInt1 == 1 && (this.mc.gameSettings.keyBindClose.getKeyCode() == 0 || Keyboard.areKeysLocked())) {
this.mc.displayGuiScreen((GuiScreen) null);
} else {
this.waitingOnAutocomplete = false;

View file

@ -14,7 +14,7 @@ import net.lax1dude.eaglercraft.v1_8.sp.gui.GuiShareToLan;
import net.lax1dude.eaglercraft.v1_8.sp.lan.LANServerController;
import net.lax1dude.eaglercraft.v1_8.update.GuiUpdateCheckerOverlay;
import net.lax1dude.eaglercraft.v1_8.voice.GuiVoiceMenu;
import net.lax1dude.eaglercraft.v1_8.webview.GuiScreenPhishingWaring;
import net.lax1dude.eaglercraft.v1_8.webview.GuiScreenPhishingWarning;
import net.lax1dude.eaglercraft.v1_8.webview.GuiScreenRecieveServerInfo;
import net.lax1dude.eaglercraft.v1_8.webview.GuiScreenServerInfo;
import net.minecraft.client.Minecraft;
@ -191,8 +191,8 @@ public class GuiIngameMenu extends GuiScreen {
if (PauseMenuCustomizeState.serverInfoURL != null) {
GuiScreen screen = GuiScreenServerInfo.createForCurrentState(this,
PauseMenuCustomizeState.serverInfoURL);
if (!this.mc.gameSettings.hasHiddenPhishWarning && !GuiScreenPhishingWaring.hasShownMessage) {
screen = new GuiScreenPhishingWaring(screen);
if (!this.mc.gameSettings.hasHiddenPhishWarning && !GuiScreenPhishingWarning.hasShownMessage) {
screen = new GuiScreenPhishingWarning(screen);
}
this.mc.displayGuiScreen(screen);
}
@ -200,8 +200,8 @@ public class GuiIngameMenu extends GuiScreen {
case PauseMenuCustomizeState.SERVER_INFO_MODE_SHOW_EMBED_OVER_WS:
if (PauseMenuCustomizeState.serverInfoHash != null) {
GuiScreen screen = new GuiScreenRecieveServerInfo(this, PauseMenuCustomizeState.serverInfoHash);
if (!this.mc.gameSettings.hasHiddenPhishWarning && !GuiScreenPhishingWaring.hasShownMessage) {
screen = new GuiScreenPhishingWaring(screen);
if (!this.mc.gameSettings.hasHiddenPhishWarning && !GuiScreenPhishingWarning.hasShownMessage) {
screen = new GuiScreenPhishingWarning(screen);
}
this.mc.displayGuiScreen(screen);
}

View file

@ -166,8 +166,8 @@ public abstract class GuiScreen extends Gui implements GuiYesNoCallback {
if (!canCloseGui())
return;
if (((this.mc.theWorld == null || this.mc.thePlayer.getHealth() <= 0.0F) && parInt1 == 1)
|| parInt1 == this.mc.gameSettings.keyBindClose.getKeyCode()
|| (parInt1 == 1 && (this.mc.gameSettings.keyBindClose.getKeyCode() == 0 || this.mc.areKeysLocked()))) {
|| parInt1 == this.mc.gameSettings.keyBindClose.getKeyCode() || (parInt1 == 1
&& (this.mc.gameSettings.keyBindClose.getKeyCode() == 0 || Keyboard.areKeysLocked()))) {
this.mc.displayGuiScreen((GuiScreen) null);
if (this.mc.currentScreen == null) {
this.mc.setIngameFocus();

View file

@ -592,8 +592,8 @@ public abstract class GuiContainer extends GuiScreen {
*/
protected void keyTyped(char parChar1, int parInt1) {
if (parInt1 == this.mc.gameSettings.keyBindClose.getKeyCode()
|| parInt1 == this.mc.gameSettings.keyBindInventory.getKeyCode()
|| (parInt1 == 1 && (this.mc.gameSettings.keyBindClose.getKeyCode() == 0 || this.mc.areKeysLocked()))) {
|| parInt1 == this.mc.gameSettings.keyBindInventory.getKeyCode() || (parInt1 == 1
&& (this.mc.gameSettings.keyBindClose.getKeyCode() == 0 || Keyboard.areKeysLocked()))) {
this.mc.thePlayer.closeScreen();
if (this.mc.currentScreen == null) {
this.mc.setIngameFocus();

View file

@ -284,7 +284,7 @@ public class GuiContainerCreative extends InventoryEffectRenderer {
this.searchField.setText("");
}
if (parInt1 == getCloseKey() || (parInt1 == 1 && this.mc.areKeysLocked())) {
if (parInt1 == getCloseKey() || (parInt1 == 1 && Keyboard.areKeysLocked())) {
mc.displayGuiScreen(null);
} else if (!this.checkHotbarKeys(parInt1)) {
if (this.searchField.textboxKeyTyped(parChar1, parInt1)) {

View file

@ -25,7 +25,7 @@ import net.minecraft.util.Session;
*
*/
public class Main {
public static void appMain(String[] astring) {
public static void appMain() {
System.setProperty("java.net.preferIPv6Addresses", "true");
GameConfiguration gameconfiguration = new GameConfiguration(
new GameConfiguration.UserInformation(new Session()),

View file

@ -924,10 +924,10 @@ public class EntityRenderer implements IResourceManagerReloadListener {
if (this.mc.theWorld != null) {
int i = Math.min(Minecraft.getDebugFPS(), l1);
i = Math.max(i, 60);
long j = System.nanoTime() - parLong1;
long j = EagRuntime.nanoTime() - parLong1;
long k = Math.max((long) (1000000000 / i / 4) - j, 0L);
this.renderWorld(parFloat1, System.nanoTime() + k);
this.renderEndNanoTime = System.nanoTime();
this.renderWorld(parFloat1, EagRuntime.nanoTime() + k);
this.renderEndNanoTime = EagRuntime.nanoTime();
final boolean b = !this.mc.gameSettings.hideGUI || this.mc.currentScreen != null;
if (b) {
GlStateManager.alphaFunc(GL_GREATER, 0.1F);
@ -983,7 +983,7 @@ public class EntityRenderer implements IResourceManagerReloadListener {
GlStateManager.matrixMode(GL_MODELVIEW);
GlStateManager.loadIdentity();
this.setupOverlayRendering();
this.renderEndNanoTime = System.nanoTime();
this.renderEndNanoTime = EagRuntime.nanoTime();
}
this.mc.notifRenderer.renderOverlay(j1, k1);

View file

@ -6,6 +6,8 @@ import com.google.common.collect.Maps;
import java.util.Collection;
import java.util.Map;
import java.util.function.Supplier;
import net.minecraft.network.handshake.client.C00Handshake;
import net.minecraft.network.login.client.C00PacketLoginStart;
import net.minecraft.network.login.client.C01PacketEncryptionResponse;
@ -132,121 +134,179 @@ import net.lax1dude.eaglercraft.v1_8.log4j.LogManager;
public enum EnumConnectionState {
HANDSHAKING(-1) {
{
this.registerPacket(EnumPacketDirection.SERVERBOUND, C00Handshake.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C00Handshake.class, C00Handshake::new);
}
},
PLAY(0) {
{
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S00PacketKeepAlive.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S01PacketJoinGame.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S02PacketChat.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S03PacketTimeUpdate.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S04PacketEntityEquipment.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S05PacketSpawnPosition.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S06PacketUpdateHealth.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S07PacketRespawn.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S08PacketPlayerPosLook.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S09PacketHeldItemChange.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S0APacketUseBed.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S0BPacketAnimation.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S0CPacketSpawnPlayer.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S0DPacketCollectItem.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S0EPacketSpawnObject.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S0FPacketSpawnMob.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S10PacketSpawnPainting.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S11PacketSpawnExperienceOrb.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S12PacketEntityVelocity.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S13PacketDestroyEntities.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S14PacketEntity.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S14PacketEntity.S15PacketEntityRelMove.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S14PacketEntity.S16PacketEntityLook.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S14PacketEntity.S17PacketEntityLookMove.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S18PacketEntityTeleport.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S19PacketEntityHeadLook.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S19PacketEntityStatus.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S1BPacketEntityAttach.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S1CPacketEntityMetadata.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S1DPacketEntityEffect.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S1EPacketRemoveEntityEffect.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S1FPacketSetExperience.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S20PacketEntityProperties.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S21PacketChunkData.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S22PacketMultiBlockChange.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S23PacketBlockChange.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S24PacketBlockAction.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S25PacketBlockBreakAnim.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S26PacketMapChunkBulk.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S27PacketExplosion.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S28PacketEffect.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S29PacketSoundEffect.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S2APacketParticles.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S2BPacketChangeGameState.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S2CPacketSpawnGlobalEntity.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S2DPacketOpenWindow.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S2EPacketCloseWindow.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S2FPacketSetSlot.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S30PacketWindowItems.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S31PacketWindowProperty.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S32PacketConfirmTransaction.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S33PacketUpdateSign.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S34PacketMaps.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S35PacketUpdateTileEntity.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S36PacketSignEditorOpen.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S37PacketStatistics.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S38PacketPlayerListItem.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S39PacketPlayerAbilities.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S3APacketTabComplete.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S3BPacketScoreboardObjective.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S3CPacketUpdateScore.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S3DPacketDisplayScoreboard.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S3EPacketTeams.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S3FPacketCustomPayload.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S40PacketDisconnect.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S41PacketServerDifficulty.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S42PacketCombatEvent.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S43PacketCamera.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S44PacketWorldBorder.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S45PacketTitle.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S46PacketSetCompressionLevel.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S47PacketPlayerListHeaderFooter.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S48PacketResourcePackSend.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S49PacketUpdateEntityNBT.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C00PacketKeepAlive.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C01PacketChatMessage.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C02PacketUseEntity.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C03PacketPlayer.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C03PacketPlayer.C04PacketPlayerPosition.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C03PacketPlayer.C05PacketPlayerLook.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C03PacketPlayer.C06PacketPlayerPosLook.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C07PacketPlayerDigging.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C08PacketPlayerBlockPlacement.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C09PacketHeldItemChange.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C0APacketAnimation.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C0BPacketEntityAction.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C0CPacketInput.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C0DPacketCloseWindow.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C0EPacketClickWindow.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C0FPacketConfirmTransaction.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C10PacketCreativeInventoryAction.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C11PacketEnchantItem.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C12PacketUpdateSign.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C13PacketPlayerAbilities.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C14PacketTabComplete.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C15PacketClientSettings.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C16PacketClientStatus.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C17PacketCustomPayload.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C18PacketSpectate.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C19PacketResourcePackStatus.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S00PacketKeepAlive.class, S00PacketKeepAlive::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S01PacketJoinGame.class, S01PacketJoinGame::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S02PacketChat.class, S02PacketChat::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S03PacketTimeUpdate.class, S03PacketTimeUpdate::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S04PacketEntityEquipment.class,
S04PacketEntityEquipment::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S05PacketSpawnPosition.class,
S05PacketSpawnPosition::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S06PacketUpdateHealth.class,
S06PacketUpdateHealth::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S07PacketRespawn.class, S07PacketRespawn::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S08PacketPlayerPosLook.class,
S08PacketPlayerPosLook::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S09PacketHeldItemChange.class,
S09PacketHeldItemChange::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S0APacketUseBed.class, S0APacketUseBed::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S0BPacketAnimation.class, S0BPacketAnimation::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S0CPacketSpawnPlayer.class, S0CPacketSpawnPlayer::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S0DPacketCollectItem.class, S0DPacketCollectItem::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S0EPacketSpawnObject.class, S0EPacketSpawnObject::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S0FPacketSpawnMob.class, S0FPacketSpawnMob::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S10PacketSpawnPainting.class,
S10PacketSpawnPainting::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S11PacketSpawnExperienceOrb.class,
S11PacketSpawnExperienceOrb::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S12PacketEntityVelocity.class,
S12PacketEntityVelocity::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S13PacketDestroyEntities.class,
S13PacketDestroyEntities::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S14PacketEntity.class, S14PacketEntity::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S14PacketEntity.S15PacketEntityRelMove.class,
S14PacketEntity.S15PacketEntityRelMove::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S14PacketEntity.S16PacketEntityLook.class,
S14PacketEntity.S16PacketEntityLook::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S14PacketEntity.S17PacketEntityLookMove.class,
S14PacketEntity.S17PacketEntityLookMove::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S18PacketEntityTeleport.class,
S18PacketEntityTeleport::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S19PacketEntityHeadLook.class,
S19PacketEntityHeadLook::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S19PacketEntityStatus.class,
S19PacketEntityStatus::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S1BPacketEntityAttach.class,
S1BPacketEntityAttach::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S1CPacketEntityMetadata.class,
S1CPacketEntityMetadata::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S1DPacketEntityEffect.class,
S1DPacketEntityEffect::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S1EPacketRemoveEntityEffect.class,
S1EPacketRemoveEntityEffect::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S1FPacketSetExperience.class,
S1FPacketSetExperience::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S20PacketEntityProperties.class,
S20PacketEntityProperties::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S21PacketChunkData.class, S21PacketChunkData::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S22PacketMultiBlockChange.class,
S22PacketMultiBlockChange::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S23PacketBlockChange.class, S23PacketBlockChange::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S24PacketBlockAction.class, S24PacketBlockAction::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S25PacketBlockBreakAnim.class,
S25PacketBlockBreakAnim::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S26PacketMapChunkBulk.class,
S26PacketMapChunkBulk::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S27PacketExplosion.class, S27PacketExplosion::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S28PacketEffect.class, S28PacketEffect::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S29PacketSoundEffect.class, S29PacketSoundEffect::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S2APacketParticles.class, S2APacketParticles::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S2BPacketChangeGameState.class,
S2BPacketChangeGameState::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S2CPacketSpawnGlobalEntity.class,
S2CPacketSpawnGlobalEntity::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S2DPacketOpenWindow.class, S2DPacketOpenWindow::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S2EPacketCloseWindow.class, S2EPacketCloseWindow::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S2FPacketSetSlot.class, S2FPacketSetSlot::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S30PacketWindowItems.class, S30PacketWindowItems::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S31PacketWindowProperty.class,
S31PacketWindowProperty::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S32PacketConfirmTransaction.class,
S32PacketConfirmTransaction::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S33PacketUpdateSign.class, S33PacketUpdateSign::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S34PacketMaps.class, S34PacketMaps::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S35PacketUpdateTileEntity.class,
S35PacketUpdateTileEntity::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S36PacketSignEditorOpen.class,
S36PacketSignEditorOpen::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S37PacketStatistics.class, S37PacketStatistics::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S38PacketPlayerListItem.class,
S38PacketPlayerListItem::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S39PacketPlayerAbilities.class,
S39PacketPlayerAbilities::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S3APacketTabComplete.class, S3APacketTabComplete::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S3BPacketScoreboardObjective.class,
S3BPacketScoreboardObjective::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S3CPacketUpdateScore.class, S3CPacketUpdateScore::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S3DPacketDisplayScoreboard.class,
S3DPacketDisplayScoreboard::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S3EPacketTeams.class, S3EPacketTeams::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S3FPacketCustomPayload.class,
S3FPacketCustomPayload::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S40PacketDisconnect.class, S40PacketDisconnect::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S41PacketServerDifficulty.class,
S41PacketServerDifficulty::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S42PacketCombatEvent.class, S42PacketCombatEvent::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S43PacketCamera.class, S43PacketCamera::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S44PacketWorldBorder.class, S44PacketWorldBorder::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S45PacketTitle.class, S45PacketTitle::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S46PacketSetCompressionLevel.class,
S46PacketSetCompressionLevel::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S47PacketPlayerListHeaderFooter.class,
S47PacketPlayerListHeaderFooter::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S48PacketResourcePackSend.class,
S48PacketResourcePackSend::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S49PacketUpdateEntityNBT.class,
S49PacketUpdateEntityNBT::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C00PacketKeepAlive.class, C00PacketKeepAlive::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C01PacketChatMessage.class, C01PacketChatMessage::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C02PacketUseEntity.class, C02PacketUseEntity::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C03PacketPlayer.class, C03PacketPlayer::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C03PacketPlayer.C04PacketPlayerPosition.class,
C03PacketPlayer.C04PacketPlayerPosition::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C03PacketPlayer.C05PacketPlayerLook.class,
C03PacketPlayer.C05PacketPlayerLook::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C03PacketPlayer.C06PacketPlayerPosLook.class,
C03PacketPlayer.C06PacketPlayerPosLook::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C07PacketPlayerDigging.class,
C07PacketPlayerDigging::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C08PacketPlayerBlockPlacement.class,
C08PacketPlayerBlockPlacement::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C09PacketHeldItemChange.class,
C09PacketHeldItemChange::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C0APacketAnimation.class, C0APacketAnimation::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C0BPacketEntityAction.class,
C0BPacketEntityAction::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C0CPacketInput.class, C0CPacketInput::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C0DPacketCloseWindow.class, C0DPacketCloseWindow::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C0EPacketClickWindow.class, C0EPacketClickWindow::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C0FPacketConfirmTransaction.class,
C0FPacketConfirmTransaction::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C10PacketCreativeInventoryAction.class,
C10PacketCreativeInventoryAction::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C11PacketEnchantItem.class, C11PacketEnchantItem::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C12PacketUpdateSign.class, C12PacketUpdateSign::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C13PacketPlayerAbilities.class,
C13PacketPlayerAbilities::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C14PacketTabComplete.class, C14PacketTabComplete::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C15PacketClientSettings.class,
C15PacketClientSettings::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C16PacketClientStatus.class,
C16PacketClientStatus::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C17PacketCustomPayload.class,
C17PacketCustomPayload::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C18PacketSpectate.class, C18PacketSpectate::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C19PacketResourcePackStatus.class,
C19PacketResourcePackStatus::new);
}
},
LOGIN(2) {
{
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S00PacketDisconnect.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S01PacketEncryptionRequest.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S02PacketLoginSuccess.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S03PacketEnableCompression.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C00PacketLoginStart.class);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C01PacketEncryptionResponse.class);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S00PacketDisconnect.class, S00PacketDisconnect::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S01PacketEncryptionRequest.class,
S01PacketEncryptionRequest::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S02PacketLoginSuccess.class,
S02PacketLoginSuccess::new);
this.registerPacket(EnumPacketDirection.CLIENTBOUND, S03PacketEnableCompression.class,
S03PacketEnableCompression::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C00PacketLoginStart.class, C00PacketLoginStart::new);
this.registerPacket(EnumPacketDirection.SERVERBOUND, C01PacketEncryptionResponse.class,
C01PacketEncryptionResponse::new);
}
};
@ -257,26 +317,35 @@ public enum EnumConnectionState {
private static final Map<Class<? extends Packet>, EnumConnectionState> STATES_BY_CLASS = Maps.newHashMap();
private final int id;
private final Map<EnumPacketDirection, BiMap<Integer, Class<? extends Packet>>> directionMaps;
private final Map<EnumPacketDirection, Map<Integer, Supplier<Packet<?>>>> directionCtors;
private EnumConnectionState(int protocolId) {
this.directionMaps = Maps.newEnumMap(EnumPacketDirection.class);
this.directionCtors = Maps.newEnumMap(EnumPacketDirection.class);
this.id = protocolId;
}
protected EnumConnectionState registerPacket(EnumPacketDirection direction, Class<? extends Packet> packetClass) {
Object object = (BiMap) this.directionMaps.get(direction);
protected EnumConnectionState registerPacket(EnumPacketDirection direction, Class<? extends Packet> packetClass,
Supplier<Packet<?>> packetCtor) {
BiMap<Integer, Class<? extends Packet>> object = this.directionMaps.get(direction);
Map<Integer, Supplier<Packet<?>>> object2;
if (object == null) {
object = HashBiMap.create();
this.directionMaps.put(direction, (BiMap<Integer, Class<? extends Packet>>) object);
object2 = Maps.newHashMap();
this.directionMaps.put(direction, object);
this.directionCtors.put(direction, object2);
} else {
object2 = this.directionCtors.get(direction);
}
if (((BiMap) object).containsValue(packetClass)) {
if (object.containsValue(packetClass)) {
String s = direction + " packet " + packetClass + " is already known to ID "
+ ((BiMap) object).inverse().get(packetClass);
+ object.inverse().get(packetClass);
LogManager.getLogger().fatal(s);
throw new IllegalArgumentException(s);
} else {
((BiMap) object).put(Integer.valueOf(((BiMap) object).size()), packetClass);
object.put(Integer.valueOf(object.size()), packetClass);
object2.put(Integer.valueOf(object2.size()), packetCtor);
return this;
}
}
@ -287,8 +356,8 @@ public enum EnumConnectionState {
public Packet getPacket(EnumPacketDirection direction, int packetId)
throws IllegalAccessException, InstantiationException {
Class oclass = (Class) ((BiMap) this.directionMaps.get(direction)).get(Integer.valueOf(packetId));
return oclass == null ? null : (Packet) oclass.newInstance();
Supplier<Packet<?>> oclass = this.directionCtors.get(direction).get(Integer.valueOf(packetId));
return oclass == null ? null : oclass.get();
}
public int getId() {
@ -322,12 +391,6 @@ public enum EnumConnectionState {
+ STATES_BY_CLASS.get(oclass) + " - can\'t reassign to " + enumconnectionstate);
}
try {
oclass.newInstance();
} catch (Throwable var10) {
throw new Error("Packet " + oclass + " fails instantiation checks! " + oclass);
}
STATES_BY_CLASS.put(oclass, enumconnectionstate);
}
}

View file

@ -11,6 +11,7 @@ import java.util.Queue;
import java.util.concurrent.Callable;
import net.lax1dude.eaglercraft.v1_8.EagRuntime;
import net.lax1dude.eaglercraft.v1_8.EagUtils;
import net.lax1dude.eaglercraft.v1_8.EaglercraftRandom;
import net.lax1dude.eaglercraft.v1_8.EaglercraftUUID;
import net.lax1dude.eaglercraft.v1_8.futures.FutureTask;
@ -408,7 +409,7 @@ public abstract class MinecraftServer implements Runnable, ICommandSender, IThre
}
}
Thread.sleep(Math.max(1L, 50L - i));
EagUtils.sleep(Math.max(1L, 50L - i));
this.serverIsRunning = true;
}
} else {

View file

@ -1,5 +1,7 @@
package net.minecraft.stats;
import java.util.function.Supplier;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
@ -115,8 +117,9 @@ public class Achievement extends StatBase {
return ichatcomponent;
}
public Achievement func_150953_b(Class<? extends IJsonSerializable> parClass1) {
return (Achievement) super.func_150953_b(parClass1);
public Achievement func_150953_b(Class<? extends IJsonSerializable> parClass1,
Supplier<? extends IJsonSerializable> ctor) {
return (Achievement) super.func_150953_b(parClass1, ctor);
}
/**+

View file

@ -135,7 +135,8 @@ public class AchievementList {
fullBeacon = (new Achievement("achievement.fullBeacon", "fullBeacon", 7, 8, Blocks.beacon, killWither))
.setSpecial().registerStat();
exploreAllBiomes = (new Achievement("achievement.exploreAllBiomes", "exploreAllBiomes", 4, 8,
Items.diamond_boots, theEnd)).func_150953_b(JsonSerializableSet.class).setSpecial().registerStat();
Items.diamond_boots, theEnd)).func_150953_b(JsonSerializableSet.class, JsonSerializableSet::new)
.setSpecial().registerStat();
overpowered = (new Achievement("achievement.overpowered", "overpowered", 6, 4,
new ItemStack(Items.golden_apple, 1, 1), buildBetterPickaxe)).setSpecial().registerStat();
}

View file

@ -3,6 +3,7 @@ package net.minecraft.stats;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;
import java.util.function.Supplier;
import net.minecraft.event.HoverEvent;
import net.minecraft.scoreboard.IScoreObjectiveCriteria;
@ -38,6 +39,7 @@ public class StatBase {
private final IStatType type;
private final IScoreObjectiveCriteria field_150957_c;
private Class<? extends IJsonSerializable> field_150956_d;
private Supplier<? extends IJsonSerializable> field_150956_d_ctor;
private static NumberFormat numberFormat = NumberFormat.getIntegerInstance(Locale.US);
public static IStatType simpleStatType = new IStatType() {
public String format(int parInt1) {
@ -164,8 +166,14 @@ public class StatBase {
return this.field_150956_d;
}
public StatBase func_150953_b(Class<? extends IJsonSerializable> oclass) {
public Supplier<? extends IJsonSerializable> func_150954_l_ctor() {
return this.field_150956_d_ctor;
}
public StatBase func_150953_b(Class<? extends IJsonSerializable> oclass,
Supplier<? extends IJsonSerializable> octor) {
this.field_150956_d = oclass;
this.field_150956_d_ctor = octor;
return this;
}
}

View file

@ -131,9 +131,8 @@ public class StatisticsFile extends StatFileWriter {
if (jsonobject1.has("progress") && statbase.func_150954_l() != null) {
try {
Constructor constructor = statbase.func_150954_l().getConstructor();
IJsonSerializable ijsonserializable = (IJsonSerializable) constructor
.newInstance(new Object[0]);
IJsonSerializable ijsonserializable = (IJsonSerializable) statbase.func_150954_l_ctor()
.get();
ijsonserializable.fromJson(jsonobject1.get("progress"));
tupleintjsonserializable.setJsonSerializableValue(ijsonserializable);
} catch (Throwable throwable) {

View file

@ -2,6 +2,7 @@ package net.minecraft.tileentity;
import java.util.Map;
import java.util.concurrent.Callable;
import java.util.function.Supplier;
import com.google.common.collect.Maps;
@ -41,6 +42,7 @@ import net.minecraft.world.World;
public abstract class TileEntity {
private static final Logger logger = LogManager.getLogger();
private static Map<String, Class<? extends TileEntity>> nameToClassMap = Maps.newHashMap();
private static Map<String, Supplier<? extends TileEntity>> nameToCtorMap = Maps.newHashMap();
private static Map<Class<? extends TileEntity>, String> classToNameMap = Maps.newHashMap();
protected World worldObj;
protected BlockPos pos = BlockPos.ORIGIN;
@ -52,11 +54,12 @@ public abstract class TileEntity {
* Adds a new two-way mapping between the class and its string
* name in both hashmaps.
*/
private static void addMapping(Class<? extends TileEntity> cl, String id) {
private static void addMapping(Class<? extends TileEntity> cl, Supplier<? extends TileEntity> ct, String id) {
if (nameToClassMap.containsKey(id)) {
throw new IllegalArgumentException("Duplicate id: " + id);
} else {
nameToClassMap.put(id, cl);
nameToCtorMap.put(id, ct);
classToNameMap.put(cl, id);
}
}
@ -107,9 +110,9 @@ public abstract class TileEntity {
TileEntity tileentity = null;
try {
Class oclass = (Class) nameToClassMap.get(nbt.getString("id"));
Supplier<? extends TileEntity> oclass = nameToCtorMap.get(nbt.getString("id"));
if (oclass != null) {
tileentity = (TileEntity) oclass.newInstance();
tileentity = (TileEntity) oclass.get();
}
} catch (Exception exception) {
logger.error("Could not create TileEntity", exception);
@ -265,26 +268,26 @@ public abstract class TileEntity {
}
static {
addMapping(TileEntityFurnace.class, "Furnace");
addMapping(TileEntityChest.class, "Chest");
addMapping(TileEntityEnderChest.class, "EnderChest");
addMapping(BlockJukebox.TileEntityJukebox.class, "RecordPlayer");
addMapping(TileEntityDispenser.class, "Trap");
addMapping(TileEntityDropper.class, "Dropper");
addMapping(TileEntitySign.class, "Sign");
addMapping(TileEntityMobSpawner.class, "MobSpawner");
addMapping(TileEntityNote.class, "Music");
addMapping(TileEntityPiston.class, "Piston");
addMapping(TileEntityBrewingStand.class, "Cauldron");
addMapping(TileEntityEnchantmentTable.class, "EnchantTable");
addMapping(TileEntityEndPortal.class, "Airportal");
addMapping(TileEntityCommandBlock.class, "Control");
addMapping(TileEntityBeacon.class, "Beacon");
addMapping(TileEntitySkull.class, "Skull");
addMapping(TileEntityDaylightDetector.class, "DLDetector");
addMapping(TileEntityHopper.class, "Hopper");
addMapping(TileEntityComparator.class, "Comparator");
addMapping(TileEntityFlowerPot.class, "FlowerPot");
addMapping(TileEntityBanner.class, "Banner");
addMapping(TileEntityFurnace.class, TileEntityFurnace::new, "Furnace");
addMapping(TileEntityChest.class, TileEntityChest::new, "Chest");
addMapping(TileEntityEnderChest.class, TileEntityEnderChest::new, "EnderChest");
addMapping(BlockJukebox.TileEntityJukebox.class, BlockJukebox.TileEntityJukebox::new, "RecordPlayer");
addMapping(TileEntityDispenser.class, TileEntityDispenser::new, "Trap");
addMapping(TileEntityDropper.class, TileEntityDropper::new, "Dropper");
addMapping(TileEntitySign.class, TileEntitySign::new, "Sign");
addMapping(TileEntityMobSpawner.class, TileEntityMobSpawner::new, "MobSpawner");
addMapping(TileEntityNote.class, TileEntityNote::new, "Music");
addMapping(TileEntityPiston.class, TileEntityPiston::new, "Piston");
addMapping(TileEntityBrewingStand.class, TileEntityBrewingStand::new, "Cauldron");
addMapping(TileEntityEnchantmentTable.class, TileEntityEnchantmentTable::new, "EnchantTable");
addMapping(TileEntityEndPortal.class, TileEntityEndPortal::new, "Airportal");
addMapping(TileEntityCommandBlock.class, TileEntityCommandBlock::new, "Control");
addMapping(TileEntityBeacon.class, TileEntityBeacon::new, "Beacon");
addMapping(TileEntitySkull.class, TileEntitySkull::new, "Skull");
addMapping(TileEntityDaylightDetector.class, TileEntityDaylightDetector::new, "DLDetector");
addMapping(TileEntityHopper.class, TileEntityHopper::new, "Hopper");
addMapping(TileEntityComparator.class, TileEntityComparator::new, "Comparator");
addMapping(TileEntityFlowerPot.class, TileEntityFlowerPot::new, "FlowerPot");
addMapping(TileEntityBanner.class, TileEntityBanner::new, "Banner");
}
}

View file

@ -44,9 +44,12 @@ import net.minecraft.world.World;
*/
public class ComponentScatteredFeaturePieces {
public static void registerScatteredFeaturePieces() {
MapGenStructureIO.registerStructureComponent(ComponentScatteredFeaturePieces.DesertPyramid.class, "TeDP");
MapGenStructureIO.registerStructureComponent(ComponentScatteredFeaturePieces.JunglePyramid.class, "TeJP");
MapGenStructureIO.registerStructureComponent(ComponentScatteredFeaturePieces.SwampHut.class, "TeSH");
MapGenStructureIO.registerStructureComponent(ComponentScatteredFeaturePieces.DesertPyramid.class,
ComponentScatteredFeaturePieces.DesertPyramid::new, "TeDP");
MapGenStructureIO.registerStructureComponent(ComponentScatteredFeaturePieces.JunglePyramid.class,
ComponentScatteredFeaturePieces.JunglePyramid::new, "TeJP");
MapGenStructureIO.registerStructureComponent(ComponentScatteredFeaturePieces.SwampHut.class,
ComponentScatteredFeaturePieces.SwampHut::new, "TeSH");
}
public static class DesertPyramid extends ComponentScatteredFeaturePieces.Feature {

View file

@ -2,6 +2,8 @@ package net.minecraft.world.gen.structure;
import com.google.common.collect.Maps;
import java.util.Map;
import java.util.function.Supplier;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import net.lax1dude.eaglercraft.v1_8.log4j.LogManager;
@ -30,17 +32,23 @@ import net.lax1dude.eaglercraft.v1_8.log4j.Logger;
public class MapGenStructureIO {
private static final Logger logger = LogManager.getLogger();
private static Map<String, Class<? extends StructureStart>> startNameToClassMap = Maps.newHashMap();
private static Map<String, Supplier<? extends StructureStart>> startNameToSupplierMap = Maps.newHashMap();
private static Map<Class<? extends StructureStart>, String> startClassToNameMap = Maps.newHashMap();
private static Map<String, Class<? extends StructureComponent>> componentNameToClassMap = Maps.newHashMap();
private static Map<String, Supplier<? extends StructureComponent>> componentNameToSupplierMap = Maps.newHashMap();
private static Map<Class<? extends StructureComponent>, String> componentClassToNameMap = Maps.newHashMap();
private static void registerStructure(Class<? extends StructureStart> startClass, String structureName) {
private static void registerStructure(Class<? extends StructureStart> startClass,
Supplier<? extends StructureStart> startSupplier, String structureName) {
startNameToClassMap.put(structureName, startClass);
startNameToSupplierMap.put(structureName, startSupplier);
startClassToNameMap.put(startClass, structureName);
}
static void registerStructureComponent(Class<? extends StructureComponent> componentClass, String componentName) {
static void registerStructureComponent(Class<? extends StructureComponent> componentClass,
Supplier<? extends StructureComponent> startSupplier, String componentName) {
componentNameToClassMap.put(componentName, componentClass);
componentNameToSupplierMap.put(componentName, startSupplier);
componentClassToNameMap.put(componentClass, componentName);
}
@ -56,9 +64,9 @@ public class MapGenStructureIO {
StructureStart structurestart = null;
try {
Class oclass = (Class) startNameToClassMap.get(tagCompound.getString("id"));
Supplier<? extends StructureStart> oclass = startNameToSupplierMap.get(tagCompound.getString("id"));
if (oclass != null) {
structurestart = (StructureStart) oclass.newInstance();
structurestart = oclass.get();
}
} catch (Exception exception) {
logger.warn("Failed Start with id " + tagCompound.getString("id"));
@ -78,9 +86,9 @@ public class MapGenStructureIO {
StructureComponent structurecomponent = null;
try {
Class oclass = (Class) componentNameToClassMap.get(tagCompound.getString("id"));
Supplier<? extends StructureComponent> oclass = componentNameToSupplierMap.get(tagCompound.getString("id"));
if (oclass != null) {
structurecomponent = (StructureComponent) oclass.newInstance();
structurecomponent = oclass.get();
}
} catch (Exception exception) {
logger.warn("Failed Piece with id " + tagCompound.getString("id"));
@ -97,12 +105,13 @@ public class MapGenStructureIO {
}
static {
registerStructure(StructureMineshaftStart.class, "Mineshaft");
registerStructure(MapGenVillage.Start.class, "Village");
registerStructure(MapGenNetherBridge.Start.class, "Fortress");
registerStructure(MapGenStronghold.Start.class, "Stronghold");
registerStructure(MapGenScatteredFeature.Start.class, "Temple");
registerStructure(StructureOceanMonument.StartMonument.class, "Monument");
registerStructure(StructureMineshaftStart.class, StructureMineshaftStart::new, "Mineshaft");
registerStructure(MapGenVillage.Start.class, MapGenVillage.Start::new, "Village");
registerStructure(MapGenNetherBridge.Start.class, MapGenNetherBridge.Start::new, "Fortress");
registerStructure(MapGenStronghold.Start.class, MapGenStronghold.Start::new, "Stronghold");
registerStructure(MapGenScatteredFeature.Start.class, MapGenScatteredFeature.Start::new, "Temple");
registerStructure(StructureOceanMonument.StartMonument.class, StructureOceanMonument.StartMonument::new,
"Monument");
StructureMineshaftPieces.registerStructurePieces();
StructureVillagePieces.registerVillagePieces();
StructureNetherBridgePieces.registerNetherFortressPieces();

View file

@ -56,10 +56,14 @@ public class StructureMineshaftPieces {
new WeightedRandomChestContent(Items.iron_horse_armor, 0, 1, 1, 1) });
public static void registerStructurePieces() {
MapGenStructureIO.registerStructureComponent(StructureMineshaftPieces.Corridor.class, "MSCorridor");
MapGenStructureIO.registerStructureComponent(StructureMineshaftPieces.Cross.class, "MSCrossing");
MapGenStructureIO.registerStructureComponent(StructureMineshaftPieces.Room.class, "MSRoom");
MapGenStructureIO.registerStructureComponent(StructureMineshaftPieces.Stairs.class, "MSStairs");
MapGenStructureIO.registerStructureComponent(StructureMineshaftPieces.Corridor.class,
StructureMineshaftPieces.Corridor::new, "MSCorridor");
MapGenStructureIO.registerStructureComponent(StructureMineshaftPieces.Cross.class,
StructureMineshaftPieces.Cross::new, "MSCrossing");
MapGenStructureIO.registerStructureComponent(StructureMineshaftPieces.Room.class,
StructureMineshaftPieces.Room::new, "MSRoom");
MapGenStructureIO.registerStructureComponent(StructureMineshaftPieces.Stairs.class,
StructureMineshaftPieces.Stairs::new, "MSStairs");
}
private static StructureComponent func_175892_a(List<StructureComponent> listIn, EaglercraftRandom rand, int x,

View file

@ -52,21 +52,36 @@ public class StructureNetherBridgePieces {
new StructureNetherBridgePieces.PieceWeight(StructureNetherBridgePieces.NetherStalkRoom.class, 5, 2) };
public static void registerNetherFortressPieces() {
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Crossing3.class, "NeBCr");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.End.class, "NeBEF");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Straight.class, "NeBS");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Corridor3.class, "NeCCS");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Corridor4.class, "NeCTB");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Entrance.class, "NeCE");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Crossing2.class, "NeSCSC");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Corridor.class, "NeSCLT");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Corridor5.class, "NeSC");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Corridor2.class, "NeSCRT");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.NetherStalkRoom.class, "NeCSR");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Throne.class, "NeMT");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Crossing.class, "NeRC");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Stairs.class, "NeSR");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Start.class, "NeStart");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Crossing3.class,
StructureNetherBridgePieces.Crossing3::new, "NeBCr");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.End.class,
StructureNetherBridgePieces.End::new, "NeBEF");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Straight.class,
StructureNetherBridgePieces.Straight::new, "NeBS");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Corridor3.class,
StructureNetherBridgePieces.Corridor3::new, "NeCCS");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Corridor4.class,
StructureNetherBridgePieces.Corridor4::new, "NeCTB");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Entrance.class,
StructureNetherBridgePieces.Entrance::new, "NeCE");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Crossing2.class,
StructureNetherBridgePieces.Crossing2::new, "NeSCSC");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Corridor.class,
StructureNetherBridgePieces.Corridor::new, "NeSCLT");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Corridor5.class,
StructureNetherBridgePieces.Corridor5::new, "NeSC");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Corridor2.class,
StructureNetherBridgePieces.Corridor2::new, "NeSCRT");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.NetherStalkRoom.class,
StructureNetherBridgePieces.NetherStalkRoom::new, "NeCSR");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Throne.class,
StructureNetherBridgePieces.Throne::new, "NeMT");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Crossing.class,
StructureNetherBridgePieces.Crossing::new, "NeRC");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Stairs.class,
StructureNetherBridgePieces.Stairs::new, "NeSR");
MapGenStructureIO.registerStructureComponent(StructureNetherBridgePieces.Start.class,
StructureNetherBridgePieces.Start::new, "NeStart");
}
private static StructureNetherBridgePieces.Piece func_175887_b(

View file

@ -40,17 +40,28 @@ import net.minecraft.world.World;
*/
public class StructureOceanMonumentPieces {
public static void registerOceanMonumentPieces() {
MapGenStructureIO.registerStructureComponent(StructureOceanMonumentPieces.MonumentBuilding.class, "OMB");
MapGenStructureIO.registerStructureComponent(StructureOceanMonumentPieces.MonumentCoreRoom.class, "OMCR");
MapGenStructureIO.registerStructureComponent(StructureOceanMonumentPieces.DoubleXRoom.class, "OMDXR");
MapGenStructureIO.registerStructureComponent(StructureOceanMonumentPieces.DoubleXYRoom.class, "OMDXYR");
MapGenStructureIO.registerStructureComponent(StructureOceanMonumentPieces.DoubleYRoom.class, "OMDYR");
MapGenStructureIO.registerStructureComponent(StructureOceanMonumentPieces.DoubleYZRoom.class, "OMDYZR");
MapGenStructureIO.registerStructureComponent(StructureOceanMonumentPieces.DoubleZRoom.class, "OMDZR");
MapGenStructureIO.registerStructureComponent(StructureOceanMonumentPieces.EntryRoom.class, "OMEntry");
MapGenStructureIO.registerStructureComponent(StructureOceanMonumentPieces.Penthouse.class, "OMPenthouse");
MapGenStructureIO.registerStructureComponent(StructureOceanMonumentPieces.SimpleRoom.class, "OMSimple");
MapGenStructureIO.registerStructureComponent(StructureOceanMonumentPieces.SimpleTopRoom.class, "OMSimpleT");
MapGenStructureIO.registerStructureComponent(StructureOceanMonumentPieces.MonumentBuilding.class,
StructureOceanMonumentPieces.MonumentBuilding::new, "OMB");
MapGenStructureIO.registerStructureComponent(StructureOceanMonumentPieces.MonumentCoreRoom.class,
StructureOceanMonumentPieces.MonumentCoreRoom::new, "OMCR");
MapGenStructureIO.registerStructureComponent(StructureOceanMonumentPieces.DoubleXRoom.class,
StructureOceanMonumentPieces.DoubleXRoom::new, "OMDXR");
MapGenStructureIO.registerStructureComponent(StructureOceanMonumentPieces.DoubleXYRoom.class,
StructureOceanMonumentPieces.DoubleXYRoom::new, "OMDXYR");
MapGenStructureIO.registerStructureComponent(StructureOceanMonumentPieces.DoubleYRoom.class,
StructureOceanMonumentPieces.DoubleYRoom::new, "OMDYR");
MapGenStructureIO.registerStructureComponent(StructureOceanMonumentPieces.DoubleYZRoom.class,
StructureOceanMonumentPieces.DoubleYZRoom::new, "OMDYZR");
MapGenStructureIO.registerStructureComponent(StructureOceanMonumentPieces.DoubleZRoom.class,
StructureOceanMonumentPieces.DoubleZRoom::new, "OMDZR");
MapGenStructureIO.registerStructureComponent(StructureOceanMonumentPieces.EntryRoom.class,
StructureOceanMonumentPieces.EntryRoom::new, "OMEntry");
MapGenStructureIO.registerStructureComponent(StructureOceanMonumentPieces.Penthouse.class,
StructureOceanMonumentPieces.Penthouse::new, "OMPenthouse");
MapGenStructureIO.registerStructureComponent(StructureOceanMonumentPieces.SimpleRoom.class,
StructureOceanMonumentPieces.SimpleRoom::new, "OMSimple");
MapGenStructureIO.registerStructureComponent(StructureOceanMonumentPieces.SimpleTopRoom.class,
StructureOceanMonumentPieces.SimpleTopRoom::new, "OMSimpleT");
}
public static class DoubleXRoom extends StructureOceanMonumentPieces.Piece {

View file

@ -63,19 +63,32 @@ public class StructureStrongholdPieces {
private static final StructureStrongholdPieces.Stones strongholdStones = new StructureStrongholdPieces.Stones();
public static void registerStrongholdPieces() {
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.ChestCorridor.class, "SHCC");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.Corridor.class, "SHFC");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.Crossing.class, "SH5C");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.LeftTurn.class, "SHLT");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.Library.class, "SHLi");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.PortalRoom.class, "SHPR");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.Prison.class, "SHPH");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.RightTurn.class, "SHRT");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.RoomCrossing.class, "SHRC");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.Stairs.class, "SHSD");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.Stairs2.class, "SHStart");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.Straight.class, "SHS");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.StairsStraight.class, "SHSSD");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.ChestCorridor.class,
StructureStrongholdPieces.ChestCorridor::new, "SHCC");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.Corridor.class,
StructureStrongholdPieces.Corridor::new, "SHFC");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.Crossing.class,
StructureStrongholdPieces.Crossing::new, "SH5C");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.LeftTurn.class,
StructureStrongholdPieces.LeftTurn::new, "SHLT");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.Library.class,
StructureStrongholdPieces.Library::new, "SHLi");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.PortalRoom.class,
StructureStrongholdPieces.PortalRoom::new, "SHPR");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.Prison.class,
StructureStrongholdPieces.Prison::new, "SHPH");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.RightTurn.class,
StructureStrongholdPieces.RightTurn::new, "SHRT");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.RoomCrossing.class,
StructureStrongholdPieces.RoomCrossing::new, "SHRC");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.Stairs.class,
StructureStrongholdPieces.Stairs::new, "SHSD");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.Stairs2.class,
StructureStrongholdPieces.Stairs2::new, "SHStart");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.Straight.class,
StructureStrongholdPieces.Straight::new, "SHS");
MapGenStructureIO.registerStructureComponent(StructureStrongholdPieces.StairsStraight.class,
StructureStrongholdPieces.StairsStraight::new, "SHSSD");
}
/**+

View file

@ -48,19 +48,32 @@ import net.minecraft.world.biome.WorldChunkManager;
*/
public class StructureVillagePieces {
public static void registerVillagePieces() {
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.House1.class, "ViBH");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.Field1.class, "ViDF");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.Field2.class, "ViF");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.Torch.class, "ViL");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.Hall.class, "ViPH");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.House4Garden.class, "ViSH");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.WoodHut.class, "ViSmH");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.Church.class, "ViST");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.House2.class, "ViS");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.Start.class, "ViStart");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.Path.class, "ViSR");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.House3.class, "ViTRH");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.Well.class, "ViW");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.House1.class,
StructureVillagePieces.House1::new, "ViBH");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.Field1.class,
StructureVillagePieces.Field1::new, "ViDF");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.Field2.class,
StructureVillagePieces.Field2::new, "ViF");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.Torch.class,
StructureVillagePieces.Torch::new, "ViL");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.Hall.class,
StructureVillagePieces.Hall::new, "ViPH");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.House4Garden.class,
StructureVillagePieces.House4Garden::new, "ViSH");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.WoodHut.class,
StructureVillagePieces.WoodHut::new, "ViSmH");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.Church.class,
StructureVillagePieces.Church::new, "ViST");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.House2.class,
StructureVillagePieces.House2::new, "ViS");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.Start.class,
StructureVillagePieces.Start::new, "ViStart");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.Path.class,
StructureVillagePieces.Path::new, "ViSR");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.House3.class,
StructureVillagePieces.House3::new, "ViTRH");
MapGenStructureIO.registerStructureComponent(StructureVillagePieces.Well.class,
StructureVillagePieces.Well::new, "ViW");
}
public static List<StructureVillagePieces.PieceWeight> getStructureVillageWeightedPieceList(

View file

@ -11,6 +11,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.lax1dude.eaglercraft.v1_8.sp.server.EaglerIntegratedServerWorker;
import net.lax1dude.eaglercraft.v1_8.sp.server.WorldsDB;
import net.minecraft.util.IProgressUpdate;
import net.lax1dude.eaglercraft.v1_8.EagUtils;
import net.lax1dude.eaglercraft.v1_8.internal.vfs2.VFile2;
import net.lax1dude.eaglercraft.v1_8.log4j.LogManager;
import net.lax1dude.eaglercraft.v1_8.log4j.Logger;
@ -160,11 +161,7 @@ public class SaveFormatOld implements ISaveFormat {
logger.warn("Unsuccessful in deleting contents.");
if (i < 5) {
try {
Thread.sleep(500L);
} catch (InterruptedException var5) {
;
}
EagUtils.sleep(500);
}
}