Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## по умолчанию 10 секунд на выбор
- 10.0 %%delay
- ## геттер для таймаута
- $getTimeout{
- @delay
- }
- ## сеттер для таймаута
- $setTimeout{
- <Double> %delay
- }
- ## выбор блока
- $block{
- THREAD %%main
- NULL %%selected
- ## поток-будильщик. Разбудит основной поток через @delay секунд
- Awaker{
- @delay WAIT
- @main WAKEUP
- } START %%awaker ## запустили поток
- ## поток-хандлер. при событии выбирает блок и будит основной поток
- Listener{
- ## если кликнул не ME - пропускаем событие.
- @Event:getPlayer ME = !IF RETURN THEN
- ## если не правой кнопкой - пропускаем событие.
- @Event:getAction "RIGHT_CLICK_BLOCK" = !IF RETURN THEN
- ## отменяем событие
- TRUE @Event:setCancelled
- ## записываем блок в переменную
- @Event:getClickedBlock %selected
- ## и будим основной поток
- @main WAKEUP
- } "PlayerInteractEvent" REGISTER DROP ## слушаем событие
- ## тут основной поток засыпает
- SLEEP
- ## как только его разбудили
- ## если поток @awaker не завершился - завершаем его
- @awaker IF
- @awaker STOP
- THEN
- ## возвращаем @selected
- @selected
- }
- ## выбор ентити
- $entity{
- THREAD %%main
- NULL %%selected
- Awaker{
- @delay WAIT
- @main WAKEUP
- } START %%awaker
- Listener{
- @Event:getPlayer ME = !IF RETURN THEN
- TRUE @Event:setCancelled
- @Event:getRightClicked %selected
- @main WAKEUP
- } "PlayerInteractEntityEvent" REGISTER DROP
- SLEEP
- @awaker IF
- @awaker STOP
- THEN
- @selected
- }
- $b{THIS:block} ## алиас
- $e{THIS:entity} ## алиас
- THIS.block RUNTIME.>sb ## алиас
- THIS.entity RUNTIME.>se ## алиас
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement