Skip to content

Commit 12ffd75

Browse files
committed
Porting EXILED9 RespawnedTeam event. by.VALERA771
Exiled-Team/EXILED#2386
1 parent 6ebeac5 commit 12ffd75

File tree

3 files changed

+61
-2
lines changed

3 files changed

+61
-2
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
// -----------------------------------------------------------------------
2+
// <copyright file="RespawnedTeamEventArgs.cs" company="Exiled Team">
3+
// Copyright (c) Exiled Team. All rights reserved.
4+
// Licensed under the CC BY-SA 3.0 license.
5+
// </copyright>
6+
// -----------------------------------------------------------------------
7+
8+
namespace Exiled.Events.EventArgs.Server
9+
{
10+
using System.Collections.Generic;
11+
using System.Linq;
12+
13+
using Exiled.API.Features;
14+
using Exiled.Events.EventArgs.Interfaces;
15+
using Respawning;
16+
17+
/// <summary>
18+
/// Contains all information after team spawns.
19+
/// </summary>
20+
public class RespawnedTeamEventArgs : IExiledEvent
21+
{
22+
/// <summary>
23+
/// Initializes a new instance of the <see cref="RespawnedTeamEventArgs"/> class.
24+
/// </summary>
25+
/// <param name="hubs"><inheritdoc cref="Players"/></param>
26+
/// <param name="team"><inheritdoc cref="Team"/></param>
27+
public RespawnedTeamEventArgs(SpawnableTeamType team, IEnumerable<ReferenceHub> hubs)
28+
{
29+
Players = hubs.Select(Player.Get);
30+
Team = team;
31+
}
32+
33+
/// <summary>
34+
/// Gets the list of spawned players.
35+
/// </summary>
36+
public IEnumerable<Player> Players { get; }
37+
38+
/// <summary>
39+
/// Gets the spawned team.
40+
/// </summary>
41+
public SpawnableTeamType Team { get; }
42+
}
43+
}

EXILED/Exiled.Events/Events.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ namespace Exiled.Events
2121
using PlayerRoles.Ragdolls;
2222
using PlayerRoles.RoleAssign;
2323
using PluginAPI.Events;
24+
using Respawning;
2425
using UnityEngine.SceneManagement;
2526

2627
/// <summary>
@@ -70,7 +71,7 @@ public override void OnEnabled()
7071
Handlers.Map.ChangedIntoGrenade += Handlers.Internal.ExplodingGrenade.OnChangedIntoGrenade;
7172

7273
CharacterClassManager.OnRoundStarted += Handlers.Server.OnRoundStarted;
73-
74+
RespawnManager.ServerOnRespawned += Handlers.Server.OnRespawnedTeam;
7475
InventorySystem.InventoryExtensions.OnItemAdded += Handlers.Player.OnItemAdded;
7576
InventorySystem.InventoryExtensions.OnItemRemoved += Handlers.Player.OnItemRemoved;
7677

@@ -105,7 +106,7 @@ public override void OnDisabled()
105106

106107
InventorySystem.InventoryExtensions.OnItemAdded -= Handlers.Player.OnItemAdded;
107108
InventorySystem.InventoryExtensions.OnItemRemoved -= Handlers.Player.OnItemRemoved;
108-
109+
RespawnManager.ServerOnRespawned -= Handlers.Server.OnRespawnedTeam;
109110
RagdollManager.OnRagdollSpawned -= Handlers.Internal.RagdollList.OnSpawnedRagdoll;
110111
RagdollManager.OnRagdollRemoved -= Handlers.Internal.RagdollList.OnRemovedRagdoll;
111112
ItemPickupBase.OnPickupAdded -= Handlers.Internal.PickupEvent.OnSpawnedPickup;

EXILED/Exiled.Events/Handlers/Server.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77

88
namespace Exiled.Events.Handlers
99
{
10+
using System.Collections.Generic;
11+
12+
using Respawning;
1013
#pragma warning disable SA1623 // Property summary documentation should match accessors
1114

1215
using Exiled.Events.EventArgs.Player;
@@ -53,6 +56,11 @@ public static class Server
5356
/// </summary>
5457
public static Event<RespawningTeamEventArgs> RespawningTeam { get; set; } = new();
5558

59+
/// <summary>
60+
/// Invoked after team spawns.
61+
/// </summary>
62+
public static Event<RespawnedTeamEventArgs> RespawnedTeam { get; set; } = new();
63+
5664
/// <summary>
5765
/// Invoked before adding an unit name.
5866
/// </summary>
@@ -142,6 +150,13 @@ public static class Server
142150
/// <param name="ev">The <see cref="RespawningTeamEventArgs"/> instance.</param>
143151
public static void OnRespawningTeam(RespawningTeamEventArgs ev) => RespawningTeam.InvokeSafely(ev);
144152

153+
/// <summary>
154+
/// Called after team spawns.
155+
/// </summary>
156+
/// <param name="teamType"><inheritdoc cref="RespawnedTeamEventArgs.Team"/></param>
157+
/// <param name="hubs"><inheritdoc cref="RespawnedTeamEventArgs.Players"/></param>
158+
public static void OnRespawnedTeam(SpawnableTeamType teamType, List<ReferenceHub> hubs) => RespawnedTeam.InvokeSafely(new RespawnedTeamEventArgs(teamType, hubs));
159+
145160
/// <summary>
146161
/// Called before adding an unit name.
147162
/// </summary>

0 commit comments

Comments
 (0)