61 lines
1.7 KiB
C#
61 lines
1.7 KiB
C#
using LabApi.Events.Arguments.PlayerEvents;
|
|
using LabApi.Events.Handlers;
|
|
using LabApi.Features;
|
|
using LabApi.Features.Console;
|
|
using LabApi.Features.Wrappers;
|
|
using LabApi.Loader.Features.Plugins;
|
|
using Mirror;
|
|
using PlayerRoles;
|
|
|
|
namespace CuffedFrenemies;
|
|
|
|
public class CuffedFrenemies : Plugin
|
|
{
|
|
public override string Name => "CuffedFrenemies";
|
|
public override string Author => "Code002Lover";
|
|
public override Version Version { get; } = new(1, 0, 0);
|
|
public override string Description => "Cuff your enemies";
|
|
public override Version RequiredApiVersion { get; } = new(LabApiProperties.CompiledVersion);
|
|
|
|
public override void Enable()
|
|
{
|
|
Logger.Debug("Loading");
|
|
PlayerEvents.Cuffed += OnCuff;
|
|
}
|
|
|
|
public override void Disable()
|
|
{
|
|
PlayerEvents.Cuffed -= OnCuff;
|
|
}
|
|
|
|
private static void OnCuff(PlayerCuffedEventArgs ev)
|
|
{
|
|
if (ev.Target.Team is Team.ClassD or Team.Scientists) return;
|
|
|
|
if (ev.Target.Team == ev.Player.Team)
|
|
{
|
|
Logger.Debug("Same team, not changing role");
|
|
return;
|
|
}
|
|
|
|
if (ev.Target.Team is Team.SCPs or Team.Dead) return;
|
|
|
|
var newRole = ev.Target.Team == Team.ChaosInsurgency ? RoleTypeId.NtfPrivate : RoleTypeId.ChaosConscript;
|
|
Logger.Debug($"Setting role to {newRole}");
|
|
var newItems = new List<Item>();
|
|
ev.Target.Items.CopyTo(newItems);
|
|
newItems.Reverse();
|
|
|
|
var newPos = ev.Target.Position;
|
|
|
|
ev.Target.Inventory.UserInventory.Items.Clear();
|
|
|
|
ev.Target.SetRole(newRole);
|
|
ev.Target.ClearItems();
|
|
|
|
foreach (var newItem in newItems) ev.Target.Inventory.UserInventory.Items.Add(newItem.Serial, newItem.Base);
|
|
|
|
ev.Target.Position = newPos;
|
|
}
|
|
}
|