private void ToggleSubbar() { var packet = new ScoreboardPacket { Commands = new[] { new EmptyPacketCommand { Command = CommandType.ToggleSubbar } } }; this.scoreboardUpdater.SendPacket(packet); }
private void ToggleScoreboardVisible() { var packet = new ScoreboardPacket { Commands = new[] { new EmptyPacketCommand { Command = CommandType.ShowScoreboard } } }; this.scoreboardUpdater.SendPacket(packet); }
private void SwapPlayers() { var packet = new ScoreboardPacket { Commands = new[] { new EmptyPacketCommand { Command = CommandType.SwapPlayer } } }; this.scoreboardUpdater.SendPacket(packet); }
private void Player2NameChanged(Player obj) { var commands = new List <IScoreboardPacketCommand>(); commands.Add(new StringPacketCommand { Command = CommandType.UpdatePlayerName, Player = 2, Data = Player2.Name }); var packet = new ScoreboardPacket { Commands = commands.ToArray() }; this.scoreboardUpdater.SendPacket(packet); }
private void Player2ColorChanged(Player obj) { var commands = new List <IScoreboardPacketCommand>(); commands.Add(new BytePacketCommand { Command = CommandType.UpdatePlayerColor, Player = 2, Data = (byte)Player2.Color }); var packet = new ScoreboardPacket { Commands = commands.ToArray() }; this.scoreboardUpdater.SendPacket(packet); }
private void Player1ScoreChanged(Player obj) { var commands = new List <IScoreboardPacketCommand>(); commands.Add(new Int32PacketCommand { Command = CommandType.UpdatePlayerScore, Player = 1, Data = Player1.Score }); var packet = new ScoreboardPacket { Commands = commands.ToArray() }; this.scoreboardUpdater.SendPacket(packet); }
private void Player2ScoreChanged(Player obj) { var commands = new List <IScoreboardPacketCommand> { new Int32PacketCommand { Command = CommandType.UpdatePlayerScore, Player = 2, Data = this.Player2.Score } }; var packet = new ScoreboardPacket { Commands = commands.ToArray() }; this.scoreboardUpdater.SendPacket(packet); }
private void Player1NameChanged(Player obj) { var commands = new List <IScoreboardPacketCommand> { new StringPacketCommand { Command = CommandType.UpdatePlayerName, Player = 1, Data = this.Player1.Name } }; var packet = new ScoreboardPacket { Commands = commands.ToArray() }; this.scoreboardUpdater.SendPacket(packet); }
private void Player1ColorChanged(Player obj) { var commands = new List <IScoreboardPacketCommand> { new BytePacketCommand { Command = CommandType.UpdatePlayerColor, Player = 1, Data = (byte)this.Player1.Color } }; var packet = new ScoreboardPacket { Commands = commands.ToArray() }; this.scoreboardUpdater.SendPacket(packet); }
/// <summary> Handles all incoming network packets. </summary> /// <param name="packet"> The packet. </param> /// <param name="socket"> The active socket. </param> /// <param name="senderRemote"> The sender where the packet originated. </param> /// <exception cref="System.Net.Sockets.SocketException"> Thrown if a response failed to send. </exception> public void HandleRemoteCommands(ScoreboardPacket packet, Socket socket, EndPoint senderRemote) { foreach (var command in packet.Commands) { switch (command.Command) { case CommandType.UpdatePlayerName: { var cmd = command as StringPacketCommand; if (cmd != null) { if (cmd.Player == 1) { this.controlViewModel.Scoreboard.Player1.Name = cmd.Data; } else if (cmd.Player == 2) { this.controlViewModel.Scoreboard.Player2.Name = cmd.Data; } } break; } case CommandType.UpdatePlayerScore: { var cmd = command as Int32PacketCommand; if (cmd != null) { if (cmd.Player == 1) { this.controlViewModel.Scoreboard.Player1.Score = cmd.Data; } else if (cmd.Player == 2) { this.controlViewModel.Scoreboard.Player2.Score = cmd.Data; } } break; } case CommandType.UpdatePlayerColor: { var cmd = command as BytePacketCommand; if (cmd != null) { if (cmd.Player == 1) { this.controlViewModel.Scoreboard.Player1.Color = (PlayerColor)cmd.Data; } else if (cmd.Player == 2) { this.controlViewModel.Scoreboard.Player2.Color = (PlayerColor)cmd.Data; } } break; } case CommandType.UpdatePlayerRace: { var cmd = command as BytePacketCommand; if (cmd != null) { if (cmd.Player == 1) { this.controlViewModel.Scoreboard.Player1.Race = (Race)cmd.Data; } else if (cmd.Player == 2) { this.controlViewModel.Scoreboard.Player2.Race = (Race)cmd.Data; } } break; } case CommandType.ToggleAnnouncement: this.controlViewModel.ToggleAnnouncement(); break; case CommandType.ToggleSubbar: this.controlViewModel.ToggleSubbar(); break; case CommandType.SwapPlayer: this.controlViewModel.SwapPlayers(); break; case CommandType.ShowScoreboard: this.controlViewModel.ToggleScoreboardVisible(); break; case CommandType.HideScoreboard: this.controlViewModel.ToggleScoreboardVisible(); break; case CommandType.ResetPlayer: { var cmd = command as EmptyPacketCommand; if (cmd != null) { if (cmd.Player == 1) { this.controlViewModel.Scoreboard.Player1.Reset(); } else if (cmd.Player == 2) { this.controlViewModel.Scoreboard.Player2.Reset(); } } break; } case CommandType.IncrementPlayerScore: { var cmd = command as EmptyPacketCommand; if (cmd != null) { if (cmd.Player == 1) { this.controlViewModel.Scoreboard.Player1.Score++; } else if (cmd.Player == 2) { this.controlViewModel.Scoreboard.Player2.Score++; } } break; } case CommandType.RetrievePlayerInformation: { var cmd = command as EmptyPacketCommand; if (cmd != null) { var commands = new List <IScoreboardPacketCommand>(); var player = cmd.Player == 1 ? this.controlViewModel.Scoreboard.Player1 : this.controlViewModel.Scoreboard.Player2; commands.Add( new StringPacketCommand { Command = CommandType.UpdatePlayerName, Player = cmd.Player, Data = player.Name }); commands.Add( new BytePacketCommand { Command = CommandType.UpdatePlayerRace, Data = (byte)player.Race, Player = cmd.Player }); commands.Add( new BytePacketCommand { Command = CommandType.UpdatePlayerColor, Data = (byte)player.Color, Player = cmd.Player }); commands.Add( new Int32PacketCommand { Command = CommandType.UpdatePlayerScore, Data = player.Score, Player = cmd.Player }); var p = new ScoreboardPacket { Commands = commands.ToArray() }; socket.SendTo(p.ToBytes(), senderRemote); } break; } } } }