Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Стартап Идея защиты от FlyHack

EnderChiken

Старожил
Баллы
103
Имя в Minecraft
EnderChiken
Всем привет, тут я занялся разработкой простого OpenSource АнтиЧита, и тут встал вопрос о защите от FlyHack, могу высказать свою версию как от него защищатся :D
При открытии окна дебаггинга в Minecraft, мы можем увидеть внизу букву g (Ground), Она имеет 2 состояния, true и false то есть когда ты стоишь на земле она имеет состояние true, когда летишь она естественно в состоянии false, так вот сам плагин будет отсчитывать секунды этого false, если он летит дольше чем время падения с высоты 256 до пустоты то его выкикивает с надписью fly is not enabled on this server (Или с другой), я озадачился вопросом как это все зделать, может подскажите? ;)

Скрин той самой g
На земле
GQi.png
В воздухе
2a6.png

Что я хочу знать по этой теме :trf:
Как проверять гейммод
Как обращатся к Debug окну клиента
Как выкикивать игрока с сервера, и выводить об этом сообщение в чат
Как записывать это в лог плагина (Не сервера, а плагина)
И... Все :)
Извеняюсь если столько всяких сложных (глупых, а зачем это мне? и т.д.) вопросов :rolleyes:
 
1) org.bukkit.entity.player.getAllowFlight() , также поможет org.bukkit.entity.player.isFlying , org.bukkit.entity.player.getFlyghtSpeed
3) org.bukkit.event.player.PlayerKickEvent, org.bukkit.event.player.PlayerKickEvent.setReason(String kickReason) .
Возрадуйся. Остальное можешь поискать тут.
 
Античит, о котором ты рассказал уже встроен в ваниллу (не зря же g = bool onGround).
Единственное, чем можно усовершенствовать встроенный антифлай - автобан при кике.
Делается оче легко:

Java:
@EventHandler
public void onPlayerKick(PlayerKickEvent e) {
    if (e.getReason().contains("is not enabled")) {
        e.getPlayer().setBanned(true);
    }
}
 

Поделиться этой страницей

Назад
Верх