8 bool SM_LoadExtension(char *error, size_t maxlength)
10 if ((smexts = (IExtensionManager *)g_SMAPI->MetaFactory(
11 SOURCEMOD_INTERFACE_EXTENSIONS,
16 if (error && maxlength)
18 UTIL_Format(error, maxlength, SOURCEMOD_INTERFACE_EXTENSIONS " interface not found");
23 /* This could be more dynamic */
25 g_SMAPI->PathFormat(path,
27 "addons/myplugin/bin/myplugin%s",
35 if ((myself = smexts->LoadExternal(&g_SMExt,
49 void SM_UnloadExtension()
51 smexts->UnloadExtension(myself);
54 bool MyExtension::OnExtensionLoad(IExtension *me,
63 /* Get the default interfaces from our configured SDK header */
64 if (!SM_AcquireInterfaces(error, maxlength))
72 void MyExtension::OnExtensionUnload()
74 /* Clean up any resources here, and more importantly, make sure
75 * any listeners/hooks into SourceMod are totally removed, as well
76 * as data structures like handle types and forwards.
81 /* Make sure our pointers get NULL'd just in case */
85 void MyExtension::OnExtensionsAllLoaded()
87 /* Called once all extensions are marked as loaded.
88 * This always called, and always called only once.
92 void MyExtension::OnExtensionPauseChange(bool pause)
96 bool MyExtension::QueryRunning(char *error, size_t maxlength)
98 /* if something is required that can't be determined during the initial
99 * load process, print a message here will show a helpful message to
100 * users when they view the extension's info.
105 bool MyExtension::IsMetamodExtension()
107 /* Must return false! */
111 const char *MyExtension::GetExtensionName()
113 return mmsplugin->GetName();
116 const char *MyExtension::GetExtensionURL()
118 return mmsplugin->GetURL();
121 const char *MyExtension::GetExtensionTag()
123 return mmsplugin->GetLogTag();
126 const char *MyExtension::GetExtensionAuthor()
128 return mmsplugin->GetAuthor();
131 const char *MyExtension::GetExtensionVerString()
133 return mmsplugin->GetVersion();
136 const char *MyExtension::GetExtensionDescription()
138 return mmsplugin->GetDescription();
141 const char *MyExtension::GetExtensionDateString()
143 return mmsplugin->GetDate();