public void AddPlayerToLobbyFromManager() { string nick = "default"; DeckSettings deckSettings = new DeckSettings(); ILobbyManager lobbyManager = new LobbyManager(); var lobbyId = Guid.Empty; lobbyId = lobbyManager.AddPlayer("0", GameType.Usual, 4, nick); for (int i = 1; i < 4; i++) { var returnedId = lobbyManager.AddPlayer(i.ToString(), GameType.Usual, 4, nick); Assert.IsTrue(returnedId.Equals(lobbyId)); } var newLobbyId = lobbyManager.AddPlayer("5", GameType.Usual, 4, nick); Assert.IsFalse(newLobbyId.Equals(lobbyId)); var lobbyIdForCustomGame = lobbyManager.AddPlayer("6", GameType.Custom, 4, nick); Assert.IsFalse(lobbyId.Equals(lobbyIdForCustomGame) && lobbyIdForCustomGame.Equals(newLobbyId)); var lobbyIdWithNewSizeAndGameTypeIsUsual = lobbyManager.AddPlayer("7", GameType.Usual, 5, nick); Assert.IsFalse(lobbyIdWithNewSizeAndGameTypeIsUsual.Equals(lobbyIdForCustomGame) && lobbyIdWithNewSizeAndGameTypeIsUsual.Equals(newLobbyId) && lobbyIdWithNewSizeAndGameTypeIsUsual.Equals(lobbyId)); }
void OnClientConnected(NetworkMessage netMessage) { // Do stuff when a client connects to this server //Add dummy lobbyManager.AddPlayer(new ConnectedPlayer(netMessage.conn.connectionId, AceRules.Unnamed_Player, true), netMessage.conn.connectionId); }
private LobbyManager _lobbyManager = null; // ロビーマネージャー /*-----------------------------------------------------------------------------------*/ void Start() { // ロビーで不必要なコンポーネントを非アクティブにする this.GetComponent <Game_PlayerControl>().enabled = false; // ロビーマネージャーの取得と自身をリストに追加 _lobbyManager = GameObject.Find("LobbyManager").GetComponent <LobbyManager>(); _lobbyManager.AddPlayer(this.gameObject); }
//------------------------------------------------------------------------------------------------------------------------------ //Event Calls //------------------------------------------------------------------------------------------------------------------------------ #region //public override void OnLobbyServerConnect(NetworkConnection conn) //{ // if (!((LobbyManager)lobbyManager).GetBeenInitialized()) // { // lobbyManager.Init(); // } // Debug.Log("LOBBY SERVER CONNECT"); // lobbyManager.AddPlayer(conn); // base.OnLobbyServerConnect(conn); //} //public override void OnServerConnect(NetworkConnection conn) //{ // base.OnServerConnect(conn); // Debug.LogWarning("SERVER CONNECT"); // if (!((LobbyManager)lobbyManager).GetBeenInitialized()) // { // lobbyManager.Init(); // } // lobbyManager.AddPlayer(conn); //} public override void OnServerAddPlayer(NetworkConnection conn, short playerControllerId) { base.OnServerAddPlayer(conn, playerControllerId); if (!((LobbyManager)lobbyManager).GetBeenInitialized()) { lobbyManager.Init(); } Debug.Log("PLAYER ADDED"); lobbyManager.AddPlayer(conn); }
public void AddPlayerWithAnotherNickName() { //arrange string nick = "default"; DeckSettings deckSettings = new DeckSettings(); ILobbyManager lobbyManager = new LobbyManager(); var lobbyToken = Guid.Empty; var players = new[] { new Player("1", nick), new Player("2", nick), new Player("3", nick), new Player("4", nick), }; foreach (var player in players) { lobbyToken = lobbyManager.AddPlayer(player.Token, GameType.Usual, 4, player.NickName); } //Act var tokenFromManager = lobbyManager.AddPlayer("5", GameType.Usual, 4, nick); Assert.IsFalse(tokenFromManager.Equals(lobbyToken)); }
void OnJoinLobby(NetworkMessage netMessage) { var player = netMessage.ReadMessage <JoinLobbyMessage>(); lobbyManager.AddPlayer(new ConnectedPlayer(netMessage.conn.connectionId, player.playerName, player.isPlayer), netMessage.conn.connectionId); //Send confirmation back to client var confirmation = new LobbyJoinedSuccessfulMessage(); confirmation.successful = true; confirmation.clientConnectionID = netMessage.conn.connectionId; NetworkServer.SendToClient(netMessage.conn.connectionId, AceMsgTypes.LobbyJoinedSuccessful, confirmation); //Send the updated lobby list to everyone connected var lobbyUpdate = new LobbyUpdateMessage(); lobbyUpdate.connectedPlayers = lobbyManager.ParseToString(); NetworkServer.SendToAll(AceMsgTypes.LobbyInfoUpdate, lobbyUpdate); }
private void Update() { if (GameState == GameStates.Lobby) { foreach (var player in Server.Players) { if (LobbyManager.ContainsPlayer(player)) { LobbyManager.UpdatePlayer(player); } else { LobbyManager.AddPlayer(player); } } var removePlayer = LobbyManager.GetDisconnectedPlayer(Server.Players); foreach (var player in removePlayer) { LobbyManager.RemovePlayer(player); } } else { foreach (var item in Server.Players) { var a = _playerAchievements[item]; if (a.IsAchieved()) { var cmd = new Command(item, "MISSION", a.Name + "\n" + a.Description + ";SUCC"); Server.SendPlayerMessage(item, cmd); a = Achievements.GetNextAchievement(item.Id, a); _playerAchievements[item] = a; cmd = new Command(item, "MISSION", a.Name + "\n" + a.Description); Server.SendPlayerMessage(item, cmd); } } } }
public async Task Test([Remainder] string arg = "") { SocketUser author = Context.Message.Author; string[] args = arg.Split(' '); //! Seperate multiple args var embed = new EmbedBuilder(); embed.WithTitle("Lobby Message:"); embed.WithColor(new Color(0, 255, 0)); if (args[0].ToLower() == "create" || args[0].ToLower() == "new") { Lobby createdLobby = new Lobby { Owner = author, PlayerCapacity = 10, Players = new List <SocketUser>() }; LobbyManager.AddPlayer(createdLobby, author); try { if (args[1] != null) { LobbyManager.ChangeTitle(args[1], author); } } catch (IndexOutOfRangeException) { LobbyManager.ChangeTitle($"{author.Username}'s lobby", author); } List <SocketUser> additionalPlayers = null; if (Context.Message.MentionedUsers.Count >= 1) { additionalPlayers = new List <SocketUser>(); foreach (SocketUser su in Context.Message.MentionedUsers) { additionalPlayers.Add(su); } } try { if (args[2] != null) { LobbyManager.SetCapacity(author, Convert.ToInt32(args[2])); } embed.WithDescription($"Created lobby: {createdLobby.GameTitle}"); embed.WithFooter($"{createdLobby.CurrentPlayers} / {createdLobby.PlayerCapacity} users", "https://i.imgur.com/9Y0vuCO.png"); } catch { LobbyManager.SetCapacity(author, 10); embed.WithDescription($"Created lobby: {createdLobby.GameTitle}"); embed.WithFooter($"{createdLobby.CurrentPlayers} / {createdLobby.PlayerCapacity} users", "https://i.imgur.com/9Y0vuCO.png"); } } if (args[0].ToLower() == "join") { if (Context.Message.MentionedUsers.Count >= 1) { try { Lobby target = LobbyManager.FindLobby(Context.Message.MentionedUsers.FirstOrDefault <SocketUser>()); LobbyManager.AddPlayer(target, author); embed.WithDescription($"{author.Username} joined {target.Owner.Username}'s lobby: {target.GameTitle}"); embed.AddInlineField("In-lobby players:", target.Players); embed.WithFooter($"{target.CurrentPlayers} / {target.PlayerCapacity} users", "https://i.imgur.com/9Y0vuCO.png"); } catch (NullReferenceException) { await Context.Channel.SendMessageAsync("No lobby exists! Creating new lobby."); List <SocketUser> additionalPlayers = null; if (Context.Message.MentionedUsers.Count >= 1) { additionalPlayers = new List <SocketUser>(); foreach (SocketUser su in Context.Message.MentionedUsers) { additionalPlayers.Add(su); } } LobbyManager.AddLobby(author, $"{author.Username}'s lobby", additionalPlayers); Lobby target = LobbyManager.FindLobby(author); embed.WithDescription($"{author.Username} created a lobby."); embed.AddInlineField("In-lobby players:", target.Players); embed.WithFooter($"{target.CurrentPlayers} / {target.PlayerCapacity} users", "https://i.imgur.com/9Y0vuCO.png"); } } else { try { Lobby target = LobbyManager.FindLobby(args[1]); LobbyManager.AddPlayer(target, author); embed.WithDescription($"{author.Username} joined {target.Owner.Username}'s lobby: {target.GameTitle}"); embed.AddInlineField("In-lobby players:", target.Players); embed.WithFooter($"{target.CurrentPlayers} / {target.PlayerCapacity} users", "https://i.imgur.com/9Y0vuCO.png"); } catch (NullReferenceException) { await Context.Channel.SendMessageAsync("No lobby exists! Creating new lobby."); List <SocketUser> additionalPlayers = null; if (Context.Message.MentionedUsers.Count >= 1) { additionalPlayers = new List <SocketUser>(); foreach (SocketUser su in Context.Message.MentionedUsers) { additionalPlayers.Add(su); } } LobbyManager.AddLobby(author, args[1], additionalPlayers); Lobby target = LobbyManager.FindLobby(author); embed.WithDescription($"{author.Username} created a lobby."); embed.AddInlineField("In-lobby players:", target.Players); embed.WithFooter($"{target.CurrentPlayers} / {target.PlayerCapacity} users", "https://i.imgur.com/9Y0vuCO.png"); } } } if (args[0].ToLower() == "leave" || args[0].ToLower() == "exit") { try { Lobby target = LobbyManager.FindLobby(author); LobbyManager.RemovePlayer(target, author); embed.WithDescription($"{author.Username} left {target.Owner.Username}'s lobby: {target.GameTitle}"); embed.AddInlineField("In-lobby players:", target.Players); embed.WithFooter($"{target.CurrentPlayers} / {target.PlayerCapacity} users", "https://i.imgur.com/9Y0vuCO.png"); } catch (NullReferenceException) { await Context.Channel.SendMessageAsync("You're not in a lobby!"); } } if (args[0].ToLower() == "edit" || args[0].ToLower() == "change") { Lobby target = LobbyManager.FindLobby(author); if (args[1].ToLower() == "cap" || args[1].ToLower() == "capacity") { LobbyManager.SetCapacity(author, Convert.ToInt32(args[2])); embed.WithDescription($"{author.Username} changed his lobby's capacity to: {target.PlayerCapacity}"); embed.AddInlineField("In-lobby players:", target.Players); embed.WithFooter($"{target.CurrentPlayers} / {target.PlayerCapacity} users", "https://i.imgur.com/9Y0vuCO.png"); } else if (args[1].ToLower() == "name" || args[1].ToLower() == "title") { LobbyManager.ChangeTitle(args[2], author); embed.WithDescription($"{author.Username} changed his lobby's title to: {target.GameTitle}"); embed.AddInlineField("In-lobby players:", target.Players); embed.WithFooter($"{target.CurrentPlayers} / {target.PlayerCapacity} users", "https://i.imgur.com/9Y0vuCO.png"); } } await Context.Channel.SendMessageAsync("", false, embed); }