From a22f8d3b2de88b9bb6f80f0c2780846ae23ab389 Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 15 Jul 2010 22:55:02 -0400 Subject: Moved some files and diretories around, made cmake skip files it knows it can't compile because of missing dependices. --- src/core/CMakeLists.txt | 54 -- src/core/bs_act.cpp | 85 --- src/core/bs_assign.cpp | 95 --- src/core/bs_badwords.cpp | 282 --------- src/core/bs_bot.cpp | 411 ------------- src/core/bs_botlist.cpp | 93 --- src/core/bs_help.cpp | 53 -- src/core/bs_info.cpp | 233 ------- src/core/bs_kick.cpp | 388 ------------ src/core/bs_say.cpp | 91 --- src/core/bs_set.cpp | 215 ------- src/core/bs_unassign.cpp | 73 --- src/core/cs_access.cpp | 623 ------------------- src/core/cs_akick.cpp | 584 ------------------ src/core/cs_ban.cpp | 111 ---- src/core/cs_clear.cpp | 178 ------ src/core/cs_drop.cpp | 116 ---- src/core/cs_forbid.cpp | 129 ---- src/core/cs_getkey.cpp | 75 --- src/core/cs_help.cpp | 73 --- src/core/cs_info.cpp | 158 ----- src/core/cs_invite.cpp | 94 --- src/core/cs_kick.cpp | 97 --- src/core/cs_list.cpp | 176 ------ src/core/cs_modes.cpp | 451 -------------- src/core/cs_register.cpp | 131 ---- src/core/cs_saset.cpp | 122 ---- src/core/cs_saset_noexpire.cpp | 82 --- src/core/cs_set.cpp | 127 ---- src/core/cs_set_bantype.cpp | 110 ---- src/core/cs_set_description.cpp | 104 ---- src/core/cs_set_entrymsg.cpp | 111 ---- src/core/cs_set_founder.cpp | 138 ----- src/core/cs_set_keeptopic.cpp | 109 ---- src/core/cs_set_mlock.cpp | 182 ------ src/core/cs_set_opnotice.cpp | 109 ---- src/core/cs_set_peace.cpp | 109 ---- src/core/cs_set_persist.cpp | 154 ----- src/core/cs_set_private.cpp | 109 ---- src/core/cs_set_restricted.cpp | 112 ---- src/core/cs_set_secure.cpp | 109 ---- src/core/cs_set_securefounder.cpp | 115 ---- src/core/cs_set_secureops.cpp | 109 ---- src/core/cs_set_signkick.cpp | 109 ---- src/core/cs_set_successor.cpp | 140 ----- src/core/cs_set_topiclock.cpp | 109 ---- src/core/cs_set_xop.cpp | 139 ----- src/core/cs_status.cpp | 74 --- src/core/cs_suspend.cpp | 195 ------ src/core/cs_topic.cpp | 98 --- src/core/cs_unban.cpp | 88 --- src/core/cs_xop.cpp | 661 -------------------- src/core/db_plain.cpp | 1166 ------------------------------------ src/core/enc_md5.cpp | 373 ------------ src/core/enc_none.cpp | 67 --- src/core/enc_old.cpp | 381 ------------ src/core/enc_sha1.cpp | 229 ------- src/core/enc_sha256.cpp | 316 ---------- src/core/hs_del.cpp | 73 --- src/core/hs_delall.cpp | 78 --- src/core/hs_group.cpp | 66 -- src/core/hs_help.cpp | 51 -- src/core/hs_list.cpp | 132 ---- src/core/hs_off.cpp | 62 -- src/core/hs_on.cpp | 76 --- src/core/hs_set.cpp | 165 ----- src/core/hs_setall.cpp | 164 ----- src/core/m_socketengine_epoll.cpp | 155 ----- src/core/m_socketengine_select.cpp | 134 ----- src/core/ms_cancel.cpp | 87 --- src/core/ms_check.cpp | 106 ---- src/core/ms_del.cpp | 162 ----- src/core/ms_help.cpp | 52 -- src/core/ms_info.cpp | 215 ------- src/core/ms_list.cpp | 176 ------ src/core/ms_read.cpp | 159 ----- src/core/ms_rsend.cpp | 90 --- src/core/ms_send.cpp | 61 -- src/core/ms_sendall.cpp | 77 --- src/core/ms_set.cpp | 272 --------- src/core/ms_staff.cpp | 74 --- src/core/ns_access.cpp | 181 ------ src/core/ns_alist.cpp | 155 ----- src/core/ns_drop.cpp | 130 ---- src/core/ns_forbid.cpp | 122 ---- src/core/ns_getemail.cpp | 83 --- src/core/ns_getpass.cpp | 94 --- src/core/ns_ghost.cpp | 103 ---- src/core/ns_group.cpp | 287 --------- src/core/ns_help.cpp | 67 --- src/core/ns_identify.cpp | 125 ---- src/core/ns_info.cpp | 191 ------ src/core/ns_list.cpp | 219 ------- src/core/ns_logout.cpp | 96 --- src/core/ns_recover.cpp | 124 ---- src/core/ns_register.cpp | 395 ------------ src/core/ns_release.cpp | 106 ---- src/core/ns_resetpass.cpp | 169 ------ src/core/ns_saset.cpp | 245 -------- src/core/ns_saset_noexpire.cpp | 84 --- src/core/ns_sendpass.cpp | 100 ---- src/core/ns_set.cpp | 229 ------- src/core/ns_set_autoop.cpp | 128 ---- src/core/ns_set_email.cpp | 157 ----- src/core/ns_set_greet.cpp | 127 ---- src/core/ns_set_hide.cpp | 197 ------ src/core/ns_set_kill.cpp | 180 ------ src/core/ns_set_language.cpp | 140 ----- src/core/ns_set_message.cpp | 146 ----- src/core/ns_set_private.cpp | 134 ----- src/core/ns_set_secure.cpp | 134 ----- src/core/ns_status.cpp | 77 --- src/core/ns_suspend.cpp | 199 ------ src/core/ns_update.cpp | 67 --- src/core/os_akill.cpp | 410 ------------- src/core/os_chankill.cpp | 117 ---- src/core/os_chanlist.cpp | 99 --- src/core/os_clearmodes.cpp | 189 ------ src/core/os_defcon.cpp | 499 --------------- src/core/os_global.cpp | 62 -- src/core/os_help.cpp | 51 -- src/core/os_ignore.cpp | 203 ------- src/core/os_jupe.cpp | 78 --- src/core/os_kick.cpp | 80 --- src/core/os_mode.cpp | 71 --- src/core/os_modinfo.cpp | 100 ---- src/core/os_modlist.cpp | 230 ------- src/core/os_modload.cpp | 73 --- src/core/os_modunload.cpp | 75 --- src/core/os_news.cpp | 476 --------------- src/core/os_noop.cpp | 89 --- src/core/os_oline.cpp | 83 --- src/core/os_quit.cpp | 62 -- src/core/os_reload.cpp | 64 -- src/core/os_restart.cpp | 62 -- src/core/os_session.cpp | 509 ---------------- src/core/os_set.cpp | 312 ---------- src/core/os_shutdown.cpp | 61 -- src/core/os_snline.cpp | 431 ------------- src/core/os_sqline.cpp | 412 ------------- src/core/os_staff.cpp | 82 --- src/core/os_stats.cpp | 392 ------------ src/core/os_svsnick.cpp | 99 --- src/core/os_szline.cpp | 409 ------------- src/core/os_umode.cpp | 86 --- src/core/os_update.cpp | 54 -- src/core/os_userlist.cpp | 100 ---- src/core/ss_main.cpp | 63 -- 148 files changed, 25086 deletions(-) delete mode 100644 src/core/CMakeLists.txt delete mode 100644 src/core/bs_act.cpp delete mode 100644 src/core/bs_assign.cpp delete mode 100644 src/core/bs_badwords.cpp delete mode 100644 src/core/bs_bot.cpp delete mode 100644 src/core/bs_botlist.cpp delete mode 100644 src/core/bs_help.cpp delete mode 100644 src/core/bs_info.cpp delete mode 100644 src/core/bs_kick.cpp delete mode 100644 src/core/bs_say.cpp delete mode 100644 src/core/bs_set.cpp delete mode 100644 src/core/bs_unassign.cpp delete mode 100644 src/core/cs_access.cpp delete mode 100644 src/core/cs_akick.cpp delete mode 100644 src/core/cs_ban.cpp delete mode 100644 src/core/cs_clear.cpp delete mode 100644 src/core/cs_drop.cpp delete mode 100644 src/core/cs_forbid.cpp delete mode 100644 src/core/cs_getkey.cpp delete mode 100644 src/core/cs_help.cpp delete mode 100644 src/core/cs_info.cpp delete mode 100644 src/core/cs_invite.cpp delete mode 100644 src/core/cs_kick.cpp delete mode 100644 src/core/cs_list.cpp delete mode 100644 src/core/cs_modes.cpp delete mode 100644 src/core/cs_register.cpp delete mode 100644 src/core/cs_saset.cpp delete mode 100644 src/core/cs_saset_noexpire.cpp delete mode 100644 src/core/cs_set.cpp delete mode 100644 src/core/cs_set_bantype.cpp delete mode 100644 src/core/cs_set_description.cpp delete mode 100644 src/core/cs_set_entrymsg.cpp delete mode 100644 src/core/cs_set_founder.cpp delete mode 100644 src/core/cs_set_keeptopic.cpp delete mode 100644 src/core/cs_set_mlock.cpp delete mode 100644 src/core/cs_set_opnotice.cpp delete mode 100644 src/core/cs_set_peace.cpp delete mode 100644 src/core/cs_set_persist.cpp delete mode 100644 src/core/cs_set_private.cpp delete mode 100644 src/core/cs_set_restricted.cpp delete mode 100644 src/core/cs_set_secure.cpp delete mode 100644 src/core/cs_set_securefounder.cpp delete mode 100644 src/core/cs_set_secureops.cpp delete mode 100644 src/core/cs_set_signkick.cpp delete mode 100644 src/core/cs_set_successor.cpp delete mode 100644 src/core/cs_set_topiclock.cpp delete mode 100644 src/core/cs_set_xop.cpp delete mode 100644 src/core/cs_status.cpp delete mode 100644 src/core/cs_suspend.cpp delete mode 100644 src/core/cs_topic.cpp delete mode 100644 src/core/cs_unban.cpp delete mode 100644 src/core/cs_xop.cpp delete mode 100644 src/core/db_plain.cpp delete mode 100644 src/core/enc_md5.cpp delete mode 100644 src/core/enc_none.cpp delete mode 100644 src/core/enc_old.cpp delete mode 100644 src/core/enc_sha1.cpp delete mode 100644 src/core/enc_sha256.cpp delete mode 100644 src/core/hs_del.cpp delete mode 100644 src/core/hs_delall.cpp delete mode 100644 src/core/hs_group.cpp delete mode 100644 src/core/hs_help.cpp delete mode 100644 src/core/hs_list.cpp delete mode 100644 src/core/hs_off.cpp delete mode 100644 src/core/hs_on.cpp delete mode 100644 src/core/hs_set.cpp delete mode 100644 src/core/hs_setall.cpp delete mode 100644 src/core/m_socketengine_epoll.cpp delete mode 100644 src/core/m_socketengine_select.cpp delete mode 100644 src/core/ms_cancel.cpp delete mode 100644 src/core/ms_check.cpp delete mode 100644 src/core/ms_del.cpp delete mode 100644 src/core/ms_help.cpp delete mode 100644 src/core/ms_info.cpp delete mode 100644 src/core/ms_list.cpp delete mode 100644 src/core/ms_read.cpp delete mode 100644 src/core/ms_rsend.cpp delete mode 100644 src/core/ms_send.cpp delete mode 100644 src/core/ms_sendall.cpp delete mode 100644 src/core/ms_set.cpp delete mode 100644 src/core/ms_staff.cpp delete mode 100644 src/core/ns_access.cpp delete mode 100644 src/core/ns_alist.cpp delete mode 100644 src/core/ns_drop.cpp delete mode 100644 src/core/ns_forbid.cpp delete mode 100644 src/core/ns_getemail.cpp delete mode 100644 src/core/ns_getpass.cpp delete mode 100644 src/core/ns_ghost.cpp delete mode 100644 src/core/ns_group.cpp delete mode 100644 src/core/ns_help.cpp delete mode 100644 src/core/ns_identify.cpp delete mode 100644 src/core/ns_info.cpp delete mode 100644 src/core/ns_list.cpp delete mode 100644 src/core/ns_logout.cpp delete mode 100644 src/core/ns_recover.cpp delete mode 100644 src/core/ns_register.cpp delete mode 100644 src/core/ns_release.cpp delete mode 100644 src/core/ns_resetpass.cpp delete mode 100644 src/core/ns_saset.cpp delete mode 100644 src/core/ns_saset_noexpire.cpp delete mode 100644 src/core/ns_sendpass.cpp delete mode 100644 src/core/ns_set.cpp delete mode 100644 src/core/ns_set_autoop.cpp delete mode 100644 src/core/ns_set_email.cpp delete mode 100644 src/core/ns_set_greet.cpp delete mode 100644 src/core/ns_set_hide.cpp delete mode 100644 src/core/ns_set_kill.cpp delete mode 100644 src/core/ns_set_language.cpp delete mode 100644 src/core/ns_set_message.cpp delete mode 100644 src/core/ns_set_private.cpp delete mode 100644 src/core/ns_set_secure.cpp delete mode 100644 src/core/ns_status.cpp delete mode 100644 src/core/ns_suspend.cpp delete mode 100644 src/core/ns_update.cpp delete mode 100644 src/core/os_akill.cpp delete mode 100644 src/core/os_chankill.cpp delete mode 100644 src/core/os_chanlist.cpp delete mode 100644 src/core/os_clearmodes.cpp delete mode 100644 src/core/os_defcon.cpp delete mode 100644 src/core/os_global.cpp delete mode 100644 src/core/os_help.cpp delete mode 100644 src/core/os_ignore.cpp delete mode 100644 src/core/os_jupe.cpp delete mode 100644 src/core/os_kick.cpp delete mode 100644 src/core/os_mode.cpp delete mode 100644 src/core/os_modinfo.cpp delete mode 100644 src/core/os_modlist.cpp delete mode 100644 src/core/os_modload.cpp delete mode 100644 src/core/os_modunload.cpp delete mode 100644 src/core/os_news.cpp delete mode 100644 src/core/os_noop.cpp delete mode 100644 src/core/os_oline.cpp delete mode 100644 src/core/os_quit.cpp delete mode 100644 src/core/os_reload.cpp delete mode 100644 src/core/os_restart.cpp delete mode 100644 src/core/os_session.cpp delete mode 100644 src/core/os_set.cpp delete mode 100644 src/core/os_shutdown.cpp delete mode 100644 src/core/os_snline.cpp delete mode 100644 src/core/os_sqline.cpp delete mode 100644 src/core/os_staff.cpp delete mode 100644 src/core/os_stats.cpp delete mode 100644 src/core/os_svsnick.cpp delete mode 100644 src/core/os_szline.cpp delete mode 100644 src/core/os_umode.cpp delete mode 100644 src/core/os_update.cpp delete mode 100644 src/core/os_userlist.cpp delete mode 100644 src/core/ss_main.cpp (limited to 'src/core') diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt deleted file mode 100644 index 2af2b3ea9..000000000 --- a/src/core/CMakeLists.txt +++ /dev/null @@ -1,54 +0,0 @@ -# Find all the *.cpp files within the current source directory, and sort the list -file(GLOB CORE_SRCS_CPP RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cpp") -set(CORE_SRCS ${CORE_SRCS_C} ${CORE_SRCS_CPP}) -sort_list(CORE_SRCS) - -# If using Windows, add the MODULE_COMPILE define -if(WIN32) - add_definitions(-DMODULE_COMPILE) -endif(WIN32) - -# Set all the files to use C++ as well as set their compile flags (use the module-specific compile flags, though) -set_source_files_properties(${CORE_SRCS} PROPERTIES LANGUAGE CXX COMPILE_FLAGS "${CXXFLAGS}") - -# Create an empty list to store extra include directories -set(EXTRA_INCLUDES) - -# Iterate through all the source files -foreach(SRC ${CORE_SRCS}) - # Convert the source file extension to have a .so extension - string(REGEX REPLACE "\\.(c|cpp)$" ".so" SO ${SRC}) - # Temporary variable for the current source's include directories - set(TEMP_INCLUDES) - # Calculate the header file dependencies for the given source file - calculate_depends(${SRC} TEMP_INCLUDES) - # If there were some extra include directories, add them to the list - if(TEMP_INCLUDES) - append_to_list(EXTRA_INCLUDES ${TEMP_INCLUDES}) - endif(TEMP_INCLUDES) - # For Visual Studio only, include win32_memory static library, required to override Visual Studio's overrides of the new/delete operators - if(MSVC) - set(WIN32_MEMORY win32_memory) - else(MSVC) - set(WIN32_MEMORY) - endif(MSVC) - # Generate the module and set it's linker flags, also set it to depend on the main Anope executable to be built beforehand - add_library(${SO} MODULE ${SRC}) - set_target_properties(${SO} PROPERTIES LINKER_LANGUAGE CXX PREFIX "" SUFFIX "" LINK_FLAGS "${LDFLAGS}") - add_dependencies(${SO} ${PROGRAM_NAME}) - # For Windows only, have the module link to the export library of Anope as well as the wsock32 library (most of the modules probably don't need this, but this is to be on the safe side), also set it's version - if(WIN32) - target_link_libraries(${SO} ${PROGRAM_NAME} wsock32 ${WIN32_MEMORY}) - set_target_properties(${PROGRAM_NAME} PROPERTIES VERSION "${VERSION_DOTTED}") - endif(WIN32) - # Set the module to be installed to the module directory under the data directory - install(TARGETS ${SO} - DESTINATION data/modules - ) -endforeach(SRC) - -# If there were extra include directories, remove the duplicates and add the directories to the include path -if(EXTRA_INCLUDES) - remove_list_duplicates(EXTRA_INCLUDES) - include_directories(${EXTRA_INCLUDES}) -endif(EXTRA_INCLUDES) diff --git a/src/core/bs_act.cpp b/src/core/bs_act.cpp deleted file mode 100644 index aa054d11b..000000000 --- a/src/core/bs_act.cpp +++ /dev/null @@ -1,85 +0,0 @@ -/* BotServ core functions - * - * (C) 2003-2010 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 CommandBSAct : public Command -{ - public: - CommandBSAct() : Command("ACT", 2, 2) - { - } - - CommandReturn Execute(User *u, const std::vector ¶ms) - { - ChannelInfo *ci = cs_findchan(params[0]); - ci::string message = params[1]; - - if (!check_access(u, ci, CA_SAY)) - { - notice_lang(Config.s_BotServ, u, ACCESS_DENIED); - return MOD_CONT; - } - - if (!ci->bi) - { - notice_help(Config.s_BotServ, u, BOT_NOT_ASSIGNED); - return MOD_CONT; - } - - if (!ci->c || !ci->c->FindUser(ci->bi)) - { - notice_lang(Config.s_BotServ, u, BOT_NOT_ON_CHANNEL, ci->name.c_str()); - return MOD_CONT; - } - - size_t i = 0; - while ((i = message.find_first_of("\001"), i) && i != std::string::npos) - message.erase(i, 1); - - ircdproto->SendAction(ci->bi, ci->name.c_str(), "%s", message.c_str()); - ci->bi->lastmsg = time(NULL); - if (Config.LogBot && Config.LogChannel && LogChan && !debug && findchan(Config.LogChannel)) - ircdproto->SendPrivmsg(ci->bi, Config.LogChannel, "ACT %s %s %s", u->nick.c_str(), ci->name.c_str(), message.c_str()); - return MOD_CONT; - } - - void OnSyntaxError(User *u, const ci::string &subcommand) - { - syntax_error(Config.s_BotServ, u, "ACT", BOT_ACT_SYNTAX); - } - - bool OnHelp(User *u, const ci::string &subcommand) - { - notice_help(Config.s_BotServ, u, BOT_HELP_ACT); - return true; - } - - void OnServHelp(User *u) - { - notice_lang(Config.s_BotServ, u, BOT_HELP_CMD_ACT); - } -}; - -class BSAct : public Module -{ - public: - BSAct(const std::string &modname, const std::string &creator) : Module(modname, creator) - { - this->SetAuthor("Anope"); - this->SetType(CORE); - this->AddCommand(BotServ, new CommandBSAct()); - } -}; - -MODULE_INIT(BSAct) diff --git a/src/core/bs_assign.cpp b/src/core/bs_assign.cpp deleted file mode 100644 index 0695a7e6d..000000000 --- a/src/core/bs_assign.cpp +++ /dev/null @@ -1,95 +0,0 @@ -/* BotServ core functions - * - * (C) 2003-2010 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 CommandBSAssign : public Command -{ - public: - CommandBSAssign() : Command("ASSIGN", 2, 2) - { - } - - CommandReturn Execute(User *u, const std::vector ¶ms) - { - const char *chan = params[0].c_str(); - const char *nick = params[1].c_str(); - BotInfo *bi; - ChannelInfo *ci; - - if (readonly) - { - notice_lang(Config.s_BotServ, u, BOT_ASSIGN_READONLY); - return MOD_CONT; - } - - if (!(bi = findbot(nick))) - { - notice_lang(Config.s_BotServ, u, BOT_DOES_NOT_EXIST, nick); - return MOD_CONT; - } - - ci = cs_findchan(chan); - - if (ci->botflags.HasFlag(BS_NOBOT) || (!check_access(u, ci, CA_ASSIGN) && !u->Account()->HasPriv("botserv/administration"))) - { - notice_lang(Config.s_BotServ, u, ACCESS_DENIED); - return MOD_CONT; - } - - if (bi->HasFlag(BI_PRIVATE) && !u->Account()->HasCommand("botserv/assign/private")) - { - notice_lang(Config.s_BotServ, u, ACCESS_DENIED); - return MOD_CONT; - } - - if (ci->bi && ci::string(ci->bi->nick.c_str()) == nick) - { - notice_lang(Config.s_BotServ, u, BOT_ASSIGN_ALREADY, ci->bi->nick.c_str(), chan); - return MOD_CONT; - } - - bi->Assign(u, ci); - notice_lang(Config.s_BotServ, u, BOT_ASSIGN_ASSIGNED, bi->nick.c_str(), ci->name.c_str()); - return MOD_CONT; - } - - bool OnHelp(User *u, const ci::string &subcommand) - { - notice_help(Config.s_BotServ, u, BOT_HELP_ASSIGN); - return true; - } - - void OnSyntaxError(User *u, const ci::string &subcommand) - { - syntax_error(Config.s_BotServ, u, "ASSIGN", BOT_ASSIGN_SYNTAX); - } - - void OnServHelp(User *u) - { - notice_lang(Config.s_BotServ, u, BOT_HELP_CMD_ASSIGN); - } -}; - -class BSAssign : public Module -{ - public: - BSAssign(const std::string &modname, const std::string &creator) : Module(modname, creator) - { - this->SetAuthor("Anope"); - this->SetType(CORE); - this->AddCommand(BotServ, new CommandBSAssign); - } -}; - -MODULE_INIT(BSAssign) diff --git a/src/core/bs_badwords.cpp b/src/core/bs_badwords.cpp deleted file mode 100644 index 822847a6a..000000000 --- a/src/core/bs_badwords.cpp +++ /dev/null @@ -1,282 +0,0 @@ -/* BotServ core functions - * - * (C) 2003-2010 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 BadwordsListCallback : public NumberList -{ - User *u; - ChannelInfo *ci; - bool SentHeader; - public: - BadwordsListCallback(User *_u, ChannelInfo *_ci, const std::string &list) : NumberList(list, false), u(_u), ci(_ci), SentHeader(false) - { - } - - ~BadwordsListCallback() - { - if (!SentHeader) - notice_lang(Config.s_BotServ, u, BOT_BADWORDS_NO_MATCH, ci->name.c_str()); - } - - void HandleNumber(unsigned Number) - { - if (Number > ci->GetBadWordCount()) - return; - - if (!SentHeader) - { - SentHeader = true; - notice_lang(Config.s_BotServ, u, BOT_BADWORDS_LIST_HEADER, ci->name.c_str()); - } - - DoList(u, ci, Number - 1, ci->GetBadWord(Number - 1)); - } - - static void DoList(User *u, ChannelInfo *ci, unsigned Number, BadWord *bw) - { - notice_lang(Config.s_BotServ, u, BOT_BADWORDS_LIST_FORMAT, Number + 1, bw->word.c_str(), ((bw->type == BW_SINGLE) ? "(SINGLE)" : ((bw->type == BW_START) ? "(START)" : ((bw->type == BW_END) ? "(END)" : "")))); - } -}; - -class BadwordsDelCallback : public NumberList -{ - User *u; - ChannelInfo *ci; - unsigned Deleted; - public: - BadwordsDelCallback(User *_u, ChannelInfo *_ci, const std::string &list) : NumberList(list, true), u(_u), ci(_ci), Deleted(0) - { - } - - ~BadwordsDelCallback() - { - if (!Deleted) - notice_lang(Config.s_BotServ, u, BOT_BADWORDS_NO_MATCH, ci->name.c_str()); - else if (Deleted == 1) - notice_lang(Config.s_BotServ, u, BOT_BADWORDS_DELETED_ONE, ci->name.c_str()); - else - notice_lang(Config.s_BotServ, u, BOT_BADWORDS_DELETED_SEVERAL, Deleted, ci->name.c_str()); - } - - void HandleNumber(unsigned Number) - { - if (Number > ci->GetBadWordCount()) - return; - - ++Deleted; - ci->EraseBadWord(Number - 1); - } -}; - -class CommandBSBadwords : public Command -{ - private: - CommandReturn DoList(User *u, ChannelInfo *ci, const ci::string &word) - { - if (!ci->GetBadWordCount()) - notice_lang(Config.s_BotServ, u, BOT_BADWORDS_LIST_EMPTY, ci->name.c_str()); - else if (!word.empty() && strspn(word.c_str(), "1234567890,-") == word.length()) - { - BadwordsListCallback list(u, ci, word.c_str()); - list.Process(); - } - else - { - bool SentHeader = false; - - for (unsigned i = 0, end = ci->GetBadWordCount(); i < end; ++i) - { - BadWord *bw = ci->GetBadWord(i); - - if (!word.empty() && !Anope::Match(bw->word, word.c_str(), false)) - continue; - - if (!SentHeader) - { - SentHeader = true; - notice_lang(Config.s_BotServ, u, BOT_BADWORDS_LIST_HEADER, ci->name.c_str()); - } - - BadwordsListCallback::DoList(u, ci, i, bw); - } - - if (!SentHeader) - notice_lang(Config.s_BotServ, u, BOT_BADWORDS_NO_MATCH, ci->name.c_str()); - } - - return MOD_CONT; - } - - CommandReturn DoAdd(User *u, ChannelInfo *ci, const ci::string &word) - { - size_t pos = word.find_last_of(" "); - BadWordType type = BW_ANY; - ci::string realword = word; - - if (pos != ci::string::npos) - { - ci::string opt = ci::string(word, pos + 1); - if (!opt.empty()) - { - if (opt == "SINGLE") - type = BW_SINGLE; - else if (opt == "START") - type = BW_START; - else if (opt == "END") - type = BW_END; - } - realword = ci::string(word, 0, pos); - } - - if (ci->GetBadWordCount() >= Config.BSBadWordsMax) - { - notice_lang(Config.s_BotServ, u, BOT_BADWORDS_REACHED_LIMIT, Config.BSBadWordsMax); - return MOD_CONT; - } - - for (unsigned i = 0, end = ci->GetBadWordCount(); i < end; ++i) - { - BadWord *bw = ci->GetBadWord(i); - - if (!bw->word.empty() && ((Config.BSCaseSensitive && !stricmp(bw->word.c_str(), realword.c_str())) || (!Config.BSCaseSensitive && bw->word == realword.c_str()))) - { - notice_lang(Config.s_BotServ, u, BOT_BADWORDS_ALREADY_EXISTS, bw->word.c_str(), ci->name.c_str()); - return MOD_CONT; - } - } - - ci->AddBadWord(realword.c_str(), type); - - notice_lang(Config.s_BotServ, u, BOT_BADWORDS_ADDED, realword.c_str(), ci->name.c_str()); - - return MOD_CONT; - } - - CommandReturn DoDelete(User *u, ChannelInfo *ci, const ci::string &word) - { - /* Special case: is it a number/list? Only do search if it isn't. */ - if (!word.empty() && isdigit(word[0]) && strspn(word.c_str(), "1234567890,-") == word.length()) - { - BadwordsDelCallback list(u, ci, word.c_str()); - list.Process(); - } - else - { - unsigned i, end; - BadWord *badword; - - for (i = 0, end = ci->GetBadWordCount(); i < end; ++i) - { - badword = ci->GetBadWord(i); - - if (badword->word == word) - break; - } - - if (i == end) - { - notice_lang(Config.s_BotServ, u, BOT_BADWORDS_NOT_FOUND, word.c_str(), ci->name.c_str()); - return MOD_CONT; - } - - ci->EraseBadWord(i); - - notice_lang(Config.s_BotServ, u, BOT_BADWORDS_DELETED, badword->word.c_str(), ci->name.c_str()); - } - - return MOD_CONT; - } - - CommandReturn DoClear(User *u, ChannelInfo *ci) - { - ci->ClearBadWords(); - notice_lang(Config.s_BotServ, u, BOT_BADWORDS_CLEAR); - return MOD_CONT; - } - public: - CommandBSBadwords() : Command("BADWORDS", 2, 3) - { - } - - CommandReturn Execute(User *u, const std::vector ¶ms) - { - const char *chan = params[0].c_str(); - ci::string cmd = params[1]; - ci::string word = params.size() > 2 ? params[2].c_str() : ""; - ChannelInfo *ci; - bool need_args = cmd == "LIST" || cmd == "CLEAR"; - - if (!need_args && word.empty()) - { - this->OnSyntaxError(u, cmd); - return MOD_CONT; - } - - ci = cs_findchan(chan); - - if (!check_access(u, ci, CA_BADWORDS) && (!need_args || !u->Account()->HasPriv("botserv/administration"))) - { - notice_lang(Config.s_BotServ, u, ACCESS_DENIED); - return MOD_CONT; - } - - if (readonly) - { - notice_lang(Config.s_BotServ, u, BOT_BADWORDS_DISABLED); - return MOD_CONT; - } - - if (cmd == "ADD") - return this->DoAdd(u, ci, word); - else if (cmd == "DEL") - return this->DoDelete(u, ci, word); - else if (cmd == "LIST") - return this->DoList(u, ci, word); - else if (cmd == "CLEAR") - return this->DoClear(u, ci); - else - this->OnSyntaxError(u, ""); - - return MOD_CONT; - } - - bool OnHelp(User *u, const ci::string &subcommand) - { - notice_help(Config.s_BotServ, u, BOT_HELP_BADWORDS); - return true; - } - - void OnSyntaxError(User *u, const ci::string &subcommand) - { - syntax_error(Config.s_BotServ, u, "BADWORDS", BOT_BADWORDS_SYNTAX); - } - - void OnServHelp(User *u) - { - notice_lang(Config.s_BotServ, u, BOT_HELP_CMD_BADWORDS); - } -}; - -class BSBadwords : public Module -{ - public: - BSBadwords(const std::string &modname, const std::string &creator) : Module(modname, creator) - { - this->SetAuthor("Anope"); - this->SetType(CORE); - this->AddCommand(BotServ, new CommandBSBadwords); - } -}; - -MODULE_INIT(BSBadwords) diff --git a/src/core/bs_bot.cpp b/src/core/bs_bot.cpp deleted file mode 100644 index 3af9fa685..000000000 --- a/src/core/bs_bot.cpp +++ /dev/null @@ -1,411 +0,0 @@ -/* BotServ core functions - * - * (C) 2003-2010 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 CommandBSBot : public Command -{ - private: - CommandReturn DoAdd(User *u, const std::vector ¶ms) - { - const char *nick = params[1].c_str(); - const char *user = params[2].c_str(); - const char *host = params[3].c_str(); - const char *real = params[4].c_str(); - const char *ch = NULL; - BotInfo *bi; - - if (findbot(nick)) - { - notice_lang(Config.s_BotServ, u, BOT_BOT_ALREADY_EXISTS, nick); - return MOD_CONT; - } - - if (strlen(nick) > Config.NickLen) - { - notice_lang(Config.s_BotServ, u, BOT_BAD_NICK); - return MOD_CONT; - } - - if (strlen(user) > Config.UserLen) - { - notice_lang(Config.s_BotServ, u, BOT_LONG_IDENT, Config.UserLen); - return MOD_CONT; - } - - if (strlen(user) > Config.HostLen) - { - notice_lang(Config.s_BotServ, u, BOT_LONG_HOST, Config.HostLen); - return MOD_CONT; - } - - /* Check the nick is valid re RFC 2812 */ - if (isdigit(nick[0]) || nick[0] == '-') - { - notice_lang(Config.s_BotServ, u, BOT_BAD_NICK); - return MOD_CONT; - } - - for (ch = nick; *ch && ch - nick < Config.NickLen; ++ch) - if (!isvalidnick(*ch)) - { - notice_lang(Config.s_BotServ, u, BOT_BAD_NICK); - return MOD_CONT; - } - - /* check for hardcored ircd forbidden nicks */ - if (!ircdproto->IsNickValid(nick)) - { - notice_lang(Config.s_BotServ, u, BOT_BAD_NICK); - return MOD_CONT; - } - - /* Check the host is valid re RFC 2812 */ - if (!isValidHost(host, 3)) - { - notice_lang(Config.s_BotServ, u, BOT_BAD_HOST); - return MOD_CONT; - } - - for (ch = user; *ch && ch - user < Config.UserLen; ++ch) - if (!isalnum(*ch)) - { - notice_lang(Config.s_BotServ, u, BOT_BAD_IDENT, Config.UserLen); - return MOD_CONT; - } - - /* We check whether the nick is registered, and inform the user - * if so. You need to drop the nick manually before you can use - * it as a bot nick from now on -GD - */ - if (findnick(nick)) - { - notice_lang(Config.s_BotServ, u, NICK_ALREADY_REGISTERED, nick); - return MOD_CONT; - } - - if (!(bi = new BotInfo(nick, user, host, real))) - { - notice_lang(Config.s_BotServ, u, BOT_BOT_CREATION_FAILED); - return MOD_CONT; - } - - notice_lang(Config.s_BotServ, u, BOT_BOT_ADDED, bi->nick.c_str(), bi->GetIdent().c_str(), bi->host, bi->realname); - - FOREACH_MOD(I_OnBotCreate, OnBotCreate(bi)); - return MOD_CONT; - } - - CommandReturn DoChange(User *u, const std::vector ¶ms) - { - const char *oldnick = params[1].c_str(); - const char *nick = params.size() > 2 ? params[2].c_str() : NULL; - const char *user = params.size() > 3 ? params[3].c_str() : NULL; - const char *host = params.size() > 4 ? params[4].c_str() : NULL; - const char *real = params.size() > 5 ? params[5].c_str() : NULL; - const char *ch = NULL; - BotInfo *bi; - - if (!oldnick || !nick) - { - this->OnSyntaxError(u, "CHANGE"); - return MOD_CONT; - } - - if (!(bi = findbot(oldnick))) - { - notice_lang(Config.s_BotServ, u, BOT_DOES_NOT_EXIST, oldnick); - return MOD_CONT; - } - - if (stricmp(oldnick, nick) && nickIsServices(oldnick, 0)) - { - notice_lang(Config.s_BotServ, u, BOT_DOES_NOT_EXIST, oldnick); - return MOD_CONT; - } - - if (strlen(nick) > Config.NickLen) - { - notice_lang(Config.s_BotServ, u, BOT_BAD_NICK); - return MOD_CONT; - } - - if (user && strlen(user) > Config.UserLen) - { - notice_lang(Config.s_BotServ, u, BOT_LONG_IDENT, Config.UserLen); - return MOD_CONT; - } - - if (host && strlen(host) > Config.HostLen) - { - notice_lang(Config.s_BotServ, u, BOT_LONG_HOST, Config.HostLen); - return MOD_CONT; - } - - if (stricmp(oldnick, nick) && nickIsServices(nick, 0)) - { - notice_lang(Config.s_BotServ, u, BOT_DOES_NOT_EXIST, oldnick); - return MOD_CONT; - } - - /* Checks whether there *are* changes. - * Case sensitive because we may want to change just the case. - * And we must finally check that the nick is not already - * taken by another bot. - */ - if (bi->nick == nick && (user ? bi->GetIdent() == user : 1) && (host ? !strcmp(bi->host, host) : 1) && (real ? !strcmp(bi->realname, real) : 1)) - { - notice_lang(Config.s_BotServ, u, BOT_BOT_ANY_CHANGES); - return MOD_CONT; - } - - /* Check the nick is valid re RFC 2812 */ - if (isdigit(nick[0]) || nick[0] == '-') - { - notice_lang(Config.s_BotServ, u, BOT_BAD_NICK); - return MOD_CONT; - } - - for (ch = nick; *ch && ch - nick < Config.NickLen; ++ch) - if (!isvalidnick(*ch)) - { - notice_lang(Config.s_BotServ, u, BOT_BAD_NICK); - return MOD_CONT; - } - - /* check for hardcored ircd forbidden nicks */ - if (!ircdproto->IsNickValid(nick)) - { - notice_lang(Config.s_BotServ, u, BOT_BAD_NICK); - return MOD_CONT; - } - - if (host && !isValidHost(host, 3)) - { - notice_lang(Config.s_BotServ, u, BOT_BAD_HOST); - return MOD_CONT; - } - - if (user) - for (ch = user; *ch && ch - user < Config.UserLen; ++ch) - if (!isalnum(*ch)) - { - notice_lang(Config.s_BotServ, u, BOT_BAD_IDENT, Config.UserLen); - return MOD_CONT; - } - - ci::string ci_bi_nick(bi->nick.c_str()); - if (ci_bi_nick != nick && findbot(nick)) - { - notice_lang(Config.s_BotServ, u, BOT_BOT_ALREADY_EXISTS, nick); - return MOD_CONT; - } - - if (ci_bi_nick != nick) - { - /* We check whether the nick is registered, and inform the user - * if so. You need to drop the nick manually before you can use - * it as a bot nick from now on -GD - */ - if (findnick(nick)) - { - notice_lang(Config.s_BotServ, u, NICK_ALREADY_REGISTERED, nick); - return MOD_CONT; - } - - /* The new nick is really different, so we remove the Q line for - the old nick. */ - if (ircd->sqline) - { - XLine x(bi->nick.c_str()); - ircdproto->SendSQLineDel(&x); - } - - /* We check whether user with this nick is online, and kill it if so */ - EnforceQlinedNick(nick, Config.s_BotServ); - } - - if (user) - ircdproto->SendQuit(bi, "Quit: Be right back"); - else - { - ircdproto->SendChangeBotNick(bi, nick); - XLine x(bi->nick.c_str(), "Reserved for services"); - ircdproto->SendSQLine(&x); - } - - if (bi->nick != nick) - bi->SetNewNick(nick); - - if (user && bi->GetIdent() != user) - bi->SetIdent(user); - if (host && strcmp(bi->host, host)) - bi->host = sstrdup(host); - if (real && strcmp(bi->realname, real)) - bi->realname = sstrdup(real); - - if (user) - { - ircdproto->SendClientIntroduction(bi->nick, bi->GetIdent(), bi->host, bi->realname, ircd->pseudoclient_mode, bi->GetUID()); - XLine x(bi->nick.c_str(), "Reserved for services"); - ircdproto->SendSQLine(&x); - bi->RejoinAll(); - } - - notice_lang(Config.s_BotServ, u, BOT_BOT_CHANGED, oldnick, bi->nick.c_str(), bi->GetIdent().c_str(), bi->host, bi->realname); - - FOREACH_MOD(I_OnBotChange, OnBotChange(bi)); - return MOD_CONT; - } - - CommandReturn DoDel(User *u, const std::vector ¶ms) - { - const char *nick = params[1].c_str(); - BotInfo *bi; - - if (!nick) - { - this->OnSyntaxError(u, "DEL"); - return MOD_CONT; - } - - if (!(bi = findbot(nick))) - { - notice_lang(Config.s_BotServ, u, BOT_DOES_NOT_EXIST, nick); - return MOD_CONT; - } - - if (nickIsServices(nick, 0)) - { - notice_lang(Config.s_BotServ, u, BOT_DOES_NOT_EXIST, nick); - return MOD_CONT; - } - - FOREACH_MOD(I_OnBotDelete, OnBotDelete(bi)); - - ircdproto->SendQuit(bi, "Quit: Help! I'm being deleted by %s!", u->nick.c_str()); - XLine x(bi->nick.c_str()); - ircdproto->SendSQLineDel(&x); - - delete bi; - notice_lang(Config.s_BotServ, u, BOT_BOT_DELETED, nick); - return MOD_CONT; - } - public: - CommandBSBot() : Command("BOT", 1, 6) - { - this->SetFlag(CFLAG_STRIP_CHANNEL); - } - - CommandReturn Execute(User *u, const std::vector ¶ms) - { - ci::string cmd = params[0]; - - if (readonly) - { - notice_lang(Config.s_BotServ, u, BOT_BOT_READONLY); - return MOD_CONT; - } - - if (cmd == "ADD") - { - // ADD nick user host real - 5 - if (!u->Account()->HasCommand("botserv/bot/add")) - { - notice_lang(Config.s_BotServ, u, ACCESS_DENIED); - return MOD_CONT; - } - - if (params.size() < 5) - { - this->OnSyntaxError(u, "ADD"); - return MOD_CONT; - } - - std::vector tempparams = params; - // ADD takes less params than CHANGE, so we need to take 6 if given and append it with a space to 5. - if (tempparams.size() >= 6) - tempparams[4] = tempparams[4] + " " + tempparams[5]; - - return this->DoAdd(u, tempparams); - } - else if (cmd == "CHANGE") - { - // CHANGE oldn newn user host real - 6 - // but only oldn and newn are required - if (!u->Account()->HasCommand("botserv/bot/change")) - { - notice_lang(Config.s_BotServ, u, ACCESS_DENIED); - return MOD_CONT; - } - - if (params.size() < 3) - { - this->OnSyntaxError(u, "CHANGE"); - return MOD_CONT; - } - - return this->DoChange(u, params); - } - else if (cmd == "DEL") - { - // DEL nick - if (!u->Account()->HasCommand("botserv/bot/del")) - { - notice_lang(Config.s_BotServ, u, ACCESS_DENIED); - return MOD_CONT; - } - - if (params.size() < 1) - { - this->OnSyntaxError(u, "DEL"); - return MOD_CONT; - } - - return this->DoDel(u, params); - } - else - this->OnSyntaxError(u, ""); - - return MOD_CONT; - } - - bool OnHelp(User *u, const ci::string &subcommand) - { - notice_lang(Config.s_BotServ, u, BOT_SERVADMIN_HELP_BOT); - return true; - } - - void OnSyntaxError(User *u, const ci::string &subcommand) - { - syntax_error(Config.s_BotServ, u, "BOT", BOT_BOT_SYNTAX); - } - - void OnServHelp(User *u) - { - notice_lang(Config.s_BotServ, u, BOT_HELP_CMD_BOT); - } -}; - -class BSBot : public Module -{ - public: - BSBot(const std::string &modname, const std::string &creator) : Module(modname, creator) - { - this->SetAuthor("Anope"); - this->SetType(CORE); - this->AddCommand(BotServ, new CommandBSBot()); - } -}; - -MODULE_INIT(BSBot) diff --git a/src/core/bs_botlist.cpp b/src/core/bs_botlist.cpp deleted file mode 100644 index 44848b5cb..000000000 --- a/src/core/bs_botlist.cpp +++ /dev/null @@ -1,93 +0,0 @@ -/* BotServ core functions - * - * (C) 2003-2010 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 CommandBSBotList : public Command -{ - public: - CommandBSBotList() : Command("BOTLIST", 0, 0) - { - } - - CommandReturn Execute(User *u, const std::vector ¶ms) - { - unsigned count = 0; - - if (BotListByNick.empty()) - { - notice_lang(Config.s_BotServ, u, BOT_BOTLIST_EMPTY); - return MOD_CONT; - } - - for (botinfo_map::const_iterator it = BotListByNick.begin(), it_end = BotListByNick.end(); it != it_end; ++it) - { - BotInfo *bi = it->second; - - if (!bi->HasFlag(BI_PRIVATE)) - { - if (!count) - notice_lang(Config.s_BotServ, u, BOT_BOTLIST_HEADER); - ++count; - u->SendMessage(Config.s_BotServ, " %-15s (%s@%s)", bi->nick.c_str(), bi->GetIdent().c_str(), bi->host); - } - } - - if (u->Account()->HasCommand("botserv/botlist") && count < BotListByNick.size()) - { - notice_lang(Config.s_BotServ, u, BOT_BOTLIST_PRIVATE_HEADER); - - for (botinfo_map::const_iterator it = BotListByNick.begin(), it_end = BotListByNick.end(); it != it_end; ++it) - { - BotInfo *bi = it->second; - - if (bi->HasFlag(BI_PRIVATE)) - { - u->SendMessage(Config.s_BotServ, " %-15s (%s@%s)", bi->nick.c_str(), bi->GetIdent().c_str(), bi->host); - ++count; - } - } - } - - if (!count) - notice_lang(Config.s_BotServ, u, BOT_BOTLIST_EMPTY); - else - notice_lang(Config.s_BotServ, u, BOT_BOTLIST_FOOTER, count); - - return MOD_CONT; - } - - bool OnHelp(User *u, const ci::string &subcommand) - { - notice_help(Config.s_BotServ, u, BOT_HELP_BOTLIST); - return true; - } - - void OnServHelp(User *u) - { - notice_lang(Config.s_BotServ, u, BOT_HELP_CMD_BOTLIST); - } -}; - -class BSBotList : public Module -{ - public: - BSBotList(const std::string &modname, const std::string &creator) : Module(modname, creator) - { - this->SetAuthor("Anope"); - this->SetType(CORE); - this->AddCommand(BotServ, new CommandBSBotList()); - } -}; - -MODULE_INIT(BSBotList) diff --git a/src/core/bs_help.cpp b/src/core/bs_help.cpp deleted file mode 100644 index 7183c6fe9..000000000 --- a/src/core/bs_help.cpp +++ /dev/null @@ -1,53 +0,0 @@ -/* BotServ core functions - * - * (C) 2003-2010 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 CommandBSHelp : public Command -{ - public: - CommandBSHelp() : Command("HELP", 1, 1) - { - this->SetFlag(CFLAG_ALLOW_UNREGISTERED); - this->SetFlag(CFLAG_STRIP_CHANNEL); - } - - CommandReturn Execute(User *u, const std::vector ¶ms) - { - mod_help_cmd(findbot(Config.s_BotServ), u, params[0].c_str()); - return MOD_CONT; - } - - void OnSyntaxError(User *u, const ci::string &subcommand) - { - // Abuse syntax error to display general list help. - notice_help(Config.s_BotServ, u, BOT_HELP); - for (CommandMap::const_iterator it = BotServ->Commands.begin(), it_end = BotServ->Commands.end(); it != it_end; ++it) - if (!Config.HidePrivilegedCommands || it->second->permission.empty() || (u->Account() && u->Account()->HasCommand(it->second->permission))) - it->second->OnServHelp(u); - notice_help(Config.s_BotServ, u, BOT_HELP_FOOTER, Config.BSMinUsers); - } -}; - -class BSHelp : public Module -{ - public: - BSHelp(const std::string &modname, const std::string &creator) : Module(modname, creator) - { - this->SetAuthor("Anope"); - this->SetType(CORE); - this->AddCommand(BotServ, new CommandBSHelp()); - } -}; - -MODULE_INIT(BSHelp) diff --git a/src/core/bs_info.cpp b/src/core/bs_info.cpp deleted file mode 100644 index 7d8e6aea7..000000000 --- a/src/core/bs_info.cpp +++ /dev/null @@ -1,233 +0,0 @@ -/* BotServ core functions - * - * (C) 2003-2010 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 CommandBSInfo : public Command -{ - private: - void send_bot_channels(User * u, BotInfo * bi) - { - char buf[307], *end; - - *buf = 0; - end = buf; - - for (registered_channel_map::const_iterator it = RegisteredChannelList.begin(), it_end = RegisteredChannelList.end(); it != it_end; ++it) - { - ChannelInfo *ci = it->second; - - if (ci->bi == bi) - { - if (strlen(buf) + strlen(ci->name.c_str()) > 300) - { - u->SendMessage(Config.s_BotServ, "%s", buf); - *buf = 0; - end = buf; - } - end += snprintf(end, sizeof(buf) - (end - buf), " %s ", ci->name.c_str()); - } - } - - if (*buf) - u->SendMessage(Config.s_BotServ, "%s", buf); - return; - } - public: - CommandBSInfo() : Command("INFO", 1, 1) - { - this->SetFlag(CFLAG_STRIP_CHANNEL); - } - - CommandReturn Execute(User *u, const std::vector ¶ms) - { - BotInfo *bi; - ChannelInfo *ci; - const char *query = params[0].c_str(); - - int need_comma = 0; - char buf[BUFSIZE], *end; - const char *commastr = getstring(u, COMMA_SPACE); - - if ((bi = findbot(query))) - { - struct tm *tm; - - notice_lang(Config.s_BotServ, u, BOT_INFO_BOT_HEADER, bi->nick.c_str()); - notice_lang(Config.s_BotServ, u, BOT_INFO_BOT_MASK, bi->GetIdent().c_str(), bi->host); - notice_lang(Config.s_BotServ, u, BOT_INFO_BOT_REALNAME, bi->realname); - tm = localtime(&bi->created); - strftime_lang(buf, sizeof(buf), u, STRFTIME_DATE_TIME_FORMAT, tm); - notice_lang(Config.s_BotServ, u, BOT_INFO_BOT_CREATED, buf); - notice_lang(Config.s_BotServ, u, BOT_INFO_BOT_OPTIONS, getstring(u, (bi->HasFlag(BI_PRIVATE) ? BOT_INFO_OPT_PRIVATE : BOT_INFO_OPT_NONE))); - notice_lang(Config.s_BotServ, u, BOT_INFO_BOT_USAGE, bi->chans.size()); - - if (u->Account()->HasPriv("botserv/administration")) - this->send_bot_channels(u, bi); - } - else if ((ci = cs_findchan(query))) - { - if (!check_access(u, ci, CA_FOUNDER) && !u->Account()->HasPriv("botserv/administration")) - { - notice_lang(Config.s_BotServ, u, ACCESS_DENIED); - return MOD_CONT; - } - - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_HEADER, ci->name.c_str()); - if (ci->bi) - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_BOT, ci->bi->nick.c_str()); - else - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_BOT_NONE); - - if (ci->botflags.HasFlag(BS_KICK_BADWORDS)) - { - if (ci->ttb[TTB_BADWORDS]) - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_KICK_BADWORDS_BAN, getstring(u, BOT_INFO_ACTIVE), ci->ttb[TTB_BADWORDS]); - else - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_KICK_BADWORDS, getstring(u, BOT_INFO_ACTIVE)); - } - else - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_KICK_BADWORDS, getstring(u, BOT_INFO_INACTIVE)); - if (ci->botflags.HasFlag(BS_KICK_BOLDS)) - { - if (ci->ttb[TTB_BOLDS]) - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_KICK_BOLDS_BAN, getstring(u, BOT_INFO_ACTIVE), ci->ttb[TTB_BOLDS]); - else - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_KICK_BOLDS, getstring(u, BOT_INFO_ACTIVE)); - } - else - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_KICK_BOLDS, getstring(u, BOT_INFO_INACTIVE)); - if (ci->botflags.HasFlag(BS_KICK_CAPS)) - { - if (ci->ttb[TTB_CAPS]) - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_KICK_CAPS_BAN, getstring(u, BOT_INFO_ACTIVE), ci->ttb[TTB_CAPS], ci->capsmin, ci->capspercent); - else - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_KICK_CAPS_ON, getstring(u, BOT_INFO_ACTIVE), ci->capsmin, ci->capspercent); - } - else - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_KICK_CAPS_OFF, getstring(u, BOT_INFO_INACTIVE)); - if (ci->botflags.HasFlag(BS_KICK_COLORS)) - { - if (ci->ttb[TTB_COLORS]) - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_KICK_COLORS_BAN, getstring(u, BOT_INFO_ACTIVE), ci->ttb[TTB_COLORS]); - else - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_KICK_COLORS, getstring(u, BOT_INFO_ACTIVE)); - } - else - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_KICK_COLORS, getstring(u, BOT_INFO_INACTIVE)); - if (ci->botflags.HasFlag(BS_KICK_FLOOD)) - { - if (ci->ttb[TTB_FLOOD]) - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_KICK_FLOOD_BAN, getstring(u, BOT_INFO_ACTIVE), ci->ttb[TTB_FLOOD], ci->floodlines, ci->floodsecs); - else - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_KICK_FLOOD_ON, getstring(u, BOT_INFO_ACTIVE), ci->floodlines, ci->floodsecs); - } - else - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_KICK_FLOOD_OFF, getstring(u, BOT_INFO_INACTIVE)); - if (ci->botflags.HasFlag(BS_KICK_REPEAT)) - { - if (ci->ttb[TTB_REPEAT]) - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_KICK_REPEAT_BAN, getstring(u, BOT_INFO_ACTIVE), ci->ttb[TTB_REPEAT], ci->repeattimes); - else - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_KICK_REPEAT_ON, getstring(u, BOT_INFO_ACTIVE), ci->repeattimes); - } - else - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_KICK_REPEAT_OFF, getstring(u, BOT_INFO_INACTIVE)); - if (ci->botflags.HasFlag(BS_KICK_REVERSES)) - { - if (ci->ttb[TTB_REVERSES]) - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_KICK_REVERSES_BAN, getstring(u, BOT_INFO_ACTIVE), ci->ttb[TTB_REVERSES]); - else - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_KICK_REVERSES, getstring(u, BOT_INFO_ACTIVE)); - } - else - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_KICK_REVERSES, getstring(u, BOT_INFO_INACTIVE)); - if (ci->botflags.HasFlag(BS_KICK_UNDERLINES)) - { - if (ci->ttb[TTB_UNDERLINES]) - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_KICK_UNDERLINES_BAN, getstring(u, BOT_INFO_ACTIVE), ci->ttb[TTB_UNDERLINES]); - else - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_KICK_UNDERLINES, getstring(u, BOT_INFO_ACTIVE)); - } - else - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_KICK_UNDERLINES, getstring(u, BOT_INFO_INACTIVE)); - - end = buf; - *end = 0; - if (ci->botflags.HasFlag(BS_DONTKICKOPS)) - { - end += snprintf(end, sizeof(buf) - (end - buf), "%s", getstring(u, BOT_INFO_OPT_DONTKICKOPS)); - need_comma = 1; - } - if (ci->botflags.HasFlag(BS_DONTKICKVOICES)) - { - end += snprintf(end, sizeof(buf) - (end - buf), "%s%s", need_comma ? commastr : "", getstring(u, BOT_INFO_OPT_DONTKICKVOICES)); - need_comma = 1; - } - if (ci->botflags.HasFlag(BS_FANTASY)) - { - end += snprintf(end, sizeof(buf) - (end - buf), "%s%s", need_comma ? commastr : "", getstring(u, BOT_INFO_OPT_FANTASY)); - need_comma = 1; - } - if (ci->botflags.HasFlag(BS_GREET)) - { - end += snprintf(end, sizeof(buf) - (end - buf), "%s%s", need_comma ? commastr : "", getstring(u, BOT_INFO_OPT_GREET)); - need_comma = 1; - } - if (ci->botflags.HasFlag(BS_NOBOT)) - { - end += snprintf(end, sizeof(buf) - (end - buf), "%s%s", need_comma ? commastr : "", getstring(u, BOT_INFO_OPT_NOBOT)); - need_comma = 1; - } - if (ci->botflags.HasFlag(BS_SYMBIOSIS)) - { - end += snprintf(end, sizeof(buf) - (end - buf), "%s%s", need_comma ? commastr : "", getstring(u, BOT_INFO_OPT_SYMBIOSIS)); - need_comma = 1; - } - notice_lang(Config.s_BotServ, u, BOT_INFO_CHAN_OPTIONS, *buf ? buf : getstring(u, BOT_INFO_OPT_NONE)); - } - else - notice_lang(Config.s_BotServ, u, BOT_INFO_NOT_FOUND, query); - return MOD_CONT; - } - - bool OnHelp(User *u, const ci::string &subcommand) - { - notice_help(Config.s_BotServ, u, BOT_HELP_INFO); - return true; - } - - void OnSyntaxError(User *u, const ci::string &subcommand) - { - syntax_error(Config.s_BotServ, u, "INFO", BOT_INFO_SYNTAX); - } - - void OnServHelp(User *u) - { - notice_lang(Config.s_BotServ, u, BOT_HELP_CMD_INFO); - } -}; - -class BSInfo : public Module -{ - public: - BSInfo(const std::string &modname, const std::string &creator) : Module(modname, creator) - { - this->SetAuthor("Anope"); - this->SetType(CORE); - this->AddCommand(BotServ, new CommandBSInfo()); - } -}; - -MODULE_INIT(BSInfo) diff --git a/src/core/bs_kick.cpp b/src/core/bs_kick.cpp deleted file mode 100644 index 2f2784d93..000000000 --- a/src/core/bs_kick.cpp +++ /dev/null @@ -1,388 +0,0 @@ -/* BotServ core functions - * - * (C) 2003-2010 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 CommandBSKick : public Command -{ - public: - CommandBSKick() : Command("KICK", 3, 6) - { - } - - CommandReturn Execute(User *u, const std::vector ¶ms) - { - const char *chan = params[0].c_str(); - ci::string option = params[1]; - ci::string value = params[2]; - const char *ttb = params.size() > 3 ? params[3].c_str() : NULL; - - ChannelInfo *ci = cs_findchan(chan); - - if (readonly) - notice_lang(Config.s_BotServ, u, BOT_KICK_DISABLED); - else if (!chan || option.empty() || value.empty()) - syntax_error(Config.s_BotServ, u, "KICK", BOT_KICK_SYNTAX); - else if (value != "ON" && value != "OFF") - syntax_error(Config.s_BotServ, u, "KICK", BOT_KICK_SYNTAX); - else if (!check_access(u, ci, CA_SET) && !u->Account()->HasPriv("botserv/administration")) - notice_lang(Config.s_BotServ, u, ACCESS_DENIED); - else if (!ci->bi) - notice_help(Config.s_BotServ, u, BOT_NOT_ASSIGNED); - else - { - if (option == "BADWORDS") - { - if (value == "ON") - { - if (ttb) - { - errno = 0; - ci->ttb[TTB_BADWORDS] = strtol(ttb, NULL, 10); - /* Only error if errno returns ERANGE or EINVAL or we are less then 0 - TSL */ - if (errno == ERANGE || errno == EINVAL || ci->ttb[TTB_BADWORDS] < 0) - { - /* leaving the debug behind since we might want to know what these are */ - Alog(LOG_DEBUG) << "errno is " << errno << " ERANGE " << ERANGE << " EINVAL " << EINVAL << " ttb " << ci->ttb[TTB_BADWORDS]; - /* reset the value back to 0 - TSL */ - ci->ttb[TTB_BADWORDS] = 0; - notice_lang(Config.s_BotServ, u, BOT_KICK_BAD_TTB, ttb); - return MOD_CONT; - } - } - else - ci->ttb[TTB_BADWORDS] = 0; - ci->botflags.SetFlag(BS_KICK_BADWORDS); - if (ci->ttb[TTB_BADWORDS]) - notice_lang(Config.s_BotServ, u, BOT_KICK_BADWORDS_ON_BAN, ci->ttb[TTB_BADWORDS]); - else - notice_lang(Config.s_BotServ, u, BOT_KICK_BADWORDS_ON); - } - else - { - ci->botflags.UnsetFlag(BS_KICK_BADWORDS); - notice_lang(Config.s_BotServ, u, BOT_KICK_BADWORDS_OFF); - } - } - else if (option == "BOLDS") - { - if (value == "ON") - { - if (ttb) - { - errno = 0; - ci->ttb[TTB_BOLDS] = strtol(ttb, NULL, 10); - if (errno == ERANGE || errno == EINVAL || ci->ttb[TTB_BOLDS] < 0) - { - Alog(LOG_DEBUG) << "errno is " << errno << " ERANGE " << ERANGE << " EINVAL " << EINVAL << " ttb " << ci->ttb[TTB_BOLDS]; - ci->ttb[TTB_BOLDS] = 0; - notice_lang(Config.s_BotServ, u, BOT_KICK_BAD_TTB, ttb); - return MOD_CONT; - } - } - else - ci->ttb[TTB_BOLDS] = 0; - ci->botflags.SetFlag(BS_KICK_BOLDS); - if (ci->ttb[TTB_BOLDS]) - notice_lang(Config.s_BotServ, u, BOT_KICK_BOLDS_ON_BAN, ci->ttb[TTB_BOLDS]); - else - notice_lang(Config.s_BotServ, u, BOT_KICK_BOLDS_ON); - } - else - { - ci->botflags.UnsetFlag(BS_KICK_BOLDS); - notice_lang(Config.s_BotServ, u, BOT_KICK_BOLDS_OFF); - } - } - else if (option == "CAPS") - { - if (value == "ON") - { - const char *min = params.size() > 4 ? params[4].c_str() : NULL; - const char *percent = params.size() > 5 ? params[5].c_str() : NULL; - - if (ttb) - { - errno = 0; - ci->ttb[TTB_CAPS] = strtol(ttb, NULL, 10); - if (errno == ERANGE || errno == EINVAL || ci->ttb[TTB_CAPS] < 0) - { - Alog(LOG_DEBUG) << "errno is " << errno << " ERANGE " << ERANGE << " EINVAL " << EINVAL << " ttb " << ci->ttb[TTB_CAPS]; - ci->ttb[TTB_CAPS] = 0; - notice_lang(Config.s_BotServ, u, BOT_KICK_BAD_TTB, ttb); - return MOD_CONT; - } - } - else - ci->ttb[TTB_CAPS] = 0; - - if (!min) - ci->capsmin = 10; - else - ci->capsmin = atol(min); - if (ci->capsmin < 1) - ci->capsmin = 10; - - if (!percent) - ci->capspercent = 25; - else - ci->capspercent = atol(percent); - if (ci->capspercent < 1 || ci->capspercent > 100) - ci->capspercent = 25; - - ci->botflags.SetFlag(BS_KICK_CAPS); - if (ci->ttb[TTB_CAPS]) - notice_lang(Config.s_BotServ, u, BOT_KICK_CAPS_ON_BAN, ci->capsmin, ci->capspercent, ci->ttb[TTB_CAPS]); - else - notice_lang(Config.s_BotServ, u, BOT_KICK_CAPS_ON, ci->capsmin, ci->capspercent); - } - else - { - ci->botflags.UnsetFlag(BS_KICK_CAPS); - notice_lang(Config.s_BotServ, u, BOT_KICK_CAPS_OFF); - } - } - else if (option == "COLORS") - { - if (value == "ON") - { - if (ttb) - { - errno = 0; - ci->ttb[TTB_COLORS] = strtol(ttb, NULL, 10); - if (errno == ERANGE || errno == EINVAL || ci->ttb[TTB_COLORS] < 0) - { - Alog(LOG_DEBUG) << "errno is " << errno << " ERANGE " << ERANGE << " EINVAL " << EINVAL << " ttb " << ci->ttb[TTB_COLORS]; - ci->ttb[TTB_COLORS] = 0; - notice_lang(Config.s_BotServ, u, BOT_KICK_BAD_TTB, ttb); - return MOD_CONT; - } - } - else - ci->ttb[TTB_COLORS] = 0; - ci->botflags.SetFlag(BS_KICK_COLORS); - if (ci->ttb[TTB_COLORS]) - notice_lang(Config.s_BotServ, u, BOT_KICK_COLORS_ON_BAN, ci->ttb[TTB_COLORS]); - else - notice_lang(Config.s_BotServ, u, BOT_KICK_COLORS_ON); - } - else - { - ci->botflags.UnsetFlag(BS_KICK_COLORS); - notice_lang(Config.s_BotServ, u, BOT_KICK_COLORS_OFF); - } - } - else if (option == "FLOOD") - { - if (value == "ON") - { - const char *lines = params.size() > 4 ? params[4].c_str() : NULL; - const char *secs = params.size() > 5 ? params[5].c_str() : NULL; - - if (ttb) - { - errno = 0; - ci->ttb[TTB_FLOOD] = strtol(ttb, NULL, 10); - if (errno == ERANGE || errno == EINVAL || ci->ttb[TTB_FLOOD] < 0) - { - Alog(LOG_DEBUG) << "errno is " << errno << " ERANGE " << ERANGE << " EINVAL " << EINVAL << " ttb " << ci->ttb[TTB_FLOOD]; - ci->ttb[TTB_FLOOD] = 0; - notice_lang(Config.s_BotServ, u, BOT_KICK_BAD_TTB, ttb); - return MOD_CONT; - } - } - else - ci->ttb[TTB_FLOOD] = 0; - - if (!lines) - ci->floodlines = 6; - else - ci->floodlines = atol(lines); - if (ci->floodlines < 2) - ci->floodlines = 6; - - if (!secs) - ci->floodsecs = 10; - else - ci->floodsecs = atol(secs); - if (ci->floodsecs < 1 || ci->floodsecs > Config.BSKeepData) - ci->floodsecs = 10; - - ci->botflags.SetFlag(BS_KICK_FLOOD); - if (ci->ttb[TTB_FLOOD]) - notice_lang(Config.s_BotServ, u, BOT_KICK_FLOOD_ON_BAN, ci->floodlines, ci->floodsecs, ci->ttb[TTB_FLOOD]); - else - notice_lang(Config.s_BotServ, u, BOT_KICK_FLOOD_ON, ci->floodlines, ci->floodsecs); - } - else - { - ci->botflags.UnsetFlag(BS_KICK_FLOOD); - notice_lang(Config.s_BotServ, u, BOT_KICK_FLOOD_OFF); - } - } - else if (option == "REPEAT") - { - if (value == "ON") - { - const char *times = params.size() > 4 ? params[4].c_str() : NULL; - - if (ttb) - { - errno = 0; - ci->ttb[TTB_REPEAT] = strtol(ttb, NULL, 10); - if (errno == ERANGE || errno == EINVAL || ci->ttb[TTB_REPEAT] < 0) - { - Alog(LOG_DEBUG) << "errno is " << errno << " ERANGE " << ERANGE << " EINVAL " << EINVAL << " ttb " << ci->ttb[TTB_REPEAT]; - ci->ttb[TTB_REPEAT] = 0; - notice_lang(Config.s_BotServ, u, BOT_KICK_BAD_TTB, ttb); - return MOD_CONT; - } - } - else - ci->ttb[TTB_REPEAT] = 0; - - if (!times) - ci->repeattimes = 3; - else - ci->repeattimes = atol(times); - if (ci->repeattimes < 2) - ci->repeattimes = 3; - - ci->botflags.SetFlag(BS_KICK_REPEAT); - if (ci->ttb[TTB_REPEAT]) - notice_lang(Config.s_BotServ, u, BOT_KICK_REPEAT_ON_BAN, ci->repeattimes, ci->ttb[TTB_REPEAT]); - else - notice_lang(Config.s_BotServ, u, BOT_KICK_REPEAT_ON, ci->repeattimes); - } - else - { - ci->botflags.UnsetFlag(BS_KICK_REPEAT); - notice_lang(Config.s_BotServ, u, BOT_KICK_REPEAT_OFF); - } - } - else if (option == "REVERSES") - { - if (value == "ON") - { - if (ttb) - { - errno = 0; - ci->ttb[TTB_REVERSES] = strtol(ttb, NULL, 10); - if (errno == ERANGE || errno == EINVAL || ci->ttb[TTB_REVERSES] < 0) - { - Alog(LOG_DEBUG) << "errno is " << errno << " ERANGE " << ERANGE << " EINVAL " << EINVAL << " ttb " << ci->ttb[TTB_REVERSES]; - ci->ttb[TTB_REVERSES] = 0; - notice_lang(Config.s_BotServ, u, BOT_KICK_BAD_TTB, ttb); - return MOD_CONT; - } - } - else - ci->ttb[TTB_REVERSES] = 0; - ci->botflags.SetFlag(BS_KICK_REVERSES); - if (ci->ttb[TTB_REVERSES]) - notice_lang(Config.s_BotServ, u, BOT_KICK_REVERSES_ON_BAN, ci->ttb[TTB_REVERSES]); - else - notice_lang(Config.s_BotServ, u, BOT_KICK_REVERSES_ON); - } - else - { - ci->botflags.UnsetFlag(BS_KICK_REVERSES); - notice_lang(Config.s_BotServ, u, BOT_KICK_REVERSES_OFF); - } - } - else if (option == "UNDERLINES") - { - if (value == "ON") - { - if (ttb) - { - errno = 0; - ci->ttb[TTB_UNDERLINES] = strtol(ttb, NULL, 10); - if (errno == ERANGE || errno == EINVAL || ci->ttb[TTB_UNDERLINES] < 0) - { - Alog(LOG_DEBUG) << "errno is " << errno << " ERANGE " << ERANGE << " EINVAL " << EINVAL << " ttb " << ci->ttb[TTB_UNDERLINES]; - ci->ttb[TTB_UNDERLINES] = 0; - notice_lang(Config.s_BotServ, u, BOT_KICK_BAD_TTB, ttb); - return MOD_CONT; - } - } - else - ci->ttb[TTB_UNDERLINES] = 0; - ci->botflags.SetFlag(BS_KICK_UNDERLINES); - if (ci->ttb[TTB_UNDERLINES]) - notice_lang(Config.s_BotServ, u, BOT_KICK_UNDERLINES_ON_BAN, ci->ttb[TTB_UNDERLINES]); - else - notice_lang(Config.s_BotServ, u, BOT_KICK_UNDERLINES_ON); - } - else - { - ci->botflags.UnsetFlag(BS_KICK_UNDERLINES); - notice_lang(Config.s_BotServ, u, BOT_KICK_UNDERLINES_OFF); - } - } - else - notice_help(Config.s_BotServ, u, BOT_KICK_UNKNOWN, option.c_str()); - } - return MOD_CONT; - } - - bool OnHelp(User *u, const ci::string &subcommand) - { - if (subcommand.empty()) - notice_help(Config.s_BotServ, u, BOT_HELP_KICK); - else if (subcommand == "BADWORDS") - notice_help(Config.s_BotServ, u, BOT_HELP_KICK_BADWORDS); - else if (subcommand == "BOLDS") - notice_help(Config.s_BotServ, u, BOT_HELP_KICK_BOLDS); - else if (subcommand == "CAPS") - notice_help(Config.s_BotServ, u, BOT_HELP_KICK_CAPS); - else if (subcommand == "COLORS") - notice_help(Config.s_BotServ, u, BOT_HELP_KICK_COLORS); - else if (subcommand == "FLOOD") - notice_help(Config.s_BotServ, u, BOT_HELP_KICK_FLOOD); - else if (subcommand == "REPEAT") - notice_help(Config.s_BotServ, u, BOT_HELP_KICK_REPEAT); - else if (subcommand == "REVERSES") - notice_help(Config.s_BotServ, u, BOT_HELP_KICK_REVERSES); - else if (subcommand == "UNDERLINES") - notice_help(Config.s_BotServ, u, BOT_HELP_KICK_UNDERLINES); - else - return false; - - return true; - } - - void OnSyntaxError(User *u, const ci::string &subcommand) - { - syntax_error(Config.s_BotServ, u, "KICK", BOT_KICK_SYNTAX); - } - - void OnServHelp(User *u) - { - notice_lang(Config.s_BotServ, u, BOT_HELP_CMD_KICK); - } -}; - -class BSKick : public Module -{ - public: - BSKick(const std::string &modname, const std::string &creator) : Module(modname, creator) - { - this->SetAuthor("Anope"); - this->SetType(CORE); - this->AddCommand(BotServ, new CommandBSKick()); - } -}; - -MODULE_INIT(BSKick) diff --git a/src/core/bs_say.cpp b/src/core/bs_say.cpp deleted file mode 100644 index 88b298544..000000000 --- a/src/core/bs_say.cpp +++ /dev/null @@ -1,91 +0,0 @@ -/* BotServ core functions - * - * (C) 2003-2010 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 CommandBSSay : public Command -{ - public: - CommandBSSay() : Command("SAY", 2, 2) - { - } - - CommandReturn Execute(User *u, const std::vector ¶ms) - { - ChannelInfo *ci; - - const char *chan = params[0].c_str(); - const char *text = params[1].c_st