Помогите MyCommand - определить состоит ли игрок в городе(Towny)

Gs1q

Активный участник
Пользователь
Баллы
61
Ник в Minecraft
Gs1q
Добрый день, разрабатываю сервер Towny и столкнулся с такой проблемой. Я хочу что бы игроки при написании команды /f town в чат сервера выводится сообщение о том что "Игрок" ищет город! Собственно это я реализовал, но столкнулся с проблемой в виде того что игрок который уже состоит в городе может писать эту команду, можно ли как то сделать что бы определяло состоит ли игрок в городе? Код кину ниже:

find_city:
command: /f town
type: BROADCAST_RAW_TEXT
runcmd:
- '$Script$%if%$CheckPlayerStatus%$arg1%isOnline%==true'
text:
- '&7(&c!&7) &7Игрок &f$player &7ищет себе город, просим отписаться!'
- '$RUN_COMMAND$&7[&fПригласить&7];&7Нажмите;/town invite $player'
- '&7[&fНаписать&7];&7Нажмите;/msg $player'
permission-required: true
​
 
С плагином Towny не знаком, однако принцип следующий: нужно проверить, если плейсхолдер %town_town% от имени указанного игрока ($arg1) выводит N/A значит игрок не состоит в городе и можно выводить объявление. В ином случае выводить игроку текст "Вы уже состоите в городе". Только здесь тип команды BROADCAST_RAW_TEXT и как можно это всё совместить пока идей нет. Пока только такое приходит на ум, но как в таком случае вывести raw-текст с кнопкой "Пригласить" - хз:
Код:
find_city:
  command: /f town
  type: RUN_COMMAND
  runcmd:
  - '$Script$%if%%parseother_{$arg1}_{town_town}%==N/A'
  - '$broadcasttext$ &7(&c!&7) &7Игрок &f$player &7ищет себе город, просим отписаться!'
  - '$Script$%else%'
  - '$text$ &cИгрок уже состоит в городе'
  permission-required: true
 
С плагином Towny не знаком, однако принцип следующий: нужно проверить, если плейсхолдер %town_town% от имени указанного игрока ($arg1) выводит N/A значит игрок не состоит в городе и можно выводить объявление. В ином случае выводить игроку текст "Вы уже состоите в городе". Только здесь тип команды BROADCAST_RAW_TEXT и как можно это всё совместить пока идей нет. Пока только такое приходит на ум, но как в таком случае вывести raw-текст с кнопкой "Пригласить" - хз:
Код:
find_city:
  command: /f town
  type: RUN_COMMAND
  runcmd:
  - '$Script$%if%%parseother_{$arg1}_{town_town}%==N/A'
  - '$broadcasttext$ &7(&c!&7) &7Игрок &f$player &7ищет себе город, просим отписаться!'
  - '$Script$%else%'
  - '$text$ &cИгрок уже состоит в городе'
  permission-required: true

Скопировал ваш метод дабы ознакомится и придумать как можно обдурить raw text, но столкнулся с тем что ваш метод не работает. Даже если Игрок не находится в городе выводит "Игрок состоит в городе."
 
Установлено расширение плейсхолдера ParseOther?
/papi ecloud download ParseOther
/papi reload
 
Установлено расширение плейсхолдера ParseOther?
/papi ecloud download ParseOther
/papi reload

Да, конечно установлено. Возможно Placeholder {town_town} неверный. Пробовал различные по типу: {townytagoverride} , {townyadvanced_town} всё равно не работает. Можно знаете как ещё попробовать, название города выводится в таб суффиксом через плагин TAB, есть ли возможность проверки находится ли у игрок суффикс?
 
Можно, но мне кажется, что это не самое лучшее решение. Вдруг нужно будет вывести какую-то информацию в суффикс помимо названия города и вся эта система вновь будет работать не так, как нужно
 
Можно, но мне кажется, что это не самое лучшее решение. Вдруг нужно будет вывести какую-то информацию в суффикс помимо названия города и вся эта система вновь будет работать не так, как нужно

Досадно, ну буду ждать тогда кто сможет сделать через MyCommand, ибо я вообще в нём 0.
Ну или какую альтернативу, слышали есть ещё плагин Skript или как-то так.
Так-же если кто может сделать плагин, если сумма будет адекватна, то можем обсудить.
 
Последнее редактирование:
Для старых версий плагина - нужно скачать расширение через /papi ecloud или сайт и использовать плейсхолдер towny_town; для новых плейсхолдер уже вшит в плагин, использовать townyadvanced_town.
Возможно, просто проверка неправильно работает, ибо плейсхолдер выдает не то, что ожидалось бы - проверь через /papi parse me %townyadvanced_town% стоя вне города.
 
Для старых версий плагина - нужно скачать расширение через /papi ecloud или сайт и использовать плейсхолдер towny_town; для новых плейсхолдер уже вшит в плагин, использовать townyadvanced_town.
Возможно, просто проверка неправильно работает, ибо плейсхолдер выдает не то, что ожидалось бы - проверь через /papi parse me %townyadvanced_town% стоя вне города.

Написал /papi parse me %townyadvanced_town% не находясь в городе, выводит пустое сообщение. Потом добавил себя в город, написал снова и вывело название города. То есть это правильны плейсхолдер, вписал его в MyCommand но в нём не работает.
 
Попробуй так:
Код:
- '$Script$%if%%parseother_{$arg1}_{townyadvanced_town}%.string.length<1'
 
Поднимаю старую тему, ответа на нее нет, но сильно нужно, есть идеи? 🫢
 
Назад
Верх Низ