diff --git a/.gitignore b/.gitignore
index ead0428..dbd3f10 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@ bin/
obj/
*.user
*.dll
+fuchsbau/
diff --git a/KeycardButModern/KeycardButModern.cs b/KeycardButModern/KeycardButModern.cs
index 9e806b5..0784aa3 100644
--- a/KeycardButModern/KeycardButModern.cs
+++ b/KeycardButModern/KeycardButModern.cs
@@ -1,3 +1,4 @@
+using Interactables.Interobjects.DoorUtils;
using InventorySystem.Items.Keycards;
using LabApi.Events.Arguments.PlayerEvents;
using LabApi.Events.Handlers;
@@ -27,8 +28,6 @@ namespace KeycardButModern
Logger.Debug("Door has active locks");
return;
}
-
- var permissions = ev.Door.Permissions;
foreach (var playerItem in ev.Player.Items)
{
@@ -39,27 +38,116 @@ namespace KeycardButModern
continue;
}
- var keycardPermissions = keycardItem.GetPermissions(ev.Door.Base);
-
- Logger.Debug($"Item is a keycard: {keycardPermissions} vs {permissions} = {keycardPermissions & permissions}");
-
- if ((keycardPermissions & permissions) != permissions) continue;
- ev.Door.IsOpened = true;
+ if (!ev.Door.Base.CheckPermissions(keycardItem, out _)) continue;
+ ev.Door.IsOpened = !ev.Door.IsOpened;
Logger.Debug("Door can be opened");
return;
}
}
+
+ private void OnInteractingGenerator(PlayerInteractingGeneratorEventArgs ev)
+ {
+ if (!ev.IsAllowed)
+ {
+ return;
+ }
+ if (ev.Player.CurrentItem?.Base is KeycardItem keycard)
+ {
+ if (ev.Generator.Base.CheckPermissions(keycard, out _)) return;
+ }
+
+
+ foreach (var playerItem in ev.Player.Items)
+ {
+ //is keycard?
+ if (playerItem.Type > ItemType.KeycardO5) continue;
+ if (playerItem.Base is not KeycardItem keycardItem)
+ {
+ continue;
+ }
+
+ if (!ev.Generator.Base.CheckPermissions(keycardItem, out _)) continue;
+ ev.Generator.IsOpen = !ev.Generator.IsOpen;
+ Logger.Debug("Generator can be opened");
+
+ return;
+ }
+ }
+
+ private void OnInteractingLocker(PlayerInteractingLockerEventArgs ev)
+ {
+ if (!ev.IsAllowed)
+ {
+ return;
+ }
+
+ if (ev.Chamber.Base.RequiredPermissions == DoorPermissionFlags.None)
+ {
+ return;
+ }
+
+ if (ev.Player.CurrentItem?.Base is KeycardItem keycard)
+ {
+ if (ev.Chamber.Base.CheckPermissions(keycard, out _)) return;
+ }
+
+ foreach (var playerItem in ev.Player.Items)
+ {
+ //is keycard?
+ if (playerItem.Type > ItemType.KeycardO5) continue;
+ if (playerItem.Base is not KeycardItem keycardItem)
+ {
+ continue;
+ }
+
+ if (!ev.Chamber.Base.CheckPermissions(keycardItem, out _)) continue;
+ ev.Chamber.IsOpen = !ev.Chamber.IsOpen;
+ Logger.Debug("Locker can be opened");
+
+ return;
+ }
+ }
+
+ private void OnUnlockingWarhead(PlayerUnlockingWarheadButtonEventArgs ev)
+ {
+ if (ev.IsAllowed)
+ {
+ return;
+ }
+
+ foreach (var playerItem in ev.Player.Items)
+ {
+ //is keycard?
+ if (playerItem.Type > ItemType.KeycardO5) continue;
+ if (playerItem.Base is not KeycardItem keycardItem)
+ {
+ continue;
+ }
+
+ if (!AlphaWarheadActivationPanel.Instance.CheckPermissions(keycardItem, out _)) continue;
+ ev.IsAllowed = true;
+ Logger.Debug("Nuke can be unlocked");
+ return;
+ }
+ }
+
public override void Enable()
- {
+ {
Logger.Debug("starting...");
PlayerEvents.InteractingDoor += OnInteractingDoor;
+ PlayerEvents.InteractingGenerator += OnInteractingGenerator;
+ PlayerEvents.InteractingLocker += OnInteractingLocker;
+ PlayerEvents.UnlockingWarheadButton += OnUnlockingWarhead;
}
public override void Disable()
{
PlayerEvents.InteractingDoor -= OnInteractingDoor;
+ PlayerEvents.InteractingGenerator -= OnInteractingGenerator;
+ PlayerEvents.InteractingLocker -= OnInteractingLocker;
+ PlayerEvents.UnlockingWarheadButton -= OnUnlockingWarhead;
Logger.Debug("unloading...");
}
}
diff --git a/LogEvents/Class1.cs b/LogEvents/Class1.cs
new file mode 100644
index 0000000..1840a66
--- /dev/null
+++ b/LogEvents/Class1.cs
@@ -0,0 +1,31 @@
+using LabApi.Events.CustomHandlers;
+using LabApi.Features;
+using LabApi.Loader.Features.Plugins;
+
+namespace LogEvents
+{
+ internal class LogPlugin : Plugin
+ {
+ public override string Name { get; } = "LogPlugin";
+
+ public override string Description { get; } = "Example Plugin that logs (almost) all events.";
+
+ public override string Author { get; } = "Northwood";
+
+ public override Version Version { get; } = new Version(1, 0, 0, 0);
+
+ public override Version RequiredApiVersion { get; } = new Version(LabApiProperties.CompiledVersion);
+
+ public MyCustomEventsHandler Events { get; } = new();
+
+ public override void Enable()
+ {
+ CustomHandlersManager.RegisterEventsHandler(Events);
+ }
+
+ public override void Disable()
+ {
+ CustomHandlersManager.UnregisterEventsHandler(Events);
+ }
+ }
+}
\ No newline at end of file
diff --git a/LogEvents/LogEvents.cs b/LogEvents/LogEvents.cs
new file mode 100644
index 0000000..951a291
--- /dev/null
+++ b/LogEvents/LogEvents.cs
@@ -0,0 +1,1401 @@
+using LabApi.Events.Arguments.PlayerEvents;
+using LabApi.Events.Arguments.Scp0492Events;
+using LabApi.Events.Arguments.Scp049Events;
+using LabApi.Events.Arguments.Scp079Events;
+using LabApi.Events.Arguments.Scp096Events;
+using LabApi.Events.Arguments.Scp106Events;
+using LabApi.Events.Arguments.Scp173Events;
+using LabApi.Events.Arguments.Scp914Events;
+using LabApi.Events.Arguments.Scp939Events;
+using LabApi.Events.Arguments.ServerEvents;
+using LabApi.Events.Arguments.WarheadEvents;
+using LabApi.Events.CustomHandlers;
+using LabApi.Features.Console;
+
+namespace LogEvents;
+
+internal class MyCustomEventsHandler : CustomEventsHandler
+{
+ public override void OnPlayerActivatingGenerator(PlayerActivatingGeneratorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerActivatingGenerator)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerActivatedGenerator(PlayerActivatedGeneratorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerActivatedGenerator)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerUnlockingGenerator(PlayerUnlockingGeneratorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerUnlockingGenerator)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerUnlockedGenerator(PlayerUnlockedGeneratorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerUnlockedGenerator)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerUnlockingWarheadButton(PlayerUnlockingWarheadButtonEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerUnlockingWarheadButton)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerUnlockedWarheadButton(PlayerUnlockedWarheadButtonEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerUnlockedWarheadButton)} triggered by {ev.Player.UserId}");
+ }
+
+ //public override void OnPlayerAimingWeapon(PlayerAimingWeaponEventArgs ev)
+ //{
+ // Logger.Info($"{nameof(OnPlayerAimingWeapon)} triggered by {ev.Player.UserId}");
+ //}
+
+ public override void OnPlayerAimedWeapon(PlayerAimedWeaponEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerAimedWeapon)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerBanning(PlayerBanningEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerBanning)} triggered by {ev.Player?.UserId ?? "Unknown"}");
+ }
+
+ public override void OnPlayerBanned(PlayerBannedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerBanned)} triggered by {ev.Player?.UserId ?? "Unknown"}");
+ }
+
+ public override void OnPlayerCancellingUsingItem(PlayerCancellingUsingItemEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerCancellingUsingItem)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerCancelledUsingItem(PlayerCancelledUsingItemEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerCancelledUsingItem)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerChangingItem(PlayerChangingItemEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerChangingItem)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerChangedItem(PlayerChangedItemEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerChangedItem)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerChangingNickname(PlayerChangingNicknameEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerChangingNickname)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerChangedNickname(PlayerChangedNicknameEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerChangedNickname)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerChangingRadioRange(PlayerChangingRadioRangeEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerChangingRadioRange)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerChangedRadioRange(PlayerChangedRadioRangeEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerChangedRadioRange)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerChangingRole(PlayerChangingRoleEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerChangingRole)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerChangedRole(PlayerChangedRoleEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerChangedRole)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerChangedSpectator(PlayerChangedSpectatorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerChangedSpectator)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerClosingGenerator(PlayerClosingGeneratorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerClosingGenerator)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerClosedGenerator(PlayerClosedGeneratorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerClosedGenerator)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerCuffing(PlayerCuffingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerCuffing)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerCuffed(PlayerCuffedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerCuffed)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerDamagingShootingTarget(PlayerDamagingShootingTargetEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerDamagingShootingTarget)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerDamagedShootingTarget(PlayerDamagedShootingTargetEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerDamagedShootingTarget)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerDamagingWindow(PlayerDamagingWindowEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerDamagingWindow)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerDamagedWindow(PlayerDamagedWindowEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerDamagedWindow)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerDeactivatingGenerator(PlayerDeactivatingGeneratorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerDeactivatingGenerator)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerDeactivatedGenerator(PlayerDeactivatedGeneratorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerDeactivatedGenerator)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerDying(PlayerDyingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerDying)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerDeath(PlayerDeathEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerDeath)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerDroppingAmmo(PlayerDroppingAmmoEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerDroppingAmmo)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerDroppedAmmo(PlayerDroppedAmmoEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerDroppedAmmo)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerDroppingItem(PlayerDroppingItemEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerDroppingItem)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerDroppedItem(PlayerDroppedItemEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerDroppedItem)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerDryFiringWeapon(PlayerDryFiringWeaponEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerDryFiringWeapon)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerDryFiredWeapon(PlayerDryFiredWeaponEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerDryFiredWeapon)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerEnteringPocketDimension(PlayerEnteringPocketDimensionEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerEnteringPocketDimension)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerEnteredPocketDimension(PlayerEnteredPocketDimensionEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerEnteredPocketDimension)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerEscaping(PlayerEscapingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerEscaping)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerEscaped(PlayerEscapedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerEscaped)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerFlippingCoin(PlayerFlippingCoinEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerFlippingCoin)} triggered by {ev.Player.UserId}. Item Serial {ev.Item.Serial}");
+ }
+
+ public override void OnPlayerFlippedCoin(PlayerFlippedCoinEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerFlippedCoin)} triggered by {ev.Player.UserId}. Item Serial {ev.Item.Serial}");
+ }
+
+ public override void OnPlayerGroupChanging(PlayerGroupChangingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerGroupChanging)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerGroupChanged(PlayerGroupChangedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerGroupChanged)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerHurting(PlayerHurtingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerHurting)} triggered by {ev.Player?.UserId ?? "Unknown"}");
+ }
+
+ public override void OnPlayerHurt(PlayerHurtEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerHurt)} triggered by {ev.Player?.UserId ?? "Unknown"}");
+ }
+
+ public override void OnPlayerIdlingTesla(PlayerIdlingTeslaEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerIdlingTesla)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerIdledTesla(PlayerIdledTeslaEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerIdledTesla)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerInteractingDoor(PlayerInteractingDoorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerInteractingDoor)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerInteractedDoor(PlayerInteractedDoorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerInteractedDoor)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerInteractingElevator(PlayerInteractingElevatorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerInteractingElevator)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerInteractedElevator(PlayerInteractedElevatorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerInteractedElevator)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerInteractingGenerator(PlayerInteractingGeneratorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerInteractingGenerator)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerInteractedGenerator(PlayerInteractedGeneratorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerInteractedGenerator)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerInteractingLocker(PlayerInteractingLockerEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerInteractingLocker)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerInteractedLocker(PlayerInteractedLockerEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerInteractedLocker)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerInteractingScp330(PlayerInteractingScp330EventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerInteractingScp330)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerInteractedScp330(PlayerInteractedScp330EventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerInteractedScp330)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerInteractingShootingTarget(PlayerInteractingShootingTargetEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerInteractingShootingTarget)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerInteractedShootingTarget(PlayerInteractedShootingTargetEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerInteractedShootingTarget)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerInteractedToy(PlayerInteractedToyEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerInteractedToy)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerJoined(PlayerJoinedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerJoined)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerLeft(PlayerLeftEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerLeft)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerKicking(PlayerKickingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerKicking)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerKicked(PlayerKickedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerKicked)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerLeavingPocketDimension(PlayerLeavingPocketDimensionEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerLeavingPocketDimension)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerLeftPocketDimension(PlayerLeftPocketDimensionEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerLeftPocketDimension)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerMuting(PlayerMutingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerMuting)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerMuted(PlayerMutedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerMuted)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerOpeningGenerator(PlayerOpeningGeneratorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerOpeningGenerator)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerOpenedGenerator(PlayerOpenedGeneratorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerOpenedGenerator)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerPickingUpAmmo(PlayerPickingUpAmmoEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerPickingUpAmmo)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerPickedUpAmmo(PlayerPickedUpAmmoEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerPickedUpAmmo)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerPickingUpArmor(PlayerPickingUpArmorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerPickingUpArmor)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerPickedUpArmor(PlayerPickedUpArmorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerPickedUpArmor)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerPickingUpItem(PlayerPickingUpItemEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerPickingUpItem)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerPickedUpItem(PlayerPickedUpItemEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerPickedUpItem)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerPickingUpScp330(PlayerPickingUpScp330EventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerPickingUpScp330)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerPickedUpScp330(PlayerPickedUpScp330EventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerPickedUpScp330)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerPlacingBlood(PlayerPlacingBloodEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerPlacingBlood)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerPlacedBlood(PlayerPlacedBloodEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerPlacedBlood)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerPlacingBulletHole(PlayerPlacingBulletHoleEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerPlacingBulletHole)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerPlacedBulletHole(PlayerPlacedBulletHoleEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerPlacedBulletHole)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerPreAuthenticating(PlayerPreAuthenticatingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerPreAuthenticating)} triggered by {ev.UserId}");
+ }
+
+ public override void OnPlayerPreAuthenticated(PlayerPreAuthenticatedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerPreAuthenticated)} triggered by {ev.UserId}");
+ }
+
+ public override void OnPlayerUpdatingEffect(PlayerEffectUpdatingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerUpdatingEffect)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerUpdatedEffect(PlayerEffectUpdatedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerUpdatedEffect)} triggered by {ev.Player.UserId}");
+ }
+
+ //public override void OnPlayerReceivingVoiceMessage(PlayerReceivingVoiceMessageEventArgs ev)
+ //{
+ // Logger.Info($"{nameof(OnPlayerReceivingVoiceMessage)} triggered by {ev.Player.UserId}");
+ //}
+
+ public override void OnPlayerReloadingWeapon(PlayerReloadingWeaponEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerReloadingWeapon)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerReloadedWeapon(PlayerReloadedWeaponEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerReloadedWeapon)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerReportingCheater(PlayerReportingCheaterEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerReportingCheater)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerReportedCheater(PlayerReportedCheaterEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerReportedCheater)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerReportingPlayer(PlayerReportingPlayerEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerReportingPlayer)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerReportedPlayer(PlayerReportedPlayerEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerReportedPlayer)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerReceivingLoadout(PlayerReceivingLoadoutEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerReceivingLoadout)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerReceivedLoadout(PlayerReceivedLoadoutEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerReceivedLoadout)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerSearchingAmmo(PlayerSearchingAmmoEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerSearchingAmmo)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerSearchedAmmo(PlayerSearchedAmmoEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerSearchedAmmo)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerSearchingArmor(PlayerSearchingArmorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerSearchingArmor)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerSearchedArmor(PlayerSearchedArmorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerSearchedArmor)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerSearchingPickup(PlayerSearchingPickupEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerSearchingPickup)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerSearchedPickup(PlayerSearchedPickupEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerSearchedPickup)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerSearchingToy(PlayerSearchingToyEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerSearchingToy)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerSearchedToy(PlayerSearchedToyEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerSearchedToy)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerSearchToyAborted(PlayerSearchToyAbortedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerSearchToyAborted)} triggered by {ev.Player.UserId}");
+ }
+
+ //public override void OnPlayerSendingVoiceMessage(PlayerSendingVoiceMessageEventArgs ev)
+ //{
+ // Logger.Info($"{nameof(OnPlayerSendingVoiceMessage)} triggered by {ev.Player.UserId}");
+ //}
+
+ public override void OnPlayerShootingWeapon(PlayerShootingWeaponEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerShootingWeapon)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerShotWeapon(PlayerShotWeaponEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerShotWeapon)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerSpawning(PlayerSpawningEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerSpawning)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerSpawned(PlayerSpawnedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerSpawned)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerSpawningRagdoll(PlayerSpawningRagdollEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerSpawningRagdoll)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerSpawnedRagdoll(PlayerSpawnedRagdollEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerSpawnedRagdoll)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerThrowingItem(PlayerThrowingItemEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerThrowingItem)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerThrewItem(PlayerThrewItemEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerThrewItem)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerThrowingProjectile(PlayerThrowingProjectileEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerThrowingProjectile)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerThrewProjectile(PlayerThrewProjectileEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerThrewProjectile)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerTogglingFlashlight(PlayerTogglingFlashlightEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerTogglingFlashlight)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerToggledFlashlight(PlayerToggledFlashlightEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerToggledFlashlight)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerTogglingWeaponFlashlight(PlayerTogglingWeaponFlashlightEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerTogglingWeaponFlashlight)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerToggledWeaponFlashlight(PlayerToggledWeaponFlashlightEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerToggledWeaponFlashlight)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerTogglingRadio(PlayerTogglingRadioEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerTogglingRadio)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerToggledRadio(PlayerToggledRadioEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerToggledRadio)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerTriggeringTesla(PlayerTriggeringTeslaEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerTriggeringTesla)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerTriggeredTesla(PlayerTriggeredTeslaEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerTriggeredTesla)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerUncuffing(PlayerUncuffingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerUncuffing)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerUncuffed(PlayerUncuffedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerUncuffed)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerUnloadingWeapon(PlayerUnloadingWeaponEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerUnloadingWeapon)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerUnloadedWeapon(PlayerUnloadedWeaponEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerUnloadedWeapon)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerUnmuting(PlayerUnmutingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerUnmuting)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerUnmuted(PlayerUnmutedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerUnmuted)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerUsingIntercom(PlayerUsingIntercomEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerUsingIntercom)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerUsedIntercom(PlayerUsedIntercomEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerUsedIntercom)} triggered by {ev.Player?.UserId ?? "Unknown"}");
+ }
+
+ public override void OnPlayerUsingItem(PlayerUsingItemEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerUsingItem)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerUsedItem(PlayerUsedItemEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerUsedItem)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerTogglingNoclip(PlayerTogglingNoclipEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerTogglingNoclip)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerToggledNoclip(PlayerToggledNoclipEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerToggledNoclip)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerEnteringHazard(PlayerEnteringHazardEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerEnteringHazard)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerEnteredHazard(PlayerEnteredHazardEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerEnteredHazard)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerStayingInHazard(PlayersStayingInHazardEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerStayingInHazard)} triggered by {string.Join(", ", ev.AffectedPlayers.Select(x => x.UserId))}");
+ }
+
+ public override void OnPlayerLeavingHazard(PlayerLeavingHazardEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerLeavingHazard)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnPlayerLeftHazard(PlayerLeftHazardEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnPlayerLeftHazard)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp049StartingResurrection(Scp049StartingResurrectionEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp049StartingResurrection)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp049ResurrectingBody(Scp049ResurrectingBodyEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp049ResurrectingBody)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp049ResurrectedBody(Scp049ResurrectedBodyEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp049ResurrectedBody)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp049UsingDoctorsCall(Scp049UsingDoctorsCallEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp049UsingDoctorsCall)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp049UsedDoctorsCall(Scp049UsedDoctorsCallEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp049UsedDoctorsCall)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp049UsingSense(Scp049UsingSenseEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp049UsingSense)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp049UsedSense(Scp049UsedSenseEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp049UsedSense)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp0492StartingConsumingCorpse(Scp0492StartingConsumingCorpseEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp0492StartingConsumingCorpse)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp0492StartedConsumingCorpse(Scp0492StartedConsumingCorpseEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp0492StartedConsumingCorpse)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp0492ConsumingCorpse(Scp0492ConsumingCorpseEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp0492ConsumingCorpse)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp0492ConsumedCorpse(Scp0492ConsumedCorpseEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp0492ConsumedCorpse)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp079BlackingOutRoom(Scp079BlackingOutRoomEventsArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp079BlackingOutRoom)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp079BlackedOutRoom(Scp079BlackedOutRoomEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp079BlackedOutRoom)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp079BlackingOutZone(Scp079BlackingOutZoneEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp079BlackingOutZone)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp079BlackedOutZone(Scp079BlackedOutZoneEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp079BlackedOutZone)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp079ChangingCamera(Scp079ChangingCameraEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp079ChangingCamera)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp079ChangedCamera(Scp079ChangedCameraEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp079ChangedCamera)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp079CancellingRoomLockdown(Scp079CancellingRoomLockdownEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp079CancellingRoomLockdown)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp079CancelledRoomLockdown(Scp079CancelledRoomLockdownEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp079CancelledRoomLockdown)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp079GainingExperience(Scp079GainingExperienceEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp079GainingExperience)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp079GainedExperience(Scp079GainedExperienceEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp079GainedExperience)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp079LevelingUp(Scp079LevelingUpEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp079LevelingUp)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp079LeveledUp(Scp079LeveledUpEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp079LeveledUp)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp079LockingDoor(Scp079LockingDoorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp079LockingDoor)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp079LockedDoor(Scp079LockedDoorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp079LockedDoor)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp079LockingDownRoom(Scp079LockingDownRoomEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp079LockingDownRoom)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp079LockedDownRoom(Scp079LockedDownRoomEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp079LockedDownRoom)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp079Recontaining(Scp079RecontainingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp079Recontaining)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp079Recontained(Scp079RecontainedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp079Recontained)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp079UnlockingDoor(Scp079UnlockingDoorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp079UnlockingDoor)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp079UnlockedDoor(Scp079UnlockedDoorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp079UnlockedDoor)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp079UsingTesla(Scp079UsingTeslaEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp079UsingTesla)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp079UsedTesla(Scp079UsedTeslaEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp079UsedTesla)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp096AddingTarget(Scp096AddingTargetEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp096AddingTarget)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp096AddedTarget(Scp096AddedTargetEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp096AddedTarget)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp096ChangingState(Scp096ChangingStateEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp096ChangingState)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp096ChangedState(Scp096ChangedStateEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp096ChangedState)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp096Charging(Scp096ChargingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp096Charging)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp096Charged(Scp096ChargedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp096Charged)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp096Enraging(Scp096EnragingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp096Enraging)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp096Enraged(Scp096EnragedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp096Enraged)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp096PryingGate(Scp096PryingGateEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp096PryingGate)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp096PriedGate(Scp096PriedGateEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp096PriedGate)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp096StartCrying(Scp096StartCryingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp096StartCrying)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp096StartedCrying(Scp096StartedCryingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp096StartedCrying)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp096TryingNotToCry(Scp096TryingNotToCryEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp096TryingNotToCry)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp096TriedNotToCry(Scp096TriedNotToCryEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp096TriedNotToCry)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp106ChangingStalkMode(Scp106ChangingStalkModeEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp106ChangingStalkMode)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp106ChangedStalkMode(Scp106ChangedStalkModeEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp106ChangedStalkMode)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp106ChangingVigor(Scp106ChangingVigorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp106ChangingVigor)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp106ChangedVigor(Scp106ChangedVigorEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp106ChangedVigor)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp106UsedHunterAtlas(Scp106UsedHunterAtlasEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp106UsedHunterAtlas)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp106UsingHunterAtlas(Scp106UsingHunterAtlasEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp106UsingHunterAtlas)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp106ChangingSubmersionStatus(Scp106ChangingSubmersionStatusEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp106ChangingSubmersionStatus)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp106ChangedSubmersionStatus(Scp106ChangedSubmersionStatusEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp106ChangedSubmersionStatus)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp106TeleportingPlayer(Scp106TeleportingPlayerEvent ev)
+ {
+ Logger.Info($"{nameof(OnScp106TeleportingPlayer)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp106TeleportedPlayer(Scp106TeleportedPlayerEvent ev)
+ {
+ Logger.Info($"{nameof(OnScp106TeleportedPlayer)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp173BreakneckSpeedChanging(Scp173BreakneckSpeedChangingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp173BreakneckSpeedChanging)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp173BreakneckSpeedChanged(Scp173BreakneckSpeedChangedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp173BreakneckSpeedChanged)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp173AddingObserver(Scp173AddingObserverEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp173AddingObserver)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp173AddedObserver(Scp173AddedObserverEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp173AddedObserver)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp173RemovingObserver(Scp173RemovingObserverEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp173RemovingObserver)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp173RemovedObserver(Scp173RemovedObserverEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp173RemovedObserver)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp173CreatingTantrum(Scp173CreatingTantrumEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp173CreatingTantrum)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp173CreatedTantrum(Scp173CreatedTantrumEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp173CreatedTantrum)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp173PlayingSound(Scp173PlayingSoundEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp173PlayingSound)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp173PlayedSound(Scp173PlayedSoundEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp173PlayedSound)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp914Activating(Scp914ActivatingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp914Activating)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp914Activated(Scp914ActivatedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp914Activated)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp914KnobChanging(Scp914KnobChangingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp914KnobChanging)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp914KnobChanged(Scp914KnobChangedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp914KnobChanged)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp914ProcessingPickup(Scp914ProcessingPickupEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp914ProcessingPickup)} triggered");
+ }
+
+ public override void OnScp914ProcessedPickup(Scp914ProcessedPickupEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp914ProcessedPickup)} triggered");
+ }
+
+ public override void OnScp914ProcessingPlayer(Scp914ProcessingPlayerEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp914ProcessingPlayer)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp914ProcessedPlayer(Scp914ProcessedPlayerEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp914ProcessedPlayer)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp914ProcessingInventoryItem(Scp914ProcessingInventoryItemEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp914ProcessingInventoryItem)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp914ProcessedInventoryItem(Scp914ProcessedInventoryItemEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp914ProcessedInventoryItem)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp939Attacking(Scp939AttackingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp939Attacking)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp939Attacked(Scp939AttackedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp939Attacked)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp939CreatingAmnesticCloud(Scp939CreatingAmnesticCloudEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp939CreatingAmnesticCloud)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp939CreatedAmnesticCloud(Scp939CreatedAmnesticCloudEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp939CreatedAmnesticCloud)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp939Lunging(Scp939LungingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp939Lunging)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnScp939Lunged(Scp939LungedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnScp939Lunged)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnServerWaitingForPlayers()
+ {
+ Logger.Info($"{nameof(OnServerWaitingForPlayers)} triggered");
+ }
+
+ public override void OnServerRoundRestarted()
+ {
+ Logger.Info($"{nameof(OnServerRoundRestarted)} triggered");
+ }
+
+ public override void OnServerRoundEnding(RoundEndingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerRoundEnding)} triggered");
+ }
+
+ public override void OnServerRoundEnded(RoundEndedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerRoundEnded)} triggered");
+ }
+
+ public override void OnServerRoundStarting(RoundStartingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerRoundStarting)} triggered");
+ }
+
+ public override void OnServerRoundStarted()
+ {
+ Logger.Info($"{nameof(OnServerRoundStarted)} triggered");
+ }
+
+ public override void OnServerBanIssuing(BanIssuingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerBanIssuing)} triggered");
+ }
+
+ public override void OnServerBanIssued(BanIssuedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerBanIssued)} triggered");
+ }
+
+ public override void OnServerBanRevoking(BanRevokingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerBanRevoking)} triggered");
+ }
+
+ public override void OnServerBanRevoked(BanRevokedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerBanRevoked)} triggered");
+ }
+
+ public override void OnServerBanUpdating(BanUpdatingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerBanUpdating)} triggered");
+ }
+
+ public override void OnServerBanUpdated(BanUpdatedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerBanUpdated)} triggered");
+ }
+
+ public override void OnServerCommandExecuting(CommandExecutingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerCommandExecuting)} triggered");
+ }
+
+ public override void OnServerCommandExecuted(CommandExecutedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerCommandExecuted)} triggered");
+ }
+
+ public override void OnServerWaveRespawning(WaveRespawningEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerWaveRespawning)} triggered");
+ }
+
+ public override void OnServerWaveRespawned(WaveRespawnedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerWaveRespawned)} triggered");
+ }
+
+ public override void OnServerWaveTeamSelecting(WaveTeamSelectingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerWaveTeamSelecting)} triggered");
+ }
+
+ public override void OnServerWaveTeamSelected(WaveTeamSelectedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerWaveTeamSelected)} triggered");
+ }
+
+ public override void OnServerLczDecontaminationAnnounced(LczDecontaminationAnnouncedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerLczDecontaminationAnnounced)} triggered");
+ }
+
+ public override void OnServerLczDecontaminationStarting(LczDecontaminationStartingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerLczDecontaminationStarting)} triggered");
+ }
+
+ public override void OnServerLczDecontaminationStarted()
+ {
+ Logger.Info($"{nameof(OnServerLczDecontaminationStarted)} triggered");
+ }
+
+ public override void OnServerMapGenerating(MapGeneratingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerMapGenerating)} triggered");
+ }
+
+ public override void OnServerMapGenerated(MapGeneratedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerMapGenerated)} triggered");
+ }
+
+ public override void OnServerPickupCreated(PickupCreatedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerPickupCreated)} triggered");
+ }
+
+ public override void OnServerPickupDestroyed(PickupDestroyedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerPickupDestroyed)} triggered");
+ }
+
+ public override void OnServerSendingAdminChat(SendingAdminChatEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerSendingAdminChat)} triggered by {ev.Sender.LogName}");
+ }
+
+ public override void OnServerSentAdminChat(SentAdminChatEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerSentAdminChat)} triggered by {ev.Sender.LogName}");
+ }
+
+ public override void OnServerItemSpawning(ItemSpawningEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerItemSpawning)} triggered");
+ }
+
+ public override void OnServerItemSpawned(ItemSpawnedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerItemSpawned)} triggered");
+ }
+
+ public override void OnServerCassieAnnouncing(CassieAnnouncingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerCassieAnnouncing)} triggered");
+ }
+
+ public override void OnServerCassieAnnounced(CassieAnnouncedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerCassieAnnounced)} triggered");
+ }
+
+ public override void OnServerCassieQueuingScpTermination(CassieQueuingScpTerminationEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerCassieQueuingScpTermination)} triggered");
+ }
+
+ public override void OnServerCassieQueuedScpTermination(CassieQueuedScpTerminationEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerCassieQueuedScpTermination)} triggered");
+ }
+
+ public override void OnServerProjectileExploding(ProjectileExplodingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerProjectileExploding)} triggered");
+ }
+
+ public override void OnServerProjectileExploded(ProjectileExplodedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerProjectileExploded)} triggered");
+ }
+
+ public override void OnServerExplosionSpawning(ExplosionSpawningEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerExplosionSpawning)} triggered");
+ }
+
+ public override void OnServerExplosionSpawned(ExplosionSpawnedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerExplosionSpawned)} triggered");
+ }
+
+ public override void OnServerGeneratorActivating(GeneratorActivatingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerGeneratorActivating)} triggered");
+ }
+
+ public override void OnServerGeneratorActivated(GeneratorActivatedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnServerGeneratorActivated)} triggered");
+ }
+
+ public override void OnWarheadStarting(WarheadStartingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnWarheadStarting)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnWarheadStarted(WarheadStartedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnWarheadStarted)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnWarheadStopping(WarheadStoppingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnWarheadStopping)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnWarheadStopped(WarheadStoppedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnWarheadStopped)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnWarheadDetonating(WarheadDetonatingEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnWarheadDetonating)} triggered by {ev.Player.UserId}");
+ }
+
+ public override void OnWarheadDetonated(WarheadDetonatedEventArgs ev)
+ {
+ Logger.Info($"{nameof(OnWarheadDetonated)} triggered by {ev.Player.UserId}");
+ }
+
+
+ #region Excluded Events
+
+ // The following events spam the console and are therefore excluded from this example:
+
+ //public override void OnPlayerValidatedVisibility(PlayerValidatedVisibilityEventArgs ev)
+ //{
+ // Logger.Info($"{nameof(OnPlayerValidatedVisibility)} triggered by {ev.Player.UserId}");
+ //}
+ //
+ // public override void OnPlayerUsingRadio(PlayerUsingRadioEventArgs ev)
+ // {
+ // Logger.Info($"{nameof(OnPlayerUsingRadio)} triggered by {ev.Player.UserId}");
+ // }
+ //
+ // public override void OnPlayerUsedRadio(PlayerUsedRadioEventArgs ev)
+ // {
+ // Logger.Info($"{nameof(OnPlayerUsedRadio)} triggered by {ev.Player.UserId}");
+ // }
+
+ #endregion
+
+}
\ No newline at end of file
diff --git a/LogEvents/LogEvents.csproj b/LogEvents/LogEvents.csproj
new file mode 100644
index 0000000..3b316ca
--- /dev/null
+++ b/LogEvents/LogEvents.csproj
@@ -0,0 +1,43 @@
+
+
+
+ net48
+ enable
+ disable
+ 10
+
+
+
+ true
+ true
+ full
+
+
+
+ true
+ false
+ none
+
+
+
+
+ ..\..\.local\share\Steam\steamapps\common\SCP Secret Laboratory Dedicated Server\SCPSL_Data\Managed\Assembly-CSharp.dll
+
+
+ ..\..\.local\share\Steam\steamapps\common\SCP Secret Laboratory Dedicated Server\SCPSL_Data\Managed\Mirror.dll
+
+
+ ..\..\.local\share\Steam\steamapps\common\SCP Secret Laboratory Dedicated Server\SCPSL_Data\Managed\UnityEngine.CoreModule.dll
+
+
+ ..\..\.local\share\Steam\steamapps\common\SCP Secret Laboratory Dedicated Server\SCPSL_Data\Managed\UnityEngine.Physics2DModule.dll
+
+
+ ..\..\.local\share\Steam\steamapps\common\SCP Secret Laboratory Dedicated Server\SCPSL_Data\Managed\UnityEngine.PhysicsModule.dll
+
+
+
+
+
+
+
diff --git a/SCPTeamHint/SCPTeamHint.cs b/SCPTeamHint/SCPTeamHint.cs
new file mode 100644
index 0000000..afcef90
--- /dev/null
+++ b/SCPTeamHint/SCPTeamHint.cs
@@ -0,0 +1,96 @@
+using HintServiceMeow.Core.Enum;
+using HintServiceMeow.Core.Models.Hints;
+using HintServiceMeow.Core.Utilities;
+using LabApi.Events.Arguments.PlayerEvents;
+using LabApi.Events.Handlers;
+using LabApi.Features;
+using LabApi.Features.Console;
+using LabApi.Features.Wrappers;
+using PlayerRoles;
+using PlayerRoles.PlayableScps.Scp096;
+using Timer = System.Timers.Timer;
+
+namespace SCPTeamHint
+{
+ public class Plugin : LabApi.Loader.Features.Plugins.Plugin
+ {
+ public override string Name => "SCPTeamHint";
+ public override string Author => "HoherGeist, Code002Lover";
+ public override Version Version { get; } = new(1, 0, 0);
+ public override string Description => "Displays information about your SCP Teammates";
+ public override Version RequiredApiVersion { get; } = new(LabApiProperties.CompiledVersion);
+
+ private Timer _timer;
+ private readonly Dictionary _spectatorHints = new();
+
+ public override void Enable()
+ {
+ Logger.Debug("Apple juice");
+ PlayerEvents.Joined += OnJoin;
+
+ _timer = new Timer(1000);
+ _timer.Elapsed += (_,_) => UpdateHints();
+ _timer.Start();
+ }
+
+ public override void Disable()
+ {
+ PlayerEvents.Joined -= OnJoin;
+ _timer.Stop();
+ }
+
+ private void UpdateHints()
+ {
+ var hintTexts = new List();
+
+ foreach (var player in Player.List)
+ {
+ if (!player.IsSCP) continue;
+
+ var text = $"{player.RoleBase.RoleName} | {player.HumeShield} | {player.Health} | {player.Zone}";
+
+ if (player.RoleBase is Scp096Role scp)
+ {
+ text += "\n";
+
+ scp.SubroutineModule.TryGetSubroutine(out Scp096TargetsTracker tracker);
+
+ text += $"Targets: {tracker.Targets.Count}";
+ }
+
+ hintTexts.Add(text);
+ }
+
+ foreach (var player in Player.List.Where(x=>!x.IsHost))
+ {
+ Logger.Debug($"Updating hint for {player.DisplayName}");
+ UpdateHint(player, string.Join("\n", hintTexts));
+ }
+ }
+
+ private void UpdateHint(Player player, string hintText)
+ {
+ var hint = _spectatorHints[player];
+
+ Logger.Debug($"Player {player.Nickname} is on team {player.RoleBase.Team} | hide: {player.RoleBase.Team != Team.SCPs}");
+ hint.Hide = player.RoleBase.Team != Team.SCPs;
+
+ hint.Text = hintText;
+ }
+
+ private void OnJoin(PlayerJoinedEventArgs ev)
+ {
+
+ var hint = new Hint
+ {
+ Text = "Apfelsaft", Alignment = HintAlignment.Left, YCoordinate = 300, Hide = true
+ };
+
+ var playerDisplay = PlayerDisplay.Get(ev.Player);
+ playerDisplay.AddHint(hint);
+
+ _spectatorHints[ev.Player] = hint;
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/SCPTeamHint/SCPTeamHint.csproj b/SCPTeamHint/SCPTeamHint.csproj
new file mode 100644
index 0000000..04d243f
--- /dev/null
+++ b/SCPTeamHint/SCPTeamHint.csproj
@@ -0,0 +1,46 @@
+
+
+
+ net48
+ enable
+ disable
+ 10
+
+
+
+ true
+ true
+ full
+
+
+
+ true
+ false
+ none
+
+
+
+
+ ..\dependencies\0Harmony.dll
+
+
+ ..\..\.local\share\Steam\steamapps\common\SCP Secret Laboratory Dedicated Server\SCPSL_Data\Managed\Assembly-CSharp.dll
+
+
+ ..\dependencies\HintServiceMeow-LabAPI.dll
+
+
+ ..\..\.local\share\Steam\steamapps\common\SCP Secret Laboratory Dedicated Server\SCPSL_Data\Managed\Mirror.dll
+
+
+ ..\..\.local\share\Steam\steamapps\common\SCP Secret Laboratory Dedicated Server\SCPSL_Data\Managed\Pooling.dll
+
+
+ ..\..\.local\share\Steam\steamapps\common\SCP Secret Laboratory Dedicated Server\SCPSL_Data\Managed\UnityEngine.CoreModule.dll
+
+
+
+
+
+
+
diff --git a/SecretPluginLaboratories.sln b/SecretPluginLaboratories.sln
index 474eeed..e523ddb 100644
--- a/SecretPluginLaboratories.sln
+++ b/SecretPluginLaboratories.sln
@@ -6,7 +6,11 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KeycardButModern", "Keycard
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VisibleSpectators", "VisibleSpectators\VisibleSpectators.csproj", "{F320856D-6340-4DD5-89F7-EE44611DF8E8}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SCPList", "SCPList\SCPList.csproj", "{2EFB3C10-A917-4840-97CD-B36733D666DE}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SensitiveGrenades", "SensitiveGrenades\SensitiveGrenades.csproj", "{2EFB3C10-A917-4840-97CD-B36733D666DE}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SCPTeamHint", "SCPTeamHint\SCPTeamHint.csproj", "{01A046C2-9083-4BDB-AC45-BA24966650D7}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LogEvents", "LogEvents\LogEvents.csproj", "{2C9FD537-231C-4486-8C1B-6359E5120D19}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -30,5 +34,13 @@ Global
{2EFB3C10-A917-4840-97CD-B36733D666DE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2EFB3C10-A917-4840-97CD-B36733D666DE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2EFB3C10-A917-4840-97CD-B36733D666DE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {01A046C2-9083-4BDB-AC45-BA24966650D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {01A046C2-9083-4BDB-AC45-BA24966650D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {01A046C2-9083-4BDB-AC45-BA24966650D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {01A046C2-9083-4BDB-AC45-BA24966650D7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2C9FD537-231C-4486-8C1B-6359E5120D19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2C9FD537-231C-4486-8C1B-6359E5120D19}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2C9FD537-231C-4486-8C1B-6359E5120D19}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2C9FD537-231C-4486-8C1B-6359E5120D19}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
diff --git a/SensitiveGrenades/SensitiveGrenades.cs b/SensitiveGrenades/SensitiveGrenades.cs
new file mode 100644
index 0000000..d029a2c
--- /dev/null
+++ b/SensitiveGrenades/SensitiveGrenades.cs
@@ -0,0 +1,53 @@
+using InventorySystem.Items.Pickups;
+using LabApi.Events.Arguments.PlayerEvents;
+using LabApi.Events.Handlers;
+using LabApi.Features;
+using LabApi.Features.Wrappers;
+using LabApi.Loader.Features.Plugins;
+using UnityEngine;
+using Logger = LabApi.Features.Console.Logger;
+using TimedGrenadePickup = InventorySystem.Items.ThrowableProjectiles.TimedGrenadePickup;
+
+namespace SensitiveGrenades
+{
+ public class SensitiveGrenades : Plugin
+ {
+ public override string Name => "SensitiveGrenades";
+ public override string Author => "Code002Lover";
+ public override Version Version { get; } = new(1, 0, 0);
+ public override string Description => "Shoot grenades to blow them up!";
+ public override Version RequiredApiVersion { get; } = new(LabApiProperties.CompiledVersion);
+
+ public override void Enable()
+ {
+ Logger.Debug("starting...");
+
+ PlayerEvents.PlacedBulletHole += ShotWeapon;
+ }
+
+ private static void ShotWeapon(PlayerPlacedBulletHoleEventArgs ev)
+ {
+ var direction = (ev.HitPosition - ev.RaycastStart).normalized;
+ var distance = Vector3.Distance(ev.RaycastStart, ev.HitPosition);
+
+ var hits = Physics.RaycastAll(ev.RaycastStart, direction, distance);
+ foreach (var hit in hits)
+ {
+ var itemPickup = hit.collider.GetComponent();
+
+ var grenade = itemPickup as TimedGrenadePickup;
+
+ if (!grenade) continue;
+
+ itemPickup.DestroySelf();
+ TimedGrenadeProjectile.SpawnActive(itemPickup.Position, itemPickup.Info.ItemId, ev.Player);
+ break;
+ }
+ }
+
+ public override void Disable()
+ {
+ Logger.Debug("unloading...");
+ }
+ }
+}
\ No newline at end of file
diff --git a/SensitiveGrenades/SensitiveGrenades.csproj b/SensitiveGrenades/SensitiveGrenades.csproj
new file mode 100644
index 0000000..2d5f9af
--- /dev/null
+++ b/SensitiveGrenades/SensitiveGrenades.csproj
@@ -0,0 +1,44 @@
+
+
+
+ net48
+ enable
+ disable
+ 10
+ SensitiveGrenades
+
+
+
+ true
+ true
+ full
+
+
+
+ true
+ false
+ none
+
+
+
+
+ ..\..\.local\share\Steam\steamapps\common\SCP Secret Laboratory Dedicated Server\SCPSL_Data\Managed\Assembly-CSharp.dll
+
+
+ ..\..\.local\share\Steam\steamapps\common\SCP Secret Laboratory Dedicated Server\SCPSL_Data\Managed\Mirror.dll
+
+
+ ..\..\.local\share\Steam\steamapps\common\SCP Secret Laboratory Dedicated Server\SCPSL_Data\Managed\UnityEngine.CoreModule.dll
+
+
+ ..\..\.local\share\Steam\steamapps\common\SCP Secret Laboratory Dedicated Server\SCPSL_Data\Managed\UnityEngine.Physics2DModule.dll
+
+
+ ..\..\.local\share\Steam\steamapps\common\SCP Secret Laboratory Dedicated Server\SCPSL_Data\Managed\UnityEngine.PhysicsModule.dll
+
+
+
+
+
+
+