Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 49 additions & 20 deletions EXILED/Exiled.CustomItems/API/Features/CustomItem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ namespace Exiled.CustomItems.API.Features
using Exiled.API.Features.Spawn;
using Exiled.API.Interfaces;
using Exiled.CustomItems.API.EventArgs;
using Exiled.Events.EventArgs.Map;
using Exiled.Events.EventArgs.Player;
using Exiled.Events.EventArgs.Scp914;
using Exiled.Loader;
Expand Down Expand Up @@ -779,16 +780,21 @@ internal bool TryUnregister()
protected virtual void SubscribeEvents()
{
Exiled.Events.Handlers.Player.Dying += OnInternalOwnerDying;
Exiled.Events.Handlers.Player.DroppingItem += OnInternalDroppingItem;
Exiled.Events.Handlers.Player.DroppingAmmo += OnInternalDroppingAmmo;
Exiled.Events.Handlers.Player.ItemAdded += OnInternalItemAdded;
Exiled.Events.Handlers.Player.ChangingItem += OnInternalChanging;
Exiled.Events.Handlers.Player.Escaping += OnInternalOwnerEscaping;
Exiled.Events.Handlers.Player.PickingUpItem += OnInternalPickingUp;
Exiled.Events.Handlers.Player.ItemAdded += OnInternalItemAdded;
Exiled.Events.Handlers.Scp914.UpgradingPickup += OnInternalUpgradingPickup;
Exiled.Events.Handlers.Server.WaitingForPlayers += OnWaitingForPlayers;
Exiled.Events.Handlers.Player.DroppingItem += OnInternalDroppingItem;
Exiled.Events.Handlers.Player.DroppingAmmo += OnInternalDroppingAmmo;
Exiled.Events.Handlers.Player.Handcuffing += OnInternalOwnerHandcuffing;
Exiled.Events.Handlers.Player.ChangingRole += OnInternalOwnerChangingRole;

Exiled.Events.Handlers.Map.PickupAdded += OnInternalPickupSpawned;
Exiled.Events.Handlers.Map.PickupDestroyed += OnInternalPickupDestroyed;

Exiled.Events.Handlers.Server.WaitingForPlayers += OnWaitingForPlayers;

Exiled.Events.Handlers.Scp914.UpgradingPickup += OnInternalUpgradingPickup;
Exiled.Events.Handlers.Scp914.UpgradingInventoryItem += OnInternalUpgradingInventoryItem;
}

Expand All @@ -798,16 +804,21 @@ protected virtual void SubscribeEvents()
protected virtual void UnsubscribeEvents()
{
Exiled.Events.Handlers.Player.Dying -= OnInternalOwnerDying;
Exiled.Events.Handlers.Player.DroppingItem -= OnInternalDroppingItem;
Exiled.Events.Handlers.Player.DroppingAmmo -= OnInternalDroppingAmmo;
Exiled.Events.Handlers.Player.ItemAdded -= OnInternalItemAdded;
Exiled.Events.Handlers.Player.ChangingItem -= OnInternalChanging;
Exiled.Events.Handlers.Player.Escaping -= OnInternalOwnerEscaping;
Exiled.Events.Handlers.Player.PickingUpItem -= OnInternalPickingUp;
Exiled.Events.Handlers.Player.ItemAdded -= OnInternalItemAdded;
Exiled.Events.Handlers.Scp914.UpgradingPickup -= OnInternalUpgradingPickup;
Exiled.Events.Handlers.Server.WaitingForPlayers -= OnWaitingForPlayers;
Exiled.Events.Handlers.Player.DroppingItem -= OnInternalDroppingItem;
Exiled.Events.Handlers.Player.DroppingAmmo -= OnInternalDroppingAmmo;
Exiled.Events.Handlers.Player.Handcuffing -= OnInternalOwnerHandcuffing;
Exiled.Events.Handlers.Player.ChangingRole -= OnInternalOwnerChangingRole;

Exiled.Events.Handlers.Map.PickupAdded -= OnInternalPickupSpawned;
Exiled.Events.Handlers.Map.PickupDestroyed -= OnInternalPickupDestroyed;

Exiled.Events.Handlers.Server.WaitingForPlayers -= OnWaitingForPlayers;

Exiled.Events.Handlers.Scp914.UpgradingPickup -= OnInternalUpgradingPickup;
Exiled.Events.Handlers.Scp914.UpgradingInventoryItem -= OnInternalUpgradingInventoryItem;
}

Expand Down Expand Up @@ -844,19 +855,26 @@ protected virtual void OnOwnerHandcuffing(OwnerHandcuffingEventArgs ev)
}

/// <summary>
/// Handles tracking items when they are dropped by a player.
/// Handles tracking custom items when their pickups are spawned in the scene.
/// </summary>
/// <param name="ev"><see cref="DroppingItemEventArgs"/>.</param>
protected virtual void OnDroppingItem(DroppingItemEventArgs ev)
/// <param name="ev"><see cref="PickupAddedEventArgs"/>.</param>
protected virtual void OnPickupSpawned(PickupAddedEventArgs ev)
{
}

/// <summary>
/// Handles untracking custom items when their pickups are destroyed in the scene.
/// </summary>
/// <param name="ev"><see cref="PickupDestroyedEventArgs"/>.</param>
protected virtual void OnPickupDestroyed(PickupDestroyedEventArgs ev)
{
}

/// <summary>
/// Handles tracking items when they are dropped by a player.
/// </summary>
/// <param name="ev"><see cref="DroppingItemEventArgs"/>.</param>
[Obsolete("Use OnDroppingItem instead.", false)]
protected virtual void OnDropping(DroppingItemEventArgs ev)
protected virtual void OnDroppingItem(DroppingItemEventArgs ev)
{
}

Expand Down Expand Up @@ -1025,17 +1043,28 @@ private void OnInternalOwnerHandcuffing(HandcuffingEventArgs ev)
}
}

private void OnInternalPickupSpawned(PickupAddedEventArgs ev)
{
if (!Check(ev.Pickup))
return;

OnPickupSpawned(ev);
}

private void OnInternalPickupDestroyed(PickupDestroyedEventArgs ev)
{
if (!Check(ev.Pickup))
return;

OnPickupDestroyed(ev);
}

private void OnInternalDroppingItem(DroppingItemEventArgs ev)
{
if (!Check(ev.Item))
return;

OnDroppingItem(ev);

// TODO: Don't forget to remove this with next update
#pragma warning disable CS0618
OnDropping(ev);
#pragma warning restore CS0618
}

private void OnInternalDroppingAmmo(DroppingAmmoEventArgs ev)
Expand Down
13 changes: 0 additions & 13 deletions EXILED/Exiled.Events/Config.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,19 +68,6 @@ public sealed class Config : IConfig
[Description("Indicates whether the inventory should be dropped before being set as spectator, through commands or plugins")]
public bool ShouldDropInventory { get; set; } = true;

/// <summary>
/// Gets or sets a value indicating whether the blood can be spawned.
/// </summary>
[Description("Indicates whether the blood can be spawned")]
public bool CanSpawnBlood { get; set; } = true;

/// <summary>
/// Gets or sets a value indicating whether keycard throw can affect basic doors.
/// </summary>
/// TODO: Make a poll about removing this config. (unimplemented since 9.6.0-beta7)
[Description("Indicates whether thrown keycards can affect doors that don't require any permissions")]
public bool CanKeycardThrowAffectDoors { get; set; } = false;

/// <summary>
/// Gets or sets a value indicating whether the SCP079 will recontained if there are no SCPs left.
/// </summary>
Expand Down
Loading