mirror of
https://github.com/anope/anope.git
synced 2026-07-07 23:23:13 +02:00
BUILD : 1.7.8 (759) BUGS : NOTES : Various updates to the modulepack, and fixed an issue with mod_current_module set incorrectly in some cases, making the lang functions fail
git-svn-id: svn://svn.anope.org/anope/trunk@759 31f1291d-b8d6-0310-a050-a5561fc1590b git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@521 5417fbe8-f217-4b02-8779-1006273d7864
This commit is contained in:
parent
22bf8b43b8
commit
e8974f0d3e
+74
-54
@@ -3,15 +3,15 @@
|
||||
#define AUTHOR "Rob"
|
||||
#define VERSION "1"
|
||||
|
||||
void myHelp(User *u);
|
||||
void myFullHelpSyntax(User *u);
|
||||
int myFullHelp(User *u);
|
||||
void mySendResponse(User *u, char *channel, char *mask, char *time);
|
||||
void myHelp(User * u);
|
||||
void myFullHelpSyntax(User * u);
|
||||
int myFullHelp(User * u);
|
||||
void mySendResponse(User * u, char *channel, char *mask, char *time);
|
||||
|
||||
int do_tban(User *u);
|
||||
void addBan(Channel *c, time_t timeout, char *banmask);
|
||||
int do_tban(User * u);
|
||||
void addBan(Channel * c, time_t timeout, char *banmask);
|
||||
int delBan(int argc, char **argv);
|
||||
int canBanUser(Channel *c, User *u, User *u2);
|
||||
int canBanUser(Channel * c, User * u, User * u2);
|
||||
|
||||
void mAddLanguages(void);
|
||||
|
||||
@@ -21,51 +21,57 @@ void mAddLanguages(void);
|
||||
#define TBAN_HELP_DETAIL 2
|
||||
#define TBAN_RESPONSE 3
|
||||
|
||||
int AnopeInit(int argc, char **argv) {
|
||||
Command *c;
|
||||
int AnopeInit(int argc, char **argv)
|
||||
{
|
||||
Command *c;
|
||||
int status = 0;
|
||||
|
||||
moduleSetChanHelp(myHelp);
|
||||
c = createCommand("TBAN", do_tban, NULL, -1,-1,-1,-1,-1);
|
||||
moduleAddHelp(c,myFullHelp);
|
||||
c = createCommand("TBAN", do_tban, NULL, -1, -1, -1, -1, -1);
|
||||
moduleAddHelp(c, myFullHelp);
|
||||
status = moduleAddCommand(CHANSERV, c, MOD_HEAD);
|
||||
|
||||
mAddLanguages();
|
||||
|
||||
if(status!=MOD_ERR_OK) {
|
||||
return MOD_STOP;
|
||||
if (status != MOD_ERR_OK) {
|
||||
return MOD_STOP;
|
||||
}
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
void AnopeFini(void)
|
||||
{
|
||||
/* module is unloading */
|
||||
/* module is unloading */
|
||||
}
|
||||
|
||||
void myHelp(User *u) {
|
||||
moduleNoticeLang(s_ChanServ, u,TBAN_HELP);
|
||||
void myHelp(User * u)
|
||||
{
|
||||
moduleNoticeLang(s_ChanServ, u, TBAN_HELP);
|
||||
}
|
||||
|
||||
void myFullHelpSyntax(User *u) {
|
||||
moduleNoticeLang(s_ChanServ, u,TBAN_SYNTAX);
|
||||
void myFullHelpSyntax(User * u)
|
||||
{
|
||||
moduleNoticeLang(s_ChanServ, u, TBAN_SYNTAX);
|
||||
}
|
||||
|
||||
int myFullHelp(User *u) {
|
||||
int myFullHelp(User * u)
|
||||
{
|
||||
myFullHelpSyntax(u);
|
||||
notice(s_ChanServ,u->nick,"");
|
||||
moduleNoticeLang(s_ChanServ, u,TBAN_HELP_DETAIL);
|
||||
notice(s_ChanServ, u->nick, "");
|
||||
moduleNoticeLang(s_ChanServ, u, TBAN_HELP_DETAIL);
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
void mySendResponse(User *u, char *channel, char *mask, char *time) {
|
||||
moduleNoticeLang(s_ChanServ, u,TBAN_RESPONSE,mask,channel,time);
|
||||
void mySendResponse(User * u, char *channel, char *mask, char *time)
|
||||
{
|
||||
moduleNoticeLang(s_ChanServ, u, TBAN_RESPONSE, mask, channel, time);
|
||||
}
|
||||
|
||||
int do_tban(User *u) {
|
||||
int do_tban(User * u)
|
||||
{
|
||||
char mask[BUFSIZE];
|
||||
Channel *c;
|
||||
User *u2=NULL;
|
||||
User *u2 = NULL;
|
||||
|
||||
char *buffer = moduleGetLastBuffer();
|
||||
char *chan;
|
||||
@@ -73,33 +79,37 @@ int do_tban(User *u) {
|
||||
char *time;
|
||||
|
||||
chan = myStrGetToken(buffer, ' ', 0);
|
||||
nick = myStrGetToken(buffer,' ',1);
|
||||
time = myStrGetToken(buffer,' ',2);
|
||||
|
||||
if(time && chan && nick) {
|
||||
|
||||
nick = myStrGetToken(buffer, ' ', 1);
|
||||
time = myStrGetToken(buffer, ' ', 2);
|
||||
|
||||
if (time && chan && nick) {
|
||||
|
||||
if (!(c = findchan(chan))) {
|
||||
notice_lang(s_ChanServ, u, CHAN_X_NOT_IN_USE, chan);
|
||||
} else if (!(u2 = finduser(nick))) {
|
||||
notice_lang(s_ChanServ, u, NICK_X_NOT_IN_USE, nick);
|
||||
} else {
|
||||
if(canBanUser(c,u,u2)) {
|
||||
get_idealban(c->ci, u2, mask, sizeof(mask));
|
||||
addBan(c,dotime(time),mask);
|
||||
mySendResponse(u,chan,mask,time);
|
||||
if (canBanUser(c, u, u2)) {
|
||||
get_idealban(c->ci, u2, mask, sizeof(mask));
|
||||
addBan(c, dotime(time), mask);
|
||||
mySendResponse(u, chan, mask, time);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
myFullHelpSyntax(u);
|
||||
}
|
||||
if(time) free(time);
|
||||
if(nick) free(nick);
|
||||
if(chan) free(chan);
|
||||
|
||||
}
|
||||
if (time)
|
||||
free(time);
|
||||
if (nick)
|
||||
free(nick);
|
||||
if (chan)
|
||||
free(chan);
|
||||
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
void addBan(Channel *c, time_t timeout, char *banmask) {
|
||||
void addBan(Channel * c, time_t timeout, char *banmask)
|
||||
{
|
||||
char *av[3];
|
||||
char *cb[2];
|
||||
|
||||
@@ -113,27 +123,29 @@ void addBan(Channel *c, time_t timeout, char *banmask) {
|
||||
chan_set_modes(s_ChanServ, c, 2, av, 1);
|
||||
|
||||
free(av[0]);
|
||||
moduleAddCallback("tban",time(NULL)+timeout,delBan,2,cb);
|
||||
moduleAddCallback("tban", time(NULL) + timeout, delBan, 2, cb);
|
||||
}
|
||||
|
||||
int delBan(int argc, char **argv) {
|
||||
int delBan(int argc, char **argv)
|
||||
{
|
||||
char *av[3];
|
||||
Channel *c;
|
||||
|
||||
av[0] = sstrdup("-b");
|
||||
av[1] = argv[1];
|
||||
|
||||
if((c=findchan(argv[0])) && c->ci ) {
|
||||
anope_cmd_mode(whosends(c->ci), c->name, "-b %s", av[1]);
|
||||
chan_set_modes(s_ChanServ, c, 2, av, 1);
|
||||
if ((c = findchan(argv[0])) && c->ci) {
|
||||
anope_cmd_mode(whosends(c->ci), c->name, "-b %s", av[1]);
|
||||
chan_set_modes(s_ChanServ, c, 2, av, 1);
|
||||
}
|
||||
|
||||
|
||||
free(av[0]);
|
||||
|
||||
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
int canBanUser(Channel *c, User *u, User *u2) {
|
||||
int canBanUser(Channel * c, User * u, User * u2)
|
||||
{
|
||||
ChannelInfo *ci;
|
||||
int ok = 0;
|
||||
if (!(ci = c->ci)) {
|
||||
@@ -141,7 +153,7 @@ int canBanUser(Channel *c, User *u, User *u2) {
|
||||
} else if (ci->flags & CI_VERBOTEN) {
|
||||
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, c->name);
|
||||
} else if (!check_access(u, ci, CA_BAN)) {
|
||||
notice_lang(s_ChanServ, u, ACCESS_DENIED);
|
||||
notice_lang(s_ChanServ, u, ACCESS_DENIED);
|
||||
} else if (ircd->except && is_excepted(ci, u2)) {
|
||||
notice_lang(s_ChanServ, u, CHAN_EXCEPTED, u2->nick, ci->name);
|
||||
} else if (ircd->protectedumode && is_protected(u2)) {
|
||||
@@ -154,17 +166,25 @@ int canBanUser(Channel *c, User *u, User *u2) {
|
||||
}
|
||||
|
||||
|
||||
void mAddLanguages(void) {
|
||||
void mAddLanguages(void)
|
||||
{
|
||||
char *langtable_en_us[] = {
|
||||
" TBAN Bans the user for a given length of time",
|
||||
"Syntax: TBAN channel nick time",
|
||||
"Bans the given user from a channel\n"
|
||||
"for a specified length of time.\n"
|
||||
"If the ban is removed before hand, it will\n"
|
||||
"NOT be replaced.",
|
||||
"Bans the given user from a channel for a specified length of\n"
|
||||
"time. If the ban is removed before hand, it will NOT be replaced.",
|
||||
"%s banned from %s, will auto-expire in %s"
|
||||
};
|
||||
char *langtable_nl[] = {
|
||||
" TBAN Verban een gebruiker voor een bepaalde tijd",
|
||||
"Syntax: TBAN kanaal nick tijd",
|
||||
"Verbant de gegeven gebruiken van het gegeven kanaal voor de\n"
|
||||
"gegeven tijdsduur. Als de verbanning eerder wordt verwijderd,\n"
|
||||
"zal deze NIET worden vervangen.",
|
||||
"%s verbannen van %s, zal verlopen in %s"
|
||||
};
|
||||
moduleInsertLanguage(LANG_EN_US, LANG_NUM_STRINGS, langtable_en_us);
|
||||
moduleInsertLanguage(LANG_NL, LANG_NUM_STRINGS, langtable_nl);
|
||||
}
|
||||
|
||||
|
||||
|
||||
+64
-56
@@ -25,7 +25,7 @@
|
||||
#define DEFAULT_DB_NAME "os_info.db"
|
||||
|
||||
/* Multi-language stuff */
|
||||
#define LANG_NUM_STRINGS 16
|
||||
#define LANG_NUM_STRINGS 10
|
||||
|
||||
#define OINFO_SYNTAX 0
|
||||
#define OINFO_ADD_SUCCESS 1
|
||||
@@ -33,16 +33,10 @@
|
||||
#define OCINFO_SYNTAX 3
|
||||
#define OCINFO_ADD_SUCCESS 4
|
||||
#define OCINFO_DEL_SUCCESS 5
|
||||
#define OINFO_HELP_1 6
|
||||
#define OINFO_HELP_2 7
|
||||
#define OINFO_HELP_3 8
|
||||
#define OINFO_HELP_4 9
|
||||
#define OCINFO_HELP_1 10
|
||||
#define OCINFO_HELP_2 11
|
||||
#define OCINFO_HELP_3 12
|
||||
#define OCINFO_HELP_4 13
|
||||
#define OINFO_HELP 14
|
||||
#define OCINFO_HELP 15
|
||||
#define OINFO_HELP 6
|
||||
#define OCINFO_HELP 7
|
||||
#define OINFO_HELP_CMD 8
|
||||
#define OCINFO_HELP_CMD 9
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
@@ -466,7 +460,7 @@ int mLoadConfig(void)
|
||||
char *tmp = NULL;
|
||||
|
||||
Directive directivas[] = {
|
||||
{"OSInfoDBName", {{PARAM_SET, PARAM_RELOAD, &tmp}}},
|
||||
{"OSInfoDBName", {{PARAM_STRING, PARAM_RELOAD, &tmp}}},
|
||||
};
|
||||
|
||||
Directive *d = &directivas[0];
|
||||
@@ -529,25 +523,19 @@ void m_AddLanguages(void)
|
||||
"OperInfo line has been added to channel %s",
|
||||
/* OCINFO_DEL_SUCCESS */
|
||||
"OperInfo line has been removed from channel %s",
|
||||
/* OINFO_HELP_1 */
|
||||
"Syntax: OINFO [ADD|DEL] nick <info>",
|
||||
/* OINFO_HELP_2 */
|
||||
"Add or Delete Oper information for the given nick ",
|
||||
/* OINFO_HELP_3 */
|
||||
"This will show up when any oper /ns info nick's the user.",
|
||||
/* OINFO_HELP_4 */
|
||||
"and can be used for 'tagging' users etc....",
|
||||
/* OCINFO_HELP_1 */
|
||||
"Syntax: OINFO [ADD|DEL] chan <info>",
|
||||
/* OCINFO_HELP_2 */
|
||||
"Add or Delete Oper information for the given channel",
|
||||
/* OCINFO_HELP_3 */
|
||||
"This will show up when any oper /ns info's the channel.",
|
||||
/* OCINFO_HELP_4 */
|
||||
"and can be used for 'tagging' channels etc....",
|
||||
/* OINFO_HELP */
|
||||
" OINFO Add / Del an OperInfo line to a nick",
|
||||
"Syntax: OINFO [ADD|DEL] nick <info>\n"
|
||||
"Add or Delete Oper information for the given nick\n"
|
||||
"This will show up when any oper /ns info nick's the user.\n"
|
||||
"and can be used for 'tagging' users etc....",
|
||||
/* OCINFO_HELP */
|
||||
"Syntax: OINFO [ADD|DEL] chan <info>\n"
|
||||
"Add or Delete Oper information for the given channel\n"
|
||||
"This will show up when any oper /cs info's the channel.\n"
|
||||
"and can be used for 'tagging' channels etc....",
|
||||
/* OINFO_HELP_CMD */
|
||||
" OINFO Add / Del an OperInfo line to a nick",
|
||||
/* OCINFO_HELP_CMD */
|
||||
" OINFO Add / Del an OperInfo line to a channel"
|
||||
};
|
||||
|
||||
@@ -564,30 +552,56 @@ void m_AddLanguages(void)
|
||||
"Linea OperInfo ha sido agregada al canal %s",
|
||||
/* OCINFO_DEL_SUCCESS */
|
||||
"La linea OperInfo ha sido removida del canal %s",
|
||||
/* OINFO_HELP_1 */
|
||||
"Sintaxis: OINFO [ADD|DEL] nick <info>",
|
||||
/* OINFO_HELP_2 */
|
||||
"Agrega o elimina informacion para Operadores al nick dado",
|
||||
/* OINFO_HELP_3 */
|
||||
"Esto se mostrara cuando cualquier operador haga /ns info nick",
|
||||
/* OINFO_HELP_4 */
|
||||
"y puede ser usado para 'marcado' de usuarios, etc....",
|
||||
/* OCINFO_HELP_1 */
|
||||
"Sintaxis: OINFO [ADD|DEL] chan <info>",
|
||||
/* OCINFO_HELP_2 */
|
||||
"Agrega o elimina informacion para Operadores al canal dado",
|
||||
/* OCINFO_HELP_3 */
|
||||
"Esto se mostrara cuando cualquier operador haga /cs info canal",
|
||||
/* OCINFO_HELP_4 */
|
||||
"y puede ser usado para 'marcado' de canales, etc....",
|
||||
/* OINFO_HELP */
|
||||
" OINFO Agrega / Elimina una linea OperInfo al nick",
|
||||
"Sintaxis: OINFO [ADD|DEL] nick <info>\n"
|
||||
"Agrega o elimina informacion para Operadores al nick dado\n"
|
||||
"Esto se mostrara cuando cualquier operador haga /ns info nick\n"
|
||||
"y puede ser usado para 'marcado' de usuarios, etc....",
|
||||
/* OCINFO_HELP */
|
||||
"Sintaxis: OINFO [ADD|DEL] chan <info>\n"
|
||||
"Agrega o elimina informacion para Operadores al canal dado\n"
|
||||
"Esto se mostrara cuando cualquier operador haga /cs info canal\n"
|
||||
"y puede ser usado para 'marcado' de canales, etc....",
|
||||
/* OINFO_HELP_CMD */
|
||||
" OINFO Agrega / Elimina una linea OperInfo al nick",
|
||||
/* OCINFO_HELP_CMD */
|
||||
" OINFO Agrega / Elimina una linea OperInfo al canal"
|
||||
};
|
||||
|
||||
char *langtable_nl[] = {
|
||||
/* OINFO_SYNTAX */
|
||||
"Gebruik: OINFO [ADD|DEL] nick <info>",
|
||||
/* OINFO_ADD_SUCCESS */
|
||||
"OperInfo regel is toegevoegd aan nick %s",
|
||||
/* OINFO_DEL_SUCCESS */
|
||||
"OperInfo regel is weggehaald van nick %s",
|
||||
/* OCINFO_SYNTAX */
|
||||
"Gebruik: OINFO [ADD|DEL] kanaal <info>",
|
||||
/* OCINFO_ADD_SUCCESS */
|
||||
"OperInfo regel is toegevoegd aan kanaal %s",
|
||||
/* OCINFO_DEL_SUCCESS */
|
||||
"OperInfo regel is weggehaald van kanaal %s",
|
||||
/* OINFO_HELP */
|
||||
"Gebruik: OINFO [ADD|DEL] nick <info>\n"
|
||||
"Voeg een Oper informatie regel toe aan de gegeven nick, of\n"
|
||||
"verwijder deze. Deze regel zal worden weergegeven wanneer\n"
|
||||
"een oper /ns info nick doet voor deze gebruiker, en kan worden\n"
|
||||
"gebruikt om een gebruiker te 'markeren' etc...",
|
||||
/* OCINFO_HELP */
|
||||
"Gebruik: OINFO [ADD|DEL] kanaal <info>\n"
|
||||
"Voeg een Oper informatie regel toe aan de gegeven kanaal, of\n"
|
||||
"verwijder deze. Deze regel zal worden weergegeven wanneer\n"
|
||||
"een oper /cs info kanaal doet voor dit kanaal, en kan worden\n"
|
||||
"gebruikt om een kanaal te 'markeren' etc...",
|
||||
/* OINFO_HELP_CMD */
|
||||
" OINFO Add / Del an OperInfo line to a nick",
|
||||
/* OCINFO_HELP_CMD */
|
||||
" OINFO Add / Del an OperInfo line to a channel"
|
||||
};
|
||||
|
||||
moduleInsertLanguage(LANG_EN_US, LANG_NUM_STRINGS, langtable_en_us);
|
||||
moduleInsertLanguage(LANG_ES, LANG_NUM_STRINGS, langtable_es);
|
||||
moduleInsertLanguage(LANG_NL, LANG_NUM_STRINGS, langtable_nl);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
@@ -595,10 +609,7 @@ void m_AddLanguages(void)
|
||||
int mNickHelp(User * u)
|
||||
{
|
||||
if (is_oper(u)) {
|
||||
moduleNoticeLang(s_NickServ, u, OINFO_HELP_1);
|
||||
moduleNoticeLang(s_NickServ, u, OINFO_HELP_2);
|
||||
moduleNoticeLang(s_NickServ, u, OINFO_HELP_3);
|
||||
moduleNoticeLang(s_NickServ, u, OINFO_HELP_4);
|
||||
moduleNoticeLang(s_NickServ, u, OINFO_HELP);
|
||||
} else {
|
||||
notice_lang(s_NickServ, u, NO_HELP_AVAILABLE, "OINFO");
|
||||
}
|
||||
@@ -608,10 +619,7 @@ int mNickHelp(User * u)
|
||||
int mChanHelp(User * u)
|
||||
{
|
||||
if (is_oper(u)) {
|
||||
moduleNoticeLang(s_ChanServ, u, OCINFO_HELP_1);
|
||||
moduleNoticeLang(s_ChanServ, u, OCINFO_HELP_2);
|
||||
moduleNoticeLang(s_ChanServ, u, OCINFO_HELP_3);
|
||||
moduleNoticeLang(s_ChanServ, u, OCINFO_HELP_4);
|
||||
moduleNoticeLang(s_ChanServ, u, OCINFO_HELP);
|
||||
} else {
|
||||
notice_lang(s_ChanServ, u, NO_HELP_AVAILABLE, "OINFO");
|
||||
}
|
||||
@@ -622,7 +630,7 @@ int mChanHelp(User * u)
|
||||
void mMainNickHelp(User * u)
|
||||
{
|
||||
if (is_oper(u)) {
|
||||
moduleNoticeLang(s_NickServ, u, OINFO_HELP);
|
||||
moduleNoticeLang(s_NickServ, u, OINFO_HELP_CMD);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -630,7 +638,7 @@ void mMainNickHelp(User * u)
|
||||
void mMainChanHelp(User * u)
|
||||
{
|
||||
if (is_oper(u)) {
|
||||
moduleNoticeLang(s_ChanServ, u, OCINFO_HELP);
|
||||
moduleNoticeLang(s_ChanServ, u, OCINFO_HELP_CMD);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user