public PossessSession(Client player, Client victim) : base(player) { player.Queue.Queue(ChangeGameState.ChangeGameMode(GameMode.Creative)); var et = new PlayerPositionLookServer(victim.Session.Position); et.Yaw = victim.Session.Yaw; et.Pitch = victim.Session.Pitch; player.Queue.Queue(et); this.victim = victim; victim.Possess(this); }
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); }
private void CheckPosition() { if (this.Position.Y < -50) { SetPosition(new CoordDouble(0, 128, 0), false); this.Pitch = 60; } /* else if (this.Position.X < 0) this.Position.X += 16; else if (this.Position.Z < 0) this.Position.Z += 16; else if (this.Position.X > 16) this.Position.X -= 16; else if (this.Position.Z > 16) this.Position.Z -= 16; */ else return; if (this.Position.Y < 65.01) this.Position.Y = 65.05; var ppl = new PlayerPositionLookServer(this.Position); ppl.Yaw = this.Yaw; ppl.Pitch = this.Pitch; this.Player.SendToClient(ppl); }
static bool CursedLand(Client player, PlayerBlockPlacement placement) { SlotItem i = player.Session.ActiveItem; if (i != null && i.ItemID == BlockID.Bucket) { var pps = new PlayerPositionLookClient(); pps.Position = placement.BlockPosition.CloneDouble(); pps.OnGround = false; pps.Position.Y += 1.1; pps.Position.X += 0.5; pps.Position.Z += 0.5; pps.Pitch = Math.PI / 2; pps.Yaw = player.Session.Yaw; player.FromClient(pps); var ppc = new PlayerPositionLookServer(pps.Position); ppc.Pitch = Math.PI / 2; ppc.Yaw = player.Session.Yaw; player.SendToClient(ppc); } BlockChange bc = new BlockChange(placement.BlockPosition.Offset(placement.FaceDirection), BlockID.Air); player.SendToClient(bc); //Block all actions return true; }