summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/modules.h14
-rw-r--r--include/modules/names.h46
2 files changed, 47 insertions, 13 deletions
diff --git a/include/modules.h b/include/modules.h
index eca64eeec..8a672effe 100644
--- a/include/modules.h
+++ b/include/modules.h
@@ -226,7 +226,7 @@ enum Implementation
I_OnPreChangeRealName, I_OnUserRegister, I_OnChannelPreDelete, I_OnChannelDelete,
I_OnPostOper, I_OnPostCommand, I_OnPostJoin,
I_OnBuildNeighborList, I_OnGarbageCollect, I_OnSetConnectClass,
- I_OnUserMessage, I_OnPassCompare, I_OnNamesListItem, I_OnNumeric,
+ I_OnUserMessage, I_OnPassCompare, I_OnNumeric,
I_OnPreRehash, I_OnModuleRehash, I_OnChangeIdent, I_OnSetUserIP,
I_OnServiceAdd, I_OnServiceDel, I_OnUserWrite,
I_END
@@ -905,18 +905,6 @@ class CoreExport Module : public classbase, public usecountbase
*/
virtual ModResult OnSetConnectClass(LocalUser* user, ConnectClass* myclass);
- /** Called for every item in a NAMES list, so that modules may reformat portions of it as they see fit.
- * For example NAMESX, channel mode +u and +I, and UHNAMES.
- * @param issuer The user who is going to receive the NAMES list being built
- * @param item The channel member being considered for inclusion
- * @param prefixes The prefix character(s) to display, initially set to the prefix char of the most powerful
- * prefix mode the member has, can be changed
- * @param nick The nick to display, initially set to the member's nick, can be changed
- * @return Return MOD_RES_PASSTHRU to allow the member to be displayed, MOD_RES_DENY to cause them to be
- * excluded from this NAMES list
- */
- virtual ModResult OnNamesListItem(User* issuer, Membership* item, std::string& prefixes, std::string& nick);
-
virtual ModResult OnNumeric(User* user, const Numeric::Numeric& numeric);
/** Called whenever a local user's IP is set for the first time, or when a local user's IP changes due to
diff --git a/include/modules/names.h b/include/modules/names.h
new file mode 100644
index 000000000..d3e1969cc
--- /dev/null
+++ b/include/modules/names.h
@@ -0,0 +1,46 @@
+/*
+ * InspIRCd -- Internet Relay Chat Daemon
+ *
+ * Copyright (C) 2019 Peter Powell <petpow@saberuk.com>
+ *
+ * This file is part of InspIRCd. InspIRCd is free software: you can
+ * redistribute it and/or modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation, version 2.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+#pragma once
+
+#include "event.h"
+
+namespace Names
+{
+ class EventListener;
+}
+
+class Names::EventListener : public Events::ModuleEventListener
+{
+ public:
+ EventListener(Module* mod)
+ : ModuleEventListener(mod, "event/names")
+ {
+ }
+
+ /* Called for every item in a NAMES list.
+ * @param issuer The user who initiated the NAMES request.
+ * @param memb The channel membership of the user who is being considered for inclusion.
+ * @param prefixes The prefix character(s) to show in front of the user's nickname.
+ * @param nick The nickname of the user to show.
+ * @return Return MOD_RES_PASSTHRU to allow the member to be displayed, MOD_RES_DENY to cause them to be
+ * excluded from this NAMES list
+ */
+ virtual ModResult OnNamesListItem(LocalUser* issuer, Membership* memb, std::string& prefixes, std::string& nick) = 0;
+};