Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #include "module.h"
00015
00016 class CommandCSSetSecureFounder : public Command
00017 {
00018 public:
00019 CommandCSSetSecureFounder(Module *creator, const Anope::string &cname = "chanserv/set/securefounder") : Command(creator, cname, 2, 2)
00020 {
00021 this->SetDesc(_("Stricter control of channel founder status"));
00022 this->SetSyntax(_("\037channel\037 {ON | OFF}"));
00023 }
00024
00025 void Execute(CommandSource &source, const std::vector<Anope::string> ¶ms) anope_override
00026 {
00027 ChannelInfo *ci = ChannelInfo::Find(params[0]);
00028 if (ci == NULL)
00029 {
00030 source.Reply(CHAN_X_NOT_REGISTERED, params[0].c_str());
00031 return;
00032 }
00033
00034 EventReturn MOD_RESULT;
00035 FOREACH_RESULT(I_OnSetChannelOption, OnSetChannelOption(source, this, ci, params[1]));
00036 if (MOD_RESULT == EVENT_STOP)
00037 return;
00038
00039 if (MOD_RESULT != EVENT_ALLOW && source.permission.empty() && !source.AccessFor(ci).HasPriv("SET"))
00040 {
00041 source.Reply(ACCESS_DENIED);
00042 return;
00043 }
00044
00045 if (params[1].equals_ci("ON"))
00046 {
00047 ci->SetFlag(CI_SECUREFOUNDER);
00048 source.Reply(_("Secure founder option for %s is now \002on\002."), ci->name.c_str());
00049 }
00050 else if (params[1].equals_ci("OFF"))
00051 {
00052 ci->UnsetFlag(CI_SECUREFOUNDER);
00053 source.Reply(_("Secure founder option for %s is now \002off\002."), ci->name.c_str());
00054 }
00055 else
00056 this->OnSyntaxError(source, "SECUREFOUNDER");
00057
00058 return;
00059 }
00060
00061 bool OnHelp(CommandSource &source, const Anope::string &) anope_override
00062 {
00063 this->SendSyntax(source);
00064 source.Reply(" ");
00065 source.Reply(_("Enables or disables the \002secure founder\002 option for a channel.\n"
00066 "When \002secure founder\002 is set, only the real founder will be\n"
00067 "able to drop the channel, change its founder and its successor,\n"
00068 "and not those who have founder level access through\n"
00069 "the access/qop command."));
00070 return true;
00071 }
00072 };
00073
00074 class CSSetSecureFounder : public Module
00075 {
00076 CommandCSSetSecureFounder commandcssetsecurefounder;
00077
00078 public:
00079 CSSetSecureFounder(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, CORE),
00080 commandcssetsecurefounder(this)
00081 {
00082 this->SetAuthor("Anope");
00083
00084 }
00085 };
00086
00087 MODULE_INIT(CSSetSecureFounder)