public void CreateAndJoinRoom(string roomName, string roomDesc, string code, bool isNSFW, bool isPublic) { ActiveRoom = new NetworkRoom(roomName, roomDesc, Guid.NewGuid().ToString(), code, PlayerData.Location, isPublic, isNSFW); ActiveRoom.Players.Add(PlayerData.GUID, PlayerData); PlayerData.RoomID = ActiveRoom.GUID; socket.Emit("create_room", ActiveRoom.JSONString); Debug.LogInfo($"Socket.IO Emit: 'create_room', sent data:\n{ActiveRoom.JSONString}\n", "NETWORK"); SceneManager.Instance.LoadScene($"{PlayerData.Location}-Bar"); SoundManager.Instance.PlaySound("bar_ambiance"); }
private void SetupSocket_Rooms() { socket.On("request_rooms_success", data => { Debug.LogInfo($"Socket.IO: 'request_rooms_success', received data:\n{data?.ToString()}\n", "NETWORK"); Rooms = new List <NetworkRoom>(); var objData = (JObject)data; foreach (var prop in objData.Properties()) { var roomData = (JObject)objData[prop.Name]; var room = new NetworkRoom(roomData.Value <string>("name"), roomData.Value <string>("desc"), roomData.Value <string>("guid"), roomData.Value <string>("code"), roomData.Value <string>("type"), roomData.Value <bool>("pub"), roomData.Value <bool>("nsfw")); Rooms.Add(room); } RoomsReady = true; }); socket.On("create_room_success", data => { Debug.LogInfo($"Socket.IO: 'create_room_success', received data:\n{data?.ToString()}\n", "NETWORK"); }); socket.On("join_room_failed", data => { Debug.LogInfo($"Socket.IO: 'join_room_failed', received data:\n{data?.ToString()}\n", "NETWORK"); Debug.LogWarning("Socket.IO response not implemented for 'join_room_failed'"); }); socket.On("join_room_success", data => { Debug.LogInfo($"Socket.IO: 'join_room_success', received data:\n{data?.ToString()}\n", "NETWORK"); var roomData = (JObject)data; ActiveRoom = new NetworkRoom(roomData.Value <string>("name"), roomData.Value <string>("desc"), roomData.Value <string>("guid"), roomData.Value <string>("code"), roomData.Value <string>("type"), roomData.Value <bool>("pub"), roomData.Value <bool>("nsfw")); PlayerData.RoomID = ActiveRoom.GUID; ActiveRoom.Players.Add(PlayerData.GUID, PlayerData); joinRoomSuccess = true; socket.Emit("request_players", ActiveRoom.GUID); Debug.LogInfo($"Socket.IO Emit: 'request_players', sent data:\n{ActiveRoom.GUID}\n", "NETWORK"); }); socket.On("request_players_success", data => { Debug.LogInfo($"Socket.IO: 'request_players_success', received data:\n{data?.ToString()}\n", "NETWORK"); var playerData = (JObject)data; foreach (var playerId in playerData.Properties()) { var networkPlayerData = new NetworkPlayer(playerData[playerId.Name].Value <string>("username"), playerData[playerId.Name].Value <string>("guid"), playerData[playerId.Name].Value <string>("room"), playerData[playerId.Name].Value <string>("location"), playerData[playerId.Name].Value <int>("avatar"), playerData[playerId.Name].Value <bool>("consent")); ActiveRoom.Players.Add(playerId.Name, networkPlayerData); } }); socket.On("client_joined", data => { Debug.LogInfo($"Socket.IO: 'client_joined', received data:\n{data?.ToString()}\n", "NETWORK"); if (PlayerData.RoomID == "none") { return; } var playerData = (JObject)data; newestMessage = new ChatMessage("SERVER", "00000000-0000-0000-0000-000000000000", $"`{playerData.Value<string>("username")}` joined the room!"); ActiveRoom.Players.Add(playerData.Value <string>("guid"), new NetworkPlayer() { AvatarIndex = playerData.Value <int>("avatar"), Username = playerData.Value <string>("username"), GUID = playerData.Value <string>("guid") }); SoundManager.Instance.PlaySound("client_joined"); gotNewMessage = true; }); socket.On("new_message", data => { Debug.LogInfo($"Socket.IO: 'new_message', received data:\n{data?.ToString()}\n", "NETWORK"); newestMessage = ChatMessage.FromJSON(JObject.Parse(((JObject)data).Value <string>("message"))); gotNewMessage = true; }); socket.On("client_disconnected", data => { Debug.LogInfo($"Socket.IO: 'client_disconnected', received data:\n{data?.ToString()}\n", "NETWORK"); if (PlayerData.RoomID == "none") { return; } var playerData = (JObject)data; newestMessage = new ChatMessage("SERVER", "00000000-0000-0000-0000-000000000000", $"`{playerData.Value<string>("username")}` left the room!"); ActiveRoom.Players.Remove(playerData.Value <string>("guid")); SoundManager.Instance.PlaySound("client_left", true); gotNewMessage = true; }); }