- Загрузчики
- Fabric
- Скачиваний на Modrinth
- 132
- Подписчиков на Modrinth
- 0
- версия
- 1
- Обновлён
- 2 февраля 20262 февр.
- Опубликован
- в 2026
Коротко о моде
Нужен на сервере; в игре — по желанию
NoticeExpress
Minecraft Fabric мод для серверных объявлений и уведомлений с опциональным улучшением GUI на стороне клиента.
- Возможности
- Требования
- Установка
- Команды
- Формат отображения в чате
- Конфигурация
- База данных
- Права доступа
- Клиентский GUI (скоро)
- Планы развития
- Лицензия
Возможности
- 📢 Управление объявлениями на стороне сервера — создание, удаление, закрепление и управление серверными объявлениями
- 💾 Постоянное хранилище — база данных SQLite для надёжного хранения объявлений
- 🎨 Два режима отображения — уведомления в чате (запасной вариант) и опциональный клиентский GUI
- 📌 Закрепление важных объявлений — выделение критически важных сообщений
- 🔐 Система прав — для управления объявлениями требуется OP уровень 3
- ⚙️ Настраиваемость — система конфигурации на основе JSON
Требования
- Minecraft: 1.21.7
- Fabric Loader: 0.18.4 или выше
- Fabric API: 0.129.0+1.21.7 или выше
- Java: 21 или выше
Установка
На стороне сервера (обязательно)
- Скачайте JAR-файл мода
- Поместите его в папку
modsвашего сервера- Запустите сервер
- Конфигурация будет создана по пути
config/noticeexpress/config.jsonНа стороне клиента (опционально)
- Скачайте тот же JAR-файл мода
- Поместите его в папку
modsвашего клиента- Наслаждайтесь улучшенными функциями GUI (скоро)
Команды
Все команды начинаются с
/notice:Команды управления (OP уровень 3+)
Опубликовать объявление
/notice publish <title> <content>Пример:
/notice publish "Server Maintenance" "The server will be down for maintenance on Saturday from 2-4 PM."Удалить объявление
/notice delete <id>Пример:
/notice delete 1Закрепить объявление
/notice pin <id>Пример:
/notice pin 2Открепить объявление
/notice unpin <id>Пример:
/notice unpin 2Команды просмотра (все игроки)
Список всех объявлений
/notice listПоказывает компактный список всех объявлений с их ID и заголовками.
Показать полные объявления
/notice showОтображает все объявления с полным содержимым в чате.
Формат отображения в чате
При просмотре объявлений в чате они отображаются в следующем формате:
[Publisher] [YYYY/MM/DD HH:mm] [PINNED] Title (in gold, bold) Content (in white, supports multiple lines)Пример:
[Admin] [2026/02/02 12:30] [PINNED] Server Maintenance The server will be down for maintenance on Saturday from 2-4 PM. Please save your progress before then.Конфигурация
Расположение файла конфигурации:
config/noticeexpress/config.json{ "serverTitle": "Server Announcements", "databasePath": "config/noticeexpress/notices.db" }Параметры конфигурации
- serverTitle: заголовок, отображаемый в клиентском GUI (по умолчанию: "Server Announcements")
- databasePath: путь к файлу базы данных SQLite (по умолчанию: "config/noticeexpress/notices.db")
База данных
NoticeExpress использует SQLite для постоянного хранения. База данных создаётся и управляется автоматически.
Схема базы данных
CREATE TABLE notices ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, publisher TEXT NOT NULL, publisher_uuid TEXT NOT NULL, content TEXT NOT NULL, timestamp INTEGER NOT NULL, is_pinned INTEGER NOT NULL DEFAULT 0, created_at INTEGER NOT NULL )Права доступа
Мод использует встроенную систему OP Minecraft:
- OP уровень 3+: может публиковать, удалять, закреплять и откреплять объявления
- Все игроки: могут просматривать объявления с помощью
/notice listи/notice showКлиентский GUI (скоро)
Опциональный клиентский мод предоставит улучшенный GUI с:
- 📋 Прокручиваемым списком объявлений
- 🎴 Красивыми карточками объявлений
- 📌 Визуальными индикаторами закрепления
- ✨ Функцией разворачивания/сворачивания
- 🖱️ Интерфейсом с взаимодействием по клику
Для разработчиков
Сборка из исходников
- Клонируйте репозиторий:
git clone https://github.com/0x002500/NoticeExpress.git cd NoticeExpress
- Соберите мод:
./gradlew build
- Найдите скомпилированный JAR в
build/libs/Структура проекта
src/ ├── main/ │ ├── java/top/orderly/noticeexpress/ │ │ ├── NoticeExpress.java # Main mod class │ │ ├── command/ │ │ │ └── NoticeCommand.java # Command registration and handlers │ │ ├── config/ │ │ │ └── ModConfig.java # Configuration management │ │ ├── database/ │ │ │ ├── DatabaseManager.java # SQLite connection manager │ │ │ └── NoticeRepository.java # CRUD operations │ │ ├── model/ │ │ │ └── Notice.java # Notice entity │ │ └── util/ │ │ ├── ChatNotificationFormatter.java # Chat formatting │ │ ├── PermissionChecker.java # Permission utilities │ │ └── TimeFormatter.java # Time formatting │ └── resources/ │ ├── fabric.mod.json # Mod metadata │ └── assets/noticeexpress/ │ └── icon.png # Mod icon └── client/ └── java/top/orderly/noticeexpress/ ├── NoticeExpressClient.java # Client initialization └── ui/ # GUI components (coming soon)Использование API
Создание объявления программно
import top.orderly.noticeexpress.NoticeExpress; import top.orderly.noticeexpress.model.Notice;
Notice notice = new Notice(); notice.setTitle("My Notice"); notice.setPublisher("System"); notice.setPublisherUuid(UUID.randomUUID()); notice.setContent("This is a programmatically created notice.");
NoticeExpress.getNoticeRepository().createNotice(notice);
#### Получение объявлений
```java
import top.orderly.noticeexpress.NoticeExpress;
import top.orderly.noticeexpress.model.Notice;
import java.util.List;
// Получить все уведомления
List<Notice> allNotices = NoticeExpress.getNoticeRepository().getAllNotices();
// Получить конкретное уведомление по ID
Notice notice = NoticeExpress.getNoticeRepository().getNoticeById(1);
// Получить уведомления с определённого момента времени
long timestamp = System.currentTimeMillis() - 86400000; // Последние 24 часа
List<Notice> recentNotices = NoticeExpress.getNoticeRepository().getNoticesSince(timestamp);План разработки
- [ ] Клиентский GUI
- [ ] Сетевое взаимодействие через пакеты
- [ ] Уведомления о входе игрока
- [ ] Поддержка локализации (английский и китайский)
Участие в разработке
Мы рады вашему вкладу! Не стесняйтесь отправлять Pull Request.
- Форкните репозиторий
- Создайте ветку для своей функции (
git checkout -b feature/AmazingFeature) - Закоммитьте изменения (
git commit -m 'feat: add some amazing feature') - Запушьте в ветку (
git push origin feature/AmazingFeature) - Откройте Pull Request
Соглашение о сообщениях коммитов
Этот проект следует Conventional Commits:
feat:— новые функцииfix:— исправления баговdocs:— изменения документацииstyle:— изменения стиля кода (форматирование и т.п.)refactor:— рефакторинг кодаtest:— добавление или обновление тестовchore:— задачи по обслуживанию
Лицензия
Этот проект распространяется под лицензией Apache-2.0 — подробности см. в файле LICENSE.
Частые вопросы
Как установить NoticeExpress?
Установите Fabric под свою версию Minecraft, скачайте NoticeExpress под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть NoticeExpress?
У NoticeExpress есть сборки для Minecraft 1.21.7–1.21.11.
Нужен ли NoticeExpress на сервере?
Нужен на сервере; в игре — по желанию