docs: rewrite readme

This commit is contained in:
2026-04-24 04:27:58 +03:00
parent 2193d0dcd2
commit 7b575968d6

View File

@@ -1,44 +1,53 @@
# GTNH Telegram Achievements # GTNH Telegram Achievements
Forge-мод для Minecraft 1.7.10 / GTNH, который отправляет в Telegram сообщение, когда игрок завершает квест BetterQuesting. Small Forge 1.7.10 mod for GT New Horizons servers.
## Что делает It listens for BetterQuesting completion events and sends a Telegram message
when a player completes a quest.
- ловит завершение квестов BetterQuesting в GTNH через `QuestEvent.COMPLETED`; ## Features
- формирует текст сообщения по шаблону;
- отправляет уведомление в Telegram Bot API;
- читает `bot token` и `chat id` из конфига.
## Требования - BetterQuesting `QuestEvent.COMPLETED` listener
- asynchronous Telegram Bot API delivery
- configurable message template
- optional repeatable quest filtering
- clickable quest links for `gtnhquestsbook.top`
- `Java 8` ## Requirements
- `Gradle 4.4.1+`
- доступ сервера Minecraft к `https://api.telegram.org`
Важно: - Minecraft Forge `1.7.10-10.13.4.1614`
- GTNH BetterQuesting
- Java 8
- outbound HTTPS access to `https://api.telegram.org`
- Forge 1.7.10 обычно не собирается на современных JDK вроде `Java 25`. Для сборки и запуска dev-окружения используй именно `Java 8`. Builds should be done with Java 8. Old ForgeGradle/Groovy tooling does not run
- В проекте используется форк `ForgeGradle 1.2` от `anatawa12`, потому что он заметно практичнее для сборки старых 1.7.10-модов на современной инфраструктуре. reliably on modern JDKs.
## Сборка ## Build
Используй wrapper, который уже лежит в проекте: ```sh
```bash
./gradlew build ./gradlew build
``` ```
Готовый jar появится в `build/libs/`. The mod jar is written to:
## Настройка ```text
build/libs/
```
После первого запуска мода будет создан файл: ## Install
Copy the built jar to the server `mods/` directory.
The config file is created on first start:
```text ```text
config/gtnhtelegram.cfg config/gtnhtelegram.cfg
``` ```
Заполни в нем: ## Config
Minimal config:
```ini ```ini
enabled=true enabled=true
@@ -46,32 +55,36 @@ sendQuestNotifications=true
sendRepeatableQuestNotifications=false sendRepeatableQuestNotifications=false
botToken=123456789:YOUR_BOT_TOKEN botToken=123456789:YOUR_BOT_TOKEN
chatId=-1001234567890 chatId=-1001234567890
questMessageFormat=[Minecraft] {player} завершил квест: {quest} questMessageFormat=[Minecraft] {player} completed quest: {quest}
questBaseUrl=https://gtnhquestsbook.top/?id= questBaseUrl=https://gtnhquestsbook.top/?id=
connectTimeoutMs=5000
readTimeoutMs=5000
``` ```
## Как получить `botToken` Supported placeholders:
1. Открой Telegram и найди `@BotFather`. ```text
2. Выполни `/newbot`. {player}
3. Сохрани выданный токен. {playerUuid}
{quest}
{questName}
{questId}
{questUrl}
{chapter}
```
## Как получить `chatId` `{quest}` is an HTML link. Messages are sent with Telegram `parse_mode=HTML`.
- Для личного чата удобно написать боту и получить `chat_id` через Bot API `getUpdates`. ## Telegram
- Для группы добавь туда бота, отправь сообщение в группу и посмотри `chat.id` в ответе `getUpdates`.
- У групп и супергрупп `chat_id` обычно отрицательный.
## Проверка Create a bot with `@BotFather` and put the token in `botToken`.
1. Собери мод. To get `chatId`, send a message to the bot or group, then inspect the result of
2. Положи jar в `mods/`. Telegram Bot API `getUpdates`. Group and supergroup ids are usually negative.
3. Запусти сервер или клиент с интегрированным сервером.
4. Заверши любой квест BetterQuesting.
5. Проверь, пришло ли сообщение в Telegram.
## Ограничения ## Notes
- BetterQuesting-поддержка рассчитана на GTNH-форк BetterQuesting и собирается против `BetterQuesting-3.7.15-GTNH-dev.jar`. - The mod is compiled against the GTNH BetterQuesting dev jar in `libs/`.
- Мод отправляет только события завершения квестов BetterQuesting. - Only BetterQuesting quest completion events are sent.
- `{quest}` в Telegram теперь подставляется как кликабельная HTML-ссылка на онлайн-квестбук, а сам `id` кодируется из BetterQuesting UUID в тот же base64-формат, который использует сайт. - Hidden trigger quests with names starting with `Trigger:` are ignored.
- Telegram failures are logged and do not block the server tick thread.