CppPlugins/testplugins/simpleEvents/src/plugin.cpp

55 lines
1.1 KiB
C++

#include "plugin.h"
#include <iostream>
#include <string>
#include <map>
extern "C" {
void eventJoin(CppPlugin* pl, Event* e) {
std::cout << "join " << e->getName() << std::endl;
}
void eventQuit(CppPlugin* pl, Event* e) {
std::cout << "quit " << e->getName() << std::endl;
}
class MyPlugin : public CppPlugin {
public:
virtual void onLoad();
virtual void onEnable();
virtual void onDisable();
virtual std::map<std::string, eventfptr> getEvents();
};
void MyPlugin::onLoad() {
std::cout << "onload();" << std::endl;
}
void MyPlugin::onEnable() {
std::cout << "onEnable();" << std::endl;
}
void MyPlugin::onDisable() {
std::cout << "onDisable();" << std::endl;
}
CppPlugin* init() {
std::cout << "init im plugin!" << std::endl;
return new MyPlugin();
}
std::map<std::string, eventfptr> MyPlugin::getEvents() {
std::cout << "MyPlugin::getEvents" << std::endl;
std::map<std::string, eventfptr> out;
out.insert({"PlayerJoinEvent", eventJoin});
out.insert({"PlayerQuitEvent", eventQuit});
return out;
}
/*
std::map<std::string, eventfptr> MyPlugin::getEvents() {
return std::map<std::string, eventfptr>();
}
*/
}//extern "C"