HarpyWar wrote:OnlyMen, получение параметров для команды изменено в коде из этого репозитория. Можно использовать старое разделение команды, или добавить функцию split_command, которую я добавил.
Если не хватает опыта для редактирования кода, то лучше использовать весь код из моего репозитория.
Я и взял твой исходники дошол по инструкций до comand.cpp строки std::vector<std::string> args = split_command(text,3);
у меня не было я добавил и выбило ошибку могу выложить весь когд lockacct мб подскажешь что заменить
я только учусь в этом не очень разбираюсь.
Вот мой lockacct
t_connection * user;
t_account * account;
char const * username, *reason = "", *hours = "24"; // default time 24 hours
unsigned int sectime;
char msgtemp3[MAX_MESSAGE_LEN];
text = skip_command(text);
const char* _Str1;
const char* _Str2;
std::vector<std::string> args = split_command(text,3);
if (args[1].empty())
{
describe_command(c, args[0].c_str());
return -1;
}
username = args[1].c_str(); // username
if (!args[2].empty())
hours = args[2].c_str(); // hours
if (!args[3].empty())
reason = args[3].c_str(); // reason
if (text[0]=='\0')
{
message_send_text(c,message_type_info,c,"использование: /lockacct <username>");
return 0;
}
if (!(account = accountlist_find_account(username)))
{
message_send_text(c,message_type_error,c,"Неверный пользователь.");
return 0;
}
account_set_auth_lock(account,1);
sectime = (atoi(hours) == 0) ? 0 : (atoi(hours) * 60 * 60) + now; // get unlock time in the future
account_set_auth_locktime(account, sectime);
account_set_auth_lockreason(account, reason);
account_set_auth_lockby(account, conn_get_username(c));
// append remaining time
if (sectime == 0)
snprintf(msgtemp3, sizeof(msgtemp3), " Навсегда");
else
snprintf(msgtemp3, sizeof(msgtemp3), " for %.48s", seconds_to_timestr(sectime - now));
// append reason
if (reason[0] != '\0')
{
snprintf(msgtemp2, sizeof(msgtemp2), " по причине \"%s\"", reason);
std::strcat(msgtemp3, msgtemp2);
}
// send message to author
snprintf(msgtemp, sizeof(msgtemp), "Акаунт %s был заблокирован %s", account_get_name(account), msgtemp3);
message_send_text(c, message_type_error, c, msgtemp);
// send message to locked user
if ((user = connlist_find_connection_by_accountname(username)))
{
snprintf(msgtemp, sizeof(msgtemp), "Вы были забанены %s%s", conn_get_username(c), msgtemp3);
message_send_text(user, message_type_info, user, msgtemp);
}
return 0;
}