Files
CS2-SimpleAdmin/Modules/CS2-SimpleAdmin_ExampleModule — kopia/CS2-SimpleAdmin_CleanModule.cs
Dawid Bepierszcz 5a9367ae89 1.6.4a
- New give command
- Added `@css/permmute` flag to allow perm penalties
- Fixed mute when player silenced
- Added CleanModule - allow to clean weapons on ground
2024-10-19 03:52:33 +02:00

59 lines
2.0 KiB
C#

using CounterStrikeSharp.API;
using CounterStrikeSharp.API.Core;
using CounterStrikeSharp.API.Core.Attributes.Registration;
using CounterStrikeSharp.API.Core.Capabilities;
using CounterStrikeSharp.API.Modules.Admin;
using CounterStrikeSharp.API.Modules.Commands;
using CS2_SimpleAdminApi;
using Microsoft.Extensions.Logging;
namespace CS2_SimpleAdmin_CleanModule;
public class CS2_SimpleAdmin_CleanModule: BasePlugin
{
public override string ModuleName => "[CS2-SimpleAdmin] Clean module";
public override string ModuleDescription => "Module allows you to remove all weapons lying on the ground";
public override string ModuleVersion => "v1.0.0";
public override string ModuleAuthor => "daffyy";
private static ICS2_SimpleAdminApi? _sharedApi;
private readonly PluginCapability<ICS2_SimpleAdminApi> _pluginCapability = new("simpleadmin:api");
public override void OnAllPluginsLoaded(bool hotReload)
{
_sharedApi = _pluginCapability.Get();
if (_sharedApi == null)
{
Logger.LogError("CS2-SimpleAdmin SharedApi not found");
Unload(false);
}
}
[ConsoleCommand("css_clean")]
[ConsoleCommand("css_clear")]
[RequiresPermissions("@css/cheat")]
public void OnCleanCommand(CCSPlayerController? caller, CommandInfo commandInfo)
{
var weapons = Utilities.FindAllEntitiesByDesignerName<CCSWeaponBaseGun>("weapon_");
var defusers = Utilities.FindAllEntitiesByDesignerName<CSceneEntity>("item_cutters");
foreach (var weapon in weapons)
{
if (!weapon.IsValid || weapon.State != CSWeaponState_t.WEAPON_NOT_CARRIED)
continue;
weapon.Remove();
}
foreach (var defuser in defusers)
{
if (!defuser.IsValid || defuser.OwnerEntity.Value != null)
continue;
defuser.Remove();
}
_sharedApi?.LogCommand(caller, commandInfo);
}
}