arkonsadter b3f24d9828
All checks were successful
continuous-integration/drone/push Build is passing
Switch to Entity.sendSystemMessage for chat output
displayClientMessage(Component, boolean) was removed from LocalPlayer
in 26.2. sendSystemMessage(Component) is inherited from Entity, has
been part of Mojang's public API since 1.19, and LocalPlayer overrides
it to route the message into the local chat hud, which is exactly the
behaviour we want.
2026-06-21 16:10:40 +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.

Начиная с 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

Пример:

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