@SuppressWarnings("unchecked") @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); this.spawned = nbt.getBoolean("spawned"); this.playerInRange = this.lastPlayerInRange = nbt.getBoolean("playerInRange"); this.isBossDefeated = nbt.getBoolean("defeated"); this.playerCheated = nbt.getBoolean("playerCheated"); try { this.bossClass = (Class<E>) Class.forName(nbt.getString("bossClass")); } catch (Exception e) { e.printStackTrace(); } this.roomCoords = new Vector3(); this.roomCoords.x = nbt.getDouble("roomCoordsX"); this.roomCoords.y = nbt.getDouble("roomCoordsY"); this.roomCoords.z = nbt.getDouble("roomCoordsZ"); this.roomSize = new Vector3(); this.roomSize.x = nbt.getDouble("roomSizeX"); this.roomSize.y = nbt.getDouble("roomSizeY"); this.roomSize.z = nbt.getDouble("roomSizeZ"); if (nbt.hasKey("lastKillTime")) { this.lastKillTime = nbt.getLong("lastKillTime"); } }