|
6 | 6 | <img src="https://img.shields.io/github/stars/rmilansky/minecraft-protocol-java?style=flat" /> |
7 | 7 | </div> |
8 | 8 |
|
9 | | -# Введение |
| 9 | +# Introduction |
10 | 10 |
|
11 | | -Minecraft Protocol - проект, написанный мной из-за того, что все библиотеки для взаимодействия с пакетами слишком |
12 | | -устарели, либо недостаточно легки для использования в моих проектах (также из-за глобальной переписи всей кодовой |
13 | | -базы [Abelix](https://abelix.team)). |
| 11 | +Minecraft Protocol is a project I developed because all existing libraries for packet handling are either outdated or insufficiently lightweight for use in my projects (also due to a complete rewrite of the [Abelix](https://abelix.team) codebase). |
14 | 12 |
|
15 | | -Проект был написан буквально за один подход одним человеком, возможны баги/некрасивый код, но буду очень рад любым пулл |
16 | | -реквестам и issue. |
| 13 | +The project was written in a single attempt by one person, so there might be bugs or less-than-perfect code. I would greatly appreciate any pull requests or issues. |
17 | 14 |
|
18 | 15 | <img src=".assets/time.jpg" width="500"/> |
19 | 16 |
|
20 | | -# Краткий обзор проекта |
| 17 | +# Project Overview |
21 | 18 |
|
22 | | -## Для чего это всё? |
| 19 | +## Purpose |
23 | 20 |
|
24 | | -Проект нужен для максимально удобной и интегрируемой разработки систем, для которых нужно использование пакетов |
25 | | -протокола Minecraft (e.g. фейк энтити, неймтеги для серверов, прокси системы). |
| 21 | +This project is designed for the most convenient and integrable development of systems that require the use of Minecraft protocol packets (e.g., fake entities, nametags for servers, proxy systems). |
26 | 22 |
|
27 | | -## Основные задачи |
| 23 | +## Key Objectives |
28 | 24 |
|
29 | | -* Максимально простое взаимодействие с пакетами и их прослушкой |
30 | | -* Интеграция во все современные ядра / standalone приложения |
| 25 | +* Simplify packet handling and monitoring as much as possible. |
| 26 | +* Ensure integration with all modern server cores and standalone applications. |
31 | 27 |
|
32 | | -# Руководство по использованию |
| 28 | +# Usage Guide |
33 | 29 |
|
34 | | -Более глубокие примеры использования можно посмотреть в директории [examples](examples). |
35 | | -Но если попытаться объяснить кратко, то вот, например, как прослушать все ClientboundTeam пакеты: |
| 30 | +More detailed usage examples can be found in the [examples](examples) directory. However, to briefly explain, here's how you can listen to all `ClientboundTeam` packets: |
36 | 31 |
|
37 | | -1. Создаем сам хандлер, который будет заниматься обработкой пакетов: |
| 32 | +1. Create a handler to process packets: |
38 | 33 |
|
39 | 34 | ```java |
40 | | - |
41 | 35 | @Log4j2 |
42 | 36 | public final class ClientboundTeamHandler { |
43 | 37 | @PacketProcessor |
44 | 38 | public @NotNull PacketHandleResult handle(final Channel channel, final ClientboundTeam team) { |
45 | | - // Логируем, что сервер пытается отправить пакет |
| 39 | + // Log that the server is attempting to send a packet |
46 | 40 | log.info("Outbound team packet: {}", team); |
47 | 41 |
|
48 | 42 | if (team.containsPlayer("milanskyy")) { |
49 | | - // Предотвращаем отправку пакета |
| 43 | + // Prevent the packet from being sent |
50 | 44 | return BasePacketHandleResult.cancel(); |
51 | 45 | } |
52 | 46 |
|
53 | | - // Всё окей, просто разрешаем его отправку |
| 47 | + // Everything is fine; allow the packet to be sent |
54 | 48 | return BasePacketHandleResult.ok(); |
55 | 49 | } |
56 | 50 | } |
57 | 51 | ``` |
58 | 52 |
|
59 | | -2. Добавляем его игроку при входе: |
| 53 | +2. Add the handler on player join: |
60 | 54 |
|
61 | 55 | ```java |
62 | 56 | public final class NametagListener implements Listener { |
63 | 57 | @EventHandler |
64 | 58 | public void onCreate(final ProtocolPlayerCreateEvent event) { |
65 | 59 | val protocolPlayer = event.protocolPlayer(); |
66 | 60 |
|
67 | | - // Так как это хандлер базированный на аннотациях, оборачиваем его в AnnotationBasedHandler |
68 | | - // и непосредственно добавляем игроку |
| 61 | + // Since this handler is annotation-based, wrap it in an AnnotationBasedHandler |
| 62 | + // and add it to the player |
69 | 63 | protocolPlayer.appendPacketHandler(AnnotationBasedHandler.create(ClientboundTeamHandler.create())); |
70 | 64 | } |
71 | 65 | } |
72 | 66 | ``` |
73 | 67 |
|
74 | 68 | # Credits |
75 | 69 |
|
76 | | -Большое спасибо за идеи и информацию этим проектам: |
| 70 | +Special thanks for ideas and inspiration to these projects: |
77 | 71 |
|
78 | | -* [Velocity](https://github.com/PaperMC/Velocity), [BungeeCord](https://github.com/SpigotMC/BungeeCord) - за некоторые |
79 | | - идеи и структуру пакетов |
80 | | -* [BridgeNet](https://github.com/MikhailSterkhov/bridgenet) - за идею этого прекрасного readme |
| 72 | +* [Velocity](https://github.com/PaperMC/Velocity), [BungeeCord](https://github.com/SpigotMC/BungeeCord) - for some ideas and packet structures. |
| 73 | +* [BridgeNet](https://github.com/MikhailSterkhov/bridgenet) - for the idea of this beautiful readme |
0 commit comments