docs: unify README style with flat-square badges and bilingual layout

This commit is contained in:
loki5512344 2026-07-12 00:32:30 +02:00
parent 25cd6c3e88
commit 6af62d3bf6
Signed by: boba
GPG key ID: 253067914055423B

524
README.md
View file

@ -1,17 +1,16 @@
# LoChat
> **Advanced chat plugin for Paper/Folia servers**
> **Продвинутый чат плагин для Paper/Folia серверов**
[![Build](https://github.com/loki5512344/LoChat/actions/workflows/build.yml/badge.svg)](https://github.com/loki5512344/LoChat/actions/workflows/build.yml)
[![License: GPLv3](https://img.shields.io/badge/License-GPLv3-blue.svg)](LICENSE)
[![](https://img.shields.io/badge/Paper-1.21.4-blue)](https://papermc.io)
---
<div align="center"> <div align="center">
**[EN](#english) · [RU](#russian)** # LoChat
Advanced chat plugin with gradient nicknames, moderation and Discord integration for Paper/Folia servers.
![Java](https://img.shields.io/badge/Java-21+-orange?style=flat-square&logo=openjdk&logoColor=white)
![Paper](https://img.shields.io/badge/Paper-1.19.2+-blue?style=flat-square)
![Folia](https://img.shields.io/badge/Folia-supported-purple?style=flat-square)
![License](https://img.shields.io/badge/license-GPLv3-blue?style=flat-square&logo=gnu&logoColor=white)
![version](https://img.shields.io/badge/version-1.5.5-green?style=flat-square)
[English](#english) | [Русский](#russian)
</div> </div>
@ -19,459 +18,120 @@
<a name="english"></a> <a name="english"></a>
## 🇬🇧 English ## English
### Overview ### Overview
LoChat is a powerful Minecraft chat plugin for Paper 1.21+ and Folia servers. It features gradient nicknames, advanced moderation, flexible configuration, Discord integration, and extensive API. LoChat is a powerful Minecraft chat plugin for Paper 1.19.2+ and Folia servers. It features gradient nicknames, advanced moderation, flexible configuration, Discord integration, and extensive API.
### Features ### Features
#### Chat System | Feature | Description |
- **Global chat** — cross-server player communication |---------|-------------|
- **Local chat** — radius-based proximity chat | Global & Local chat | Cross-server and radius-based proximity chat |
- **Private messages** — PM system with reply support | Private messages | PM system with reply support and ignore list |
- **Ignore system** — block unwanted players | Gradient nicknames | Up to 7 colors with built-in presets (fire, ocean, rainbow) |
- **Mentions** — `@player`, `@everyone`, `@here`, `@role` | Mentions | @player, @everyone, @here, @role with sounds |
- **Hover/Click events** — interactive messages | Moderation | Mute, ban, warn with history, silent mode, escalation |
- **Custom join/quit/death messages** with weapon name | Chat filters | Swear, spam, flood, CAPS, URL/IP, hidden links |
| RP commands | /me, /do, /try, /roll with configurable radius |
#### Gradient Nicknames & Prefixes | Custom join/quit/death | Messages with weapon name and hover events |
- Custom gradient colors (up to 7 colors) | Discord integration | Webhook relay, join/quit/death events, avatars |
- Built-in presets (fire, ocean, rainbow, etc.) | Custom commands | Define your own commands with placeholders |
- Custom prefixes and suffixes | MiniMessage support | Full MiniMessage formatting with HEX colors |
- LuckPerms integration (gradient prefixes/suffixes) | LuckPerms integration | Gradient prefixes and suffixes |
- PlayerPoints purchase system | PlayerPoints | Purchase system for gradients and prefixes |
- Cooldowns and limits
#### Moderation
- Mute system with history
- Ban system with duration and reason
- Warn system
- Temporary and permanent punishments
- Silent mutes
- Punishment escalation
#### Chat Filters
- Swear filter with bypass protection (x→x, o→o, etc.)
- Anti-spam and anti-flood
- CAPS filter
- URL and IP filter
- Hidden link filter (discord.gg, bit.ly, etc.)
- Repeated character filter
- Configurable bad words list
#### RP Commands
- `/me` — third-person actions
- `/do` — action descriptions
- `/try` — chance-based actions
- `/roll` — dice roll
- Configurable radius and cooldowns
#### Sound Effects
- PM and mention sounds
- Mute/unmute sounds
- Gradient sounds
- Command sounds
- Per-player sound settings
#### Discord Integration
- Webhook message relay
- Join/quit/death events
- Custom formats and colors
- Player avatars
- Message filtering
### Quick Start
#### Installation
1. Download the latest release
2. Place the JAR in `plugins/`
3. Restart the server
4. Configure in `plugins/LoChat/`
#### Building from Source
```bash
git clone https://github.com/loki5512344/LoChat.git
cd LoChat
./gradlew build
# JAR will be in build/libs/
```
#### Local Test Server
```bash
./gradlew runServer
```
Uses [run-paper](https://github.com/jpenilla/run-paper) — downloads Paper 1.21.4, builds the plugin, and places it in `run/plugins/`.
### Dependencies
**Required:** Java 21+, Paper 1.21.1+ or Folia
**Optional:** PlaceholderAPI, LuckPerms, PlayerPoints, LibertyBans, SkinsRestorer
### Commands ### Commands
#### Chat | Command | Permission | Description |
| Command | Description | |---------|------------|-------------|
|---------|-------------| | `/g <message>` | `chat.global.use` | Send global message |
| `/g <message>` | Global chat | | `/l <message>` | `chat.local.use` | Send local message |
| `/l <message>` | Local chat | | `/msg <player> <message>` | `chat.pm.use` | Private message |
| `/msg <player> <message>` | Private message | | `/reply <message>` | `chat.pm.use` | Reply to last PM |
| `/reply <message>` | Reply to PM | | `/ignore <player>` | `chat.pm.ignore` | Ignore player |
| `/ignore <player>` | Ignore player | | `/color <hex1> [hex2]` | `gradient.color` | Set gradient nickname |
| `/unignore <player>` | Unignore player | | `/prefix <text>` | `gradient.prefix` | Set custom prefix |
| `/ignorelist` | List ignored players | | `/lmute <player> [time] [-s] [reason]` | `lochat.mute` | Mute player |
| `/lunmute <player> [-s]` | `lochat.unmute` | Unmute player |
| `/lban <player> [time] [reason]` | `lochat.ban` | Ban player |
| `/warn <player> [reason]` | `lochat.warn` | Warn player |
| `/chatspy` | `chat.spy` | Toggle spy mode |
| `/clearchat` | `chat.clear` | Clear chat |
| `/lochat reload` | `lochat.admin` | Reload config |
#### Gradients ### Dependencies
| Command | Description |
|---------|-------------|
| `/color <hex1> [hex2] ...` | Set gradient |
| `/prefix <text>` | Set prefix |
| `/aprefix <command>` | Admin gradient commands |
#### Moderation - Required: Paper 1.19.2+, Java 21+
| Command | Description | - Optional: PlaceholderAPI, LuckPerms, PlayerPoints, LibertyBans, SkinsRestorer
|---------|-------------|
| `/lmute <player> [time] [-s] [reason]` | Mute player |
| `/lunmute <player> [-s]` | Unmute player |
| `/lban <player> [time] [reason]` | Ban player |
| `/lunban <player>` | Unban player |
| `/lwarn <player> [reason]` | Warn player |
| `/lmutelist` | List mutes |
| `/lmutehistory <player>` | Mute history |
#### RP ### Installation
| Command | Description |
|---------|-------------|
| `/me <action>` | Third-person action |
| `/do <description>` | Action description |
| `/try <attempt>` | Chance attempt |
| `/roll [number]` | Dice roll |
#### Admin 1. Drop the jar into `plugins/`
| Command | Description | 2. Restart the server
|---------|-------------| 3. Configure `plugins/LoChat/config.yml`
| `/lochat reload` | Reload config |
| `/clearchat` | Clear chat |
| `/chatspy` | Spy mode |
| `/announce <message>` | Announcement |
### Time Formats
- `s` — seconds (`30s` = 30 seconds)
- `m` — minutes (`15m` = 15 minutes)
- `h` — hours (`2h` = 2 hours)
- `d` — days (`7d` = 7 days)
- `perm` or `0` — permanent
### Placeholders
**Chat:** `{player}`, `{player_prefix}`, `{player_suffix}`, `{message}`, `{emoji}`, `{prefix}`, `{separator}`
**Hover:** `{player}`, `{world}`, `{ping}`, `{gamemode}`, `{health}`, `{food}`
**Death:** `{player}`, `{killer}`, `{weapon}`, `{death_message}`
### Permissions
#### Gradients
- `gradient.color` — access to `/color`
- `gradient.prefix` — access to `/prefix`
- `gradient.bypass.cost` — free usage
- `gradient.bypass.cooldown` — bypass cooldown
- `gradient.admin` — admin commands
#### Chat
- `lochat.chat.colors` — colored messages
- `lochat.chat.global` — global chat
- `lochat.chat.local` — local chat
- `lochat.pm` — private messages
#### Moderation
- `lochat.mute` — mute players
- `lochat.mute.silent` — silent mutes
- `lochat.ban` — ban players
- `lochat.warn` — warn players
#### Filter Bypass
- `lochat.bypass.swear` — bypass swear filter
- `lochat.bypass.spam` — bypass anti-spam
- `lochat.bypass.flood` — bypass anti-flood
- `lochat.bypass.caps` — bypass CAPS filter
- `lochat.bypass.urlfilter` — bypass URL filter
- `lochat.bypass.cooldown` — bypass cooldown
### API
```java
// Get ServiceRegistry
ServiceRegistry registry = plugin.getServiceRegistry();
// Send global message
ChatService chatService = registry.get(ChatService.class);
chatService.sendGlobalMessage(player, "Hello!");
// Create custom filter
public class MyFilter implements MessageFilter {
@Override
public FilterResult filter(Player player, String message) {
if (message.contains("badword")) {
return FilterResult.blocked("Message blocked");
}
return FilterResult.ok(message);
}
}
```
### Known Issues
- Gradients may not display correctly on clients < 1.16
- Some filters may block legitimate messages (configurable in `config/filters.yml`)
### License
[GNU General Public License v3.0](LICENSE)
--- ---
<a name="russian"></a> <a name="russian"></a>
## 🇷🇺 Русский ## Русский
### Обзор ### Обзор
LoChat — это мощный чат-плагин для Minecraft Paper 1.21+ и Folia серверов. Включает градиентные ники, продвинутую модерацию, гибкую конфигурацию, Discord интеграцию и обширный API. LoChat - мощный чат-плагин для Paper 1.19.2+ и Folia серверов. Включает градиентные ники, продвинутую модерацию, гибкую конфигурацию, Discord интеграцию и обширный API.
### Основные возможности ### Возможности
#### Система чата | Возможность | Описание |
- **Глобальный чат** — общение между всеми игроками |-------------|----------|
- **Локальный чат** — общение в радиусе | Глобальный и локальный чат | Обще-серверный и чат в радиусе |
- **Личные сообщения** — PM система с ответами | Личные сообщения | PM с ответом и списком игнора |
- **Игнорирование** — блокировка нежелательных игроков | Градиентные ники | До 7 цветов с пресетами (огонь, океан, радуга) |
- **Упоминания** — `@player`, `@everyone`, `@here`, `@role` | Упоминания | @player, @everyone, @here, @role со звуками |
- **Hover/Click события** — интерактивные сообщения | Модерация | Мут, бан, варн с историей, тихий режим, эскалация |
- **Кастомные сообщения входа/выхода/смерти** с названием оружия | Фильтры чата | Мат, спам, флуд, CAPS, URL/IP, скрытые ссылки |
| RP команды | /me, /do, /try, /roll с настраиваемым радиусом |
#### Градиентные ники и префиксы | Кастомные вход/выход/смерть | Сообщения с названием оружия и hover-событиями |
- Кастомные градиентные цвета (до 7 цветов) | Discord интеграция | Webhook, события входа/выхода/смерти, аватары |
- Готовые пресеты (огонь, океан, радуга и т.д.) | Кастомные команды | Создавайте свои команды с плейсхолдерами |
- Кастомные префиксы и суффиксы | MiniMessage | Полная поддержка MiniMessage с HEX цветами |
- Интеграция с LuckPerms (префиксы и суффиксы с градиентом) | LuckPerms | Градиентные префиксы и суффиксы |
- Система покупки через PlayerPoints | PlayerPoints | Покупка градиентов и префиксов |
- Кулдауны и ограничения
#### Модерация
- Мут система с историей
- Бан система с временем и причиной
- Варны (предупреждения)
- Временные и постоянные наказания
- Скрытые муты (silent)
- Эскалация наказаний
#### Фильтры чата
- Фильтр мата с защитой от обхода (х→x, о→o и т.д.)
- Антиспам и антифлуд
- CAPS фильтр
- URL и IP фильтр
- Фильтр скрытых ссылок (discord.gg, bit.ly и т.д.)
- Фильтр повторяющихся символов
- Настраиваемый список запрещённых слов
#### RP команды
- `/me` — действия от третьего лица
- `/do` — описание действий
- `/try` — попытка действия с шансом
- `/roll` — бросок кубика
- Настраиваемый радиус и кулдауны
#### Звуковые эффекты
- Звуки для PM и упоминаний
- Звуки для мутов/размутов
- Звуки для градиентов
- Звуки для команд
- Персональные настройки звуков
#### Discord интеграция
- Webhook для отправки сообщений
- События входа/выхода/смерти
- Кастомные форматы и цвета
- Аватары игроков
- Фильтрация сообщений
### Быстрый старт
#### Установка
1. Скачайте последнюю версию из Releases
2. Поместите JAR в папку `plugins/`
3. Перезапустите сервер
4. Настройте конфиги в `plugins/LoChat/`
#### Сборка из исходников
```bash
git clone https://github.com/loki5512344/LoChat.git
cd LoChat
./gradlew build
# Jar файл будет в build/libs/
```
#### Локальный тестовый сервер
```bash
./gradlew runServer
```
Использует [run-paper](https://github.com/jpenilla/run-paper) — скачивает Paper 1.21.4, собирает плагин и помещает его в `run/plugins/`.
### Зависимости
**Обязательные:** Java 21+, Paper 1.21.1+ или Folia
**Опциональные:** PlaceholderAPI, LuckPerms, PlayerPoints, LibertyBans, SkinsRestorer
### Команды ### Команды
#### Чат | Команда | Право | Описание |
| Команда | Описание | |---------|-------|----------|
|---------|----------| | `/g <сообщение>` | `chat.global.use` | Глобальное сообщение |
| `/g <сообщение>` | Глобальный чат | | `/l <сообщение>` | `chat.local.use` | Локальное сообщение |
| `/l <сообщение>` | Локальный чат | | `/msg <игрок> <сообщение>` | `chat.pm.use` | Личное сообщение |
| `/msg <игрок> <сообщение>` | Личное сообщение | | `/color <hex1> [hex2]` | `gradient.color` | Установить градиент |
| `/reply <сообщение>` | Ответить на ЛС | | `/lmute <игрок> [время] [-s] [причина]` | `lochat.mute` | Замутить |
| `/ignore <игрок>` | Игнорировать игрока | | `/lban <игрок> [время] [причина]` | `lochat.ban` | Забанить |
| `/unignore <игрок>` | Разигнорировать | | `/warn <игрок> [причина]` | `lochat.warn` | Выдать варн |
| `/ignorelist` | Список игнорируемых | | `/lochat reload` | `lochat.admin` | Перезагрузить конфиг |
#### Градиенты ### Зависимости
| Команда | Описание |
|---------|----------|
| `/color <hex1> [hex2] ...` | Установить градиент |
| `/prefix <текст>` | Установить префикс |
| `/aprefix <команда>` | Админские команды градиентов |
#### Модерация - Обязательные: Paper 1.19.2+, Java 21+
| Команда | Описание | - Опциональные: PlaceholderAPI, LuckPerms, PlayerPoints, LibertyBans, SkinsRestorer
|---------|----------|
| `/lmute <игрок> [время] [-s] [причина]` | Замутить |
| `/lunmute <игрок> [-s]` | Размутить |
| `/lban <игрок> [время] [причина]` | Забанить |
| `/lunban <игрок>` | Разбанить |
| `/lwarn <игрок> [причина]` | Выдать варн |
| `/lmutelist` | Список мутов |
| `/lmutehistory <игрок>` | История мутов |
#### RP ### Установка
| Команда | Описание |
|---------|----------|
| `/me <действие>` | Действие от 3-го лица |
| `/do <описание>` | Описание действия |
| `/try <попытка>` | Попытка с шансом |
| `/roll [число]` | Бросок кубика |
#### Админские 1. Положите jar в папку `plugins/`
| Команда | Описание | 2. Перезапустите сервер
|---------|----------| 3. Настройте `plugins/LoChat/config.yml`
| `/lochat reload` | Перезагрузить конфиг |
| `/clearchat` | Очистить чат |
| `/chatspy` | Режим шпиона |
| `/announce <сообщение>` | Объявление |
### Форматы времени
- `s` — секунды (`30s` = 30 секунд)
- `m` — минуты (`15m` = 15 минут)
- `h` — часы (`2h` = 2 часа)
- `d` — дни (`7d` = 7 дней)
- `perm` или `0` — навсегда
### Плейсхолдеры
**Чат:** `{player}`, `{player_prefix}`, `{player_suffix}`, `{message}`, `{emoji}`, `{prefix}`, `{separator}`
**Hover:** `{player}`, `{world}`, `{ping}`, `{gamemode}`, `{health}`, `{food}`
**Смерть:** `{player}`, `{killer}`, `{weapon}`, `{death_message}`
### Пермишены
#### Градиенты
- `gradient.color` — доступ к `/color`
- `gradient.prefix` — доступ к `/prefix`
- `gradient.bypass.cost` — бесплатное использование
- `gradient.bypass.cooldown` — обход кулдауна
- `gradient.admin` — админские команды
#### Чат
- `lochat.chat.colors` — цветные сообщения
- `lochat.chat.global` — глобальный чат
- `lochat.chat.local` — локальный чат
- `lochat.pm` — личные сообщения
#### Модерация
- `lochat.mute` — мутить игроков
- `lochat.mute.silent` — скрытые муты
- `lochat.ban` — банить игроков
- `lochat.warn` — выдавать варны
#### Обход фильтров
- `lochat.bypass.swear` — обход мат-фильтра
- `lochat.bypass.spam` — обход антиспама
- `lochat.bypass.flood` — обход антифлуда
- `lochat.bypass.caps` — обход CAPS фильтра
- `lochat.bypass.urlfilter` — обход URL фильтра
- `lochat.bypass.cooldown` — обход кулдауна
### API
```java
// Получить ServiceRegistry
ServiceRegistry registry = plugin.getServiceRegistry();
// Отправить глобальное сообщение
ChatService chatService = registry.get(ChatService.class);
chatService.sendGlobalMessage(player, "Привет!");
// Создание кастомного фильтра
public class MyFilter implements MessageFilter {
@Override
public FilterResult filter(Player player, String message) {
if (message.contains("запрещено")) {
return FilterResult.blocked("Сообщение заблокировано");
}
return FilterResult.ok(message);
}
}
```
### Известные проблемы
- Градиенты могут некорректно отображаться в старых версиях клиента (< 1.16)
- Некоторые фильтры могут блокировать легитимные сообщения (настраивается в `config/filters.yml`)
### Лицензия
[GNU General Public License v3.0](LICENSE)
--- ---
## Project Statistics | Статистика проекта ### Links
| Metric | Value | - [Releases](../../releases)
|--------|-------| - [Issues](../../issues)
| Version | 1.5.5 | - [License](LICENSE)
| Java files | 150+ |
| Commands | 30+ |
| Config files | 10+ |
## Links | Ссылки ### License
- [Codeberg Repository](https://codeberg.org/loki5512344/Lochat) GNU General Public License v3.0
- [Issues](https://codeberg.org/loki5512344/Lochat/issues)
- [Contributing Guide](CONTRIBUTING.md)