docs: добавить Code of Conduct, Security Policy и Issue Templates

Добавлены:
- CODE_OF_CONDUCT.md - правила поведения в сообществе
- SECURITY.md - политика безопасности и отчетность об уязвимостях
- .github/ISSUE_TEMPLATE/bug_report.md - шаблон для багов
- .github/ISSUE_TEMPLATE/feature_request.md - шаблон для новых функций
- .github/ISSUE_TEMPLATE/question.md - шаблон для вопросов
- .github/PULL_REQUEST_TEMPLATE.md - шаблон для PR

Обновлен README.md:
- Обновлена версия Paper до 1.21.1
- Улучшен раздел "Вклад в проект"
- Уточнены известные проблемы
This commit is contained in:
loki5512344 2026-04-12 23:00:20 +02:00
parent 812517513f
commit 80cf392c1f
7 changed files with 352 additions and 6 deletions

47
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View file

@ -0,0 +1,47 @@
---
name: Сообщение об ошибке
about: Создайте отчет об ошибке, чтобы помочь нам улучшить плагин
title: '[BUG] '
labels: bug
assignees: ''
---
## Описание ошибки
Четкое и краткое описание того, что произошло.
## Шаги для воспроизведения
1. Перейти к '...'
2. Выполнить команду '...'
3. Увидеть ошибку
## Ожидаемое поведение
Четкое и краткое описание того, что вы ожидали увидеть.
## Скриншоты
Если применимо, добавьте скриншоты для объяснения проблемы.
## Информация о сервере
- Версия Minecraft: [например, 1.21.1]
- Версия сервера: [например, Paper 1.21.1-116]
- Версия плагина: [например, 1.5.5]
- Версия Java: [например, Java 21]
## Установленные плагины
Список других плагинов на сервере (особенно те, которые могут взаимодействовать с чатом):
- PlaceholderAPI
- LuckPerms
- ...
## Логи
```
Вставьте сюда релевантные логи из console или latest.log
```
## Конфигурация
Если проблема связана с конфигурацией, вставьте релевантные части:
```yaml
# config.yml или другой конфиг
```
## Дополнительный контекст
Любая другая информация о проблеме.

View file

@ -0,0 +1,49 @@
---
name: Запрос новой функции
about: Предложите идею для этого проекта
title: '[FEATURE] '
labels: enhancement
assignees: ''
---
## Описание функции
Четкое и краткое описание того, что вы хотите добавить.
## Проблема, которую это решает
Опишите проблему, которую решает эта функция. Например: "Я всегда расстраиваюсь, когда [...]"
## Предлагаемое решение
Четкое и краткое описание того, что вы хотите видеть.
## Альтернативы
Четкое и краткое описание любых альтернативных решений или функций, которые вы рассматривали.
## Примеры использования
Как бы вы использовали эту функцию? Приведите примеры команд, конфигурации и т.д.
```yaml
# Пример конфигурации
new-feature:
enabled: true
option: value
```
```
# Пример команды
/newcommand <аргумент>
```
## Приоритет
- [ ] Критично - без этого плагин не работает должным образом
- [ ] Высокий - значительно улучшит функциональность
- [ ] Средний - было бы хорошо иметь
- [ ] Низкий - небольшое улучшение
## Готовность помочь
- [ ] Я могу помочь с реализацией (Pull Request)
- [ ] Я могу помочь с тестированием
- [ ] Я могу помочь с документацией
- [ ] Я только предлагаю идею
## Дополнительный контекст
Добавьте любой другой контекст или скриншоты о запросе функции здесь.

31
.github/ISSUE_TEMPLATE/question.md vendored Normal file
View file

@ -0,0 +1,31 @@
---
name: Вопрос
about: Задайте вопрос о плагине
title: '[QUESTION] '
labels: question
assignees: ''
---
## Ваш вопрос
Четко сформулируйте ваш вопрос.
## Что вы уже пробовали
Опишите, что вы уже пытались сделать для решения вопроса:
- [ ] Прочитал документацию в README.md
- [ ] Проверил существующие issues
- [ ] Проверил конфигурационные файлы
- [ ] Попробовал поискать в интернете
## Контекст
Предоставьте любой релевантный контекст:
- Версия плагина:
- Версия сервера:
- Что вы пытаетесь сделать:
## Конфигурация (если применимо)
```yaml
# Вставьте релевантную часть конфигурации
```
## Дополнительная информация
Любая другая информация, которая может помочь ответить на ваш вопрос.

49
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View file

@ -0,0 +1,49 @@
# Pull Request
## Описание изменений
Четкое и краткое описание того, что делает этот PR.
Fixes #(issue номер)
## Тип изменений
Отметьте релевантные пункты:
- [ ] Исправление ошибки (bug fix)
- [ ] Новая функция (feature)
- [ ] Критическое изменение (breaking change)
- [ ] Обновление документации
- [ ] Рефакторинг кода
- [ ] Улучшение производительности
- [ ] Обновление зависимостей
## Как это было протестировано?
Опишите тесты, которые вы провели для проверки ваших изменений:
- [ ] Тестирование на локальном сервере
- [ ] Тестирование с другими плагинами
- [ ] Юнит-тесты
- [ ] Интеграционные тесты
**Конфигурация тестирования**:
- Версия Minecraft:
- Версия сервера:
- Версия Java:
## Чеклист
- [ ] Мой код следует стилю этого проекта
- [ ] Я провел самопроверку своего кода
- [ ] Я прокомментировал свой код, особенно в сложных местах
- [ ] Я внес соответствующие изменения в документацию
- [ ] Мои изменения не генерируют новых предупреждений
- [ ] Я добавил тесты, которые доказывают, что мое исправление эффективно или что моя функция работает
- [ ] Новые и существующие юнит-тесты проходят локально с моими изменениями
- [ ] Любые зависимые изменения были объединены и опубликованы в downstream модулях
## Скриншоты (если применимо)
Добавьте скриншоты для демонстрации изменений.
## Дополнительный контекст
Добавьте любой другой контекст о PR здесь.
## Связанные issues
Список связанных issues:
- Closes #
- Related to #

41
CODE_OF_CONDUCT.md Normal file
View file

@ -0,0 +1,41 @@
# Кодекс поведения участников
## Наше обязательство
Мы, как участники и сопровождающие проекта, обязуемся сделать участие в нашем проекте и сообществе свободным от домогательств для всех, независимо от возраста, телосложения, видимой или невидимой инвалидности, этнической принадлежности, половых характеристик, гендерной идентичности и самовыражения, уровня опыта, образования, социально-экономического статуса, национальности, внешности, расы, религии или сексуальной идентичности и ориентации.
## Наши стандарты
Примеры поведения, которое способствует созданию позитивной среды:
* Использование приветливого и инклюзивного языка
* Уважение различных точек зрения и опыта
* Конструктивное принятие критики
* Фокус на том, что лучше для сообщества
* Проявление эмпатии к другим участникам сообщества
Примеры неприемлемого поведения:
* Использование сексуализированного языка или образов
* Троллинг, оскорбительные/уничижительные комментарии, личные или политические атаки
* Публичные или приватные домогательства
* Публикация личной информации других людей без явного разрешения
* Другое поведение, которое может быть обоснованно расценено как неуместное в профессиональной среде
## Наши обязанности
Сопровождающие проекта несут ответственность за разъяснение стандартов приемлемого поведения и должны предпринимать соответствующие и справедливые корректирующие действия в ответ на любые случаи неприемлемого поведения.
Сопровождающие проекта имеют право и обязанность удалять, редактировать или отклонять комментарии, коммиты, код, правки вики, issues и другие вклады, которые не соответствуют этому Кодексу поведения, или временно или постоянно блокировать любого участника за другое поведение, которое они считают неуместным, угрожающим, оскорбительным или вредным.
## Область применения
Этот Кодекс поведения применяется как в пространствах проекта, так и в публичных пространствах, когда человек представляет проект или его сообщество. Примеры представления проекта или сообщества включают использование официального адреса электронной почты проекта, публикацию через официальный аккаунт в социальных сетях или выступление в качестве назначенного представителя на онлайн или оффлайн мероприятии.
## Применение
О случаях оскорбительного, домогательского или иного неприемлемого поведения можно сообщить, связавшись с командой проекта через [Issues](https://codeberg.org/loki5512344/Lochat/issues). Все жалобы будут рассмотрены и расследованы, и результатом будет ответ, который считается необходимым и соответствующим обстоятельствам. Команда проекта обязана сохранять конфиденциальность в отношении лица, сообщившего об инциденте.
## Атрибуция
Этот Кодекс поведения адаптирован из [Contributor Covenant](https://www.contributor-covenant.org), версия 2.0, доступная по адресу https://www.contributor-covenant.org/version/2/0/code_of_conduct.html

View file

@ -1,6 +1,6 @@
# LoChat - Advanced Chat Plugin # LoChat - Advanced Chat Plugin
Продвинутый чат плагин для Paper/Folia серверов с градиентными никами, модерацией и гибкой системой конфигурации. Мощный чат плагин для Paper/Folia серверов с градиентными никами, продвинутой модерацией и гибкой конфигурацией.
## Сборка и локальный тестовый сервер ## Сборка и локальный тестовый сервер
@ -8,7 +8,7 @@
./gradlew runServer ./gradlew runServer
``` ```
Gradle задача `runServer` ([run-paper](https://github.com/jpenilla/run-paper)) скачивает Paper 1.21.4, собирает JAR плагина и кладёт его в `run/plugins`. Первый запуск долгий из-за загрузки. Остановка через `stop` в консоли сервера. Gradle задача `runServer` ([run-paper](https://github.com/jpenilla/run-paper)) скачивает Paper 1.21.1, собирает JAR плагина и кладёт его в `run/plugins`. Первый запуск долгий из-за загрузки. Остановка через `stop` в консоли сервера.
## Основные возможности ## Основные возможности
@ -142,7 +142,7 @@ cd Lochat
### Обязательные ### Обязательные
- Java 21+ - Java 21+
- Paper 1.20.1+ или Folia - Paper 1.21.1+ или Folia
### Опциональные ### Опциональные
- PlaceholderAPI - для плейсхолдеров - PlaceholderAPI - для плейсхолдеров
@ -351,8 +351,8 @@ public class MyFilter implements MessageFilter {
## Известные проблемы ## Известные проблемы
- Градиенты могут не отображаться в некоторых версиях клиента - Градиенты могут некорректно отображаться в старых версиях клиента (< 1.16)
- Фильтры могут блокировать легитимные сообщения (настраивается) - Некоторые фильтры могут блокировать легитимные сообщения (настраивается в `config/filters.yml`)
## Статистика проекта ## Статистика проекта
@ -363,7 +363,11 @@ public class MyFilter implements MessageFilter {
## Вклад в проект ## Вклад в проект
Проект находится в активной разработке. Pull requests приветствуются. Мы приветствуем вклад в развитие проекта! Перед началом работы ознакомьтесь с:
- [Code of Conduct](CODE_OF_CONDUCT.md) - правила поведения в сообществе
- [Security Policy](SECURITY.md) - политика безопасности
### Как внести вклад
1. Fork репозитория 1. Fork репозитория
2. Создайте ветку для фичи (`git checkout -b feature/amazing-feature`) 2. Создайте ветку для фичи (`git checkout -b feature/amazing-feature`)
@ -371,6 +375,15 @@ public class MyFilter implements MessageFilter {
4. Push в ветку (`git push origin feature/amazing-feature`) 4. Push в ветку (`git push origin feature/amazing-feature`)
5. Откройте Pull Request 5. Откройте Pull Request
### Типы вклада
- 🐛 Исправление багов
- ✨ Новые функции
- 📝 Улучшение документации
- 🎨 Улучшение UI/UX
- ⚡ Оптимизация производительности
- 🔒 Улучшение безопасности
## Лицензия ## Лицензия
GNU General Public License v3.0 - см. файл [LICENSE](LICENSE) GNU General Public License v3.0 - см. файл [LICENSE](LICENSE)

116
SECURITY.md Normal file
View file

@ -0,0 +1,116 @@
# Политика безопасности
## Поддерживаемые версии
Мы активно поддерживаем следующие версии плагина:
| Версия | Поддержка |
| ------ | ----------------- |
| 1.5.x | :white_check_mark: |
| 1.4.x | :x: |
| < 1.4 | :x: |
## Сообщение об уязвимости
Если вы обнаружили уязвимость в безопасности, пожалуйста, **НЕ** создавайте публичный issue.
### Как сообщить
1. Создайте приватный issue через [Security Advisory](https://codeberg.org/loki5512344/Lochat/issues)
2. Опишите уязвимость максимально подробно:
- Тип уязвимости (SQL injection, XSS, command injection и т.д.)
- Шаги для воспроизведения
- Потенциальное влияние
- Предлагаемое решение (если есть)
### Что ожидать
- **Подтверждение получения**: в течение 48 часов
- **Первоначальная оценка**: в течение 7 дней
- **Исправление**: в зависимости от серьезности (критические - 1-3 дня, высокие - 7-14 дней)
- **Публичное раскрытие**: после выпуска патча
## Известные проблемы безопасности
### Текущие
Нет известных критических уязвимостей.
### Исправленные
- **v1.5.0**: Исправлена возможность обхода фильтра мата через Unicode символы
- **v1.4.5**: Исправлена SQL injection в системе мутов
- **v1.4.0**: Исправлена возможность выполнения команд через кастомные команды
## Рекомендации по безопасности
### Для администраторов серверов
1. **Регулярно обновляйте плагин** до последней версии
2. **Ограничьте права**:
- Не давайте `lochat.admin` обычным игрокам
- Используйте `lochat.bypass.*` только для доверенных модераторов
3. **Настройте фильтры**:
- Включите все фильтры в `config/filters.yml`
- Регулярно обновляйте `badwords.txt`
4. **Мониторинг**:
- Проверяйте логи на подозрительную активность
- Используйте `/chatspy` для контроля личных сообщений
### Для разработчиков
1. **Валидация входных данных**:
- Всегда проверяйте пользовательский ввод
- Используйте prepared statements для SQL
2. **Безопасность API**:
- Не доверяйте данным из внешних источников
- Проверяйте права доступа перед выполнением операций
3. **Конфигурация**:
- Не храните чувствительные данные в конфигах
- Используйте переменные окружения для секретов
## Безопасные практики использования
### Discord Webhook
```yaml
# ❌ Плохо - webhook в публичном конфиге
discord:
webhook-url: "https://discord.com/api/webhooks/123456789/abcdefg"
# ✅ Хорошо - webhook через переменную окружения
discord:
webhook-url: "${DISCORD_WEBHOOK_URL}"
```
### Фильтры
```yaml
# ✅ Рекомендуемая конфигурация
filters:
swear-filter:
enabled: true
block-unicode-bypass: true
block-space-bypass: true
spam-filter:
enabled: true
max-messages: 3
time-window: 5
url-filter:
enabled: true
whitelist-mode: true
allowed-domains:
- "yourdomain.com"
```
## Контакты
Для вопросов по безопасности:
- Issues: https://codeberg.org/loki5512344/Lochat/issues
- Email: loki@lokili.xyz
## Благодарности
Мы благодарим всех, кто ответственно сообщает об уязвимостях и помогает сделать проект безопаснее.