Перейти к содержимому

NoticeExpress

Отличный способ публиковать объявления сервера.

Fabric
Загрузчики
Fabric
Скачиваний на Modrinth
132
Подписчиков на Modrinth
0
версия
1
Обновлён
2 февраля 20262 февр.
Опубликован
в 2026

Коротко о моде

Работает на Fabric
Для Minecraft 1.21.7–1.21.11
Нужен на сервере; в игре — по желанию
Последняя версия — 1.0.0 от 2 февраля 2026
Лицензия Apache-2.0 — бесплатно
Где нужен
В игренеобязателенНа сервереобязателен

Нужен на сервере; в игре — по желанию

Версии игры1.21.7–1.21.11
Описание переведено автоматическиПоказать оригинал (EN)

NoticeExpress

Minecraft Fabric мод для серверных объявлений и уведомлений с опциональным улучшением 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 или выше

Установка

На стороне сервера (обязательно)

  1. Скачайте JAR-файл мода
  2. Поместите его в папку mods вашего сервера
  3. Запустите сервер
  4. Конфигурация будет создана по пути config/noticeexpress/config.json

На стороне клиента (опционально)

  1. Скачайте тот же JAR-файл мода
  2. Поместите его в папку mods вашего клиента
  3. Наслаждайтесь улучшенными функциями 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 с:

  • 📋 Прокручиваемым списком объявлений
  • 🎴 Красивыми карточками объявлений
  • 📌 Визуальными индикаторами закрепления
  • ✨ Функцией разворачивания/сворачивания
  • 🖱️ Интерфейсом с взаимодействием по клику

Для разработчиков

Сборка из исходников

  1. Клонируйте репозиторий:
git clone https://github.com/0x002500/NoticeExpress.git
cd NoticeExpress
  1. Соберите мод:
./gradlew build
  1. Найдите скомпилированный 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.

  1. Форкните репозиторий
  2. Создайте ветку для своей функции (git checkout -b feature/AmazingFeature)
  3. Закоммитьте изменения (git commit -m 'feat: add some amazing feature')
  4. Запушьте в ветку (git push origin feature/AmazingFeature)
  5. Откройте 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 на сервере?

Нужен на сервере; в игре — по желанию

Лицензия и источник
Apache License 2.0можно свободно использовать и распространять с указанием автора
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее