diff options
author | peavey <peavey@e03df62e-2008-0410-955e-edbf42e46eb7> | 2007-07-16 17:14:45 +0000 |
---|---|---|
committer | peavey <peavey@e03df62e-2008-0410-955e-edbf42e46eb7> | 2007-07-16 17:14:45 +0000 |
commit | bab14f0dd2345c9d7dcbc47c918563709e1ac094 (patch) | |
tree | 753a23cfc9fc08c6697e80b3e686f074aa911d85 /src/modules/m_taxonomy.cpp | |
parent | 3abff3a37550cc1d88dd4d1fd7ed526e89309a53 (diff) |
'svn propset -R svn:eol-style CR *' Set to UNIX-style always. Binaries are auto skipped by svn.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7454 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/m_taxonomy.cpp')
-rw-r--r-- | src/modules/m_taxonomy.cpp | 100 |
1 files changed, 1 insertions, 99 deletions
diff --git a/src/modules/m_taxonomy.cpp b/src/modules/m_taxonomy.cpp index 79dc8e23f..edae9ccf6 100644 --- a/src/modules/m_taxonomy.cpp +++ b/src/modules/m_taxonomy.cpp @@ -1,99 +1 @@ -/* +------------------------------------+ - * | Inspire Internet Relay Chat Daemon | - * +------------------------------------+ - * - * InspIRCd: (C) 2002-2007 InspIRCd Development Team - * See: http://www.inspircd.org/wiki/index.php/Credits - * - * This program is free but copyrighted software; see - * the file COPYING for details. - * - * --------------------------------------------------- - */ - -#include "inspircd.h" -#include "users.h" -#include "channels.h" -#include "modules.h" - -/* $ModDesc: Provides the /TAXONOMY command, used to view all metadata attached to a user */ - -/** Handle /WOOT - */ -class cmd_taxonomy : public command_t -{ - Module* Creator; - bool& claimed; - public: - /* Command 'taxonomy', takes no parameters and needs no special modes */ - cmd_taxonomy (InspIRCd* Instance, Module* maker, bool &claim) : command_t(Instance,"TAXONOMY", 'o', 1), Creator(maker), claimed(claim) - { - this->source = "m_taxonomy.so"; - } - - CmdResult Handle (const char** parameters, int pcnt, userrec *user) - { - userrec* dest = ServerInstance->FindNick(parameters[0]); - if (dest) - { - std::deque<std::string> list; - list.clear(); - user->GetExtList(list); - user->WriteServ("304 " + std::string(user->nick) + ":TAXONOMY ITEMS " + std::string(dest->nick) + " " +ConvToStr(list.size())); - for (unsigned int j = 0; j < list.size(); j++) - { - claimed = false; - FOREACH_MOD(I_OnSyncUserMetaData, OnSyncUserMetaData(user, Creator, dest, list[j], true)); - if (!claimed) - { - user->WriteServ("304 " + std::string(user->nick) + ":TAXONOMY METADATA " + list[j] + " = <unknown>"); - } - } - user->WriteServ("304 " + std::string(user->nick) + ":TAXONOMY END"); - } - return CMD_FAILURE; - } -}; - -class ModuleTaxonomy : public Module -{ - cmd_taxonomy* newcommand; - bool claimed; - public: - ModuleTaxonomy(InspIRCd* Me) - : Module(Me) - { - - // Create a new command - newcommand = new cmd_taxonomy(ServerInstance, this, claimed); - ServerInstance->AddCommand(newcommand); - } - - void Implements(char* List) - { - List[I_ProtoSendMetaData] = 1; - } - - void ProtoSendMetaData(void* opaque, int target_type, void* target, const std::string &extname, const std::string &extdata) - { - if (target_type == TYPE_USER) - { - userrec* spool = (userrec*)opaque; - std::string taxstr = "304 " + std::string(spool->nick) + ":TAXONOMY METADATA "+extname+" = "+extdata; - spool->WriteServ(taxstr); - claimed = true; - } - } - - virtual ~ModuleTaxonomy() - { - } - - virtual Version GetVersion() - { - return Version(1, 1, 0, 0, VF_VENDOR, API_VERSION); - } -}; - -MODULE_INIT(ModuleTaxonomy) - +/* +------------------------------------+
* | Inspire Internet Relay Chat Daemon |
* +------------------------------------+
*
* InspIRCd: (C) 2002-2007 InspIRCd Development Team
* See: http://www.inspircd.org/wiki/index.php/Credits
*
* This program is free but copyrighted software; see
* the file COPYING for details.
*
* ---------------------------------------------------
*/
#include "inspircd.h"
#include "users.h"
#include "channels.h"
#include "modules.h"
/* $ModDesc: Provides the /TAXONOMY command, used to view all metadata attached to a user */
/** Handle /WOOT
*/
class cmd_taxonomy : public command_t
{
Module* Creator;
bool& claimed;
public:
/* Command 'taxonomy', takes no parameters and needs no special modes */
cmd_taxonomy (InspIRCd* Instance, Module* maker, bool &claim) : command_t(Instance,"TAXONOMY", 'o', 1), Creator(maker), claimed(claim)
{
this->source = "m_taxonomy.so";
}
CmdResult Handle (const char** parameters, int pcnt, userrec *user)
{
userrec* dest = ServerInstance->FindNick(parameters[0]);
if (dest)
{
std::deque<std::string> list;
list.clear();
user->GetExtList(list);
user->WriteServ("304 " + std::string(user->nick) + ":TAXONOMY ITEMS " + std::string(dest->nick) + " " +ConvToStr(list.size()));
for (unsigned int j = 0; j < list.size(); j++)
{
claimed = false;
FOREACH_MOD(I_OnSyncUserMetaData, OnSyncUserMetaData(user, Creator, dest, list[j], true));
if (!claimed)
{
user->WriteServ("304 " + std::string(user->nick) + ":TAXONOMY METADATA " + list[j] + " = <unknown>");
}
}
user->WriteServ("304 " + std::string(user->nick) + ":TAXONOMY END");
}
return CMD_FAILURE;
}
};
class ModuleTaxonomy : public Module
{
cmd_taxonomy* newcommand;
bool claimed;
public:
ModuleTaxonomy(InspIRCd* Me)
: Module(Me)
{
// Create a new command
newcommand = new cmd_taxonomy(ServerInstance, this, claimed);
ServerInstance->AddCommand(newcommand);
}
void Implements(char* List)
{
List[I_ProtoSendMetaData] = 1;
}
void ProtoSendMetaData(void* opaque, int target_type, void* target, const std::string &extname, const std::string &extdata)
{
if (target_type == TYPE_USER)
{
userrec* spool = (userrec*)opaque;
std::string taxstr = "304 " + std::string(spool->nick) + ":TAXONOMY METADATA "+extname+" = "+extdata;
spool->WriteServ(taxstr);
claimed = true;
}
}
virtual ~ModuleTaxonomy()
{
}
virtual Version GetVersion()
{
return Version(1, 1, 0, 0, VF_VENDOR, API_VERSION);
}
};
MODULE_INIT(ModuleTaxonomy)
\ No newline at end of file |