# Client IRC Chat Клиентский Fabric-мод, который перехватывает сообщения вида `.irc <текст>` и отправляет их на отдельный TCP IRC-подобный сервер. Формат сообщения в чате клиента: `НАЗВАНИЕ-КЛИЕНТА >> Ник-игрока: сообщение` Пример: `MY-CLIENT >> Arkon: Привет` ## Что входит - клиентский Fabric-мод; - команда `.irc <сообщение>` через обычный чат Minecraft; - служебные команды `.irc status`, `.irc reconnect`, `.irc reload`; - пример простого IRC-сервера на Node.js без внешних зависимостей; - `/.drone.yml` для сборки через Drone CI. ## Целевая версия Сборка переведена на: - Minecraft `26.2` - Fabric Loader `0.19.3` - Fabric API `0.152.2+26.2` - Fabric Loom `1.17-SNAPSHOT` - Java `25` Дата релиза `Minecraft 26.2`: `2026-06-16`. Начиная с `26.1` Mojang перестал обфусцировать клиент, а Yarn и Intermediary перестали публиковаться после `1.21.11`. Поэтому в `build.gradle` нет блока `mappings` вообще: исходники Minecraft уже в человекочитаемых именах Mojang, и Loom собирает мод напрямую против них. Если в CI стоит старый Loom вроде `1.10.5`, сборка `26.2` упадёт с ошибкой `Unsupported class file major version 69`. Для `26.2` нужен новый Loom из актуальной ветки Fabric. ## Команды в игре - `.irc Привет` - отправить сообщение на IRC-сервер - `.irc status` - показать состояние подключения - `.irc reconnect` - переподключиться к IRC-серверу - `.irc reload` - перечитать конфиг из файла ## Конфиг клиента После первого запуска мод создаст: `config/clientirc.json` Пример: ```json { "host": "127.0.0.1", "port": 24469, "clientName": "MY-CLIENT", "token": "", "autoConnect": true, "connectTimeoutMs": 5000 } ``` Поля: - `host` - адрес IRC-сервера - `port` - порт IRC-сервера - `clientName` - то самое `НАЗВАНИЕ-КЛИЕНТА` - `token` - общий токен, если хочешь ограничить подключение - `autoConnect` - подключаться автоматически при старте клиента ## Как поднять сервер для IRC-чата В репозитории уже есть пример сервера: [server/irc-server.js](/D:/Desktop/gdfg/server/irc-server.js) ### 1. Установи Node.js Нужен Node.js 20+. ### 2. Настрой сервер Файл конфига: [server/config.json](/D:/Desktop/gdfg/server/config.json) Пример: ```json { "host": "0.0.0.0", "port": 24469, "token": "secret-token" } ``` Если укажешь `token`, такой же токен нужно прописать в `config/clientirc.json` на клиентах. ### 3. Запусти сервер ```bash cd server node irc-server.js ``` ### 4. Открой порт Если сервер не локальный, открой TCP-порт `24469` в фаерволе и пробрось его на роутере/VPS. ### 5. Подключи клиентов На каждом клиенте укажи: - `host` - IP или домен сервера - `port` - тот же порт - `clientName` - имя клиента - `token` - если используется После этого в игре можно писать: ```text .irc Привет ``` И все подключенные клиенты увидят: ```text [IRC] MY-CLIENT >> Arkon: Привет ``` ## Сборка мода Для локальной сборки нужен Gradle 9+ и Java 25. ```bash gradle build ``` Артефакт будет в: `build/libs/` ## Drone CI Файл пайплайна: [/.drone.yml](/D:/Desktop/gdfg/.drone.yml) Он делает: - запуск Docker pipeline; - `gradle clean build`; - вывод содержимого `build/libs`. Для работы Drone runner должен иметь доступ в интернет, чтобы скачать зависимости Gradle/Fabric.