Skip to content

Commit a5ed8a7

Browse files
committed
MirrorAddedObserverEventArgs
1 parent 94f7e8c commit a5ed8a7

3 files changed

Lines changed: 47 additions & 2 deletions

File tree

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
using LabExtended.API;
2+
3+
using Mirror;
4+
5+
namespace LabExtended.Events.Mirror
6+
{
7+
/// <summary>
8+
/// Gets called after a new observer is added to a <see cref="NetworkIdentity"/>'s observers list.
9+
/// </summary>
10+
public class MirrorAddedObserverEventArgs : EventArgs
11+
{
12+
/// <summary>
13+
/// Gets the new observer.
14+
/// </summary>
15+
public ExPlayer Observer { get; }
16+
17+
/// <summary>
18+
/// Gets the target identity.
19+
/// </summary>
20+
public NetworkIdentity Target { get; }
21+
22+
/// <summary>
23+
/// Creates a new <see cref="MirrorAddedObserverEventArgs"/> instance.
24+
/// </summary>
25+
/// <param name="observer">The observing player.</param>
26+
/// <param name="target">The target identity.</param>
27+
public MirrorAddedObserverEventArgs(ExPlayer observer, NetworkIdentity target)
28+
{
29+
Observer = observer;
30+
Target = target;
31+
}
32+
}
33+
}

LabExtended/Events/MirrorEvents.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,10 @@ public static class MirrorEvents
3333
public static event Action<NetworkIdentity>? Spawned;
3434

3535
/// <inheritdoc cref="MirrorAddingObserverEventArgs"/>
36-
public static event Action<MirrorAddingObserverEventArgs>? AddingObserver;
36+
public static event Action<MirrorAddingObserverEventArgs>? AddingObserver;
37+
38+
/// <inheritdoc cref="MirrorAddedObserverEventArgs"/>
39+
public static event Action<MirrorAddedObserverEventArgs>? AddedObserver;
3740

3841
/// <summary>
3942
/// Invokes the <see cref="Destroying"/> event.
@@ -70,4 +73,11 @@ public static void OnSpawned(NetworkIdentity identity)
7073
/// <returns>The event's <see cref="BooleanEventArgs.IsAllowed"/> property.</returns>
7174
public static bool OnAddingObserver(MirrorAddingObserverEventArgs args)
7275
=> AddingObserver.InvokeBooleanEvent(args);
76+
77+
/// <summary>
78+
/// Invokes the <see cref="AddedObserver"/> event.
79+
/// </summary>
80+
/// <param name="args">The event arguments.</param>
81+
public static void OnAddedObserver(MirrorAddedObserverEventArgs args)
82+
=> AddedObserver.InvokeEvent(args);
7383
}

LabExtended/Patches/Events/Mirror/AddObserverPatch.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
namespace LabExtended.Patches.Events.Mirror;
99

1010
/// <summary>
11-
/// Implements the <see cref="MirrorEvents.AddingObserver"/> event.
11+
/// Implements the <see cref="MirrorEvents.AddingObserver"/> and <see cref="MirrorEvents.AddedObserver"/> events.
1212
/// </summary>
1313
public static class AddObserverPatch
1414
{
@@ -30,6 +30,8 @@ private static bool Prefix(NetworkIdentity __instance, NetworkConnectionToClient
3030
__instance.observers.Add(conn.connectionId, conn);
3131

3232
conn.AddToObserving(__instance);
33+
34+
MirrorEvents.OnAddedObserver(new(player, __instance));
3335
return false;
3436
}
3537
}

0 commit comments

Comments
 (0)