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
|
-
|
|
187
|
-
|
|
188
|
-
writer.WriteString(string.Join(",",
|
|
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
|
-
|
|
183
|
-
var
|
|
184
|
-
var
|
|
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
|
-
|
|
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
|
-
|
|
175
|
-
|
|
176
|
-
writer.WriteString(string.Join(",",
|
|
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;
|