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:
parent
812517513f
commit
80cf392c1f
7 changed files with 352 additions and 6 deletions
47
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
47
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal 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 или другой конфиг
|
||||||
|
```
|
||||||
|
|
||||||
|
## Дополнительный контекст
|
||||||
|
Любая другая информация о проблеме.
|
||||||
49
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
49
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal 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
31
.github/ISSUE_TEMPLATE/question.md
vendored
Normal 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
49
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal 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
41
CODE_OF_CONDUCT.md
Normal 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
|
||||||
25
README.md
25
README.md
|
|
@ -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
116
SECURITY.md
Normal 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
|
||||||
|
|
||||||
|
## Благодарности
|
||||||
|
|
||||||
|
Мы благодарим всех, кто ответственно сообщает об уязвимостях и помогает сделать проект безопаснее.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue