Иконка ресурса

Domikuss

Добрая душа
Сообщения
282
Реакции
261
  • Автор ресурса
  • #1
Domikuss добавил(а) новый ресурс:

Command Aliases - Позволяет назначить альтернативное название/названия команде

Позволяет назначить альтернативное название/названия команде.

Максимальное значение назначаемых команд - 32.(можно изменить в исходнике - MAX_ALIASES)

Пример конфига:
"CommandAliases"
{
    "commands"
    {
        "sm_skin"    "sm_skins;sm_plskins"
        "sm_admin"    "sm_adminka;sm_adminpanel"
    }
}

Узнать больше об этом ресурсе...
 
Последнее редактирование:

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #4
@ExperimentFailed, если форумный поиск, то он почему-то иногда теряет старый контент из индекса. Не знаю, почему так происходит.
Надёжнее в этом плане пробовать через Гугл найти.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #5
Вообще, посмотрел в исходник. То, что плагин "накидан" - ощущается.
  1. Чтение строки с командами можно было реализовать намного проще. Об этом ниже.
  2. Есть шанс ошибки: если релоаднуть конфиг, команда зарегистрируется два раза. Нужно как-то обрабатывать это. В лоб если - держать ArrayList уже зарегистрированных команд, который никогда не очищать. Если регистрируемая команда там присутствует - просто установить настоящее название команды в стрингмапе, не регистрируя. Иначе ещё зарегать.
  3. Плагин не поддерживает сейчас никак аргументы. Это так и задумано?
Про чтение: можно с конца строки искать ;. Если находится что-то - нуллить символ на найденной позиции, и регистрировать команду по позиции i+1.
В виде кода это будет выглядеть как-то так (написал с ходу, не тестировал):
C-подобный:
int i = 0;
do {
    // szString - строка с командами, перечисленными через ";"
    i = FindCharInString(szString, ';', true);
    if (i > -1)
    {
        szString[i] = 0;
    }

    i++;
    RegConsoleCmd(szString[i], CmdCallback);
} while (i == 0);
 

Domikuss

Добрая душа
Сообщения
282
Реакции
261
  • Автор ресурса
  • #6
Вообще, посмотрел в исходник. То, что плагин "накидан" - ощущается.
  1. Чтение строки с командами можно было реализовать намного проще. Об этом ниже.
  2. Есть шанс ошибки: если релоаднуть конфиг, команда зарегистрируется два раза. Нужно как-то обрабатывать это. В лоб если - держать ArrayList уже зарегистрированных команд, который никогда не очищать. Если регистрируемая команда там присутствует - просто установить настоящее название команды в стрингмапе, не регистрируя. Иначе ещё зарегать.
  3. Плагин не поддерживает сейчас никак аргументы. Это так и задумано?
Про чтение: можно с конца строки искать ;. Если находится что-то - нуллить символ на найденной позиции, и регистрировать команду по позиции i+1.
В виде кода это будет выглядеть как-то так (написал с ходу, не тестировал):
C-подобный:
int i = 0;
do {
    // szString - строка с командами, перечисленными через ";"
    i = FindCharInString(szString, ';', true);
    if (i > -1)
    {
        szString[i] = 0;
    }

    i++;
    RegConsoleCmd(szString[i], CmdCallback);
} while (i == 0);
1. Благодарю, разберу код.
2. Кстати, совсем забыл про это, учту.
3. На данный момент, да. Пока разобрался в этом, подсказали ещё в лс о том чтобы ещё и аргументы поддерживались, так же добавлю скоро.
За ревью отдельное спасибо.
 

Domikuss

Добрая душа
Сообщения
282
Реакции
261
  • Автор ресурса
  • #8
Domikuss обновил(а) ресурс Command Aliases новой записью:

Фиксы и новвоведения

Добавлено
  • Поддержка передачи аргументов
Исправлено
  • Повторная регистрация команд при перезагрузке конфига (Спасибо @Kruzya )
  • Собственная реализация чтение строки с командами (Спасибо @Kruzya )
  • Серверные команды теперь выполняются от лица сервера

Узнать больше об этом обновлении...
 
Последнее редактирование:
Сверху Снизу