VoltMod
C++23 framework for CS2 server plugins
Loading...
Searching...
No Matches
VoltMod::IPluginContext Struct Referenceabstract

#include <IPluginContext.hpp>

+ Inheritance diagram for VoltMod::IPluginContext:

Public Member Functions

virtual std::string_view Name () const =0
 
virtual std::string_view Version () const =0
 
virtual void * EngineInterface (const char *version) const =0
 
virtual void * ServerInterface (const char *version) const =0
 
virtual std::string_view BaseDir () const =0
 
virtual KHook::IKHook * HookDispatcher () const =0
 
virtual IPluginEvents & Events ()=0
 
virtual IPluginServices & Services ()=0
 
virtual IPluginLanguages & Languages ()=0
 
virtual IPluginAddons & Addons ()=0
 
virtual IPluginGameData * GameData () const =0
 
virtual bool RegisterCommand (std::string_view name)=0
 
virtual bool IsCommandRegistered (std::string_view name) const =0
 
virtual void WriteLog (uint8_t level, std::string_view text)=0
 
virtual uint8_t MinLogLevel () const =0
 
virtual uint64_t SchemaLayoutStamp () const =0
 
virtual bool SchemaVerified () const =0
 

Protected Member Functions

 ~IPluginContext ()=default
 

Detailed Description

One plugin's view of the host. Everything reachable from it is host-owned and outlives the plugin. Game thread only.

Definition at line 17 of file IPluginContext.hpp.

Constructor & Destructor Documentation

◆ ~IPluginContext()

VoltMod::IPluginContext::~IPluginContext ( )
protecteddefault

Member Function Documentation

◆ Addons()

virtual IPluginAddons & VoltMod::IPluginContext::Addons ( )
pure virtual

Implemented in VoltMod::PluginContext.

◆ BaseDir()

virtual std::string_view VoltMod::IPluginContext::BaseDir ( ) const
pure virtual

The absolute csgo directory that relative paths resolve against.

Implemented in VoltMod::PluginContext.

◆ EngineInterface()

virtual void * VoltMod::IPluginContext::EngineInterface ( const char *  version) const
pure virtual

An engine interface by its exact version name, or null.

Implemented in VoltMod::PluginContext.

Referenced by VoltMod::Internal::OpenUnsafe().

◆ Events()

virtual IPluginEvents & VoltMod::IPluginContext::Events ( )
pure virtual

Implemented in VoltMod::PluginContext.

◆ GameData()

virtual IPluginGameData * VoltMod::IPluginContext::GameData ( ) const
pure virtual

Null when the host resolved no gamedata.

Implemented in VoltMod::PluginContext.

Referenced by VoltMod::Internal::OpenUnsafe().

◆ HookDispatcher()

virtual KHook::IKHook * VoltMod::IPluginContext::HookDispatcher ( ) const
pure virtual

Each module has its own KHook::__exported__khook; a plugin seeds it from this before hooking.

Implemented in VoltMod::PluginContext.

◆ IsCommandRegistered()

virtual bool VoltMod::IPluginContext::IsCommandRegistered ( std::string_view  name) const
pure virtual

True while any plugin, this one included, or the host holds name.

Implemented in VoltMod::PluginContext.

Referenced by VoltMod::CommandRouter::IsForeign().

◆ Languages()

virtual IPluginLanguages & VoltMod::IPluginContext::Languages ( )
pure virtual

Implemented in VoltMod::PluginContext.

◆ MinLogLevel()

virtual uint8_t VoltMod::IPluginContext::MinLogLevel ( ) const
pure virtual

Lines below this are dropped; volt log <name> <level> changes it.

Implemented in VoltMod::PluginContext.

◆ Name()

virtual std::string_view VoltMod::IPluginContext::Name ( ) const
pure virtual

The plugin's name: its manifest name and directory under addons/voltmod/plugins/.

Implemented in VoltMod::PluginContext.

◆ RegisterCommand()

virtual bool VoltMod::IPluginContext::RegisterCommand ( std::string_view  name)
pure virtual

False when another plugin holds name, which the host logs naming both. Released with the plugin.

Implemented in VoltMod::PluginContext.

Referenced by VoltMod::CommandRouter::Add().

◆ SchemaLayoutStamp()

virtual uint64_t VoltMod::IPluginContext::SchemaLayoutStamp ( ) const
pure virtual

The hash of the baked schema layout the host compared with the live game.

Implemented in VoltMod::PluginContext.

Referenced by VoltMod::Internal::CheckSchema().

◆ SchemaVerified()

virtual bool VoltMod::IPluginContext::SchemaVerified ( ) const
pure virtual

◆ ServerInterface()

virtual void * VoltMod::IPluginContext::ServerInterface ( const char *  version) const
pure virtual

A game server interface by its exact version name, or null.

Implemented in VoltMod::PluginContext.

Referenced by VoltMod::Internal::OpenUnsafe().

◆ Services()

virtual IPluginServices & VoltMod::IPluginContext::Services ( )
pure virtual

Implemented in VoltMod::PluginContext.

◆ Version()

virtual std::string_view VoltMod::IPluginContext::Version ( ) const
pure virtual

Implemented in VoltMod::PluginContext.

◆ WriteLog()

virtual void VoltMod::IPluginContext::WriteLog ( uint8_t  level,
std::string_view  text 
)
pure virtual

Print one line under this plugin's logTag. level is a LogLevel.

Implemented in VoltMod::PluginContext.


The documentation for this struct was generated from the following file: