Вопрос Чередование выполняемых команд MyCmd

Ядро
Paper

MyphicalBro

Пользователь
Сообщения
184
Решения
4
Плагин
MyCommnds
Ядро сервера
  1. Paper
Версия сервера
  1. 1.16.5
Память сервера ОЗУ
16Gb
Ссылка
https://www.spigotmc.org/resources/mycommand.22272/
Привет всем! Возможно ли создать команду в плагине MyCommands так, чтобы при каждом выполнении команды, чередовались выполняемые команды. Хз как это объяснить лучше, но например:

При первом использовании команды /Example - выполняется этот код:
YAML:
runcmd:
- 'give $player diamond 10'

А при втором использовании этой же команды - выполняется этот код:
YAML:
runcmd:
- 'give $player gold_ignot 10'

И так чередование через каждое использование
 
Решение
YAML:
example:
  command: /example
  type: RUN_CONSOLE
  runcmd:
  # Первый раз
  - '$Script$%if%%mycommand_variables_alternation%==0'
  - 'give $player diamond 10'
  - 'mycmd-variables set alternation 1'
  # Второй раз
  - '$Script$%elseif%%mycommand_variables_alternation%==1'
  - 'give $player gold_ingot 10'
  - 'mycmd-variables set alternation 0'
  permission-required: false
  register: true


+ Ввести команды:
/mycmd-variables create alternation - создаёт переменную, которая у всех общая
/mycmd-variables set alternation 0 - установить значение на 0 чтобы всё работало
в MyCommand есть playerdata. Можно использовать её для такого случая. Пример:

YAML:
example:
  command: /example
  type: RUN_CONSOLE
  runcmd:
  # Первый раз
  - '$Script$%if%%mycommand_playerdata_alternation%==0'
  - 'give $player diamond 10'
  - 'mycmd-playerdata add_silent $player alternation 1'
  # Второй раз
  - '$Script$%elseif%%mycommand_playerdata_alternation%==1'
  - 'give $player gold_ignot 10'
  - 'mycmd-playerdata add_silent $player alternation 1'
  # Третий раз
  - '$Script$%elseif%%mycommand_playerdata_alternation%==2'
  - 'give $player emerald 10'
  - 'mycmd-playerdata add_silent $player alternation 1'
  permission-required: false
  register: true
  cooldown: 60
Объединено

Кстати, можно сделать и с пермишенами, но так удобнее как по мне
 
YAML:
  # Первый раз
  - '$Script$%if%%mycommand_playerdata_alternation%==0'
  - 'give $player diamond 10'
  - 'mycmd-playerdata add_silent $player alternation 1'
  # Второй раз
  - '$Script$%elseif%%mycommand_playerdata_alternation%==1'
  - 'give $player gold_ignot 10'
  - 'mycmd-playerdata remove_silent $player alternation 1'
 
После первого использования может перестать работать, если так, то замени код на:

YAML:
example:
  command: /example
  type: RUN_CONSOLE
  runcmd:
  # Первый раз
  - '$Script$%if%%mycommand_playerdata_alternation%==0'
  - 'give $player diamond 10'
  - 'mycmd-playerdata set_silent $player alternation 1'
  # Второй раз
  - '$Script$%elseif%%mycommand_playerdata_alternation%==1'
  - 'give $player gold_ingot 10'
  - 'mycmd-playerdata set_silent $player alternation 0'
  permission-required: false
  register: true
 
Стой, а как сделать не для определенного игрока, а для всего сервера?
что именно? Чтобы всем выдавался подарок или чтобы порядок череды был у всех общий?
 
YAML:
example:
  command: /example
  type: RUN_CONSOLE
  runcmd:
  # Первый раз
  - '$Script$%if%%mycommand_variables_alternation%==0'
  - 'give $player diamond 10'
  - 'mycmd-variables set alternation 1'
  # Второй раз
  - '$Script$%elseif%%mycommand_variables_alternation%==1'
  - 'give $player gold_ingot 10'
  - 'mycmd-variables set alternation 0'
  permission-required: false
  register: true


+ Ввести команды:
/mycmd-variables create alternation - создаёт переменную, которая у всех общая
/mycmd-variables set alternation 0 - установить значение на 0 чтобы всё работало
 
YAML:
example:
  command: /example
  type: RUN_CONSOLE
  runcmd:
  # Первый раз
  - '$Script$%if%%mycommand_variables_alternation%==0'
  - 'give $player diamond 10'
  - 'mycmd-variables set alternation 1'
  # Второй раз
  - '$Script$%elseif%%mycommand_variables_alternation%==1'
  - 'give $player gold_ingot 10'
  - 'mycmd-variables set alternation 0'
  permission-required: false
  register: true


+ Ввести команды:
/mycmd-variables create alternation - создаёт переменную, которая у всех общая
/mycmd-variables set alternation 0 - установить значение на 0 чтобы всё работало
А подскажи как убрать точку в плейсхолдаре, грубо говоря при выводе в прогрессе к примеру я хочу что бы было 2/10, а выводит 2.0/10 как убрать эту точку что бы были цельные числа, можешь подсказать?
 
А подскажи как убрать точку в плейсхолдаре, грубо говоря при выводе в прогрессе к примеру я хочу что бы было 2/10, а выводит 2.0/10 как убрать эту точку что бы были цельные числа, можешь подсказать?
У меня была такая проблема, я это исправлял так:
например, есть команда, которая добавляет +1 значение: /mycmd-variables add alternation 1
А после этого я прописывал еще /mycmd-variables add alternation 0 (+0) - и эта точка уходила
 
Назад
Сверху Снизу