#pragma once #include #include #include #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 #if DEBUG == 1 #define DEB(A) std::cout << A << CRESET << std::endl #else #define DEB(A) ; #endif namespace Plugin { 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 jclass CMDSENDERCLASS; 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; extern jmethodID CMDSENDERSEND; 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_CMDSENDERCLASS = JNI_CMDMAPCLASS << 1, JNI_EVENTDATAFIELD = JNI_CMDSENDERCLASS << 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_CMDSENDERSENDMETH = JNI_CMDMAPREGISTERMETH << 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: 22, max count:56 }; class CppPlugin; extern std::vector plugins; CppPlugin* getPlugin(JNIEnv* env = 0, jobject thisobj = 0, int id = -1); inline CppPlugin* getPlugin(int id) { return getPlugin(0, 0, id); } } //namespace Plugin