com.adrenak.univoice 4.10.2 → 4.10.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -44,7 +44,7 @@ namespace Adrenak.UniVoice.Networks
44
44
 
45
45
  public void Dispose()
46
46
  {
47
- if (_networkManager)
47
+ if (_networkManager != null)
48
48
  {
49
49
  _networkManager.ClientManager.OnClientConnectionState -= OnClientConnectionStateChanged;
50
50
  _networkManager.ClientManager.OnAuthenticated -= OnClientAuthenticated;
@@ -183,9 +183,15 @@ namespace Adrenak.UniVoice.Networks
183
183
  writer.WriteIntArray(YourVoiceSettings.mutedPeers.ToArray());
184
184
  writer.WriteInt(YourVoiceSettings.deafenAll ? 1 : 0);
185
185
  writer.WriteIntArray(YourVoiceSettings.deafenedPeers.ToArray());
186
- writer.WriteString(string.Join(",", YourVoiceSettings.myTags));
187
- writer.WriteString(string.Join(",", YourVoiceSettings.mutedTags));
188
- writer.WriteString(string.Join(",", YourVoiceSettings.deafenedTags));
186
+
187
+ var myTags = YourVoiceSettings.myTags;
188
+ writer.WriteString(myTags.Count == 0 ? "," : string.Join(",", myTags));
189
+
190
+ var mutedTags = YourVoiceSettings.mutedTags;
191
+ writer.WriteString(mutedTags.Count == 0 ? "," : string.Join(",", mutedTags));
192
+
193
+ var deafenedTags = YourVoiceSettings.deafenedTags;
194
+ writer.WriteString(deafenedTags.Count == 0 ? "," : string.Join(",", deafenedTags));
189
195
 
190
196
  var message = new FishNetBroadcast() {
191
197
  data = writer.Bytes
@@ -97,7 +97,6 @@ namespace Adrenak.UniVoice.Networks
97
97
 
98
98
  private void OnClientConnectionStateChanged(ClientConnectionStateArgs args)
99
99
  {
100
- // TODO - do we need to check if host or is this enough?
101
100
  if (args.ConnectionState == LocalConnectionState.Started)
102
101
  {
103
102
  OnServerConnected(0);
@@ -150,7 +149,7 @@ namespace Adrenak.UniVoice.Networks
150
149
  return true;
151
150
  });
152
151
  }
153
-
152
+
154
153
  // We iterate through each recipient peer that the sender wants to send audio to, checking if
155
154
  // they have muted the sender, before forwarding the audio to them.
156
155
  foreach (var recipient in peersToForwardAudioTo) {
@@ -179,9 +178,15 @@ namespace Adrenak.UniVoice.Networks
179
178
  var mutedPeers = reader.ReadIntArray().ToList();
180
179
  var deafenAll = reader.ReadInt() == 1;
181
180
  var deafenedPeers = reader.ReadIntArray().ToList();
182
- var myTags = reader.ReadString().Split(",").ToList();
183
- var mutedTags = reader.ReadString().Split(",").ToList();
184
- var deafenedTags = reader.ReadString().Split(",").ToList();
181
+
182
+ var myTagsVal = reader.ReadString();
183
+ var myTags = myTagsVal.Equals(",") ? new List<string>() : myTagsVal.Split(",").ToList();
184
+
185
+ var mutedTagsVal = reader.ReadString();
186
+ var mutedTags = mutedTagsVal.Equals(",") ? new List<string>() : mutedTagsVal.Split(",").ToList();
187
+
188
+ var deafenedTagsVal = reader.ReadString();
189
+ var deafenedTags = deafenedTagsVal.Equals(",") ? new List<string>() : deafenedTagsVal.Split(",").ToList();
185
190
 
186
191
  var voiceSettings = new VoiceSettings {
187
192
  muteAll = muteAll,
@@ -199,14 +204,16 @@ namespace Adrenak.UniVoice.Networks
199
204
 
200
205
  private void OnServerConnected(int connId)
201
206
  {
202
- Debug.unityLogger.Log(LogType.Log, TAG, $"Client {connId} connected");
207
+ if (ClientIDs.Contains(connId))
208
+ return;
203
209
  ClientIDs.Add(connId);
210
+ Debug.unityLogger.Log(LogType.Log, TAG, $"Client {connId} connected. IDs now: {string.Join(", ", ClientIDs)}");
204
211
  }
205
212
 
206
213
  private void OnServerDisconnected(int connId)
207
214
  {
208
215
  ClientIDs.Remove(connId);
209
- Debug.unityLogger.Log(LogType.Log, TAG, $"Client {connId} disconnected");
216
+ Debug.unityLogger.Log(LogType.Log, TAG, $"Client {connId} disconnected. IDs now: {string.Join(", ", ClientIDs)}");
210
217
  }
211
218
 
212
219
  private void SendToClient(int clientConnId, byte[] bytes, Channel channel)
@@ -57,7 +57,7 @@ namespace Adrenak.UniVoice.Networks {
57
57
  // If it was a Host that's now a ServerOnly, we still need the handler as it's used in MirrorServer
58
58
  if (clientOnlyToOffline)
59
59
  NetworkClient.UnregisterHandler<MirrorMessage>();
60
-
60
+
61
61
  OnClientDisconnected();
62
62
  }
63
63
  }
@@ -171,9 +171,15 @@ namespace Adrenak.UniVoice.Networks {
171
171
  writer.WriteIntArray(YourVoiceSettings.mutedPeers.ToArray());
172
172
  writer.WriteInt(YourVoiceSettings.deafenAll ? 1 : 0);
173
173
  writer.WriteIntArray(YourVoiceSettings.deafenedPeers.ToArray());
174
- writer.WriteString(string.Join(",", YourVoiceSettings.myTags));
175
- writer.WriteString(string.Join(",", YourVoiceSettings.mutedTags));
176
- writer.WriteString(string.Join(",", YourVoiceSettings.deafenedTags));
174
+
175
+ var myTags = YourVoiceSettings.myTags;
176
+ writer.WriteString(myTags.Count == 0 ? "," : string.Join(",", myTags));
177
+
178
+ var mutedTags = YourVoiceSettings.mutedTags;
179
+ writer.WriteString(mutedTags.Count == 0 ? "," : string.Join(",", mutedTags));
180
+
181
+ var deafenedTags = YourVoiceSettings.deafenedTags;
182
+ writer.WriteString(deafenedTags.Count == 0 ? "," : string.Join(",", deafenedTags));
177
183
 
178
184
  var message = new MirrorMessage {
179
185
  data = writer.Bytes
@@ -45,7 +45,7 @@ namespace Adrenak.UniVoice.Networks {
45
45
 
46
46
  NetworkServer.RegisterHandler<MirrorMessage>(OnReceivedMessage, false);
47
47
  }
48
-
48
+
49
49
  public void Dispose() {
50
50
  mirrorEvents.ModeChanged -= OnModeChanged;
51
51
  NetworkServer.UnregisterHandler<MirrorMessage>();
@@ -80,20 +80,20 @@ namespace Adrenak.UniVoice.Networks {
80
80
 
81
81
  // If in Host mode, the server and internal client have both started and the client connects immediately.
82
82
  // The host client seems to have ID 0 always, so we trigger a new client connection using id 0.
83
- if(newMode == NetworkManagerMode.Host) {
83
+ if (newMode == NetworkManagerMode.Host) {
84
84
  OnServerStarted();
85
85
  OnServerConnected(0, "localhost");
86
86
  }
87
- else if(newMode == NetworkManagerMode.ServerOnly) {
87
+ else if (newMode == NetworkManagerMode.ServerOnly) {
88
88
  // If a Host changes to ServerOnly, we disconnect the internal client
89
89
  if (oldMode == NetworkManagerMode.Host)
90
90
  OnServerDisconnected(0);
91
91
  // But if this machine is going from Offline to ServerOnly, only the server is starting
92
- else if(oldMode == NetworkManagerMode.Offline)
92
+ else if (oldMode == NetworkManagerMode.Offline)
93
93
  OnServerStarted();
94
94
  }
95
95
  // If a Host or ServerOnly goes offline
96
- else if(newMode == NetworkManagerMode.Offline && (oldMode == NetworkManagerMode.ServerOnly || oldMode == NetworkManagerMode.Host)) {
96
+ else if (newMode == NetworkManagerMode.Offline && (oldMode == NetworkManagerMode.ServerOnly || oldMode == NetworkManagerMode.Host)) {
97
97
  // We check if it was a Host before and disconnect the internal client
98
98
  if (oldMode == NetworkManagerMode.Host)
99
99
  OnServerDisconnected(0);
@@ -164,17 +164,22 @@ namespace Adrenak.UniVoice.Networks {
164
164
  }
165
165
  }
166
166
  else if (tag.Equals(MirrorMessageTags.VOICE_SETTINGS)) {
167
- //Debug.unityLogger.Log(LogType.Log, TAG, "Mirror server stopped");
168
167
  // We create the VoiceSettings object by reading from the reader
169
168
  // and update the peer voice settings map
170
169
  var muteAll = reader.ReadInt() == 1 ? true : false;
171
170
  var mutedPeers = reader.ReadIntArray().ToList();
172
171
  var deafenAll = reader.ReadInt() == 1 ? true : false;
173
172
  var deafenedPeers = reader.ReadIntArray().ToList();
174
- var myTags = reader.ReadString().Split(",").ToList();
175
- var mutedTags = reader.ReadString().Split(",").ToList();
176
- var deafenedTags = reader.ReadString().Split(",").ToList();
177
173
 
174
+ var myTagsVal = reader.ReadString();
175
+ var myTags = myTagsVal.Equals(",") ? new List<string>() : myTagsVal.Split(",").ToList();
176
+
177
+ var mutedTagsVal = reader.ReadString();
178
+ var mutedTags = mutedTagsVal.Equals(",") ? new List<string>() : mutedTagsVal.Split(",").ToList();
179
+
180
+ var deafenedTagsVal = reader.ReadString();
181
+ var deafenedTags = deafenedTagsVal.Equals(",") ? new List<string>() : deafenedTagsVal.Split(",").ToList();
182
+
178
183
  var voiceSettings = new VoiceSettings {
179
184
  muteAll = muteAll,
180
185
  mutedPeers = mutedPeers,
@@ -278,7 +283,7 @@ namespace Adrenak.UniVoice.Networks {
278
283
  }
279
284
 
280
285
  NetworkConnectionToClient GetConnectionToClient(int connId) {
281
- foreach(var conn in NetworkServer.connections)
286
+ foreach (var conn in NetworkServer.connections)
282
287
  if (conn.Key == connId)
283
288
  return conn.Value;
284
289
  return null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "com.adrenak.univoice",
3
- "version": "4.10.2",
3
+ "version": "4.10.4",
4
4
  "displayName": "Adrenak.UniVoice",
5
5
  "description": "Voice chat/VoIP framework for Unity.",
6
6
  "unity": "2021.2",