public override void AddSpectator(SkyPlayer player) { player.IsGameSpectator = true; //Set an invisibily effect on top of the scale to completely 'remove' the player player.SetEffect(new Invisibility { Duration = int.MaxValue, Particles = false }); player.SetNameTagVisibility(false); McpeSetEntityData mcpeSetEntityData = McpeSetEntityData.CreateObject(); mcpeSetEntityData.runtimeEntityId = player.EntityId; mcpeSetEntityData.metadata = player.GetMetadata(); mcpeSetEntityData.metadata[(int)Entity.MetadataFlags.Scale] = new MetadataFloat(0.5f); // Scale //Avoid changing the local player's scale foreach (SkyPlayer gamePlayer in GetAllPlayers()) { if (gamePlayer == player) { continue; } gamePlayer.SendPackage(mcpeSetEntityData); } //Update slot held for other players player.Inventory.SetHeldItemSlot(player.Inventory.InHandSlot, false); }
public override void OnTick(Entity[] entities) { Fuse--; if (Fuse == 0) { DespawnEntity(); Explode(); } else { PositionCheck(); if (KnownPosition.Y > -1 && _checkPosition) { Velocity -= new Vector3(0, (float)Gravity, 0); Velocity *= (float)(1.0f - Drag); } var entityData = McpeSetEntityData.CreateObject(); entityData.runtimeEntityId = EntityId; entityData.metadata = GetMetadata(); Level.RelayBroadcast(entityData); } }
public virtual void SpawnEntity() { Level.AddEntity(this); var addEntity = McpeAddEntity.CreateObject(); addEntity.entityType = EntityTypeId; addEntity.entityId = EntityId; addEntity.x = KnownPosition.X; addEntity.y = KnownPosition.Y; addEntity.z = KnownPosition.Z; addEntity.yaw = KnownPosition.Yaw; addEntity.pitch = KnownPosition.Pitch; addEntity.metadata = GetMetadata(); addEntity.speedX = (float)Velocity.X; addEntity.speedY = (float)Velocity.Y; addEntity.speedZ = (float)Velocity.Z; Level.RelayBroadcast(addEntity); IsSpawned = true; McpeSetEntityData mcpeSetEntityData = McpeSetEntityData.CreateObject(); mcpeSetEntityData.entityId = EntityId; mcpeSetEntityData.metadata = GetMetadata(); Level.RelayBroadcast(mcpeSetEntityData); }
public virtual void BroadcastSetEntityData() { McpeSetEntityData mcpeSetEntityData = McpeSetEntityData.CreateObject(); mcpeSetEntityData.entityId = EntityId; mcpeSetEntityData.metadata = GetMetadata(); Level.RelayBroadcast(this, mcpeSetEntityData); }
public virtual void BroadcastSetEntityData(MetadataDictionary metadata) { McpeSetEntityData mcpeSetEntityData = McpeSetEntityData.CreateObject(); mcpeSetEntityData.runtimeEntityId = EntityId; mcpeSetEntityData.metadata = metadata; Level?.RelayBroadcast(mcpeSetEntityData); }
public void SendName(Player player, string Name) { MetadataDictionary metadata = GetMetadata(); metadata[(int)MetadataFlags.NameTag] = Name; McpeSetEntityData mcpeSetEntityData = McpeSetEntityData.CreateObject(); mcpeSetEntityData.runtimeEntityId = EntityId; mcpeSetEntityData.metadata = metadata; player.SendPackage(mcpeSetEntityData); }
public void SendName(Level level, string Name) { MetadataDictionary metadata = GetMetadata(); metadata[(int)MetadataFlags.NameTag] = Name; McpeSetEntityData mcpeSetEntityData = McpeSetEntityData.CreateObject(); mcpeSetEntityData.runtimeEntityId = EntityId; mcpeSetEntityData.metadata = metadata; //player.SendPackage(mcpeSetEntityData); level.RelayBroadcast(mcpeSetEntityData); }
public override void OnTick() { Fuse--; if (Fuse == 0) { DespawnEntity(); Explode(); } else { var entityData = McpeSetEntityData.CreateObject(); entityData.entityId = EntityId; entityData.metadata = GetMetadata(); Level.RelayBroadcast(entityData); if (CheckPosition) { PositionCheck(); } } }
public virtual void SpawnToPlayer(Player player) { var addEntity = McpeAddEntity.CreateObject(); addEntity.entityType = EntityTypeId; addEntity.entityId = EntityId; addEntity.x = KnownPosition.X; addEntity.y = KnownPosition.Y; addEntity.z = KnownPosition.Z; addEntity.yaw = KnownPosition.Yaw; addEntity.pitch = KnownPosition.Pitch; addEntity.metadata = GetMetadata(); addEntity.speedX = (float)Velocity.X; addEntity.speedY = (float)Velocity.Y; addEntity.speedZ = (float)Velocity.Z; player.SendPackage(addEntity); McpeSetEntityData mcpeSetEntityData = McpeSetEntityData.CreateObject(); mcpeSetEntityData.entityId = EntityId; mcpeSetEntityData.metadata = GetMetadata(); player.SendPackage(mcpeSetEntityData); }
public override void SpawnEntity() { lock (_spawnSync) { if (IsSpawned) { throw new Exception("Invalid state. Tried to spawn projectile more than one time."); } Level.AddEntity(this); IsSpawned = true; if (Shooter == null) { var addEntity = McpeAddEntity.CreateObject(); addEntity.entityType = EntityTypeId; addEntity.entityId = EntityId; addEntity.x = KnownPosition.X; addEntity.y = KnownPosition.Y; addEntity.z = KnownPosition.Z; addEntity.yaw = KnownPosition.Yaw; addEntity.pitch = KnownPosition.Pitch; addEntity.metadata = GetMetadata(); addEntity.speedX = (float)Velocity.X; addEntity.speedY = (float)Velocity.Y; addEntity.speedZ = (float)Velocity.Z; Level.RelayBroadcast(addEntity); McpeSetEntityData mcpeSetEntityData = McpeSetEntityData.CreateObject(); mcpeSetEntityData.entityId = EntityId; mcpeSetEntityData.metadata = GetMetadata(); Level.RelayBroadcast(mcpeSetEntityData); } else { { var addEntity = McpeAddEntity.CreateObject(); addEntity.entityType = EntityTypeId; addEntity.entityId = EntityId; addEntity.x = KnownPosition.X; addEntity.y = KnownPosition.Y; addEntity.z = KnownPosition.Z; addEntity.yaw = KnownPosition.Yaw; addEntity.pitch = KnownPosition.Pitch; addEntity.metadata = GetMetadata(); addEntity.speedX = (float)Velocity.X; addEntity.speedY = (float)Velocity.Y; addEntity.speedZ = (float)Velocity.Z; Level.RelayBroadcast(Shooter, addEntity); McpeSetEntityData mcpeSetEntityData = McpeSetEntityData.CreateObject(); mcpeSetEntityData.entityId = EntityId; mcpeSetEntityData.metadata = GetMetadata(); Level.RelayBroadcast(Shooter, mcpeSetEntityData); } { MetadataDictionary metadata = GetMetadata(); metadata[17] = new MetadataLong(0); var addEntity = McpeAddEntity.CreateObject(); addEntity.entityType = EntityTypeId; addEntity.entityId = EntityId; addEntity.x = KnownPosition.X; addEntity.y = KnownPosition.Y; addEntity.z = KnownPosition.Z; addEntity.yaw = KnownPosition.Yaw; addEntity.pitch = KnownPosition.Pitch; addEntity.metadata = metadata; addEntity.speedX = (float)Velocity.X; addEntity.speedY = (float)Velocity.Y; addEntity.speedZ = (float)Velocity.Z; Shooter.SendPackage(addEntity); McpeSetEntityData mcpeSetEntityData = McpeSetEntityData.CreateObject(); mcpeSetEntityData.entityId = EntityId; mcpeSetEntityData.metadata = metadata; Shooter.SendPackage(mcpeSetEntityData); } } } }
public override void SpawnToPlayers(Player[] players) { { var fake = new Player(null, null) { ClientUuid = ClientUuid, EntityId = EntityId, NameTag = NameTag, DisplayName = NameTag, Username = NameTag, Skin = Skin, PlayerInfo = new PlayerInfo { DeviceOS = 7, PlatformChatId = NameTag, } }; var playerList = McpePlayerList.CreateObject(); playerList.records = new PlayerAddRecords { fake }; Level.RelayBroadcast(players, Level.CreateMcpeBatch(playerList.Encode())); playerList.records = null; playerList.PutPool(); } { var message = McpeAddPlayer.CreateObject(); message.uuid = ClientUuid; message.username = NameTag; message.entityIdSelf = EntityId; message.runtimeEntityId = EntityId; message.x = KnownPosition.X; message.y = KnownPosition.Y; message.z = KnownPosition.Z; message.yaw = KnownPosition.Yaw; message.headYaw = KnownPosition.HeadYaw; message.pitch = KnownPosition.Pitch; message.metadata = GetMetadata(); message.userId = -1; Level.RelayBroadcast(players, message); } { var message = McpeMobEquipment.CreateObject(); message.runtimeEntityId = EntityId; message.item = ItemInHand; message.slot = 0; Level.RelayBroadcast(players, message); } { var armorEquipment = McpeMobArmorEquipment.CreateObject(); armorEquipment.runtimeEntityId = EntityId; armorEquipment.helmet = Helmet; armorEquipment.chestplate = Chest; armorEquipment.leggings = Leggings; armorEquipment.boots = Boots; Level.RelayBroadcast(players, armorEquipment); } { var fake = new Player(null, null) { ClientUuid = ClientUuid, EntityId = EntityId, NameTag = NameTag, Skin = Skin }; var playerList = McpePlayerList.CreateObject(); playerList.records = new PlayerRemoveRecords { fake }; Level.RelayBroadcast(players, Level.CreateMcpeBatch(playerList.Encode())); playerList.records = null; playerList.PutPool(); } { var setEntityData = McpeSetEntityData.CreateObject(); setEntityData.runtimeEntityId = EntityId; setEntityData.metadata = GetMetadata(); Level?.RelayBroadcast(players, setEntityData); } }
public override void SpawnToPlayers(Player[] players) { { Player fake = new Player(null, null) { ClientUuid = Uuid, EntityId = EntityId, NameTag = NameTag, Skin = Skin }; McpePlayerList playerList = McpePlayerList.CreateObject(); playerList.records = new PlayerAddRecords { fake }; Level.RelayBroadcast(players, Level.CreateMcpeBatch(playerList.Encode())); playerList.records = null; playerList.PutPool(); } { McpeAddPlayer message = McpeAddPlayer.CreateObject(); message.uuid = Uuid; message.username = NameTag; message.entityIdSelf = EntityId; message.runtimeEntityId = EntityId; message.x = KnownPosition.X; message.y = KnownPosition.Y; message.z = KnownPosition.Z; message.yaw = KnownPosition.Yaw; message.headYaw = KnownPosition.HeadYaw; message.pitch = KnownPosition.Pitch; message.metadata = GetMetadata(); Level.RelayBroadcast(players, message); } { McpeMobEquipment message = McpeMobEquipment.CreateObject(); message.runtimeEntityId = EntityId; message.item = ItemInHand; message.slot = 0; Level.RelayBroadcast(players, message); } { McpeMobArmorEquipment armorEquipment = McpeMobArmorEquipment.CreateObject(); armorEquipment.runtimeEntityId = EntityId; armorEquipment.helmet = ItemFactory.GetItem(Helmet); armorEquipment.chestplate = ItemFactory.GetItem(Chest); armorEquipment.leggings = ItemFactory.GetItem(Leggings); armorEquipment.boots = ItemFactory.GetItem(Boots); Level.RelayBroadcast(players, armorEquipment); } //{ // Player fake = new Player(null, null) // { // ClientUuid = Uuid, // EntityId = EntityId, // NameTag = NameTag, // Skin = Skin // }; // McpePlayerList playerList = McpePlayerList.CreateObject(); // playerList.records = new PlayerRemoveRecords {fake}; // Level.RelayBroadcast(players, Level.CreateMcpeBatch(playerList.Encode())); // playerList.records = null; // playerList.PutPool(); //} { McpeSetEntityData setEntityData = McpeSetEntityData.CreateObject(); setEntityData.runtimeEntityId = EntityId; setEntityData.metadata = GetMetadata(); Level?.RelayBroadcast(players, setEntityData); } }
public override void SpawnEntity() { Level.AddEntity(this); if (Shooter == null) { var addEntity = McpeAddEntity.CreateObject(); addEntity.entityType = EntityTypeId; addEntity.entityId = EntityId; addEntity.x = KnownPosition.X; addEntity.y = KnownPosition.Y; addEntity.z = KnownPosition.Z; addEntity.yaw = KnownPosition.Yaw; addEntity.pitch = KnownPosition.Pitch; //addEntity.metadata = GetMetadata(); addEntity.speedX = (float)Velocity.X; addEntity.speedY = (float)Velocity.Y; addEntity.speedZ = (float)Velocity.Z; Level.RelayBroadcast(addEntity); IsSpawned = true; McpeSetEntityData mcpeSetEntityData = McpeSetEntityData.CreateObject(); mcpeSetEntityData.entityId = EntityId; mcpeSetEntityData.metadata = GetMetadata(); Level.RelayBroadcast(mcpeSetEntityData); } else { { var addEntity = McpeAddEntity.CreateObject(); addEntity.entityType = EntityTypeId; addEntity.entityId = EntityId; addEntity.x = KnownPosition.X; addEntity.y = KnownPosition.Y; addEntity.z = KnownPosition.Z; addEntity.yaw = KnownPosition.Yaw; addEntity.pitch = KnownPosition.Pitch; //addEntity.metadata = GetMetadata(); addEntity.speedX = (float)Velocity.X; addEntity.speedY = (float)Velocity.Y; addEntity.speedZ = (float)Velocity.Z; Level.RelayBroadcast(Shooter, addEntity); McpeSetEntityData mcpeSetEntityData = McpeSetEntityData.CreateObject(); mcpeSetEntityData.entityId = EntityId; mcpeSetEntityData.metadata = GetMetadata(); Level.RelayBroadcast(Shooter, mcpeSetEntityData); } { MetadataDictionary metadata = GetMetadata(); metadata[17] = new MetadataLong(0); var addEntity = McpeAddEntity.CreateObject(); addEntity.entityType = EntityTypeId; addEntity.entityId = EntityId; addEntity.x = KnownPosition.X; addEntity.y = KnownPosition.Y; addEntity.z = KnownPosition.Z; addEntity.yaw = KnownPosition.Yaw; addEntity.pitch = KnownPosition.Pitch; //addEntity.metadata = metadata; addEntity.speedX = (float)Velocity.X; addEntity.speedY = (float)Velocity.Y; addEntity.speedZ = (float)Velocity.Z; Shooter.SendPackage(addEntity); McpeSetEntityData mcpeSetEntityData = McpeSetEntityData.CreateObject(); mcpeSetEntityData.entityId = EntityId; mcpeSetEntityData.metadata = metadata; Shooter.SendPackage(mcpeSetEntityData); } } }