Skip to content

Commit

Permalink
docs: fix markdown style
Browse files Browse the repository at this point in the history
  • Loading branch information
WoozyMasta committed Nov 29, 2024
1 parent c5a0bd6 commit 6fdd154
Show file tree
Hide file tree
Showing 3 changed files with 150 additions and 24 deletions.
96 changes: 96 additions & 0 deletions .markdownlint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
{
"default": true,
"extends": null,
"MD001": true,
"MD003": {
"style": "consistent"
},
"MD004": {
"style": "consistent"
},
"MD005": true,
"MD007": {
"indent": 2,
"start_indented": false
},
"MD009": {
"br_spaces": 2,
"list_item_empty_lines": false,
"strict": false
},
"MD010": {
"code_blocks": true
},
"MD011": true,
"MD012": {
"maximum": 1
},
"MD013": {
"line_length": 80,
"heading_line_length": 80,
"code_block_line_length": 160,
"code_blocks": false,
"tables": false,
"headings": true,
"strict": false,
"stern": false
},
"MD014": true,
"MD018": true,
"MD019": true,
"MD020": true,
"MD021": true,
"MD022": {
"lines_above": 1,
"lines_below": 1
},
"MD023": true,
"MD024": {
"siblings_only": true
},
"MD026": {
"punctuation": ".,;:!。,;:!?"
},
"MD027": true,
"MD028": true,
"MD029": {
"style": "one_or_ordered"
},
"MD030": {
"ul_single": 1,
"ol_single": 1,
"ul_multi": 1,
"ol_multi": 1
},
"MD031": {
"list_items": true
},
"MD032": true,
"MD033": {
"allowed_elements": []
},
"MD034": true,
"MD035": {
"style": "consistent"
},
"MD036": {
"punctuation": ".,;:!?。,;:!?"
},
"MD037": true,
"MD038": true,
"MD039": true,
"MD040": true,
"MD042": true,
"MD044": {
"names": [],
"code_blocks": true
},
"MD045": true,
"MD046": {
"style": "consistent"
},
"MD047": true,
"MD048": {
"style": "consistent"
}
}
42 changes: 29 additions & 13 deletions pkg/bercon/spec/bercon-protocol-ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,34 @@

> Copyright (C) 2011 by BattlEye Innovations
[Оригинальный документ](https://www.battleye.com/downloads/BERConProtocol.txt)
[Оригинальный
документ](https://www.battleye.com/downloads/BERConProtocol.txt)

## Общее описание

BE RCon использует сетевой интерфейс игрового сервера, то есть его UDP-порт для игры.
Из-за ненадежной природы UDP клиент должен заботиться о возможной потере пакетов.
BE RCon использует сетевой интерфейс игрового сервера, то есть его UDP-порт
для игры.
Из-за ненадежной природы UDP клиент должен заботиться о возможной потере
пакетов.

Протокол определяет следующий 7-байтовый заголовок во всех пакетах BE RCon, входящих и исходящих:
Протокол определяет следующий 7-байтовый заголовок во всех пакетах BE RCon,
входящих и исходящих:

```txt
'B'(0x42) | 'E'(0x45) | 4-байтовая контрольная сумма CRC32 последующих байтов | 0xFF
```

Последующие байты (полезная нагрузка) описывают фактический пакет RCon (см. ниже).
Последующие байты (полезная нагрузка) описывают фактический пакет RCon (см.
ниже).

## Типы пакетов

Существует 3 различных типа пакетов:

### Пакет входа в систему

Это первый пакет, отправляемый на сервер.
Успешный вход в систему необходим для отправки фактических команд на сервер.
Это первый пакет, отправляемый на сервер. Успешный вход в систему необходим
для отправки фактических команд на сервер.

Формат следующий:

Expand All @@ -42,7 +47,8 @@ BE RCon сервера, если он включен, подтверждает

### Пакет команды

После успешного входа клиента он может отправлять команды BE Server (и возможно команды игрового сервера) на сервер.
После успешного входа клиента он может отправлять команды BE Server (и
возможно команды игрового сервера) на сервер.

Формат следующий:

Expand All @@ -56,18 +62,25 @@ BE RCon сервера подтверждает с помощью следующ
0x01 | полученный 1-байтовый номер последовательности | (возможный заголовок и/или ответ (строка ASCII без завершающего нуля) ИЛИ ничего)
```

Следующий заголовок существует только в том случае, если сервер отвечает несколькими пакетами из-за ограничений размера пакетов. Заголовок присутствует в каждом из этих пакетов.
Следующий заголовок существует только в том случае, если сервер отвечает
несколькими пакетами из-за ограничений размера пакетов. Заголовок
присутствует в каждом из этих пакетов.

```txt
0x00 | количество пакетов для этого ответа | индекс текущего пакета (начиная с 0)
```

Пустой 2-байтовый пакет команды (без фактической строки команды) должен быть отправлен каждые 45 секунд (или меньше) для поддержания соединения/входа в систему активным, если нет других пакетов команд.
Если клиент не отправляет пакетов команд более чем 45 секунд, он будет удален из списка аутентифицированных клиентов BE RCon и больше не сможет выдавать какие-либо команды.
Пустой 2-байтовый пакет команды (без фактической строки команды) должен быть
отправлен каждые 45 секунд (или меньше) для поддержания соединения/входа в
систему активным, если нет других пакетов команд.
Если клиент не отправляет пакетов команд более чем 45 секунд, он будет
удален из списка аутентифицированных клиентов BE RCon и больше не сможет
выдавать какие-либо команды.

### Пакет сообщения сервера

Когда BE Server выводит сообщения в консоль сервера, он также отправляет их всем подключенным клиентам RCon.
Когда BE Server выводит сообщения в консоль сервера, он также отправляет их
всем подключенным клиентам RCon.

Формат следующий:

Expand All @@ -81,4 +94,7 @@ BE RCon сервера подтверждает с помощью следующ
0x02 | полученный 1-байтовый номер последовательности
```

BE RCon сервера пытается отправить пакет сообщения сервера 5 раз в течение 10 секунд. Если клиент не подтверждает пакет в течение этого времени, он будет удален из списка аутентифицированных клиентов BE RCon и больше не сможет выдавать какие-либо команды.
BE RCon сервера пытается отправить пакет сообщения сервера 5 раз в течение
10 секунд. Если клиент не подтверждает пакет в течение этого времени, он
будет удален из списка аутентифицированных клиентов BE RCon и больше не
сможет выдавать какие-либо команды.
36 changes: 25 additions & 11 deletions pkg/bercon/spec/bercon-protocol.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@
## General

BE RCon uses the game server's network interface, i.e. its UDP game port.
Due to the unreliable nature of UDP the client has to take care of potential packet loss.
Due to the unreliable nature of UDP the client has to take care of potential
packet loss.

The protocol specifies the following 7-byte header in all BE RCon packets, incoming and outgoing:
The protocol specifies the following 7-byte header in all BE RCon packets,
incoming and outgoing:

```txt
'B'(0x42) | 'E'(0x45) | 4-byte CRC32 checksum of the subsequent bytes | 0xFF
Expand All @@ -23,8 +25,8 @@ There are 3 different types of packets:

### Login packet

This is the first packet being sent to the server.
A successful login is required to send actual commands to the server.
This is the first packet being sent to the server. A successful login is
required to send actual commands to the server.

The format is as follows:

Expand All @@ -38,11 +40,13 @@ The server's BE RCon, if enabled, acknowledges with the following packet:
0x00 | (0x01 (successfully logged in) OR 0x00 (failed))
```

If the server doesn't respond, BE RCon is not enabled (no password specified).
If the server doesn't respond, BE RCon is not enabled (no password
specified).

### Command packet

After a client logged in successfully, it may send BE Server commands (and possibly game server commands) to the server.
After a client logged in successfully, it may send BE Server commands (and
possibly game server commands) to the server.

The format is as follows:

Expand All @@ -56,18 +60,25 @@ The server's BE RCon acknowledges with the following packet:
0x01 | received 1-byte sequence number | (possible header and/or response (ASCII string without null-terminator) OR nothing)
```

The following header exists only if the server responds with multiple packets due to packet size limitations. The header is present in each of those packets.
The following header exists only if the server responds with multiple
packets due to packet size limitations. The header is present in each of
those packets.

```txt
0x00 | number of packets for this response | 0-based index of the current packet
```

An empty 2-byte command packet (without actual command string) has to be sent every 45 seconds (or less) to keep the connection/login alive, if there are no other command packets being sent.
If there are no command packets coming from the client for more than 45 seconds, it will be removed from BE RCon's list of authenticated clients and will no longer be able to issue any commands.
An empty 2-byte command packet (without actual command string) has to be
sent every 45 seconds (or less) to keep the connection/login alive, if there
are no other command packets being sent.
If there are no command packets coming from the client for more than 45
seconds, it will be removed from BE RCon's list of authenticated clients and
will no longer be able to issue any commands.

### Server message packet

When the BE Server prints messages to the server console, it also sends them to all connected RCon clients.
When the BE Server prints messages to the server console, it also sends them
to all connected RCon clients.

The format is as follows:

Expand All @@ -81,4 +92,7 @@ The client has to acknowledge with the following packet:
0x02 | received 1-byte sequence number
```

The server's BE RCon tries to send a server message packet 5 times for 10 seconds. If the client fails to acknowledge the packet within this time, it will be removed from BE RCon's list of authenticated clients and will no longer be able to issue any commands.
The server's BE RCon tries to send a server message packet 5 times for 10
seconds. If the client fails to acknowledge the packet within this time, it
will be removed from BE RCon's list of authenticated clients and will no
longer be able to issue any commands.

0 comments on commit 6fdd154

Please sign in to comment.