mirror of
https://github.com/anope/anope.git
synced 2026-07-02 05:46:38 +02:00
Merged os_umode into os_mode
This commit is contained in:
+3
-3
@@ -715,7 +715,7 @@ log
|
||||
* operserv/szline operserv/staff operserv/defcon
|
||||
* operserv/modload operserv/jupe operserv/set operserv/noop
|
||||
* operserv/quit operserv/update operserv/reload operserv/restart
|
||||
* operserv/shutdown operserv/svsnick operserv/oline operserv/umode
|
||||
* operserv/shutdown operserv/svsnick operserv/oline
|
||||
*
|
||||
* Firstly, we define 'opertypes' which are named whatever we want ('Network Administrator', etc).
|
||||
* These can contain commands for oper-only strings (see above) which grants access to that specific command,
|
||||
@@ -756,7 +756,7 @@ opertype
|
||||
|
||||
inherits = "Services Operator"
|
||||
|
||||
commands = "chanserv/access/list chanserv/drop chanserv/forbid chanserv/getkey chanserv/set/noexpire memoserv/sendall nickserv/saset/* nickserv/getemail operserv/global operserv/news operserv/jupe operserv/svsnick operserv/stats operserv/oline operserv/defcon operserv/noop operserv/umode"
|
||||
commands = "chanserv/access/list chanserv/drop chanserv/forbid chanserv/getkey chanserv/set/noexpire memoserv/sendall nickserv/saset/* nickserv/getemail operserv/global operserv/news operserv/jupe operserv/svsnick operserv/stats operserv/oline operserv/defcon operserv/noop"
|
||||
|
||||
privs = "*"
|
||||
}
|
||||
@@ -1475,7 +1475,7 @@ operserv
|
||||
*
|
||||
* This directive is optional, but highly recommended.
|
||||
*/
|
||||
modules = "os_help os_global os_stats os_staff os_mode os_kick os_akill os_snline os_sqline os_szline os_chanlist os_userlist os_news os_session os_noop os_jupe os_ignore os_set os_reload os_update os_restart os_quit os_shutdown os_defcon os_chankill os_svsnick os_oline os_umode os_modload os_modunload os_modreload os_modlist os_modinfo"
|
||||
modules = "os_help os_global os_stats os_staff os_mode os_kick os_akill os_snline os_sqline os_szline os_chanlist os_userlist os_news os_session os_noop os_jupe os_ignore os_set os_reload os_update os_restart os_quit os_shutdown os_defcon os_chankill os_svsnick os_oline os_modload os_modunload os_modreload os_modlist os_modinfo"
|
||||
|
||||
/*
|
||||
* If set, Services Admins will be able to use SUPERADMIN [ON|OFF] which will temporarily grant
|
||||
|
||||
@@ -6,6 +6,7 @@ A Ability for users to delete their own access in channels
|
||||
A Ability for users with registrations pending to drop their registrations with /nickserv drop
|
||||
A Added support for Plexus 3
|
||||
A Readded in support for /cs op/deop/etc to op/deop you in all channels
|
||||
A Added support for ngIRCd
|
||||
F Changed the GHOST command to not allow ghosting unidentified users if the RECOVER command exists
|
||||
F Some failed logic in /operserv exception that prevents proper exceptions from being added
|
||||
F Fixed the anope_os_sxlines MySQL table and code to work after restarting
|
||||
|
||||
@@ -7,6 +7,8 @@ chanserv:suspendexpire and chanserv:forbidexpire added
|
||||
module added cs_entrymsg
|
||||
nickserv:modules added ns_ajoin
|
||||
options:nomlock added
|
||||
opertype:commands removed operserv/umode
|
||||
operserv:modules removed os_umode
|
||||
|
||||
Anope Version 1.9.3
|
||||
------------------
|
||||
|
||||
+34
-14
@@ -18,43 +18,63 @@ class CommandOSMode : public Command
|
||||
public:
|
||||
CommandOSMode() : Command("MODE", 2, 2, "operserv/mode")
|
||||
{
|
||||
this->SetDesc("Change a channel's modes");
|
||||
this->SetDesc("Change channel or user modes");
|
||||
}
|
||||
|
||||
CommandReturn Execute(CommandSource &source, const std::vector<Anope::string> ¶ms)
|
||||
{
|
||||
User *u = source.u;
|
||||
const Anope::string &chan = params[0];
|
||||
const Anope::string &target = params[0];
|
||||
const Anope::string &modes = params[1];
|
||||
Channel *c;
|
||||
|
||||
if (!(c = findchan(chan)))
|
||||
source.Reply(LanguageString::CHAN_X_NOT_IN_USE, chan.c_str());
|
||||
else if (c->bouncy_modes)
|
||||
source.Reply(_("Services is unable to change modes. Are your servers' U:lines configured correctly?"));
|
||||
if (target[0] == '#')
|
||||
{
|
||||
Channel *c = findchan(target);
|
||||
if (!c)
|
||||
source.Reply(LanguageString::CHAN_X_NOT_IN_USE, target.c_str());
|
||||
else if (c->bouncy_modes)
|
||||
source.Reply(_("Services is unable to change modes. Are your servers' U:lines configured correctly?"));
|
||||
else
|
||||
{
|
||||
c->SetModes(OperServ, false, modes.c_str());
|
||||
|
||||
if (Config->WallOSMode)
|
||||
ircdproto->SendGlobops(OperServ, "\2%s\2 used MODE %s on %s", u->nick.c_str(), modes.c_str(), c->name.c_str());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
c->SetModes(OperServ, false, modes.c_str());
|
||||
User *u2 = finduser(target);
|
||||
if (!u2)
|
||||
source.Reply(LanguageString::NICK_X_NOT_IN_USE, target.c_str());
|
||||
else
|
||||
{
|
||||
u2->SetModes(OperServ, "%s", modes.c_str());
|
||||
source.Reply(_("Changed usermodes of \002%s\002 to %s."), u2->nick.c_str(), modes.c_str());
|
||||
|
||||
if (Config->WallOSMode)
|
||||
ircdproto->SendGlobops(OperServ, "%s used MODE %s on %s", u->nick.c_str(), modes.c_str(), chan.c_str());
|
||||
u2->SendMessage(OperServ, _("\002%s\002 changed your usermodes to %s."), u->nick.c_str(), modes.c_str());
|
||||
|
||||
if (Config->WallOSMode)
|
||||
ircdproto->SendGlobops(OperServ, "\2%s\2 used MODE %s %s", u->nick.c_str(), modes.c_str(), u2->nick.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
bool OnHelp(CommandSource &source, const Anope::string &subcommand)
|
||||
{
|
||||
source.Reply(_("Syntax: \002MODE \037channel\037 \037modes\037\002\n"
|
||||
source.Reply(_("Syntax: \002MODE {\037channel\037|\037user\037} \037modes\037\002\n"
|
||||
" \n"
|
||||
"Allows Services operators to set channel modes for any\n"
|
||||
"channel. Parameters are the same as for the standard /MODE\n"
|
||||
"Allows Services operators to change modes for any channel or\n"
|
||||
"user. Parameters are the same as for the standard /MODE\n"
|
||||
"command."));
|
||||
return true;
|
||||
}
|
||||
|
||||
void OnSyntaxError(CommandSource &source, const Anope::string &subcommand)
|
||||
{
|
||||
SyntaxError(source, "MODE", _("MODE \037channel\037 \037modes\037"));
|
||||
SyntaxError(source, "MODE", _("MODE {\037channel\037|\037user\037} \037modes\037"));
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -1,89 +0,0 @@
|
||||
/* OperServ core functions
|
||||
*
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
*
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*/
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
#include "module.h"
|
||||
|
||||
class CommandOSUMode : public Command
|
||||
{
|
||||
public:
|
||||
CommandOSUMode() : Command("UMODE", 2, 2, "operserv/umode")
|
||||
{
|
||||
this->SetDesc("Change a user's modes");
|
||||
}
|
||||
|
||||
CommandReturn Execute(CommandSource &source, const std::vector<Anope::string> ¶ms)
|
||||
{
|
||||
User *u = source.u;
|
||||
const Anope::string &nick = params[0];
|
||||
const Anope::string &modes = params[1];
|
||||
|
||||
User *u2;
|
||||
|
||||
/**
|
||||
* Only accept a +/- mode string
|
||||
*-rob
|
||||
**/
|
||||
if (modes[0] != '+' && modes[0] != '-')
|
||||
{
|
||||
this->OnSyntaxError(source, "");
|
||||
return MOD_CONT;
|
||||
}
|
||||
if (!(u2 = finduser(nick)))
|
||||
source.Reply(LanguageString::NICK_X_NOT_IN_USE, nick.c_str());
|
||||
else
|
||||
{
|
||||
u2->SetModes(OperServ, "%s", modes.c_str());
|
||||
|
||||
source.Reply(_("Changed usermodes of \002%s\002."), nick.c_str());
|
||||
u2->SendMessage(OperServ, _("\002%s\002 changed your usermodes."), u->nick.c_str());
|
||||
|
||||
if (Config->WallOSMode)
|
||||
ircdproto->SendGlobops(OperServ, "\2%s\2 used UMODE on %s", u->nick.c_str(), nick.c_str());
|
||||
}
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
bool OnHelp(CommandSource &source, const Anope::string &subcommand)
|
||||
{
|
||||
source.Reply(_("Syntax: \002UMODE \037user\037 \037modes\037\002\n"
|
||||
" \n"
|
||||
"Allows Services Opers to set user modes for any user.\n"
|
||||
"Parameters are the same as for the standard /MODE\n"
|
||||
"command."));
|
||||
return true;
|
||||
}
|
||||
|
||||
void OnSyntaxError(CommandSource &source, const Anope::string &subcommand)
|
||||
{
|
||||
SyntaxError(source, "UMODE", _("UMODE \037nick\037 \037modes\037"));
|
||||
}
|
||||
};
|
||||
|
||||
class OSUMode : public Module
|
||||
{
|
||||
CommandOSUMode commandosumode;
|
||||
|
||||
public:
|
||||
OSUMode(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
|
||||
{
|
||||
if (!ircd->umode)
|
||||
throw ModuleException("Your IRCd does not support setting umodes");
|
||||
|
||||
this->SetAuthor("Anope");
|
||||
this->SetType(CORE);
|
||||
|
||||
this->AddCommand(OperServ, &commandosumode);
|
||||
}
|
||||
};
|
||||
|
||||
MODULE_INIT(OSUMode)
|
||||
Reference in New Issue
Block a user