Вопрос Помогите найти плагин для кнопок, которые активируются только при наличии определенного предмета в руках

MrFLuXed

Пользователь
Сообщения
92
Нужно сделать кнопку (например, которая находится на координатах -25 43 -6), для нажатия на которую необходимо в руках держать специальный предмет (например пластику "far") Какой плагин для этого подойдет?
Версия сервера - 1.12.2
 
Решение
Я вас понял и исправил.
YAML:
  button:
    type: block_interact
    conditions:
    - '%checkitem_mat:STICK,inhand% equals yes'
    - '%block_x% == -25'
    - '%block_y% == 43'
    - '%block_z% == -6'
    - '%block_world% equals world'
    - '%block% equals STONE_BUTTON'
    - '%action_type% equals RIGHT_CLICK'
    actions:
      default:
      - 'message: &aYou''ve received $500!'
      - 'console_command: eco give %player% 500'
      - 'playsound: ENTITY_PLAYER_LEVELUP;10;2'
MrFLuXed, пропиши /papi ecloud download CheckItem, потом перезагружаем сервер

Новый конфиг:
YAML:
button:
    type: block_interact
    conditions:
    - '%block_x% == -25'
    - '%block_y% == 43'
    - '%block_z% == -6'
    - '%block_world% equals world'
    - '%block% equals STONE_BUTTON'
    - '%checkitem_mat_STICK,inhand% equals yes'
    - '%action_type% equals RIGHT_CLICK'
    actions:
      default:
      - 'message: &aYou''ve received $500!'
      - 'console_command: eco give %player% 500'
      - 'playsound: ENTITY_PLAYER_LEVELUP;10;2'

Нажимай палкой на кнопку.
 
MrFLuXed, пропиши /papi ecloud download CheckItem, потом перезагружаем сервер

Новый конфиг:
YAML:
button:
    type: block_interact
    conditions:
    - '%block_x% == -25'
    - '%block_y% == 43'
    - '%block_z% == -6'
    - '%block_world% equals world'
    - '%block% equals STONE_BUTTON'
    - '%checkitem_mat_STICK,inhand% equals yes'
    - '%action_type% equals RIGHT_CLICK'
    actions:
      default:
      - 'message: &aYou''ve received $500!'
      - 'console_command: eco give %player% 500'
      - 'playsound: ENTITY_PLAYER_LEVELUP;10;2'

Нажимай палкой на кнопку.
"/papi ecloud download CheckItem" - где нужно прописать? В чате и в консоли дает ошибку о неизвестной команде.
Авто объединение сообщений:

"/papi ecloud download CheckItem" - где нужно прописать? В чате и в консоли дает ошибку о неизвестной команде.
ага... для этого оказывается нужен PlaceholderAPI. Сейчас скачаю
Авто объединение сообщений:

MrFLuXed, пропиши /papi ecloud download CheckItem, потом перезагружаем сервер

Новый конфиг:
YAML:
button:
    type: block_interact
    conditions:
    - '%block_x% == -25'
    - '%block_y% == 43'
    - '%block_z% == -6'
    - '%block_world% equals world'
    - '%block% equals STONE_BUTTON'
    - '%checkitem_mat_STICK,inhand% equals yes'
    - '%action_type% equals RIGHT_CLICK'
    actions:
      default:
      - 'message: &aYou''ve received $500!'
      - 'console_command: eco give %player% 500'
      - 'playsound: ENTITY_PLAYER_LEVELUP;10;2'

Нажимай палкой на кнопку.
В чате пишет "You`re received $500!" если я возьму в руки любой предмет/блок
 
Последнее редактирование:
MrFLuXed, подожди... У вас же не был placeholderapi, он обязательный, значит поменяй в конфиге и еще на всякий случай установите заполнитель player, команда: /papi ecloud download player.



YAML:
button:
    type: block_interact
    conditions:
    - '%block_x% == -25'
    - '%block_y% == 43'
    - '%block_z% == -6'
    - '%block_world% equals world'
    - '%block% equals STONE_BUTTON'
    - '%item% equals STICK'
    - '%action_type% equals RIGHT_CLICK'
    actions:
      default:
      - 'message: &aYou''ve received $500!'
      - 'console_command: eco give %player% 500'
      - 'playsound: ENTITY_PLAYER_LEVELUP;10;2'
 
MrFLuXed, подожди... У вас же не был placeholderapi, он обязательный, значит поменяй в конфиге и еще на всякий случай установите заполнитель player, команда: /papi ecloud download player.



YAML:
button:
    type: block_interact
    conditions:
    - '%block_x% == -25'
    - '%block_y% == 43'
    - '%block_z% == -6'
    - '%block_world% equals world'
    - '%block% equals STONE_BUTTON'
    - '%item% equals STICK'
    - '%action_type% equals RIGHT_CLICK'
    actions:
      default:
      - 'message: &aYou''ve received $500!'
      - 'console_command: eco give %player% 500'
      - 'playsound: ENTITY_PLAYER_LEVELUP;10;2'
на этот раз все вернулось к началу. Ничего не пишет, логи чисты
 
MrFLuXed, теперь 100% работает, я проверил:
YAML:
  button:
    type: block_interact
    conditions:
    - '%checkitem_mat_STICK,inhand% equals yes'
    - '%block_x% == -25'
    - '%block_y% == 43'
    - '%block_z% == -6'
    - '%block_world% equals world'
    - '%block% equals STONE_BUTTON'
    - '%action_type% equals RIGHT_CLICK'
    actions:
      default:
      - 'message: &aYou''ve received $500!'
      - 'console_command: eco give %player% 500'
      - 'playsound: ENTITY_PLAYER_LEVELUP;10;2'
 
MrFLuXed, теперь 100% работает, я проверил:
YAML:
  button:
    type: block_interact
    conditions:
    - '%checkitem_mat_STICK,inhand% equals yes'
    - '%block_x% == -25'
    - '%block_y% == 43'
    - '%block_z% == -6'
    - '%block_world% equals world'
    - '%block% equals STONE_BUTTON'
    - '%action_type% equals RIGHT_CLICK'
    actions:
      default:
      - 'message: &aYou''ve received $500!'
      - 'console_command: eco give %player% 500'
      - 'playsound: ENTITY_PLAYER_LEVELUP;10;2'
Работает, но на всех предметах/блоках
 

Вложения

  • 2020-12-06_19.43.53.png
    2020-12-06_19.43.53.png
    1.8 MB · Просмотры: 2
Я вас понял и исправил.
YAML:
  button:
    type: block_interact
    conditions:
    - '%checkitem_mat:STICK,inhand% equals yes'
    - '%block_x% == -25'
    - '%block_y% == 43'
    - '%block_z% == -6'
    - '%block_world% equals world'
    - '%block% equals STONE_BUTTON'
    - '%action_type% equals RIGHT_CLICK'
    actions:
      default:
      - 'message: &aYou''ve received $500!'
      - 'console_command: eco give %player% 500'
      - 'playsound: ENTITY_PLAYER_LEVELUP;10;2'
 
Я вас понял и исправил.
YAML:
  button:
    type: block_interact
    conditions:
    - '%checkitem_mat:STICK,inhand% equals yes'
    - '%block_x% == -25'
    - '%block_y% == 43'
    - '%block_z% == -6'
    - '%block_world% equals world'
    - '%block% equals STONE_BUTTON'
    - '%action_type% equals RIGHT_CLICK'
    actions:
      default:
      - 'message: &aYou''ve received $500!'
      - 'console_command: eco give %player% 500'
      - 'playsound: ENTITY_PLAYER_LEVELUP;10;2'
Вроде работает! Спасибо. Теперь нужно сделать как-то так, чтобы кнопка была неактивной, пока я нажимаю на нее без палки в руках
 
MrFLuXed, здесь есть action: cancel-event, но с кнопками очень плохо выглядит, вы типа нажимаете, он его сразу отжимает с анимацией отжатия, но только быстрей. Я не рекомендую использовать эту вещь на кнопках.
 
MrFLuXed, здесь есть action: cancel-event, но с кнопками очень плохо выглядит, вы типа нажимаете, он его сразу отжимает с анимацией отжатия, но только быстрей.
где его лучше написать? В actions или в conditions?
 
MrFLuXed, нет... под default напиши новую строчку. И писать надо вот так: - 'cancel_event: true'
ага, работает, спасибо. Но нужно сделать наоборот. Сейчас если я нажму на кнопку палкой, то она не даст сигнал, а как сделать наоборот? Пока я не нажму на кнопку, держа в руке палку, она не будет активироваться
Авто объединение сообщений:

MrFLuXed, нет... под default напиши новую строчку. И писать надо вот так: - 'cancel_event: true'
а ты можешь подсказать, как отсрочить выполнение команды в "actions:"? Чтобы через допустим 5 секунд после нажатия на кнопку воспроизводилась команда.
 
Последнее редактирование:
MrFLuXed, wait: 5

Я сделал что вы хотели:
YAML:
  button:
    type: block_interact
    conditions:
    - '%block_x% == -25'
    - '%block_y% == 43'
    - '%block_z% == -6'
    - '%block_world% equals world'
    - '%block% equals STONE_BUTTON'
    - '%action_type% equals RIGHT_CLICK'
    - '%checkitem_mat:STICK,inhand% equals no execute actions1'
    - '%checkitem_mat:STICK,inhand% equals yes'
    actions:
      default:
      - 'message: &7Здесь должно быть сообщение'
      actions1:
      - 'cancel_event: true'
      - 'message: &7У вас нет палки.'
 
MrFLuXed, wait: 5

Я сделал что вы хотели:
YAML:
  button:
    type: block_interact
    conditions:
    - '%block_x% == -25'
    - '%block_y% == 43'
    - '%block_z% == -6'
    - '%block_world% equals world'
    - '%block% equals STONE_BUTTON'
    - '%action_type% equals RIGHT_CLICK'
    - '%checkitem_mat:STICK,inhand% equals no execute actions1'
    - '%checkitem_mat:STICK,inhand% equals yes'
    actions:
      default:
      - 'message: &7Здесь должно быть сообщение'
      actions1:
      - 'cancel_event: true'
      - 'message: &7У вас нет палки.'
Вау! Спасибо огромное! Получается, чтобы заменить предмет на алмазную конскую броню, нужно заменить "STONE_BUTTON" на "DIAMOND_HORSE_ARMOR", да?
 
Назад
Сверху Снизу