3#include "UI/UIIl2cpp.hpp"
4#include "UI/ViewController.hpp"
8#define CP_SDK_MODULE_BASE_INSTANCE_DECL(__Type) \
9 CP_SDK_NO_COPYMOVE_CTORS(__Type) \
11 static __Type* m_Instance; \
13 static __Type* Instance(); \
15 void SetInstance(__Type* p_Instance) override;
17#define CP_SDK_MODULE_BASE_INSTANCE_IMPL(__Type) \
18 __Type* __Type::m_Instance = nullptr; \
19 __Type* __Type::Instance() { return m_Instance; } \
20 void __Type::SetInstance(__Type* p_Instance) { m_Instance = p_Instance; }
56 virtual std::u16string_view Name()
const = 0;
57 virtual std::u16string_view FancyName()
const = 0;
58 virtual std::u16string_view Description()
const = 0;
59 virtual std::u16string_view DocumentationURL()
const = 0;
60 virtual bool UseChatFeatures()
const = 0;
61 virtual bool IsEnabled()
const = 0;
62 virtual void IsEnabled(
bool p_Enabled) = 0;
102 : m_WasEnabled(false)
117 IsEnabled(p_Enabled);
119 if (IsEnabled() && !m_WasEnabled) Enable();
120 if (!IsEnabled() && m_WasEnabled) Disable();
128 if (!m_WasEnabled && IsEnabled() && ActivationType() == p_Kind)
134 if (m_WasEnabled && IsEnabled())
157 m_WasEnabled =
false;
virtual void SetEnabled(bool p_Enabled)=0
Set enabled.
virtual t_InitialViews GetSettingsViewControllers()
Get Module settings UI.
virtual void CheckForActivation(EIModuleBaseActivationType p_Kind)=0
Check for module activation.
IModuleBase()=default
Constructor.
virtual ~IModuleBase()
Destructor.
virtual void OnApplicationExit()=0
On application exit.
void OnApplicationExit() override
On application exit.
virtual void OnEnable()=0
Enable the Module.
virtual void OnDisable()=0
Disable the Module.
void SetEnabled(bool p_Enabled) override
Set enabled.
virtual ~ModuleBase()
Destructor.
virtual void SetInstance(t_Type *p_Instance)=0
Set singleton instance.
void CheckForActivation(EIModuleBaseActivationType p_Kind) override
Check for module activation.
ChatPlex SDK game agnostic namepace.
EIModuleBaseType
Module type.
EIModuleBaseActivationType
Activation type kind.