#include "CCommandArgsWrapper.h" CCommandArgsWrapper::CCommandArgsWrapper(const std::vector& _RealArgs) : RealArgs(_RealArgs) {} std::wstring CCommandArgsWrapper::GetArgument(size_t index) const { if(index >= RealArgs.size()) { return {}; } return RealArgs.at(index); } size_t CCommandArgsWrapper::GetSize() const { return RealArgs.size(); } bool CCommandArgsWrapper::IsArgumentAvailable(size_t index) const { return index < RealArgs.size(); } bool CCommandArgsWrapper::IsArgumentEmpty(size_t index) const { return (index < RealArgs.size()) ? RealArgs.at(index).empty() : true; } sol::as_table_t> CCommandArgsWrapper::ToLua() const { return sol::as_table(RealArgs); } sol::table CCommandArgsWrapper::ToLua(sol::state_view st) const { sol::table ret = st.create_table(); size_t index = 1; for(auto& arg : RealArgs) { ret[index] = arg; index++; } return ret; } bool CCommandArgsWrapper::IsEmpty() const { return RealArgs.empty(); } bool CCommandArgsWrapper::empty() const { return IsEmpty(); } std::wstring CCommandArgsWrapper::Merge(size_t startindex, size_t endindex) const { size_t start = std::min(startindex, endindex); size_t end = std::max(startindex, endindex); if(start == std::numeric_limits::max()) { start = 0; } if(end == std::numeric_limits::max()) { end = RealArgs.size() - 1; } if(RealArgs.empty() || start >= GetSize() || end >= GetSize()) { return {}; } return StringUtils::merge_arg(RealArgs, start, end); } size_t CCommandArgsWrapper::size() const { return GetSize(); }