arkonsadter fb233cee93
Some checks failed
continuous-integration/drone/push Build is failing
Pin Loom plugin version literally for Gradle 9
Gradle 9 rejects property interpolation inside plugins {} — the version
must be a literal String. Drop the now-unused loom_version key from
gradle.properties so it does not desync from the build script.
2026-06-21 15:41:43 +06:00

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.

Для этой версии я использую official Mojang mappings через Loom, потому что стандартный Yarn endpoint для 26.2 на момент правки ещё не отдавал mappings.

Если в 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

Пример:

{
  "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

1. Установи Node.js

Нужен Node.js 20+.

2. Настрой сервер

Файл конфига: server/config.json

Пример:

{
  "host": "0.0.0.0",
  "port": 24469,
  "token": "secret-token"
}

Если укажешь token, такой же токен нужно прописать в config/clientirc.json на клиентах.

3. Запусти сервер

cd server
node irc-server.js

4. Открой порт

Если сервер не локальный, открой TCP-порт 24469 в фаерволе и пробрось его на роутере/VPS.

5. Подключи клиентов

На каждом клиенте укажи:

  • host - IP или домен сервера
  • port - тот же порт
  • clientName - имя клиента
  • token - если используется

После этого в игре можно писать:

.irc Привет

И все подключенные клиенты увидят:

[IRC] MY-CLIENT >> Arkon: Привет

Сборка мода

Для локальной сборки нужен Gradle 9+ и Java 25.

gradle build

Артефакт будет в:

build/libs/

Drone CI

Файл пайплайна: /.drone.yml

Он делает:

  • запуск Docker pipeline;
  • gradle clean build;
  • вывод содержимого build/libs.

Для работы Drone runner должен иметь доступ в интернет, чтобы скачать зависимости Gradle/Fabric.

Description
No description provided
Readme 126 KiB
v1.0.3 Latest
2026-06-24 14:34:07 +07:00
Languages
Java 89.9%
JavaScript 10.1%