CppPlugins/testplugins/02simpleEvents/src/plugin.cpp

55 lines
1.4 KiB
C++
Raw Normal View History

2020-02-20 19:23:28 +01:00
#include "plugin.h"
#include <iostream>
#include <string>
#include <map>
2020-02-22 09:08:07 +01:00
using namespace Plugin;
2020-02-20 19:23:28 +01:00
extern "C" {
2020-02-21 09:57:24 +01:00
class EventsPlugin : public CppPlugin {
2020-02-20 19:23:28 +01:00
public:
2020-02-22 02:36:43 +01:00
virtual void onLoad(JNIEnv*);
virtual void onEnable(JNIEnv*);
virtual void onDisable(JNIEnv*);
2020-02-20 19:23:28 +01:00
virtual std::map<std::string, eventfptr> getEvents();
};
2020-02-22 02:36:43 +01:00
void EventsPlugin::onLoad(JNIEnv*) {
2020-02-21 10:29:26 +01:00
std::cout << "Events::onLoad();" << std::endl;
2020-02-20 19:23:28 +01:00
}
2020-02-22 02:36:43 +01:00
void EventsPlugin::onEnable(JNIEnv*) {
2020-02-21 09:57:24 +01:00
std::cout << "Events::onEnable();" << std::endl;
2020-02-20 19:23:28 +01:00
}
2020-02-22 02:36:43 +01:00
void EventsPlugin::onDisable(JNIEnv*) {
2020-02-21 09:57:24 +01:00
std::cout << "Events::onDisable();" << std::endl;
2020-02-20 19:23:28 +01:00
}
CppPlugin* init() {
2020-02-21 09:57:24 +01:00
return new EventsPlugin();
2020-02-20 19:23:28 +01:00
}
2020-02-20 20:17:00 +01:00
void eventJoin(JNIEnv* env, CppPlugin* pl, Event* e) {
jstring msg = (jstring) e->getData(env, "joinMessage");
std::string jmsg(env->GetStringUTFChars(msg, 0));
std::cout << "join " << e->getName() << " old join message: " << jmsg << std::endl;
jstring newmsg = env->NewStringUTF("Ein Spieler ist dem Spiel beigetreten!");
e->setData("joinMessage", newmsg);
}
void eventQuit(JNIEnv* env, CppPlugin* pl, Event* e) {
std::cout << "quit " << e->getName() << std::endl;
}
2020-02-21 09:57:24 +01:00
std::map<std::string, eventfptr> EventsPlugin::getEvents() {
std::cout << "EventsPlugin::getEvents" << std::endl;
2020-02-20 19:23:28 +01:00
std::map<std::string, eventfptr> out;
out.insert({"PlayerJoinEvent", eventJoin});
out.insert({"PlayerQuitEvent", eventQuit});
return out;
}
}//extern "C"