summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/builtinmodes.h189
-rw-r--r--include/modes/cmode_b.h41
-rw-r--r--include/modes/cmode_k.h33
-rw-r--r--include/modes/cmode_l.h30
-rw-r--r--include/modes/cmode_o.h37
-rw-r--r--include/modes/cmode_v.h37
-rw-r--r--include/modes/simplemodes.h100
-rw-r--r--include/modes/umode_o.h31
-rw-r--r--include/modes/umode_s.h34
9 files changed, 189 insertions, 343 deletions
diff --git a/include/builtinmodes.h b/include/builtinmodes.h
new file mode 100644
index 000000000..ab1da8740
--- /dev/null
+++ b/include/builtinmodes.h
@@ -0,0 +1,189 @@
+/*
+ * InspIRCd -- Internet Relay Chat Daemon
+ *
+ * Copyright (C) 2008 Robin Burchell <robin+git@viroteck.net>
+ * Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
+ * Copyright (C) 2006 Craig Edwards <craigedwards@brainbox.cc>
+ *
+ * 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 "mode.h"
+#include "channels.h"
+
+/** Channel mode +b
+ */
+class ModeChannelBan : public ModeHandler
+{
+ private:
+ BanItem b;
+ public:
+ ModeChannelBan();
+ ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding);
+ std::string& AddBan(User *user,std::string& dest,Channel *chan,int status);
+ std::string& DelBan(User *user,std::string& dest,Channel *chan,int status);
+ void DisplayList(User* user, Channel* channel);
+ void DisplayEmptyList(User* user, Channel* channel);
+ void RemoveMode(User* user, irc::modestacker* stack = NULL);
+ void RemoveMode(Channel* channel, irc::modestacker* stack = NULL);
+};
+
+/** Channel mode +i
+ */
+class ModeChannelInviteOnly : public SimpleChannelModeHandler
+{
+ public:
+ ModeChannelInviteOnly() : SimpleChannelModeHandler(NULL, "inviteonly", 'i')
+ {
+ }
+};
+
+/** Channel mode +k
+ */
+class ModeChannelKey : public ModeHandler
+{
+ public:
+ ModeChannelKey();
+ ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding);
+ void RemoveMode(Channel* channel, irc::modestacker* stack = NULL);
+ void RemoveMode(User* user, irc::modestacker* stack = NULL);
+};
+
+
+/** Channel mode +l
+ */
+class ModeChannelLimit : public ParamChannelModeHandler
+{
+ public:
+ ModeChannelLimit();
+ bool ParamValidate(std::string& parameter);
+ bool ResolveModeConflict(std::string &their_param, const std::string &our_param, Channel* channel);
+};
+
+/** Channel mode +m
+ */
+class ModeChannelModerated : public SimpleChannelModeHandler
+{
+ public:
+ ModeChannelModerated() : SimpleChannelModeHandler(NULL, "moderated", 'm')
+ {
+ }
+};
+
+/** Channel mode +n
+ */
+class ModeChannelNoExternal : public SimpleChannelModeHandler
+{
+ public:
+ ModeChannelNoExternal() : SimpleChannelModeHandler(NULL, "noextmsg", 'n')
+ {
+ }
+};
+
+/** Channel mode +o
+ */
+class ModeChannelOp : public ModeHandler
+{
+ private:
+ public:
+ ModeChannelOp();
+ ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding);
+ unsigned int GetPrefixRank();
+ void RemoveMode(Channel* channel, irc::modestacker* stack = NULL);
+ void RemoveMode(User* user, irc::modestacker* stack = NULL);
+};
+
+/** Channel mode +p
+ */
+class ModeChannelPrivate : public SimpleChannelModeHandler
+{
+ public:
+ ModeChannelPrivate() : SimpleChannelModeHandler(NULL, "private", 'p')
+ {
+ }
+};
+
+/** Channel mode +s
+ */
+class ModeChannelSecret : public SimpleChannelModeHandler
+{
+ public:
+ ModeChannelSecret() : SimpleChannelModeHandler(NULL, "secret", 's')
+ {
+ }
+};
+
+/** Channel mode +t
+ */
+class ModeChannelTopicOps : public SimpleChannelModeHandler
+{
+ public:
+ ModeChannelTopicOps() : SimpleChannelModeHandler(NULL, "topiclock", 't')
+ {
+ }
+};
+
+/** Channel mode +v
+ */
+class ModeChannelVoice : public ModeHandler
+{
+ private:
+ public:
+ ModeChannelVoice();
+ ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding);
+ unsigned int GetPrefixRank();
+ void RemoveMode(User* user, irc::modestacker* stack = NULL);
+ void RemoveMode(Channel* channel, irc::modestacker* stack = NULL);
+};
+
+/** User mode +i
+ */
+class ModeUserInvisible : public SimpleUserModeHandler
+{
+ public:
+ ModeUserInvisible() : SimpleUserModeHandler(NULL, "invisible", 'i')
+ {
+ }
+};
+
+/** User mode +n
+ */
+class ModeUserServerNoticeMask : public ModeHandler
+{
+ public:
+ ModeUserServerNoticeMask();
+ ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding);
+ void OnParameterMissing(User* user, User* dest, Channel* channel);
+ std::string GetUserParameter(User* user);
+};
+
+/** User mode +o
+ */
+class ModeUserOperator : public ModeHandler
+{
+ public:
+ ModeUserOperator();
+ ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding);
+};
+
+/** User mode +w
+ */
+class ModeUserWallops : public SimpleUserModeHandler
+{
+ public:
+ ModeUserWallops() : SimpleUserModeHandler(NULL, "wallops", 'w')
+ {
+ }
+};
diff --git a/include/modes/cmode_b.h b/include/modes/cmode_b.h
deleted file mode 100644
index afd5cd13b..000000000
--- a/include/modes/cmode_b.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * InspIRCd -- Internet Relay Chat Daemon
- *
- * Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
- *
- * 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/>.
- */
-
-
-#include "mode.h"
-#include "channels.h"
-
-class InspIRCd;
-
-/** Channel mode +b
- */
-class ModeChannelBan : public ModeHandler
-{
- private:
- BanItem b;
- public:
- ModeChannelBan();
- ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding);
- std::string& AddBan(User *user,std::string& dest,Channel *chan,int status);
- std::string& DelBan(User *user,std::string& dest,Channel *chan,int status);
- void DisplayList(User* user, Channel* channel);
- void DisplayEmptyList(User* user, Channel* channel);
- void RemoveMode(User* user, irc::modestacker* stack = NULL);
- void RemoveMode(Channel* channel, irc::modestacker* stack = NULL);
-};
-
diff --git a/include/modes/cmode_k.h b/include/modes/cmode_k.h
deleted file mode 100644
index 000667f72..000000000
--- a/include/modes/cmode_k.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * InspIRCd -- Internet Relay Chat Daemon
- *
- * Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
- *
- * 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/>.
- */
-
-
-#include "mode.h"
-
-class InspIRCd;
-
-/** Channel mode +k
- */
-class ModeChannelKey : public ModeHandler
-{
- public:
- ModeChannelKey();
- ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding);
- void RemoveMode(Channel* channel, irc::modestacker* stack = NULL);
- void RemoveMode(User* user, irc::modestacker* stack = NULL);
-};
diff --git a/include/modes/cmode_l.h b/include/modes/cmode_l.h
deleted file mode 100644
index 3018a0d67..000000000
--- a/include/modes/cmode_l.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * InspIRCd -- Internet Relay Chat Daemon
- *
- * Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
- *
- * 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/>.
- */
-
-
-#include "mode.h"
-
-/** Channel mode +l
- */
-class ModeChannelLimit : public ParamChannelModeHandler
-{
- public:
- ModeChannelLimit();
- bool ParamValidate(std::string& parameter);
- bool ResolveModeConflict(std::string &their_param, const std::string &our_param, Channel* channel);
-};
diff --git a/include/modes/cmode_o.h b/include/modes/cmode_o.h
deleted file mode 100644
index c5f1764c1..000000000
--- a/include/modes/cmode_o.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * InspIRCd -- Internet Relay Chat Daemon
- *
- * Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
- *
- * 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/>.
- */
-
-
-#include "mode.h"
-#include "channels.h"
-
-class InspIRCd;
-
-/** Channel mode +o
- */
-class ModeChannelOp : public ModeHandler
-{
- private:
- public:
- ModeChannelOp();
- ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding);
- unsigned int GetPrefixRank();
- void RemoveMode(Channel* channel, irc::modestacker* stack = NULL);
- void RemoveMode(User* user, irc::modestacker* stack = NULL);
-};
-
diff --git a/include/modes/cmode_v.h b/include/modes/cmode_v.h
deleted file mode 100644
index ab037f33f..000000000
--- a/include/modes/cmode_v.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * InspIRCd -- Internet Relay Chat Daemon
- *
- * Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
- *
- * 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/>.
- */
-
-
-#include "mode.h"
-#include "channels.h"
-
-class InspIRCd;
-
-/** Channel mode +v
- */
-class ModeChannelVoice : public ModeHandler
-{
- private:
- public:
- ModeChannelVoice();
- ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding);
- unsigned int GetPrefixRank();
- void RemoveMode(User* user, irc::modestacker* stack = NULL);
- void RemoveMode(Channel* channel, irc::modestacker* stack = NULL);
-};
-
diff --git a/include/modes/simplemodes.h b/include/modes/simplemodes.h
deleted file mode 100644
index 661bba400..000000000
--- a/include/modes/simplemodes.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * InspIRCd -- Internet Relay Chat Daemon
- *
- * Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
- * Copyright (C) 2006 Craig Edwards <craigedwards@brainbox.cc>
- *
- * 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/>.
- */
-
-#include "mode.h"
-
-/** Channel mode +i
- */
-class ModeChannelInviteOnly : public SimpleChannelModeHandler
-{
- public:
- ModeChannelInviteOnly() : SimpleChannelModeHandler(NULL, "inviteonly", 'i')
- {
- }
-};
-
-/** Channel mode +m
- */
-class ModeChannelModerated : public SimpleChannelModeHandler
-{
- public:
- ModeChannelModerated() : SimpleChannelModeHandler(NULL, "moderated", 'm')
- {
- }
-};
-
-/** Channel mode +n
- */
-class ModeChannelNoExternal : public SimpleChannelModeHandler
-{
- public:
- ModeChannelNoExternal() : SimpleChannelModeHandler(NULL, "noextmsg", 'n')
- {
- }
-};
-
-/** Channel mode +p
- */
-class ModeChannelPrivate : public SimpleChannelModeHandler
-{
- public:
- ModeChannelPrivate() : SimpleChannelModeHandler(NULL, "private", 'p')
- {
- }
-};
-
-/** Channel mode +s
- */
-class ModeChannelSecret : public SimpleChannelModeHandler
-{
- public:
- ModeChannelSecret() : SimpleChannelModeHandler(NULL, "secret", 's')
- {
- }
-};
-
-/** Channel mode +t
- */
-class ModeChannelTopicOps : public SimpleChannelModeHandler
-{
- public:
- ModeChannelTopicOps() : SimpleChannelModeHandler(NULL, "topiclock", 't')
- {
- }
-};
-
-/** User mode +i
- */
-class ModeUserInvisible : public SimpleUserModeHandler
-{
- public:
- ModeUserInvisible() : SimpleUserModeHandler(NULL, "invisible", 'i')
- {
- }
-};
-
-/** User mode +w
- */
-class ModeUserWallops : public SimpleUserModeHandler
-{
- public:
- ModeUserWallops() : SimpleUserModeHandler(NULL, "wallops", 'w')
- {
- }
-};
diff --git a/include/modes/umode_o.h b/include/modes/umode_o.h
deleted file mode 100644
index f9644a097..000000000
--- a/include/modes/umode_o.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * InspIRCd -- Internet Relay Chat Daemon
- *
- * Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
- *
- * 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/>.
- */
-
-
-#include "mode.h"
-
-class InspIRCd;
-
-/** User mode +o
- */
-class ModeUserOperator : public ModeHandler
-{
- public:
- ModeUserOperator();
- ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding);
-};
diff --git a/include/modes/umode_s.h b/include/modes/umode_s.h
deleted file mode 100644
index 8ac8fa31a..000000000
--- a/include/modes/umode_s.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * InspIRCd -- Internet Relay Chat Daemon
- *
- * Copyright (C) 2008 Robin Burchell <robin+git@viroteck.net>
- * Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
- *
- * 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/>.
- */
-
-
-#include "mode.h"
-
-class InspIRCd;
-
-/** User mode +n
- */
-class ModeUserServerNoticeMask : public ModeHandler
-{
- public:
- ModeUserServerNoticeMask();
- ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding);
- void OnParameterMissing(User* user, User* dest, Channel* channel);
- std::string GetUserParameter(User* user);
-};