79 lines
2.2 KiB
C++
79 lines
2.2 KiB
C++
#pragma once
|
|
|
|
#include <jni.h>
|
|
#include <vector>
|
|
|
|
#define DEBUG 1
|
|
|
|
#if DEBUG == 1
|
|
#define DEB(A) std::cout << A << std::endl
|
|
#else
|
|
#define DEB(A) ;
|
|
#endif
|
|
|
|
extern jclass CPPPLUGINCLASS;
|
|
extern jclass EVENTCLASS;
|
|
extern jclass MAPCLASS;
|
|
extern jclass LISTENERCLASS;
|
|
extern jclass CMDCLASS;
|
|
extern jclass BUKKITCLASS;
|
|
extern jclass CBSERVERCLASS;
|
|
extern jclass CMDMAPCLASS;
|
|
|
|
extern jfieldID EVENTDATAF;
|
|
extern jfieldID EVENTNAMEF;
|
|
extern jfieldID PLUGINIDF;
|
|
extern jfieldID BUKKITSERVER;
|
|
extern jfieldID SERVERCMDMAP;
|
|
|
|
extern jmethodID MAPGET;
|
|
extern jmethodID MAPPUT;
|
|
extern jmethodID MAPCLEAR;
|
|
extern jmethodID LISTENERCONTR;
|
|
extern jmethodID LISTENERSMALLCONTR;
|
|
extern jmethodID CMDCONSTR;
|
|
extern jmethodID CMDMAPREGISTER;
|
|
|
|
|
|
void load(JNIEnv* env, long data);
|
|
|
|
enum JNIDATA : long {
|
|
JNI_PLUGINCLASS = 1,
|
|
JNI_EVENTCLASS = JNI_PLUGINCLASS << 1,
|
|
JNI_MAPCLASS = JNI_EVENTCLASS << 1,
|
|
JNI_LISTENERCLASS = JNI_MAPCLASS << 1,
|
|
JNI_CMDCLASS = JNI_LISTENERCLASS << 1,
|
|
JNI_BUKKITCLASS = JNI_CMDCLASS << 1,
|
|
JNI_CBSERVERCLASS = JNI_BUKKITCLASS << 1,
|
|
JNI_CMDMAPCLASS = JNI_CBSERVERCLASS << 1,
|
|
|
|
JNI_EVENTDATAFIELD = JNI_CMDMAPCLASS << 1,
|
|
JNI_EVENTNAMEFIELD = JNI_EVENTDATAFIELD << 1,
|
|
JNI_PLUGINIDFIELD = JNI_EVENTNAMEFIELD << 1,
|
|
JNI_BUKKITSERVFIELD = JNI_PLUGINIDFIELD << 1,
|
|
JNI_SERVERCMDMAPFIELD = JNI_BUKKITSERVFIELD << 1,
|
|
|
|
JNI_MAPGETMETH = JNI_SERVERCMDMAPFIELD << 1,
|
|
JNI_MAPPUTMETH = JNI_MAPGETMETH << 1,
|
|
JNI_MAPCLEARMETH = JNI_MAPPUTMETH << 1,
|
|
JNI_LISTENERCONSTR = JNI_MAPCLEARMETH << 1,
|
|
JNI_LISTENERSMALLCONSTR = JNI_LISTENERCONSTR << 1,
|
|
JNI_CMDCONSTR = JNI_LISTENERSMALLCONSTR << 1,
|
|
JNI_CMDMAPREGISTERMETH = JNI_CMDCONSTR << 1,
|
|
|
|
JNI_EVENT = JNI_EVENTCLASS | JNI_EVENTDATAFIELD | JNI_EVENTNAMEFIELD,
|
|
JNI_MAP = JNI_MAPCLASS | JNI_MAPGETMETH | JNI_MAPPUTMETH,
|
|
JNI_LISTENER = JNI_LISTENERCLASS | JNI_LISTENERCONSTR | JNI_LISTENERSMALLCONSTR,
|
|
|
|
JNI_ALL = 0xFFFFFFFFFFFFFF // current count: 20, max count:56
|
|
};
|
|
|
|
class CppPlugin;
|
|
extern std::vector<CppPlugin*> plugins;
|
|
|
|
CppPlugin* getPlugin(JNIEnv* env = 0, jobject thisobj = 0, int id = -1);
|
|
inline CppPlugin* getPlugin(int id) {
|
|
return getPlugin(0, 0, id);
|
|
}
|
|
|