Решено Mycommand - как сделать проверку arg1

  • Автор темы Автор темы xSdDVD
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

xSdDVD

Новичок
Пользователь
Баллы
11
Делаю РП замену команде /m на команду /pm, те кто скажут про ALIAS, пожалуйста идите с этой темы
т.к. я сказал выше "РП замену" то есть когда человек напишет /pm в чате от его имени напишется текст
*отправил сообщение с телефона* команда должна работать так /pm $arg1(это ник получателя) $multiarg(это уже сообщение)
Как в $arg1 сделать проверку ника, то есть онлайн ли получатель сообщения, и ввёл ли игрок ник
при этом нужно что бы выводилось сообщение в чат от имени игрока. ( не в broadcast!)
 
Накидал за пару секунд, вроде работает.
Код:
Pm:
  command: /pm
  type: RUN_COMMAND
  runcmd:
  - '$Script$%if%$CheckPlayerStatus%$arg1%isOnline%==true'
  - '$text_to_specific_player%$arg1%&8[&6Шепот&8] $multiargs'
  - '$text$&8[&6i&8] &7Вы успешно отправили сообщение.'
  - '$Script$%else%'
  - '$text$ Не в сети'
  require_all_arguments: true
  required_args: 2
  register: true
  tab_completer:
   1:
   - $player_list
 
Накидал за пару секунд, вроде работает.
Код:
Pm:
  command: /pm
  type: RUN_COMMAND
  runcmd:
  - '$Script$%if%$CheckPlayerStatus%$arg1%isOnline%==true'
  - '$text_to_specific_player%$arg1%&8[&6Шепот&8] $multiargs'
  - '$text$&8[&6i&8] &7Вы успешно отправили сообщение.'
  - '$Script$%else%'
  - '$text$ Не в сети'
  require_all_arguments: true
  required_args: 2
  register: true
  tab_completer:
   1:
   - $player_list
Я не сильно изучал mycmd, поэтому, как сделать вместо "Шёпот" ник игрока который отправил сообщение?
 
Накидал за пару секунд, вроде работает.
Код:
Pm:
  command: /pm
  type: RUN_COMMAND
  runcmd:
  - '$Script$%if%$CheckPlayerStatus%$arg1%isOnline%==true'
  - '$text_to_specific_player%$arg1%&8[&6Шепот&8] $multiargs'
  - '$text$&8[&6i&8] &7Вы успешно отправили сообщение.'
  - '$Script$%else%'
  - '$text$ Не в сети'
  require_all_arguments: true
  required_args: 2
  register: true
  tab_completer:
   1:
   - $player_list
[/QUOTE
и ещё такая проблема, когда игрок пытается написать /pm ему пишетupload_2021-8-13_12-56-23.png
Хотя я в команде permission-required: false
 
Я не сильно изучал mycmd, поэтому, как сделать вместо "Шёпот" ник игрока который отправил сообщение?
Слушай, не знаю... Есть $player ( что на сайте описывается, как ник игрока, который ввел команду ), но если его поставить - то будет писать ник игрока, а не отправителя ( т.е. %player_name% из papi) . Можно было бы создать переменную (mycmd-variables) и менять ее значение на ник отправителя - > в отправителя поставить холдер от mycmd, который считывает значение этой переменной ( сам холдер не помню, ибо пишу ответ с телефона). Но я думаю, что есть способ легче. Ждём других советчиков, т.к. мне и самому стало интересно))
Если способ с изменением переменной под ник отправителя тебе подходит - дай знать, кину код.
 
Короче, спросил у товарища, там все намного проще.
1. Изучи документацию: https://dev.bukkit.org/projects/myc...on-and-example/command-types-and-placeholders
2. Замени $text_to_specific_player%$arg1% на $RUN_CONSOLE$/tellraw $arg1
3. Формат для /pm задаешь через юникод: http://itpro.cz/juniconv/ (рандомный сайт)
4. Делается там все в 7 строк (как оказалось)

Код кидать не буду, чтобы сам разобрался в плагине.
 
Короче, спросил у товарища, там все намного проще.
1. Изучи документацию: https://dev.bukkit.org/projects/myc...on-and-example/command-types-and-placeholders
2. Замени $text_to_specific_player%$arg1% на $RUN_CONSOLE$/tellraw $arg1
3. Формат для /pm задаешь через юникод: http://itpro.cz/juniconv/ (рандомный сайт)
4. Делается там все в 7 строк (как оказалось)

Код кидать не буду, чтобы сам разобрался в плагине.
Сейчас попробую.
 
Короче, спросил у товарища, там все намного проще.
1. Изучи документацию: https://dev.bukkit.org/projects/myc...on-and-example/command-types-and-placeholders
2. Замени $text_to_specific_player%$arg1% на $RUN_CONSOLE$/tellraw $arg1
3. Формат для /pm задаешь через юникод: http://itpro.cz/juniconv/ (рандомный сайт)
4. Делается там все в 7 строк (как оказалось)

Код кидать не буду, чтобы сам разобрался в плагине.
Немного не понял 3-ий пункт ._.
 
Короче, спросил у товарища, там все намного проще.
1. Изучи документацию: https://dev.bukkit.org/projects/myc...on-and-example/command-types-and-placeholders
2. Замени $text_to_specific_player%$arg1% на $RUN_CONSOLE$/tellraw $arg1
3. Формат для /pm задаешь через юникод: http://itpro.cz/juniconv/ (рандомный сайт)
4. Делается там все в 7 строк (как оказалось)

Код кидать не буду, чтобы сам разобрался в плагине.

Спасибо сначала не понял, сделал что первое в голову пришло и сработало


Код:
Pm:
  command: /pm
  type: RUN_COMMAND
  runcmd:
  - '$Script$%if%$CheckPlayerStatus%$arg1%isOnline%==true'
  - '$RUN_CONSOLE$/tellraw $arg1 ["",{"text":"Private message","color":"dark_green"},{"text":" |","color":"gray"},{"text":" *","color":"dark_green"},{"text":"$multiargs","color":"white"},{"text":"*","color":"dark_green"},{"text":" (Отправитель: $player) ","color":"gray"}]'
  - '$text$'
  - '$text$&2Private message &7| &fВы успешно отправили сообщение.'
  - '$text$'
  - '$Script$%else%'
  - '$text$ '
  - '$text$&2Private message &7|&f Извините, игрока с ником &2$arg1&f нет на сервере'
  - '$text$'
  permission-required: false
  permission-node: "mycmd.pm"
  require_all_arguments: true
  required_args: 2
  register: true
  tab_completer:
   1:
   - $player_list
  error-message: |-
   &f
   &2Private message &7| &fИспользуйте &2»&f /pm [Ник игрока] [сообщение]
   &f
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх Низ