void Back() { //Fix the ghosts after afk, chanign dimensions will clear it up var res = new Respawn(); res.Dimension = Dimensions.Overworld; if (Dimension == Dimensions.Overworld) res.Dimension = Dimensions.Nether; res.Difficulty = 3; res.Mode = GameMode.Adventure; Player.SendToClient(res); Player.SetWorld(OriginalWorld); }
protected void SendStartup(ConstructSession cs, Client player) { //First another dimension to trigger full drop of old map Respawn r = new Respawn(); if (Dimension == Dimensions.Overworld) r.Dimension = Dimensions.Nether; else r.Dimension = Dimensions.Overworld; r.Mode = 0; r.Difficulty = 3; player.Queue.Queue(r); r = new Respawn(); r.Dimension = (Dimensions)Dimension; r.Mode = 0; r.Difficulty = 3; player.Queue.Queue(r); //player.Queue.Queue(new SpawnPosition(cs.Position.CloneInt())); player.Queue.Queue(new TimeUpdate(18000)); cs.Position.Y = 66; var ppl = new PlayerPositionLookServer(cs.Position); ppl.Yaw = cs.Yaw; ppl.Pitch = cs.Pitch; player.Queue.Queue(ppl); player.Queue.Queue(new TimeUpdate(1000)); //player.Queue.Queue(new NewState(NewState.State.EndRaining)); int min = -1; int max = 1; for (int cx = min; cx < max; cx++) { for (int cz = min; cz < max; cz++) { ChunkData mc = new ChunkData(); mc.ChunkBitMap = ChunkData.ChunkBitMap; mc.Complete = ChunkData.Complete; mc.X = cx; mc.Z = cz; mc.BlockType = ChunkData.BlockType; mc.BlockMeta = ChunkData.BlockMeta; mc.BlockLight = ChunkData.BlockLight; mc.BlockSkyLight = ChunkData.BlockSkyLight; mc.Biome = ChunkData.Biome; player.Queue.Queue(mc); } } r = new Respawn(); r.Dimension = (Dimensions)Dimension; r.Mode = 0; r.Difficulty = 3; player.Queue.Queue(r); player.Queue.Queue(new UpdateHealth(20, 20)); var properties = new EntityProperties(player.EntityID, 0.10, 20.0); player.Queue.Queue(properties); }