void PHandler_PluginInfo_f() { if(Cmd_Argc() < 2){ Com_Printf("Usage: %s <plugin name>\n",Cmd_Argv(0)); return; } int id = PHandler_GetID(Cmd_Argv(1),strlen(Cmd_Argv(1))); int i; int vMajor, vMinor; pluginInfo_t info; if(id<0){ Com_Printf("Plugin \"%s\" is not loaded!\n",Cmd_Argv(1)); return; } (*pluginFunctions.plugins[id].OnInfoRequest)(&info); Com_Printf("\n"); Com_Printf("\n^2Plugin name:^7\n%s\n\n",pluginFunctions.plugins[id].name); vMajor = info.pluginVersion.major; vMinor = info.pluginVersion.minor; if(vMinor > 100){ while(vMinor>=1000){ vMinor /= 10; } } Com_Printf("\n^2Plugin version:^7\n%d.%d\n\n",vMajor,vMinor); Com_Printf("\n^2Full plugin name:^7\n%s\n\n",info.fullName); Com_Printf("\n^2Short plugin description:^7\n%s\n\n",info.shortDescription); Com_Printf("\n^2Full plugin description:^7\n%s\n\n",info.longDescription); Com_Printf("\n^2Plugin commands:^7\n\n"); for(i=0;i<pluginFunctions.plugins[id].cmds;++i){ Com_Printf(" -%s\n",pluginFunctions.plugins[id].cmd[i].name); } Com_Printf("\n^2Total of %d commands.^7\n\n",pluginFunctions.plugins[id].cmds); }
void PHandler_UnloadByName(char *name) // Unload a plugin, safe for use { int id = PHandler_GetID(name); if(id<0) Com_Printf("Cannot unload plugin: plugin %s is not loaded!\n",name); else{ Com_Printf("Unloading plugin %s, plugin id: %d.\n",name,id); PHandler_Unload(id); } }