⛳️ Как настроить Velocity для SRbots

Существует три эффективных сценария для работы с Velocity.

  1. 📋 Требуется разрешить стандартную команду /server для игроков. [ 🟨 Нестабильный ]
  2. 📋 Подключение ботов напрямую к серверу с активным Velocity [ ✅ Стабильный ]
  3. 📋 Подключение ботов напрямую к серверу, минуя Velocity [ ✅ Стабильный ]

Рассмотрим 1 вариант:

Подробнее о команде в документации Velocity - Перейти

По умолчанию permission доступен всем игрокам - velocity.command.server

Безусловно, далее вы должны произвести настройку Velocity под свои нужды, соеденить сервера и другое.

В paper.yml [legacy], либо в config/paper-global.yml [в новых версиях] требуется активировать поддержку Velocity:

  velocity-support:
    enabled: true
  

Далее, обязательно требуется указать секретный ключ от Velocity на серверах:

  velocity-support:
    enabled: true
    online-mode: false
    secret: your_secret_key
  

Чтобы соединить сервера, требуется в файле velocity.toml указать их:

  bind = "0.0.0.0:25577" # Ваш IP и PORT Velocity сервера.
...

[servers]
# Configure your servers here. Each key represents the server's name, and the value
# represents the IP address of the server to connect to.
hub = "127.0.0.1:24565" # Ваш IP и PORT Hub сервера.
server = "127.0.0.1:25565" # Ваш IP и PORT основного сервера.

# In what order we should try servers when a player logs in or is kicked from a server.
try = [
    "hub"
]
  

☘️ Подключение ботов напрямую к серверу с активным Velocity

Вы можете изменять основной сервер для подключения вручную. Измените, к примеру, hub на server и выполните перезагрузку Velocity без перезагрузки самого сервера с помощью команды velocity reload. Выполнить команду требуется в консоли сервера.

  bind = "0.0.0.0:25577" # Ваш IP и PORT Velocity сервера.
...

[servers]
# Configure your servers here. Each key represents the server's name, and the value
# represents the IP address of the server to connect to.
hub = "127.0.0.1:24565" # Ваш IP и PORT Hub сервера.
server = "127.0.0.1:25565" # Ваш IP и PORT основного сервера.

# In what order we should try servers when a player logs in or is kicked from a server.
try = [
    "server"
]
  

Затем подключите ботов к Velocity, в нашем примере это 0.0.0.0:25577, он же localhost на нашей машине, а Velocity в свою очередь, перенаправит запрос на нужный сервер, который вы указали в блоке try.

В конце, Вы можете изменить первоначальный сервер на hub.

🧊 Убрать ограничения Velocity

Обращаясь к velocity.toml для устранения ограничений и предотвращения непредвиденных отключений можно предпринять следующие меры:

  # How fast (in milliseconds) are clients allowed to connect after the last connection? By
# default, this is three seconds. Disable this by setting this to 0.
login-ratelimit = 0

# Specify a custom timeout for connection timeouts here. The default is five seconds.
connection-timeout = 0

# Specify a read timeout for connections here. The default is 30 seconds.
read-timeout = 0
  

🚁 Подключение ботов напрямую к серверу, минуя Velocity

Если Вы располагаете возможностью подключения ботов напрямую, то для этого измените следующий параметр:

  player-info-forwarding-mode = "NONE"
  

Затем подключите ботов напрямую к серверу server, в нашем примере это 127.0.0.1:25565, минуя промежуточные сервера и Velocity.

Помните, что при этом способе требуется на серверах отключить velocity-support:

  velocity-support:
    enabled: false
    online-mode: false
    secret: your_secret_key
  

⭐ Как настроить BungeeCord для SRbots

Если вы пользуетесь готовыми сборками, то обратите внимание на файл config.yml в корневой директории BungeeCord.
В списке disabled_commands не должна находится команда server:

  disabled_commands:
- end
- ip
- reload
- alertraw
- bungee
- glist
- greload
- perms
  

В списке permissions по умолчанию должна быть разрешена команда bungeecord.command.server:

  permissions:
  default:
  - bungeecord.command.server
  
В данном конфигурационном файле указан IP и PORT lobby и server. Укажите ваши IP адреса.

В файле сервера, либо лобби spigot.yml должен содержать bungeecord: true:

  settings:
  debug: false
  player-shuffle: 0
  bungeecord: true