Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
У меня сделано проще, но костылём. Плагин отслеживает PlayerMoveEvent и EntityDamageEvent, если игрок в это время находится в регионе и если у него включен fly или gm 1, включает gm 0 и выключает флай.Таким же вопросом задавался две недели назад.
Делали PvP-арену, необходимо было, чтобы при заходе в зону PvP отключался /gm, /v, /fly и /god. /gm сделали легко - /rg f pvp game-mode. С флаем тоже разобрались: при переходе в другой игровой режим флай отключается автоматически. Поэтому мы сделали /rg f pvp game-mode adventure. Мы основывались на том, что если люди перейдут в /gm 0 и включат /fly перед входом на PvP-арену, /gm им переключался на adventure.
Но возникала проблема: люди могли заранее войти не в /gm 0, а в /gm 2, в нём включить флай и пройти. Это нас и затрудняло + не решена проблема с /v и /god.
Идея пришла неожиданно. У нас стоял плагин на выполнение команд при нажатии на табличку - ServerSigns ( https://dev.bukkit.org/bukkit-plugins/serversigns/ ). Мы закрыли вход на PvP-арену барьерами, а рядом поставили табличку, добавив на неё следующие команды:
- /svs add <server> gm 2 <player> - переключает игровой режим нажавшего на табличку игрока на adventure от имени консоли
- /svs add <server> fly <player> off - от имени консоли выключает нажавшему на табличку игроку флай (даже если он был выключен)
- /svs add <server> god <player> off - от имени консоли отключает нажавшему на табличку игроку режим бога (даже если он был выключен)
- /svs add <server> v <player> off - от имени консоли отключает нажавшему на табличку игроку режим невидимости (даже если он был выключен)
- /svs add <server> tp <player> x y z - от имени консоли телепортирует игрока на координаты X, Y, Z (в нашем случае, на зону PvP).
Естественно, сделали и табличку с выходом с PvP-арены:
На регионе PvP же запретили такие команды, как:
- /svs add <server> gm 0 <player> - от имени консоли переключает игровой режим нажавшего на табличку игрока на survival
- /svs add <server> spawn <player> - от имени консоли телепортирует нажавшего на табличку игрока на спавн. От имени сервера - потому что мы отключили команду /spawn в регионе PvP, дабы если у игрока критическое кол-во жизней, он не вставлял по-быстрому в чат команду на телепорт на /spawn, /home (тоже отключено), /c home, /marry home и т.д.
Как-то так...
- /tpa
- /fly
- /sethome
- /gm
- /tpyes
- /tpaccept
- /home
- /warp
- /tp
- /god
- /gamemode
- /call
- /tpo
Да это не костыль, а целая машина дьявола. Мой тебе совет - для проверок хотя бы используй шедулер, а не PlayerMoveEvent.У меня сделано проще, но костылём. Плагин отслеживает PlayerMoveEvent и EntityDamageEvent, если игрок в это время находится в регионе и если у него включен fly или gm 1, включает gm 0 и выключает флай.
Лол) Ладно, переделаю. Но по таймингам нагрузки нет.Да это не костыль, а целая машина дьявола. Мой тебе совет - для проверок хотя бы используй шедулер, а не PlayerMoveEvent.
P.S. Ради этого даже тему не жалко поднять...
Ну, видимо и онлайна особо нет...Но по таймингам нагрузки нет.
PlayerToggleFlightEvent?Ну, видимо и онлайна особо нет...
Я думал об этом. Есть ещё всякие PlayerGameModeChangeEvent. Однако абсолютно всё контролировать событиями не выйдет, соответственно шедулер придётся использовать в любом случае. Ну тогда от PlayerToggleFlightEvent смысла вообще нет, получается.PlayerToggleFlightEvent?