mirror of
https://github.com/roflmuffin/CounterStrikeSharp.git
synced 2025-12-07 08:26:34 -08:00
59 lines
3.0 KiB
C#
59 lines
3.0 KiB
C#
using CounterStrikeSharp.API;
|
|
using CounterStrikeSharp.API.Core;
|
|
using CounterStrikeSharp.API.Core.Attributes;
|
|
using CounterStrikeSharp.API.Modules.Cvars;
|
|
using CounterStrikeSharp.API.Modules.Cvars.Validators;
|
|
|
|
namespace WithFakeConvars;
|
|
|
|
[MinimumApiVersion(175)]
|
|
public class WithFakeConvarsPlugin : BasePlugin
|
|
{
|
|
public override string ModuleName => "Example: With Fake Convars";
|
|
public override string ModuleVersion => "1.0.0";
|
|
public override string ModuleAuthor => "CounterStrikeSharp & Contributors";
|
|
public override string ModuleDescription => "A simple plugin that registers some console variables";
|
|
|
|
// FakeConVar is a class that can be used to create custom console variables.
|
|
// You can specify a name, description, default value, and custom validators.
|
|
public FakeConVar<bool> BoolCvar = new("example_bool", "An example boolean cvar", true);
|
|
|
|
// Range validator is an inbuilt validator that can be used to ensure that a value is within a certain range.
|
|
public FakeConVar<int> ExampleIntCvar = new("example_int", "An example integer cvar", 10, flags: ConVarFlags.FCVAR_NONE, new RangeValidator<int>(0, 100));
|
|
|
|
public FakeConVar<float> ExampleFloatCvar = new("example_float", "An example float cvar", 10, flags: ConVarFlags.FCVAR_NONE, new RangeValidator<float>(5, 20));
|
|
public FakeConVar<string> ExampleStringCvar = new("example_string", "An example string cvar", "default");
|
|
|
|
// Replicated, Cheat & Protected flags are supported.
|
|
public FakeConVar<float> ExamplePublicCvar = new("example_public_float", "An example public float cvar", 5,
|
|
ConVarFlags.FCVAR_REPLICATED);
|
|
|
|
// Can only be changed if sv_cheats is enabled.
|
|
public FakeConVar<float> ExampleCheatCvar = new("example_cheat_float", "An example cheat float cvar", 5,
|
|
ConVarFlags.FCVAR_CHEAT);
|
|
|
|
// Protected cvars do not output their value when queried.
|
|
public FakeConVar<float> ExampleProtectedCvar = new("example_protected_float", "An example cheat float cvar", 5,
|
|
ConVarFlags.FCVAR_PROTECTED);
|
|
|
|
// You can create your own custom validators by implementing the IValidator interface.
|
|
public FakeConVar<int> ExampleEvenNumberCvar = new("example_even_number", "An example even number cvar", 0, flags: ConVarFlags.FCVAR_NONE, new EvenNumberValidator());
|
|
|
|
public FakeConVar<int> RequiresRestartCvar = new("example_requires_restart", "A cvar that requires a restart when changed");
|
|
|
|
public override void Load(bool hotReload)
|
|
{
|
|
// You can subscribe to the ValueChanged event to execute code when the value of a cvar changes.
|
|
// In this example, we restart the game when the value of RequiresRestartCvar is greater than 5.
|
|
RequiresRestartCvar.ValueChanged += (sender, value) =>
|
|
{
|
|
if (value > 5)
|
|
{
|
|
Server.ExecuteCommand("mp_restartgame 1");
|
|
}
|
|
};
|
|
|
|
RegisterFakeConVars(typeof(ConVars));
|
|
}
|
|
}
|