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
|
||||
|
||||
Продвинутый чат плагин для Paper/Folia серверов с градиентными никами, модерацией и гибкой системой конфигурации.
|
||||
Мощный чат плагин для Paper/Folia серверов с градиентными никами, продвинутой модерацией и гибкой конфигурацией.
|
||||
|
||||
## Сборка и локальный тестовый сервер
|
||||
|
||||
|
|
@ -8,7 +8,7 @@
|
|||
./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+
|
||||
- Paper 1.20.1+ или Folia
|
||||
- Paper 1.21.1+ или Folia
|
||||
|
||||
### Опциональные
|
||||
- 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 репозитория
|
||||
2. Создайте ветку для фичи (`git checkout -b feature/amazing-feature`)
|
||||
|
|
@ -371,6 +375,15 @@ public class MyFilter implements MessageFilter {
|
|||
4. Push в ветку (`git push origin feature/amazing-feature`)
|
||||
5. Откройте Pull Request
|
||||
|
||||
### Типы вклада
|
||||
|
||||
- 🐛 Исправление багов
|
||||
- ✨ Новые функции
|
||||
- 📝 Улучшение документации
|
||||
- 🎨 Улучшение UI/UX
|
||||
- ⚡ Оптимизация производительности
|
||||
- 🔒 Улучшение безопасности
|
||||
|
||||
## Лицензия
|
||||
|
||||
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