CppPlugins/src/main/cpp/inc/libplugin.h

106 lines
2.9 KiB
C
Raw Normal View History

2020-02-20 12:21:43 +01:00
#pragma once
2020-02-20 19:23:28 +01:00
2020-02-20 12:21:43 +01:00
#include <jni.h>
2020-02-21 09:57:24 +01:00
#include <vector>
2020-03-30 16:59:26 +02:00
#include <string>
#define DEBUG 0
#define COLORS 0
#if COLORS == 1
#define CBLUE std::string("\033[94m")
#define CRED std::string("\033[91m")
#define CYELLOW std::string("\033[93m")
#define CGREEN std::string("\033[92m")
#define CRESET std::string("\033[0m")
#define CGREY std::string("\033[90m")
#else
#define CBLUE std::string()
#define CRED std::string()
#define CYELLOW std::string()
#define CGREEN std::string()
#define CRESET std::string()
#define CGREY std::string()
#endif
2020-02-20 12:21:43 +01:00
2020-02-20 19:23:28 +01:00
#if DEBUG == 1
2020-03-30 16:59:26 +02:00
#define DEB(A) std::cout << A << CRESET << std::endl
2020-02-20 19:23:28 +01:00
#else
2020-03-30 16:59:26 +02:00
#define DEB(A) ;
2020-02-20 19:23:28 +01:00
#endif
2020-02-22 09:08:07 +01:00
namespace Plugin {
2020-02-20 19:23:28 +01:00
extern jclass CPPPLUGINCLASS;
extern jclass EVENTCLASS;
extern jclass MAPCLASS;
extern jclass LISTENERCLASS;
2020-02-22 02:37:07 +01:00
extern jclass CMDCLASS;
extern jclass BUKKITCLASS;
extern jclass CBSERVERCLASS;
extern jclass CMDMAPCLASS;
2020-02-22 08:54:09 +01:00
extern jclass CMDSENDERCLASS;
2020-02-22 02:37:07 +01:00
2020-02-20 19:23:28 +01:00
extern jfieldID EVENTDATAF;
extern jfieldID EVENTNAMEF;
2020-02-21 09:57:24 +01:00
extern jfieldID PLUGINIDF;
2020-02-22 02:37:07 +01:00
extern jfieldID BUKKITSERVER;
extern jfieldID SERVERCMDMAP;
2020-02-20 19:23:28 +01:00
extern jmethodID MAPGET;
extern jmethodID MAPPUT;
2020-02-20 20:17:00 +01:00
extern jmethodID MAPCLEAR;
2020-02-20 19:23:28 +01:00
extern jmethodID LISTENERCONTR;
extern jmethodID LISTENERSMALLCONTR;
2020-02-22 02:37:07 +01:00
extern jmethodID CMDCONSTR;
extern jmethodID CMDMAPREGISTER;
2020-02-22 08:54:09 +01:00
extern jmethodID CMDSENDERSEND;
2020-02-22 02:37:07 +01:00
2020-02-20 12:21:43 +01:00
2020-02-20 19:23:28 +01:00
void load(JNIEnv* env, long data);
2020-02-20 12:21:43 +01:00
2020-02-20 19:23:28 +01:00
enum JNIDATA : long {
2020-02-22 02:37:07 +01:00
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,
2020-02-22 08:54:09 +01:00
JNI_CMDSENDERCLASS = JNI_CMDMAPCLASS << 1,
2020-02-22 02:37:07 +01:00
2020-02-22 08:54:09 +01:00
JNI_EVENTDATAFIELD = JNI_CMDSENDERCLASS << 1,
2020-02-22 02:37:07 +01:00
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,
2020-02-22 08:54:09 +01:00
JNI_CMDSENDERSENDMETH = JNI_CMDMAPREGISTERMETH << 1,
2020-02-22 02:37:07 +01:00
JNI_EVENT = JNI_EVENTCLASS | JNI_EVENTDATAFIELD | JNI_EVENTNAMEFIELD,
JNI_MAP = JNI_MAPCLASS | JNI_MAPGETMETH | JNI_MAPPUTMETH,
2020-02-20 19:23:28 +01:00
JNI_LISTENER = JNI_LISTENERCLASS | JNI_LISTENERCONSTR | JNI_LISTENERSMALLCONSTR,
2020-02-20 12:21:43 +01:00
2020-02-22 08:54:09 +01:00
JNI_ALL = 0xFFFFFFFFFFFFFF // current count: 22, max count:56
2020-02-20 19:23:28 +01:00
};
2020-02-20 12:21:43 +01:00
2020-02-20 19:23:28 +01:00
class CppPlugin;
2020-02-21 09:57:24 +01:00
extern std::vector<CppPlugin*> plugins;
2020-02-22 02:37:07 +01:00
CppPlugin* getPlugin(JNIEnv* env = 0, jobject thisobj = 0, int id = -1);
inline CppPlugin* getPlugin(int id) {
return getPlugin(0, 0, id);
}
2020-02-22 09:08:07 +01:00
} //namespace Plugin