summaryrefslogtreecommitdiff
path: root/modules/commands/cs_clone.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/commands/cs_clone.cpp')
-rw-r--r--modules/commands/cs_clone.cpp26
1 files changed, 13 insertions, 13 deletions
diff --git a/modules/commands/cs_clone.cpp b/modules/commands/cs_clone.cpp
index 19a8ad436..9a33a6fab 100644
--- a/modules/commands/cs_clone.cpp
+++ b/modules/commands/cs_clone.cpp
@@ -1,6 +1,6 @@
/* ChanServ core functions
*
- * (C) 2003-2012 Anope Team
+ * (C) 2003-2013 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -59,7 +59,7 @@ public:
if (what.empty())
{
- target_ci->Destroy();
+ delete target_ci;
target_ci = new ChannelInfo(*ci);
target_ci->name = target;
(*RegisteredChannelList)[target_ci->name] = target_ci;
@@ -74,18 +74,18 @@ public:
if (u && u->FindChannel(target_ci->c) != NULL)
{
/* On most ircds you do not receive the admin/owner mode till its registered */
- if ((cm = ModeManager::FindChannelModeByName(CMODE_OWNER)))
+ if ((cm = ModeManager::FindChannelModeByName("OWNER")))
target_ci->c->SetMode(NULL, cm, u->GetUID());
- else if ((cm = ModeManager::FindChannelModeByName(CMODE_PROTECT)))
+ else if ((cm = ModeManager::FindChannelModeByName("PROTECT")))
target_ci->c->RemoveMode(NULL, cm, u->GetUID());
}
/* Mark the channel as persistent */
- if (target_ci->c->HasMode(CMODE_PERM))
- target_ci->SetFlag(CI_PERSIST);
+ if (target_ci->c->HasMode("PERM"))
+ target_ci->ExtendMetadata("PERSIST");
/* Persist may be in def cflags, set it here */
- else if (target_ci->HasFlag(CI_PERSIST) && (cm = ModeManager::FindChannelModeByName(CMODE_PERM)))
- target_ci->c->SetMode(NULL, CMODE_PERM);
+ else if (target_ci->HasExt("PERSIST") && (cm = ModeManager::FindChannelModeByName("PERM")))
+ target_ci->c->SetMode(NULL, cm);
if (target_ci->bi && target_ci->c->FindUser(target_ci->bi) == NULL)
target_ci->bi->Join(target_ci->c, &ModeManager::DefaultBotModes);
@@ -102,7 +102,7 @@ public:
FOREACH_MOD(I_OnChanRegistered, OnChanRegistered(target_ci));
- source.Reply(_("All settings from \002%s\002 have been cloned to \002%s\002"), channel.c_str(), target.c_str());
+ source.Reply(_("All settings from \002%s\002 have been cloned to \002%s\002."), channel.c_str(), target.c_str());
}
else if (what.equals_ci("ACCESS"))
{
@@ -122,7 +122,7 @@ public:
target_ci->AddAccess(newaccess);
}
- source.Reply(_("All access entries from \002%s\002 have been cloned to \002%s\002"), channel.c_str(), target.c_str());
+ source.Reply(_("All access entries from \002%s\002 have been cloned to \002%s\002."), channel.c_str(), target.c_str());
}
else if (what.equals_ci("AKICK"))
{
@@ -130,13 +130,13 @@ public:
for (unsigned i = 0; i < ci->GetAkickCount(); ++i)
{
const AutoKick *akick = ci->GetAkick(i);
- if (akick->HasFlag(AK_ISNICK))
+ if (akick->nc)
target_ci->AddAkick(akick->creator, akick->nc, akick->reason, akick->addtime, akick->last_used);
else
target_ci->AddAkick(akick->creator, akick->mask, akick->reason, akick->addtime, akick->last_used);
}
- source.Reply(_("All akick entries from \002%s\002 have been cloned to \002%s\002"), channel.c_str(), target.c_str());
+ source.Reply(_("All akick entries from \002%s\002 have been cloned to \002%s\002."), channel.c_str(), target.c_str());
}
else if (what.equals_ci("BADWORDS"))
{
@@ -147,7 +147,7 @@ public:
target_ci->AddBadWord(bw->word, bw->type);
}
- source.Reply(_("All badword entries from \002%s\002 have been cloned to \002%s\002"), channel.c_str(), target.c_str());
+ source.Reply(_("All badword entries from \002%s\002 have been cloned to \002%s\002."), channel.c_str(), target.c_str());
}
else
{