X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fctables.h;h=7bd73448c7ce3ed32ddcf5972780a7044af8166d;hb=5ee7322040d501fe55853453caa230f4550313c3;hp=c3d2f7b43d713bfc98163a918c2e77eefd63e531;hpb=67e055124dfbbb73b50f90cd1a1eb1be648d9379;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/ctables.h b/include/ctables.h index c3d2f7b43..7bd73448c 100644 --- a/include/ctables.h +++ b/include/ctables.h @@ -19,6 +19,7 @@ #include "hash_map.h" #include "base.h" +/* Forward declarations - required */ class userrec; class InspIRCd; @@ -29,10 +30,19 @@ enum CmdResult CMD_FAILURE = 0, /* Command exists, but failed */ CMD_SUCCESS = 1, /* Command exists, and succeeded */ CMD_INVALID = 2, /* Command doesnt exist at all! */ - CMD_USER_DELETED = 3 /* User was deleted! */ + CMD_USER_DELETED = 3 /* User was deleted - DEPRECIATED */ }; -/* For commands which should not be replicated to other +enum TranslateType +{ + TR_END, /* End of known parameters, everything after this is TR_TEXT */ + TR_TEXT, /* Raw text, leave as-is */ + TR_NICK, /* Nickname, translate to UUID for server->server */ + TR_NICKLIST, /* Comma seperated nickname list, translate to UUIDs */ + TR_SPACENICKLIST /* Space seperated nickname list, translate to UUIDs */ +}; + +/** For commands which should not be replicated to other * servers, we usually return CMD_FAILURE. this isnt readable, * so we define this alias for CMD_FAILURE called * CMD_LOCALONLY, which of course does the same thing but is @@ -80,6 +90,8 @@ class CoreExport command_t : public Extensible */ std::string syntax; + std::vector translation; + /** Create a new command. * @param Instance Pointer to creator class * @param cmd Command name. This must be UPPER CASE. @@ -96,6 +108,7 @@ class CoreExport command_t : public Extensible total_bytes = 0; source = ""; syntax = ""; + translation.clear(); } /** Handle the command from a user. @@ -167,5 +180,18 @@ class CoreExport command_t : public Extensible */ typedef nspace::hash_map command_table; +#define TRANSLATE1(x1) translation.push_back(x1); +#define TRANSLATE2(x1,x2) translation.push_back(x1);translation.push_back(x2); +#define TRANSLATE3(x1,x2,x3) translation.push_back(x1);translation.push_back(x2);translation.push_back(x3); +#define TRANSLATE4(x1,x2,x3,x4) translation.push_back(x1);translation.push_back(x2);translation.push_back(x3);translation.push_back(x4); +#define TRANSLATE5(x1,x2,x3,x4,x5) translation.push_back(x1);translation.push_back(x2);translation.push_back(x3);translation.push_back(x4);\ + translation.push_back(x5); +#define TRANSLATE6(x1,x2,x3,x4,x5,x6) translation.push_back(x1);translation.push_back(x2);translation.push_back(x3);translation.push_back(x4);\ + translation.push_back(x5);translation.push_back(x6); +#define TRANSLATE7(x1,x2,x3,x4,x5,x6,x7) translation.push_back(x1);translation.push_back(x2);translation.push_back(x3);translation.push_back(x4);\ + translation.push_back(x5);translation.push_back(x6);translation.push_back(x7); +#define TRANSLATE8(x1,x2,x3,x4,x5,x6,x7,x8) translation.push_back(x1);translation.push_back(x2);translation.push_back(x3);translation.push_back(x4);\ + translation.push_back(x5);translation.push_back(x6);translation.push_back(x7);translation.push_back(x8); + #endif