mirror of
https://github.com/MrOkiDoki/BattleBit-Community-Server-API.git
synced 2025-01-09 11:17:30 -03:00
44 lines
5.5 KiB
Markdown
44 lines
5.5 KiB
Markdown
# BattleBit Remastered Community Server API
|
||
|
||
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
|
||
|
||
Language [English](/README.md) | [中文](/README-zhCN.md) | Русский | [한국어](/README-koKR.md) | [Español](/README-esES.md) | [Português](/README-ptBR.md)
|
||
|
||
Этот репозиторий предоставляет API, который можно использовать для обработки событий на сервере/серверах и манипулирования ими.
|
||
|
||
## Приступая к работе
|
||
|
||
### Предварительные условия
|
||
|
||
- Собственный коммьюнити сервер в BattleBit Remastered c **отключенной** официальной прогрессией для доступа к параметрам запуска.
|
||
- Способность писать и компилировать [.NET 6.0](https://dotnet.microsoft.com/en-us/download/dotnet/6.0) C# код.
|
||
- (Для продакшена) Место, на котором будет размещен этот API.
|
||
|
||
### Написание кода
|
||
|
||
Документацию и примеры можно найти на [wiki](https://github.com/MrOkiDoki/BattleBit-Community-Server-API/wiki) (WIP).
|
||
|
||
Способ использования этого API заключается в создании инстанции `ServerListener` (и ее запуске), которой вы передаете типы ваших *собственных* подклассов `Player` и `GameServer`. В этих подклассах вы можете делать свои собственные переопределения уже существующих методов в `Player` и `GameServer`. Вы также можете добавлять свои собственные методы и поля/свойства.
|
||
|
||
Самый простой способ начать работу со всем этим - использовать `Program.cs` и добавить свои переопределения и т.п. в `MyPlayer` и `MyGameServer`.
|
||
|
||
### Сборка
|
||
|
||
Этот проект можно собрать с помощью команды [`dotnet build`](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-build) в командной строке или с помощью опций run / build в предпочитаемой вами IDE.
|
||
В качестве альтернативы вы можете использовать [Docker](https://docs.docker.com/get-started/overview/) для его запуска. Простой способ сделать это - запустить `docker compose up`.
|
||
|
||
### Подключение к игровому серверу/серверам
|
||
|
||
После написания и компиляции этого проекта, вы захотите разместить его где-нибудь. Это может быть тот же сервер, на котором запущен текущий игровой сервер, или совершенно другой. Мы рекомендуем поддерживать минимальную задержку до игрового сервера для более плавной и быстрой коммуникации между ними. Один и тот же `ServerListener` может использоваться для *нескольких* игровых серверов одновременно. Вы можете указать API-сервер (адрес и порт) в параметрах запуска игрового сервера.
|
||
|
||
#### Параметры запуска игрового сервера
|
||
|
||
Игровой сервер подключается к API с помощью параметра запуска `«-apiendpoint=<IP>:<port>»`, где `<port>` - это порт, который слушает слушатель, а `<IP>` - IP сервера API.
|
||
|
||
Если в вашем Server API требуется проверка `Api Token`, вам необходимо добавить `«-apiToken=<ApiToken>»` в параметры запуска игрового сервера/серверов. Если `<ApiToken>` совпадает с `Api Token`, определенным в Server API, игровой сервер(ы) смогут взаимодействовать с Server API.
|
||
|
||
Когда игровой сервер запущен, вы также можете напрямую изменить `Api Token` игрового сервера, введя `setapitoken <new token>` в его командной строке.
|
||
|
||
#### Настройка порта прослушивания API
|
||
|
||
В настоящее время проект настроен на прослушивание API на порту `29294`. Если вы хотите изменить это, обязательно измените это в коде (на вашем `listener.start(port)`). Порт `29294` также открыт в Docker и привязан к тому же порту на хосте в Docker Compose. Это означает, что при использовании Docker вам придется изменить порт в `Dockerfile` и в `docker-compose.yml` (при использовании Compose). Подробнее в [EXPOSE в справке по Dockerfile](https://docs.docker.com/engine/reference/builder/#expose) и [networking in Compose](https://docs.docker.com/compose/networking/).
|