com.adrenak.univoice 4.10.3 → 4.10.5

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.
@@ -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
@@ -164,7 +164,7 @@ namespace Adrenak.UniVoice.Networks
164
164
  continue;
165
165
 
166
166
  // If the peer has muted the sender using tag, skip sending audio
167
- if (recipientSettings.mutedTags.Intersect(senderSettings.myTags).Any())
167
+ if (senderSettings != null && recipientSettings.mutedTags.Intersect(senderSettings.myTags).Any())
168
168
  continue;
169
169
  }
170
170
  SendToClient(recipient, message.data, Channel.Unreliable);
@@ -178,9 +178,15 @@ namespace Adrenak.UniVoice.Networks
178
178
  var mutedPeers = reader.ReadIntArray().ToList();
179
179
  var deafenAll = reader.ReadInt() == 1;
180
180
  var deafenedPeers = reader.ReadIntArray().ToList();
181
- var myTags = reader.ReadString().Split(",").ToList();
182
- var mutedTags = reader.ReadString().Split(",").ToList();
183
- 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();
184
190
 
185
191
  var voiceSettings = new VoiceSettings {
186
192
  muteAll = muteAll,
@@ -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);
@@ -157,24 +157,29 @@ namespace Adrenak.UniVoice.Networks {
157
157
  continue;
158
158
 
159
159
  // If the peer has muted the sender using tag, skip sending audio
160
- if (recipientSettings.mutedTags.Intersect(senderSettings.myTags).Count() > 0)
160
+ if (senderSettings != null && recipientSettings.mutedTags.Intersect(senderSettings.myTags).Count() > 0)
161
161
  continue;
162
162
  }
163
163
  SendToClient(recipient, message.data, Channels.Unreliable);
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.3",
3
+ "version": "4.10.5",
4
4
  "displayName": "Adrenak.UniVoice",
5
5
  "description": "Voice chat/VoIP framework for Unity.",
6
6
  "unity": "2021.2",