From f0c00d7d81bdb90ec7e72645c77eec843b7d00fd Mon Sep 17 00:00:00 2001 From: Miki_hero <100715076+Mikihero@users.noreply.github.com> Date: Tue, 26 Nov 2024 22:59:43 +0100 Subject: [PATCH 1/6] better docs so it compiles for me --- EXILED/Exiled.API/Enums/DoorType.cs | 2 +- EXILED/Exiled.API/Enums/RespawnEffectType.cs | 5 ++--- EXILED/Exiled.API/Features/Npc.cs | 8 +++++++ EXILED/Exiled.API/Features/Respawn.cs | 23 +++++++++++++++++--- 4 files changed, 31 insertions(+), 7 deletions(-) diff --git a/EXILED/Exiled.API/Enums/DoorType.cs b/EXILED/Exiled.API/Enums/DoorType.cs index 745557a6a7..223b2a1724 100644 --- a/EXILED/Exiled.API/Enums/DoorType.cs +++ b/EXILED/Exiled.API/Enums/DoorType.cs @@ -268,7 +268,7 @@ public enum DoorType ElevatorGateB, /// - /// Represents the Elevator door for . + /// Represents the Elevator door for and . /// ElevatorNuke, diff --git a/EXILED/Exiled.API/Enums/RespawnEffectType.cs b/EXILED/Exiled.API/Enums/RespawnEffectType.cs index d26f7be267..14ef8c8421 100644 --- a/EXILED/Exiled.API/Enums/RespawnEffectType.cs +++ b/EXILED/Exiled.API/Enums/RespawnEffectType.cs @@ -8,14 +8,13 @@ namespace Exiled.API.Enums { using Features; - using PlayerRoles; + using Respawning.Waves; /// /// Layers game respawn effects. /// - /// - /// + /// public enum RespawnEffectType { /// diff --git a/EXILED/Exiled.API/Features/Npc.cs b/EXILED/Exiled.API/Features/Npc.cs index d31b0b5303..2309d18af9 100644 --- a/EXILED/Exiled.API/Features/Npc.cs +++ b/EXILED/Exiled.API/Features/Npc.cs @@ -134,6 +134,14 @@ public override Vector3 Position public static new Npc? Get(NetworkConnection conn) => Player.Get(conn) as Npc; // TODO: Write docs. + + /// + /// to be filled. + /// + /// to be filled.. + /// to be filled... + /// to be filled.... + /// to be filled..... public static Npc Create(string name, RoleTypeId role, Vector3 position) { // TODO: Test this. diff --git a/EXILED/Exiled.API/Features/Respawn.cs b/EXILED/Exiled.API/Features/Respawn.cs index 1f3774f438..03db56a9e1 100644 --- a/EXILED/Exiled.API/Features/Respawn.cs +++ b/EXILED/Exiled.API/Features/Respawn.cs @@ -181,13 +181,30 @@ public static bool TryGetWaveBase(SpawnableFaction faction, out SpawnableWaveBas return false; } - // TODO: Docs. + // TODO: Write docs. + + /// + /// to be filled. + /// + /// to be filled.. + /// to be filled... public static void AdvanceTime(Faction faction, float time) => WaveManager.AdvanceTimer(faction, time); - // TODO: Docs. + // TODO: Write docs. + + /// + /// to be filled. + /// + /// to be filled.. public static void SpawnWave(SpawnableWaveBase wave) => WaveManager.Spawn(wave); - // TODO: Docs. + // TODO: Write docs. + + /// + /// to be filled. + /// + /// to be filled.. + /// to be filled... public static void SpawnWave(Faction faction, bool mini) where T : SpawnableWaveBase { From 30e74cbd7f49d8c1c2b5037ed991b50941e7c73f Mon Sep 17 00:00:00 2001 From: Miki_hero <100715076+Mikihero@users.noreply.github.com> Date: Tue, 26 Nov 2024 23:03:56 +0100 Subject: [PATCH 2/6] added to be filled docs so stylecop stops screaming --- EXILED/Exiled.API/Features/Items/Firearm.cs | 22 +++++-------------- .../Exiled.API/Features/Items/Flashlight.cs | 1 - EXILED/Exiled.API/Features/Pickups/Pickup.cs | 2 +- .../Pickups/Projectiles/Scp018Projectile.cs | 2 +- EXILED/Exiled.API/Features/Respawn.cs | 7 ++++++ 5 files changed, 14 insertions(+), 20 deletions(-) diff --git a/EXILED/Exiled.API/Features/Items/Firearm.cs b/EXILED/Exiled.API/Features/Items/Firearm.cs index 0ec5a64933..4c6466933a 100644 --- a/EXILED/Exiled.API/Features/Items/Firearm.cs +++ b/EXILED/Exiled.API/Features/Items/Firearm.cs @@ -5,8 +5,6 @@ // // ----------------------------------------------------------------------- -using MEC; - namespace Exiled.API.Features.Items { using System; @@ -14,29 +12,19 @@ namespace Exiled.API.Features.Items using System.Linq; using CameraShaking; - using Enums; - - using Exiled.API.Features.Pickups; - using Exiled.API.Interfaces; - using Exiled.API.Structs; - using Extensions; - - using InventorySystem; - using InventorySystem.Items; - using InventorySystem.Items.Firearms; + using Interfaces; using InventorySystem.Items.Firearms.Attachments; using InventorySystem.Items.Firearms.Attachments.Components; - using InventorySystem.Items.Firearms.BasicMessages; using InventorySystem.Items.Firearms.Modules; - using InventorySystem.Items.Pickups; - + using MEC; + using Pickups; + using Structs; using UnityEngine; using BaseFirearm = InventorySystem.Items.Firearms.Firearm; using FirearmPickup = Pickups.FirearmPickup; - using Object = UnityEngine.Object; /// /// A wrapper class for . @@ -139,7 +127,6 @@ public int MaxAmmo /// public AmmoType AmmoType => (Base.Modules.OfType().FirstOrDefault()?.AmmoType ?? ItemType.None).GetAmmoType(); - /// /// Gets a value indicating whether the firearm is being aimed. /// @@ -660,6 +647,7 @@ internal override void ChangeOwner(Player oldOwner, Player newOwner) Base._footprintCacheSet = false; } + /// internal override void ReadPickupInfo(Pickup pickup) { base.ReadPickupInfo(pickup); diff --git a/EXILED/Exiled.API/Features/Items/Flashlight.cs b/EXILED/Exiled.API/Features/Items/Flashlight.cs index 0e9de906ba..93a3876ca6 100644 --- a/EXILED/Exiled.API/Features/Items/Flashlight.cs +++ b/EXILED/Exiled.API/Features/Items/Flashlight.cs @@ -45,7 +45,6 @@ internal Flashlight(ItemType type) /// Can be or . public new ToggleableLightItemBase Base { get; } - /// /// Gets or sets a value indicating whether the item is emitting light. /// diff --git a/EXILED/Exiled.API/Features/Pickups/Pickup.cs b/EXILED/Exiled.API/Features/Pickups/Pickup.cs index 286e7cf7b8..7bc5601b53 100644 --- a/EXILED/Exiled.API/Features/Pickups/Pickup.cs +++ b/EXILED/Exiled.API/Features/Pickups/Pickup.cs @@ -128,7 +128,7 @@ internal Pickup(ItemType type) public Room Room => Room.FindParentRoom(GameObject); /// - /// Gets or sets the pickup's PhysicsModule. + /// Gets (or sets) the pickup's PhysicsModule. /// public PickupStandardPhysics PhysicsModule => Base.PhysicsModule as PickupStandardPhysics; diff --git a/EXILED/Exiled.API/Features/Pickups/Projectiles/Scp018Projectile.cs b/EXILED/Exiled.API/Features/Pickups/Projectiles/Scp018Projectile.cs index 6bb4763708..144478f9bb 100644 --- a/EXILED/Exiled.API/Features/Pickups/Projectiles/Scp018Projectile.cs +++ b/EXILED/Exiled.API/Features/Pickups/Projectiles/Scp018Projectile.cs @@ -50,7 +50,7 @@ internal Scp018Projectile() public new BaseScp018Projectile Base { get; } /// - /// Gets or sets the pickup's PhysicsModule. + /// Gets (or sets) the pickup's PhysicsModule. /// public new Scp018Physics PhysicsModule => Base.PhysicsModule as Scp018Physics; diff --git a/EXILED/Exiled.API/Features/Respawn.cs b/EXILED/Exiled.API/Features/Respawn.cs index 03db56a9e1..69059fc441 100644 --- a/EXILED/Exiled.API/Features/Respawn.cs +++ b/EXILED/Exiled.API/Features/Respawn.cs @@ -205,6 +205,7 @@ public static bool TryGetWaveBase(SpawnableFaction faction, out SpawnableWaveBas /// /// to be filled.. /// to be filled... + /// to be filled.... public static void SpawnWave(Faction faction, bool mini) where T : SpawnableWaveBase { @@ -295,6 +296,12 @@ public static void ForceWave(Faction team) ForceWave(wave); } + // TODO: Write docs. + + /// + /// to be filled. + /// + /// to be filled.... public static void ForceWave(SpawnableWaveBase wave) { WaveManager.Spawn(wave); From e261b4f54d6addd785a2127b42d636e83b0b5f40 Mon Sep 17 00:00:00 2001 From: Miki_hero <100715076+Mikihero@users.noreply.github.com> Date: Wed, 27 Nov 2024 00:11:25 +0100 Subject: [PATCH 3/6] cleanup using --- EXILED/Exiled.API/Enums/DoorType.cs | 2 +- EXILED/Exiled.API/Enums/RespawnEffectType.cs | 4 ---- EXILED/Exiled.API/Features/Doors/ElevatorDoor.cs | 3 +-- EXILED/Exiled.API/Features/Items/Firearm.cs | 10 +++------- EXILED/Exiled.API/Features/Items/Flashlight.cs | 4 +--- EXILED/Exiled.API/Features/Npc.cs | 6 +++--- EXILED/Exiled.API/Features/Pickups/Pickup.cs | 12 ++++-------- .../Pickups/Projectiles/Scp018Projectile.cs | 4 +--- EXILED/Exiled.API/Features/Player.cs | 16 ++++++++-------- 9 files changed, 22 insertions(+), 39 deletions(-) diff --git a/EXILED/Exiled.API/Enums/DoorType.cs b/EXILED/Exiled.API/Enums/DoorType.cs index 7cf1e8a2d0..1417d448fe 100644 --- a/EXILED/Exiled.API/Enums/DoorType.cs +++ b/EXILED/Exiled.API/Enums/DoorType.cs @@ -7,7 +7,7 @@ namespace Exiled.API.Enums { - using Exiled.API.Features.Doors; + using Features.Doors; using Interactables.Interobjects; /// diff --git a/EXILED/Exiled.API/Enums/RespawnEffectType.cs b/EXILED/Exiled.API/Enums/RespawnEffectType.cs index 25c02009b5..34ce495b51 100644 --- a/EXILED/Exiled.API/Enums/RespawnEffectType.cs +++ b/EXILED/Exiled.API/Enums/RespawnEffectType.cs @@ -7,10 +7,6 @@ namespace Exiled.API.Enums { - using Features; - using PlayerRoles; - using Respawning.Waves; - /// /// Layers game respawn effects. /// diff --git a/EXILED/Exiled.API/Features/Doors/ElevatorDoor.cs b/EXILED/Exiled.API/Features/Doors/ElevatorDoor.cs index dd597645c3..5b598de818 100644 --- a/EXILED/Exiled.API/Features/Doors/ElevatorDoor.cs +++ b/EXILED/Exiled.API/Features/Doors/ElevatorDoor.cs @@ -10,9 +10,8 @@ namespace Exiled.API.Features.Doors using System.Collections.Generic; using System.Linq; - using Exiled.API.Enums; + using Enums; using Interactables.Interobjects; - using Interactables.Interobjects.DoorUtils; using UnityEngine; /// diff --git a/EXILED/Exiled.API/Features/Items/Firearm.cs b/EXILED/Exiled.API/Features/Items/Firearm.cs index f4b2f767e1..4c6466933a 100644 --- a/EXILED/Exiled.API/Features/Items/Firearm.cs +++ b/EXILED/Exiled.API/Features/Items/Firearm.cs @@ -13,18 +13,14 @@ namespace Exiled.API.Features.Items using CameraShaking; using Enums; - using Exiled.API.Features.Pickups; - using Exiled.API.Interfaces; - using Exiled.API.Structs; using Extensions; - using InventorySystem; - using InventorySystem.Items; - using InventorySystem.Items.Firearms; + using Interfaces; using InventorySystem.Items.Firearms.Attachments; using InventorySystem.Items.Firearms.Attachments.Components; using InventorySystem.Items.Firearms.Modules; - using InventorySystem.Items.Pickups; using MEC; + using Pickups; + using Structs; using UnityEngine; using BaseFirearm = InventorySystem.Items.Firearms.Firearm; diff --git a/EXILED/Exiled.API/Features/Items/Flashlight.cs b/EXILED/Exiled.API/Features/Items/Flashlight.cs index 93a3876ca6..c7cb386924 100644 --- a/EXILED/Exiled.API/Features/Items/Flashlight.cs +++ b/EXILED/Exiled.API/Features/Items/Flashlight.cs @@ -7,9 +7,7 @@ namespace Exiled.API.Features.Items { - using System; - - using Exiled.API.Interfaces; + using Interfaces; using InventorySystem.Items.ToggleableLights; using InventorySystem.Items.ToggleableLights.Flashlight; using InventorySystem.Items.ToggleableLights.Lantern; diff --git a/EXILED/Exiled.API/Features/Npc.cs b/EXILED/Exiled.API/Features/Npc.cs index 2309d18af9..0231f73a6f 100644 --- a/EXILED/Exiled.API/Features/Npc.cs +++ b/EXILED/Exiled.API/Features/Npc.cs @@ -15,14 +15,14 @@ namespace Exiled.API.Features using CentralAuth; using CommandSystem; - using Exiled.API.Enums; - using Exiled.API.Features.Components; - using Exiled.API.Features.Roles; + using Components; + using Enums; using Footprinting; using GameCore; using MEC; using Mirror; using PlayerRoles; + using Roles; using UnityEngine; using Object = UnityEngine.Object; diff --git a/EXILED/Exiled.API/Features/Pickups/Pickup.cs b/EXILED/Exiled.API/Features/Pickups/Pickup.cs index 2deb4f4845..c3bbf4b025 100644 --- a/EXILED/Exiled.API/Features/Pickups/Pickup.cs +++ b/EXILED/Exiled.API/Features/Pickups/Pickup.cs @@ -7,22 +7,19 @@ namespace Exiled.API.Features.Pickups { - using System; using System.Collections.Generic; using System.Linq; - using Exiled.API.Extensions; - using Exiled.API.Features.Core; - using Exiled.API.Features.Pickups.Projectiles; - using Exiled.API.Interfaces; - + using Core; + using Extensions; + using Interfaces; using InventorySystem; using InventorySystem.Items; using InventorySystem.Items.Pickups; using InventorySystem.Items.ThrowableProjectiles; using InventorySystem.Items.Usables.Scp244; - using Mirror; + using Projectiles; using RelativePositioning; using UnityEngine; @@ -37,7 +34,6 @@ namespace Exiled.API.Features.Pickups using BaseScp1576Pickup = InventorySystem.Items.Usables.Scp1576.Scp1576Pickup; using BaseScp2176Projectile = InventorySystem.Items.ThrowableProjectiles.Scp2176Projectile; using BaseScp330Pickup = InventorySystem.Items.Usables.Scp330.Scp330Pickup; - using Object = UnityEngine.Object; /// diff --git a/EXILED/Exiled.API/Features/Pickups/Projectiles/Scp018Projectile.cs b/EXILED/Exiled.API/Features/Pickups/Projectiles/Scp018Projectile.cs index f33d935a97..0a766bf14b 100644 --- a/EXILED/Exiled.API/Features/Pickups/Projectiles/Scp018Projectile.cs +++ b/EXILED/Exiled.API/Features/Pickups/Projectiles/Scp018Projectile.cs @@ -7,12 +7,10 @@ namespace Exiled.API.Features.Pickups.Projectiles { - using System; using System.Reflection; - using Exiled.API.Interfaces; using HarmonyLib; - + using Interfaces; using InventorySystem.Items.ThrowableProjectiles; using BaseScp018Projectile = InventorySystem.Items.ThrowableProjectiles.Scp018Projectile; diff --git a/EXILED/Exiled.API/Features/Player.cs b/EXILED/Exiled.API/Features/Player.cs index ddad6ca4ce..46e520b365 100644 --- a/EXILED/Exiled.API/Features/Player.cs +++ b/EXILED/Exiled.API/Features/Player.cs @@ -17,21 +17,16 @@ namespace Exiled.API.Features using CustomPlayerEffects; using CustomPlayerEffects.Danger; using DamageHandlers; + using Doors; using Enums; using Exiled.API.Features.Core.Interfaces; - using Exiled.API.Features.Doors; - using Exiled.API.Features.Hazards; - using Exiled.API.Features.Items; - using Exiled.API.Features.Pickups; - using Exiled.API.Features.Pools; - using Exiled.API.Features.Roles; - using Exiled.API.Interfaces; - using Exiled.API.Structs; using Extensions; using Footprinting; using global::Scp914; + using Hazards; using Hints; using Interactables.Interobjects; + using Interfaces; using InventorySystem; using InventorySystem.Disarming; using InventorySystem.Items; @@ -41,10 +36,12 @@ namespace Exiled.API.Features using InventorySystem.Items.Firearms.ShotEvents; using InventorySystem.Items.Usables; using InventorySystem.Items.Usables.Scp330; + using Items; using MapGeneration.Distributors; using MEC; using Mirror; using Mirror.LiteNetLib4Mirror; + using Pickups; using PlayerRoles; using PlayerRoles.FirstPersonControl; using PlayerRoles.RoleAssign; @@ -52,10 +49,13 @@ namespace Exiled.API.Features using PlayerRoles.Voice; using PlayerStatsSystem; using PluginAPI.Core; + using Pools; using RelativePositioning; using RemoteAdmin; using Respawning.NamingRules; + using Roles; using RoundRestarting; + using Structs; using UnityEngine; using Utils; using Utils.Networking; From 705e7d5a8e9e02d3e2f5c87069ea983a0d390cb2 Mon Sep 17 00:00:00 2001 From: Miki_hero <100715076+Mikihero@users.noreply.github.com> Date: Wed, 27 Nov 2024 01:19:04 +0100 Subject: [PATCH 4/6] prefix for 049 finishing recall --- .../Patches/Events/Scp049/FinishingRecall.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/EXILED/Exiled.Events/Patches/Events/Scp049/FinishingRecall.cs b/EXILED/Exiled.Events/Patches/Events/Scp049/FinishingRecall.cs index eacd1e1684..efecf0c055 100644 --- a/EXILED/Exiled.Events/Patches/Events/Scp049/FinishingRecall.cs +++ b/EXILED/Exiled.Events/Patches/Events/Scp049/FinishingRecall.cs @@ -8,15 +8,14 @@ namespace Exiled.Events.Patches.Events.Scp049 { using System.Collections.Generic; + using System.Diagnostics.CodeAnalysis; using System.Reflection.Emit; using API.Features; using API.Features.Pools; using Exiled.Events.Attributes; using Exiled.Events.EventArgs.Scp049; - using HarmonyLib; - using PlayerRoles.PlayableScps.Scp049; using PlayerRoles.Subroutines; @@ -30,7 +29,8 @@ namespace Exiled.Events.Patches.Events.Scp049 [HarmonyPatch(typeof(Scp049ResurrectAbility), nameof(Scp049ResurrectAbility.ServerComplete))] internal static class FinishingRecall { - private static IEnumerable Transpiler(IEnumerable instructions, ILGenerator generator) + // TODO: fix + /*private static IEnumerable Transpiler(IEnumerable instructions, ILGenerator generator) { List newInstructions = ListPool.Pool.Get(instructions); @@ -78,6 +78,15 @@ private static IEnumerable Transpiler(IEnumerable.Pool.Return(newInstructions); + }*/ + + [SuppressMessage("StyleCop.CSharp.NamingRules", "SA1313:Parameter names should begin with lower-case letter", Justification = "Prefix")] + private static bool Prefix(Scp049ResurrectAbility __instance) + { + FinishingRecallEventArgs ev = new(Player.Get(__instance.CurRagdoll.Info.OwnerHub), Player.Get(__instance.Owner), __instance.CurRagdoll); + Handlers.Scp049.OnFinishingRecall(ev); + + return ev.IsAllowed; } } } \ No newline at end of file From 5a91a0e2a506811420f1543a2edcfcb6dfc6f09d Mon Sep 17 00:00:00 2001 From: Miki_hero <100715076+Mikihero@users.noreply.github.com> Date: Wed, 27 Nov 2024 12:16:40 +0100 Subject: [PATCH 5/6] work in progress respawningteam changes --- .../Patches/Events/Server/RespawningTeam.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/EXILED/Exiled.Events/Patches/Events/Server/RespawningTeam.cs b/EXILED/Exiled.Events/Patches/Events/Server/RespawningTeam.cs index ea2f3546ff..2a72977154 100644 --- a/EXILED/Exiled.Events/Patches/Events/Server/RespawningTeam.cs +++ b/EXILED/Exiled.Events/Patches/Events/Server/RespawningTeam.cs @@ -5,6 +5,8 @@ // // ----------------------------------------------------------------------- +using System; + namespace Exiled.Events.Patches.Events.Server { using System.Collections.Generic; @@ -26,6 +28,8 @@ namespace Exiled.Events.Patches.Events.Server using Player = API.Features.Player; + // This event should be renaned to SpawningWave, might be a good time to do it now since it's a breaking change + /// /// Patch the . /// Adds the event. @@ -34,7 +38,7 @@ namespace Exiled.Events.Patches.Events.Server [HarmonyPatch(typeof(WaveSpawner), nameof(WaveSpawner.SpawnWave))] internal static class RespawningTeam { - private static IEnumerable Transpiler(IEnumerable instructions, ILGenerator generator) + /*private static IEnumerable Transpiler(IEnumerable instructions, ILGenerator generator) { List newInstructions = ListPool.Pool.Get(instructions); @@ -121,6 +125,13 @@ private static void RefillQueue(Queue newQueue) WaveSpawner.SpawnQueue.Clear(); foreach (RoleTypeId role in newQueue) WaveSpawner.SpawnQueue.Enqueue(role); + }*/ + + private static bool Prefix(SpawnableWaveBase wave) + { + List playerList = ReferenceHub.AllHubs.Where(WaveSpawner.CheckSpawnable).OrderByDescending(hub => WaveSpawner.CalculatePriority(hub, spawningTeam)).ToList(); + + RespawningTeamEventArgs ev = new() } } } \ No newline at end of file From 2afb2a16d22b3dabd6efeaf8dab40a5b2f2c4cb0 Mon Sep 17 00:00:00 2001 From: Miki_hero <100715076+Mikihero@users.noreply.github.com> Date: Wed, 27 Nov 2024 15:45:32 +0100 Subject: [PATCH 6/6] respawningteam event prefix --- .../EventArgs/Server/RespawningTeamEventArgs.cs | 12 ++++++------ .../Patches/Events/Server/RespawningTeam.cs | 15 +++++++++------ 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/EXILED/Exiled.Events/EventArgs/Server/RespawningTeamEventArgs.cs b/EXILED/Exiled.Events/EventArgs/Server/RespawningTeamEventArgs.cs index f475591a6f..f64c5b012d 100644 --- a/EXILED/Exiled.Events/EventArgs/Server/RespawningTeamEventArgs.cs +++ b/EXILED/Exiled.Events/EventArgs/Server/RespawningTeamEventArgs.cs @@ -35,18 +35,18 @@ public class RespawningTeamEventArgs : IDeniableEvent /// /// /// - /// - /// + /// + /// /// /// /// /// - public RespawningTeamEventArgs(List players, Queue queue, int maxRespawn, SpawnableWaveBase nextKnownTeam, bool isAllowed = true) + public RespawningTeamEventArgs(List players, Queue queue, int maxRespawn, SpawnableWaveBase respawningTeam, bool isAllowed = true) { Players = players; MaximumRespawnAmount = maxRespawn; SpawnQueue = queue; - NextKnownTeam = nextKnownTeam; + RespawningTeam = respawningTeam; IsAllowed = isAllowed; } @@ -74,9 +74,9 @@ public int MaximumRespawnAmount } /// - /// Gets or sets a value indicating what the next respawnable team is. + /// Gets or sets a value indicating what the currently respawning team is. /// - public SpawnableWaveBase NextKnownTeam { get; set; } + public SpawnableWaveBase RespawningTeam { get; set; } /// /// Gets or sets a value indicating whether the spawn can occur. diff --git a/EXILED/Exiled.Events/Patches/Events/Server/RespawningTeam.cs b/EXILED/Exiled.Events/Patches/Events/Server/RespawningTeam.cs index 2a72977154..8b09ce19a2 100644 --- a/EXILED/Exiled.Events/Patches/Events/Server/RespawningTeam.cs +++ b/EXILED/Exiled.Events/Patches/Events/Server/RespawningTeam.cs @@ -5,10 +5,9 @@ // // ----------------------------------------------------------------------- -using System; - namespace Exiled.Events.Patches.Events.Server { + using System; using System.Collections.Generic; using System.Linq; using System.Reflection; @@ -28,7 +27,7 @@ namespace Exiled.Events.Patches.Events.Server using Player = API.Features.Player; - // This event should be renaned to SpawningWave, might be a good time to do it now since it's a breaking change + // This event should be renamed to smth like SpawningWave, might be a good time to do it now since it's a breaking change /// /// Patch the . @@ -106,7 +105,7 @@ internal static class RespawningTeam new(OpCodes.Call, Method(typeof(RespawningTeam), nameof(RefillQueue))), // wave = ev.NextKnownTeam; - new(OpCodes.Callvirt, PropertyGetter(typeof(RespawningTeamEventArgs), nameof(RespawningTeamEventArgs.NextKnownTeam))), + new(OpCodes.Callvirt, PropertyGetter(typeof(RespawningTeamEventArgs), nameof(RespawningTeamEventArgs.RespawningTeam))), new(OpCodes.Starg_S, 1), }); @@ -129,9 +128,13 @@ private static void RefillQueue(Queue newQueue) private static bool Prefix(SpawnableWaveBase wave) { - List playerList = ReferenceHub.AllHubs.Where(WaveSpawner.CheckSpawnable).OrderByDescending(hub => WaveSpawner.CalculatePriority(hub, spawningTeam)).ToList(); + SpawnableTeamType spawningTeam = wave.TargetFaction.GetSpawnableTeam(); + List playerList = ReferenceHub.AllHubs.Where(WaveSpawner.CheckSpawnable).OrderByDescending(hub => WaveSpawner.CalculatePriority(hub, spawningTeam)).ToList(); + + RespawningTeamEventArgs ev = new(playerList.Select(Player.Get).ToList(), WaveSpawner.SpawnQueue, wave.MaxWaveSize, wave); + Server.OnRespawningTeam(ev); - RespawningTeamEventArgs ev = new() + return ev.IsAllowed; } } } \ No newline at end of file