u40
This commit is contained in:
parent
d50d01b735
commit
207270171f
79 changed files with 918 additions and 702 deletions
|
|
@ -195,13 +195,6 @@ public class LoadingScreenRenderer implements IProgressUpdate {
|
|||
(float) (l / 2 - 4 + 8), 16777215);
|
||||
}
|
||||
this.mc.updateDisplay();
|
||||
|
||||
try {
|
||||
Thread.yield();
|
||||
} catch (Exception var15) {
|
||||
;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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)) {
|
||||
|
|
|
|||
|
|
@ -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()),
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
/**+
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
}
|
||||
}
|
||||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
}
|
||||
|
||||
/**+
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue