No Description
Alex f8928427c0 исправлена загрузка конфига 3 years ago
src/ru/intervi/botnagibatorbungee исправлена загрузка конфига 3 years ago
README.md README.md edited online with Bitbucket 3 years ago
config.yml залив в репозиторий 3 years ago
plugin.yml залив в репозиторий 3 years ago

README.md

BotNagibator

Более не поддерживается. Обновлений не будет.

Под версию сервера:

  • BotNagibator под 1.8.3
  • BotNagibatorBungee под BungeeCord #1083 и старше

BotNagibator: https://bitbucket.org/InterVi/botnagibator

Простая защита от ботов, для прохождения проверки игроку требуется ударить блок / моба. Как именно устроить проверку - на ваше усмотрение. Включается только в момент атаки (можно сделать постоянно включенной). Есть белый список ip, чтобы игроки не проходили проверку много раз.

Не гарантирует абсолютную безопасность, так как все зависит от возможностей вашего железа. Предположительно легко обходится, если не лень писать обход.

На тестах было замечено, что нагрузка во время атаки не превышает по 40% на всех ядрах. Атаковал гидрой, без использования прокси, скорость примерно > 20 ботов в секунду. Память жрется приемлемо, в пределах 300мб на банжу и 300мб на фильтр-сервер.

Установка

BotNagibator кладем в папку плагинов фильтр-сервера, это обычный сервер Spigot с пустой картой, где в пустоте находится ваша небольшая постройка. Как создать пустой мир описано здесь. В настройках сервера выключите спаун мобов, дальность прорисовки на 2 чанка (при 1 мобы невидимы), отключите ад, край и все лишнее.

BotNagibatorBungee кладем в папку плагинов BungeeCord. При настройке банжи желательно выставить force_default_server на true, где дефолтным сервером прописан фильтр-сервер. В последней версии после багофиксов правильное распределение игроков во время атаки не тестировалось, предположительно данную опцию можно не включать.

Небольшой гайд по настройке банжи тут. Описывать не буду - сами разбирайтесь, все настройки названы понятно, есть офф сайт с описаниями каждой опции.

Установка MySQL в Linux

Внимательно просмотрите, это мой пример настройки под себя. Вы можете выкинуть некоторые команды.

#!bash

apt-get install mysql-server mysql-client
echo skip-character-set-client-handshake >> /etc/mysql/my.cnf
echo character-set-server = utf8 >> /etc/mysql/my.cnf
echo init-connect='SET NAMES utf8' >> /etc/mysql/my.cnf
echo collation-server=utf8_general_ci >> /etc/mysql/my.cnf
echo skip-innodb >> /etc/mysql/my.cnf
echo skip-bdb >> /etc/mysql/my.cnf
echo skip-networking >> /etc/mysql/my.cnf
nano /etc/init.d/rc add in top: ulimit -s 1024
service mysql restart

Создание базы с нужной таблицей

#!bash

mysql -u username -p
SET names utf8;
CREATE DATABASE dbname;
USE dbname
CREATE TABLE nicks (name VARCHAR(200));
exit

Настройка крона для чистки данных

#!bash

crontab -e

@midnight rm -rf /home/bungee/empty/playerdata/* && rm -rf /home/bungee/empty/stats/*
@weekly find /home/bungee/logs/* -type f -name "*.gz" -delete >> /home/bungee/logs/clearlog.log

Данные игроков чистятся раз в сутки, логи раз в неделю. Пути подставляйте свои.

Настройка

!!! ВАЖНО!!!

Эти опции под нагрузкой не работают:

  • kickfastcom
  • iplimit

safecon и kickfastcheck можно не включать.

Чем выше maxcon, тем меньше нагрузка (странности).

Настройки MySQL задавайте такие, какие вбивали при установке MySQL-сервера. При первом старте плагина подключение к MySQL не происходит воизбежание крашей.

Использование

  • /bnb-reload - для банжи, перезагружает конфиг (перм botnagibatorbungee.reload)
  • /bnb - для фльтр-сервера, список команд

Чтобы поработать на фильтр-сервере, нужно OPнуть себя. Проверку проходить не потребуется, все запреты не будут действовать. Можно убивать заданного для прохождения проверки моба, есть команда на убийство всех мобов в мире.

Библиотека для работы с MySQL содержится в самом плагине.