diff options
| author | 2007-02-01 16:02:47 +0000 | |
|---|---|---|
| committer | 2007-02-01 16:02:47 +0000 | |
| commit | 49f06a3c8dbf4cce93ec8e76114c21df4085cb6b (patch) | |
| tree | 827b70d552082518f2346db8787ec3f8626a9c8a /src | |
| parent | *AUTOMATICALLY* updated KVI_SOURCES_DATE variable (diff) | |
| download | KVIrc-49f06a3c8dbf4cce93ec8e76114c21df4085cb6b.tar.gz KVIrc-49f06a3c8dbf4cce93ec8e76114c21df4085cb6b.tar.bz2 KVIrc-49f06a3c8dbf4cce93ec8e76114c21df4085cb6b.zip | |
added (for testing) OnNickServAuth event
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@297 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src')
| -rw-r--r-- | src/kvirc/kernel/kvi_ircconnectionserverinfo.cpp | 10 | ||||
| -rw-r--r-- | src/kvirc/kernel/kvi_ircconnectionserverinfo.h | 26 | ||||
| -rw-r--r-- | src/kvirc/kvs/kvi_kvs_eventtable.cpp | 17 | ||||
| -rw-r--r-- | src/kvirc/kvs/kvi_kvs_eventtable.h | 4 | ||||
| -rw-r--r-- | src/kvirc/sparser/kvi_sp_literal.cpp | 5 |
5 files changed, 58 insertions, 4 deletions
diff --git a/src/kvirc/kernel/kvi_ircconnectionserverinfo.cpp b/src/kvirc/kernel/kvi_ircconnectionserverinfo.cpp index 08910721b..0b1c88bff 100644 --- a/src/kvirc/kernel/kvi_ircconnectionserverinfo.cpp +++ b/src/kvirc/kernel/kvi_ircconnectionserverinfo.cpp @@ -189,8 +189,14 @@ kvi_u32_t KviIrcConnectionServerInfo::modeFlagFromModeChar(QChar c) void KviIrcConnectionServerInfo::setServerVersion(const QString & version) { if(m_pServInfo) delete m_pServInfo; - - m_pServInfo = new KviBasicIrcServerInfo(version); + if(version.contains("unreal",false)) + m_pServInfo = new KviUnrealIrcServerInfo(version); + else if(version.contains("bahamut",false)) + m_pServInfo = new KviBahamutIrcServerInfo(version); + else if(version.contains("hyperion",false)) + m_pServInfo = new KviHyperionIrcServerInfo(version); + else + m_pServInfo = new KviBasicIrcServerInfo(version); } diff --git a/src/kvirc/kernel/kvi_ircconnectionserverinfo.h b/src/kvirc/kernel/kvi_ircconnectionserverinfo.h index 7b50ca786..b6ad505b9 100644 --- a/src/kvirc/kernel/kvi_ircconnectionserverinfo.h +++ b/src/kvirc/kernel/kvi_ircconnectionserverinfo.h @@ -44,6 +44,31 @@ private: public: const QString & getChannelModeDescription(QChar mode); const QString & getUserModeDescription(QChar mode); + virtual char getRegisterModeChar() { return 0; }; +}; + +class KVIRC_API KviUnrealIrcServerInfo : public KviBasicIrcServerInfo +{ +public: + KviUnrealIrcServerInfo(const QString & version = KviQString::empty) + :KviBasicIrcServerInfo(version) {;}; + virtual char getRegisterModeChar() { return 'r'; }; +}; + +class KVIRC_API KviBahamutIrcServerInfo : public KviBasicIrcServerInfo +{ +public: + KviBahamutIrcServerInfo(const QString & version = KviQString::empty) + :KviBasicIrcServerInfo(version) {;}; + virtual char getRegisterModeChar() { return 'r'; }; +}; + +class KVIRC_API KviHyperionIrcServerInfo : public KviBasicIrcServerInfo +{ +public: + KviHyperionIrcServerInfo(const QString & version = KviQString::empty) + :KviBasicIrcServerInfo(version) {;}; + virtual char getRegisterModeChar() { return 'r'; }; }; class KVIRC_API KviIrcConnectionServerInfo @@ -72,6 +97,7 @@ private: QString m_szListModes; QString m_szPlainModes; public: + char registerModeChar() { return m_pServInfo ? m_pServInfo->getRegisterModeChar() : 0; }; const QString & name(){ return m_szName; }; const QString & supportedUserModes(){ return m_szSupportedUserModes; }; const QString & supportedChannelModes(){ return m_szSupportedChannelModes; }; diff --git a/src/kvirc/kvs/kvi_kvs_eventtable.cpp b/src/kvirc/kvs/kvi_kvs_eventtable.cpp index ea4972086..b5d53efd0 100644 --- a/src/kvirc/kvs/kvi_kvs_eventtable.cpp +++ b/src/kvirc/kvs/kvi_kvs_eventtable.cpp @@ -3109,6 +3109,21 @@ channel @description: Triggered when a message is ignored. */ - EVENT("OnIgnoredMessage","$0 = source nick\n$1 = source username\n$2 = source host\n$3 = message target\n$4 = message") + EVENT("OnIgnoredMessage","$0 = source nick\n$1 = source username\n$2 = source host\n$3 = message target\n$4 = message"), + /* + @doc: OnNickServAuth + @type: + event + @title: + OnNickServAuth + @short: + Triggered when ircd sets a registered user mode. + @parameters: + @window: + any + @description: + Triggered when ircd sets a registered user mode. + */ + EVENT("OnNickServAuth","") }; diff --git a/src/kvirc/kvs/kvi_kvs_eventtable.h b/src/kvirc/kvs/kvi_kvs_eventtable.h index 5b25db54d..bf807bb63 100644 --- a/src/kvirc/kvs/kvi_kvs_eventtable.h +++ b/src/kvirc/kvs/kvi_kvs_eventtable.h @@ -201,7 +201,9 @@ #define KviEvent_OnServerLinkClick 136 #define KviEvent_OnIgnoredMessage 137 -#define KVI_KVS_NUM_APP_EVENTS 138 +#define KviEvent_OnNickServAuth 138 + +#define KVI_KVS_NUM_APP_EVENTS 139 // compat #define KVI_NUM_SCRIPT_EVENTS KVI_KVS_NUM_APP_EVENTS diff --git a/src/kvirc/sparser/kvi_sp_literal.cpp b/src/kvirc/sparser/kvi_sp_literal.cpp index ec185c4fe..122bc3b3a 100644 --- a/src/kvirc/sparser/kvi_sp_literal.cpp +++ b/src/kvirc/sparser/kvi_sp_literal.cpp @@ -1594,6 +1594,11 @@ void KviServerParser::parseUserMode(KviIrcMessage *msg,const char * modeflptr) default: if(msg->connection()->changeUserMode(*modeflptr,bSet)) { + if(msg->connection()->serverInfo()->registerModeChar()==*modeflptr) + { + KviKvsVariantList vList; + KviKvsEventManager::instance()->trigger(KviEvent_OnNickServAuth,msg->console(),&vList); + } // There was a mode change if(KviKvsEventManager::instance()->hasAppHandlers(KviEvent_OnUserMode)) { |
