aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Alexey Uzhva2007-02-01 16:02:47 +0000
committerGravatar Alexey Uzhva2007-02-01 16:02:47 +0000
commit49f06a3c8dbf4cce93ec8e76114c21df4085cb6b (patch)
tree827b70d552082518f2346db8787ec3f8626a9c8a /src
parent*AUTOMATICALLY* updated KVI_SOURCES_DATE variable (diff)
downloadKVIrc-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.cpp10
-rw-r--r--src/kvirc/kernel/kvi_ircconnectionserverinfo.h26
-rw-r--r--src/kvirc/kvs/kvi_kvs_eventtable.cpp17
-rw-r--r--src/kvirc/kvs/kvi_kvs_eventtable.h4
-rw-r--r--src/kvirc/sparser/kvi_sp_literal.cpp5
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))
{