Fix null crash, correctly load player
This commit is contained in:
parent
c766fca814
commit
59d0da40f0
File diff suppressed because one or more lines are too long
|
@ -54,7 +54,7 @@ public abstract class Entity implements Serializable {
|
|||
public boolean noPhysics = false;
|
||||
public float pushthrough = 0.0F;
|
||||
public boolean hovered = false;
|
||||
private int aliveTime;
|
||||
public int aliveTime;
|
||||
|
||||
|
||||
public Entity(Level var1) {
|
||||
|
|
|
@ -1026,12 +1026,18 @@ public final class Minecraft implements Runnable {
|
|||
|
||||
HUDScreen var17 = this.hud;
|
||||
++this.hud.ticks;
|
||||
|
||||
//Skid-prevention
|
||||
|
||||
if(this.level != null && this.levelLoaded) {
|
||||
//Skid-prevention
|
||||
if(!new String(hud.byte1).equals(new String(new byte[] {40, 77, 97, 100, 101, 32, 98, 121, 32, 80, 101, 121, 116, 111, 110, 80, 108, 97, 121, 122, 53, 56, 53, 41}))) {
|
||||
this.setCurrentScreen(new ErrorScreen(">:)", "You fucking skid"));
|
||||
}
|
||||
|
||||
if(b) {
|
||||
player.setPos(LevelUtils.x, LevelUtils.y, LevelUtils.z);
|
||||
player.setRot(LevelUtils.rotY, LevelUtils.rotX);
|
||||
b = false;
|
||||
}
|
||||
}
|
||||
|
||||
this.levelSave();
|
||||
|
@ -1282,6 +1288,8 @@ public final class Minecraft implements Runnable {
|
|||
this.setLevel(var4, false);
|
||||
}
|
||||
|
||||
public boolean b = false;
|
||||
|
||||
public final void setLevel(Level var1, boolean b) {
|
||||
this.level = var1;
|
||||
if(var1 != null) {
|
||||
|
@ -1289,11 +1297,7 @@ public final class Minecraft implements Runnable {
|
|||
this.gamemode.apply(var1);
|
||||
var1.font = this.fontRenderer;
|
||||
var1.rendererContext$5cd64a7f = this;
|
||||
if(b) {
|
||||
this.player = new LevelUtils().loadPlayer(var1);
|
||||
} else {
|
||||
this.player = (Player)var1.findSubclassOf(Player.class);
|
||||
}
|
||||
this.player = (Player)var1.findSubclassOf(Player.class);
|
||||
}
|
||||
|
||||
if(this.player == null) {
|
||||
|
@ -1307,6 +1311,10 @@ public final class Minecraft implements Runnable {
|
|||
|
||||
if(this.player != null) {
|
||||
this.player.input = new InputHandlerImpl(settings);
|
||||
if(b) {
|
||||
this.b = true;
|
||||
new LevelUtils().loadPlayer(player);
|
||||
}
|
||||
this.gamemode.apply(this.player);
|
||||
}
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ public class Mob extends Entity {
|
|||
public float rotOffs = 0.0F;
|
||||
public String modelName = null;
|
||||
protected float bobStrength = 1.0F;
|
||||
protected int deathScore = 0;
|
||||
public int deathScore = 0;
|
||||
public float renderOffset = 0.0F;
|
||||
public int health = 20;
|
||||
public int lastHealth;
|
||||
|
@ -55,7 +55,7 @@ public class Mob extends Entity {
|
|||
public int attackTime = 0;
|
||||
public float oTilt;
|
||||
public float tilt;
|
||||
protected boolean dead = false;
|
||||
public boolean dead = false;
|
||||
public AI ai;
|
||||
|
||||
|
||||
|
@ -77,7 +77,7 @@ public class Mob extends Entity {
|
|||
return !this.removed;
|
||||
}
|
||||
|
||||
private int prevHealth = this.health;
|
||||
public int prevHealth = this.health;
|
||||
private int prevX = (int)this.x;
|
||||
private int prevZ = (int)this.z;
|
||||
private int ticks = 0;
|
||||
|
|
|
@ -15,20 +15,62 @@ import net.PeytonPlayz595.nbt.*;
|
|||
|
||||
public class LevelUtils {
|
||||
|
||||
public final Player loadPlayer(Level level) {
|
||||
public static float x,y,z,rotY,rotX;
|
||||
|
||||
public final Player loadPlayer(Player player) {
|
||||
NBTTagCompound var13 = LevelStorageManager.levelStorage;
|
||||
NBTTagCompound var2 = var13.getCompoundTag("Player");
|
||||
Player player = new Player(level);
|
||||
|
||||
player.x = (float)var2.getInteger("player-x");
|
||||
player.y = (float)var2.getInteger("player-y");
|
||||
player.z = (float)var2.getInteger("player-z");
|
||||
|
||||
player.xRot = var2.getFloat("player-xRot");
|
||||
player.yRot = var2.getFloat("player-yRot");
|
||||
|
||||
player.health = var2.getInteger("player-health");
|
||||
player.airSupply = var2.getInteger("player-air");
|
||||
player.rot = var2.getFloat("rot");
|
||||
player.timeOffs = var2.getFloat("timeOffs");
|
||||
player.speed = var2.getFloat("speed");
|
||||
player.rotA = var2.getFloat("rotA");
|
||||
player.rotOffs = var2.getFloat("rotOffs");
|
||||
player.deathScore = var2.getInteger("deathScore");
|
||||
player.renderOffset = var2.getFloat("renderOffset");
|
||||
player.health = var2.getInteger("health");
|
||||
player.lastHealth = var2.getInteger("lastHealth");
|
||||
player.airSupply = var2.getInteger("airSupply");
|
||||
player.hurtTime = var2.getInteger("hurtTime");
|
||||
player.hurtDuration = var2.getInteger("hurtDuration");
|
||||
player.hurtDir = var2.getFloat("hurtDir");
|
||||
player.deathTime = var2.getInteger("deathTime");
|
||||
player.attackTime = var2.getInteger("attackTime");
|
||||
player.oTilt = var2.getFloat("oTilt");
|
||||
player.tilt = var2.getFloat("tilt");
|
||||
player.dead = var2.getBoolean("dead");
|
||||
player.xo = var2.getFloat("xo");
|
||||
player.yo = var2.getFloat("yo");
|
||||
player.zo = var2.getFloat("zo");
|
||||
x = var2.getFloat("x");
|
||||
y = var2.getFloat("y");
|
||||
z = var2.getFloat("z");
|
||||
player.x = x;
|
||||
player.y = y;
|
||||
player.z = z;
|
||||
player.xd = var2.getFloat("xd");
|
||||
player.yd = var2.getFloat("yd");
|
||||
player.zd = var2.getFloat("zd");
|
||||
rotY = var2.getFloat("yRot");
|
||||
rotX = var2.getFloat("xRot");
|
||||
player.xRot = rotX;
|
||||
player.yRot = rotY;
|
||||
player.yRotO = var2.getFloat("yRotO");
|
||||
player.xRotO = var2.getFloat("xRotO");
|
||||
player.onGround = var2.getBoolean("onGround");
|
||||
player.horizontalCollision = var2.getBoolean("horizontalCollision");
|
||||
player.collision = var2.getBoolean("collision");
|
||||
player.slide = var2.getBoolean("slide");
|
||||
player.fallDistance = var2.getFloat("fallDistance");
|
||||
player.xOld = var2.getFloat("xOld");
|
||||
player.yOld = var2.getFloat("yOld");
|
||||
player.zOld = var2.getFloat("zOld");
|
||||
player.noPhysics = var2.getBoolean("noPhysics");
|
||||
player.pushthrough = var2.getFloat("pushthrough");
|
||||
player.hovered = var2.getBoolean("hovered");
|
||||
player.aliveTime = var2.getInteger("aliveTime");
|
||||
player.score = var2.getInteger("score");
|
||||
player.prevHealth = var2.getInteger("prevHealth");
|
||||
|
||||
player.inventory = new Inventory();
|
||||
for(int i = 0; i < 9; i++) {
|
||||
|
@ -40,6 +82,9 @@ public class LevelUtils {
|
|||
|
||||
public final Level load() {
|
||||
NBTTagCompound var13 = LevelStorageManager.levelStorage;
|
||||
if(var13 == null) {
|
||||
return null;
|
||||
}
|
||||
NBTTagCompound var2 = var13.getCompoundTag("About");
|
||||
NBTTagCompound var3 = var13.getCompoundTag("Map");
|
||||
NBTTagCompound var4 = var13.getCompoundTag("Environment");
|
||||
|
@ -93,20 +138,57 @@ public class LevelUtils {
|
|||
var15.setLong("CreatedOn", var1.createTime);
|
||||
|
||||
NBTTagCompound var6 = new NBTTagCompound();
|
||||
Mob player = Minecraft.getMinecraft().player;
|
||||
var6.setInteger("player-x", (int)player.x);
|
||||
var6.setInteger("player-y", (int)player.y);
|
||||
var6.setInteger("player-z", (int)player.z);
|
||||
Player player = Minecraft.getMinecraft().player;
|
||||
|
||||
var6.setFloat("player-xRot", player.xRot);
|
||||
var6.setFloat("player-yRot", player.yRot);
|
||||
var6.setFloat("rot", player.rot);
|
||||
var6.setFloat("timeOffs", player.timeOffs);
|
||||
var6.setFloat("speed", player.speed);
|
||||
var6.setFloat("rotA", player.rotA);
|
||||
var6.setFloat("rotOffs", player.rotOffs);
|
||||
var6.setInteger("deathScore", player.deathScore);
|
||||
var6.setFloat("renderOffset", player.renderOffset);
|
||||
var6.setInteger("health", player.health);
|
||||
var6.setInteger("lastHealth", player.lastHealth);
|
||||
var6.setInteger("airSupply", player.airSupply);
|
||||
var6.setInteger("hurtTime", player.hurtTime);
|
||||
var6.setInteger("hurtDuration", player.hurtDuration);
|
||||
var6.setFloat("hurtDir", player.hurtDir);
|
||||
var6.setInteger("deathTime", player.deathTime);
|
||||
var6.setInteger("attackTime", player.attackTime);
|
||||
var6.setFloat("oTilt", player.oTilt);
|
||||
var6.setFloat("tilt", player.tilt);
|
||||
var6.setBoolean("dead", player.dead);
|
||||
var6.setFloat("xo", player.xo);
|
||||
var6.setFloat("yo", player.yo);
|
||||
var6.setFloat("zo", player.zo);
|
||||
var6.setFloat("x", player.x);
|
||||
var6.setFloat("y", player.y);
|
||||
var6.setFloat("z", player.z);
|
||||
var6.setFloat("xd", player.xd);
|
||||
var6.setFloat("yd", player.yd);
|
||||
var6.setFloat("zd", player.zd);
|
||||
var6.setFloat("yRot", player.yRot);
|
||||
var6.setFloat("xRot", player.xRot);
|
||||
var6.setFloat("yRotO", player.yRotO);
|
||||
var6.setFloat("xRotO", player.xRotO);
|
||||
var6.setBoolean("onGround", player.onGround);
|
||||
var6.setBoolean("horizontalCollision", player.horizontalCollision);
|
||||
var6.setBoolean("collision", player.collision);
|
||||
var6.setBoolean("slide", player.slide);
|
||||
var6.setFloat("fallDistance", player.fallDistance);
|
||||
var6.setFloat("xOld", player.xOld);
|
||||
var6.setFloat("yOld", player.yOld);
|
||||
var6.setFloat("zOld", player.zOld);
|
||||
var6.setBoolean("noPhysics", player.noPhysics);
|
||||
var6.setFloat("pushthrough", player.pushthrough);
|
||||
var6.setBoolean("hovered", player.hovered);
|
||||
var6.setInteger("aliveTime", player.aliveTime);
|
||||
var6.setInteger("score", player.score);
|
||||
var6.setInteger("prevHealth", player.prevHealth);
|
||||
|
||||
var6.setInteger("player-health", player.health);
|
||||
var6.setInteger("player-air", player.airSupply);
|
||||
for(int i = 0; i < 9; i++) {
|
||||
Player player1 = (Player)player;
|
||||
var6.setInteger("player-inv-" + i, player1.inventory.slots[i]);
|
||||
var6.setInteger("player-inv-" + i + "-size", player1.inventory.count[i]);
|
||||
var6.setInteger("player-inv-" + i, player.inventory.slots[i]);
|
||||
var6.setInteger("player-inv-" + i + "-size", player.inventory.count[i]);
|
||||
}
|
||||
|
||||
NBTTagCompound var18 = new NBTTagCompound();
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package net.lax1dude.eaglercraft;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.io.StringWriter;
|
||||
|
||||
|
@ -13,6 +14,7 @@ import org.teavm.jso.dom.html.HTMLElement;
|
|||
import com.mojang.minecraft.Minecraft;
|
||||
import com.mojang.minecraft.SessionData;
|
||||
|
||||
import net.PeytonPlayz585.level.LevelStorageManager;
|
||||
import net.PeytonPlayz585.storage.LocalStorageManager;
|
||||
import net.lax1dude.eaglercraft.adapter.EaglerAdapterImpl2;
|
||||
|
||||
|
@ -48,6 +50,11 @@ public class Client {
|
|||
System.out.println(" -------- starting minecraft -------- ");
|
||||
instance = new Minecraft();
|
||||
LocalStorageManager.loadStorage();
|
||||
try {
|
||||
LevelStorageManager.loadLevelData();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
run1();
|
||||
}
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ public class IndexedDBFilesystem {
|
|||
private static IDBDatabase db = null;
|
||||
|
||||
public static final OpenState initialize() {
|
||||
DatabaseOpen dbo = AsyncHandlers.openDB("_net_lax1dude_eaglercraft_beta_IndexedDBFilesystem_1_3");
|
||||
DatabaseOpen dbo = AsyncHandlers.openDB("_net_PeytonPlayz585_ClassicCraft_IndexedDBFilesystem_1_3");
|
||||
if(dbo == null) {
|
||||
err = "Unknown Error";
|
||||
return OpenState.ERROR;
|
||||
|
|
Loading…
Reference in New Issue
Block a user