← Back to file list Raw

src/CCommand.cpp

#include "CCommand.h"
void CCommand::AddAlias(const std::string& alias)
{
if (IsAliasExist(alias) || alias == Name) { return; }
Aliases.insert(alias);
}
void CCommand::RemoveAlias(const std::string& alias)
{
if (!IsAliasExist(alias)) { return; }
Aliases.erase(alias);
}
bool CCommand::IsAliasExist(const std::string& alias) const
{
return Aliases.find(alias) != Aliases.end();
}
CCommand::CmdStatus CCommand::CallHandler(const CCommandArgsWrapper& args, const CCommandSender& sender) const
{
auto ret = Handlers.CallWithReturns(args, sender);
if (ret.empty()) { return CCommand::CmdStatus::Error; }
return ret.front();
}
CCommand::CmdStatus CCommand::operator()(const CCommandArgsWrapper& args, const CCommandSender& sender) const
{
return CallHandler(args, sender);
}
bool CCommand::IsNamedLike(const std::string& name) const
{
if (Name == name) { return true; }
auto it = Aliases.find(name);
return it != Aliases.end();
//return (Name == name) ? true : (Aliases.find(name) != Aliases.end());
}
std::make_signed_t<size_t> CCommandSender::GetID() const
{
return m_senderId;
}
const CCommandSender CCommandSender::Self;
const std::make_signed_t<size_t> CCommandSender::SelfId = -1;