▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Плагины/PluralBackupJava
PluralBackupJava

PluralBackupJava

PluralBackup is an automatic hot backup plugin for Minecraft Java Edition servers

Оцените первым
100
0

Features

  • Scheduled Automatic Backup: Configurable backup interval, default 60 minutes
  • Time-Based Backup Mode: Trigger backups at specific times in a specified timezone (supports 24/12-hour format)
  • Manual Backup Trigger: Execute backup immediately via command
  • Startup Backup: Auto-execute backup on server start (optional)
  • Hot Backup: Asynchronous execution, non-blocking main thread
  • World Save Control: Save worlds before backup, pause autosave during backup to prevent data inconsistency
  • Compressed Backup: Support compressing backups as zip format to save disk space
  • Backup File Management: Auto-clean old backups, keep specified count of recent backups (also cleans after manual GitHub upload)
  • Multi-Cloud Upload: Local directory, FTP/FTPS, WebDAV, Baidu Netdisk, 123 Cloud
  • GitHub Backup: Upload/download backups via GitHub Release API, supports auto-creation of private repository
  • Alert Notifications: Send alerts via Email, Lark bot, DingTalk bot on backup failure
  • Backup Restore: Restore world data from specified backup (will reload worlds)
  • Hot Config Reload: Reload config without server restart
  • Status Query: View plugin status and scheduler info

Installation

  1. Download the latest PluralBackupJava-1.0.0.jar
  2. Place the jar file in the server's plugins/ directory
  3. Start the server, the plugin will auto-generate default config at plugins/PluralBackup/config.yml
  4. Edit the config file as needed
  5. Execute /backup reload or restart the server to apply changes

Commands

All commands require pluralbackup.admin permission (default: OP).

CommandDescription
/backup nowExecute a backup immediately
/backup listList all backups
/backup restore <backup-name>Restore specified backup
/backup cleanClean old backups
/backup reloadReload configuration file
/backup statusView plugin status
/backup github-listList backup versions on GitHub
/backup github-download <version>Download specified version from GitHub
/backup github-uploadBackup server and upload to GitHub

Aliases: /pbackup, /pluralbackup

Configuration

Config file located at plugins/PluralBackup/config.yml:

# Basic Backup Settings
backup:
  auto-backup: true              # Enable automatic backup (interval mode)
  interval-minutes: 60           # Backup interval in minutes (interval mode only)
  backup-on-start: false         # Execute backup on server start
  broadcast-message: true        # Broadcast backup messages
  # Scheduled backup (time-based trigger, independent from interval mode, can be enabled together)
  schedule:
    enabled: false               # Enable time-based mode
    timezone: "Asia/Shanghai"    # Trigger timezone, e.g. Asia/Shanghai, America/New_York, Europe/London
    use-24-hour-format: true     # Use 24-hour format (false for 12-hour format with AM/PM)
    times:                       # Trigger times list
      - "00:00"                  # 24-hour examples: ["00:00", "06:00", "12:00", "18:00"]
      - "12:00"                  # 12-hour examples: ["12:00 AM", "06:00 AM", "12:00 PM", "06:00 PM"]

backup-dir: "backups"            # Backup directory (relative to plugin data folder)
max-backups: 10                  # Maximum backup count (0 = unlimited)
compress: true                   # Compress as zip

exclude-dirs:                    # Excluded directories (relative to server root)
  - "plugins/PluralBackup/backups"

Backup Behavior

save-world-before-backup: true # Save all worlds before backup pause-autosave-during-backup: true # Pause autosave during backup file-copy-retry-count: 3 # File copy retry count file-copy-retry-delay-ms: 500 # Retry delay in milliseconds

Cloud Upload

cloud: enabled: false type: "local" # local / ftp / webdav / baidu / pan123 local: path: "cloud-backups" ftp: host: "127.0.0.1" port: 21 username: "ftpuser" password: "ftppass" remote-dir: "/backups" use-ssl: false webdav: url: "https://dav.example.com/backups" username: "user" password: "pass"

Baidu Netdisk (https://pan.baidu.com/union/console)

baidu: app-id: "" app-secret: "" app-folder: "" # Product name, files stored at /我的应用数据/{app-folder}/ access-token: "" # Leave empty for auto-fetch and cache

123 Cloud (https://www.123pan.cn/developer)

pan123: client-id: "" client-secret: "" access-token: "" # Leave empty for auto-fetch and cache parent-folder-id: 0 # Target folder ID, 0 for root

Alert Notifications

notification: enabled: false # Enable backup failure notifications

Email notification

email: enabled: false smtp-host: "" # e.g. smtp.qq.com smtp-port: 465 use-ssl: true username: "" # Sender login account password: "" # Authorization code (QQ Mail requires auth code) from: "" # Sender email to: "" # Recipient email subject: "PluralBackup Backup Alert"

Lark bot

feishu: enabled: false webhook: "" # Custom bot Webhook secret: "" # Signing secret (leave empty if not using signature)

DingTalk bot

dingtalk: enabled: false webhook: "" # Custom bot Webhook secret: "" # Signing secret (leave empty if not using signature)

GitHub Backup

github: enabled: false token: "your-github-token" # PAT with repo permission owner: "your-username" repo: "PluralGamneBackup" auto-create-repo: true # Auto-create private repo if not exists

Message Settings

backup-start-message: "§e[Backup] §bServer is performing automatic backup..." backup-done-message: "§e[Backup] §aBackup complete! Time: {time}s" backup-fail-message: "§e[Backup] §cBackup failed: {error}"


## GitHub Backup Instructions

1. Create GitHub Personal Access Token with `repo` permission, recommend no expiration
2. Configure `token`, `owner`, `repo` in config file
3. Enable `github.enabled: true`
4. Private repo auto-created if not exists (requires `auto-create-repo: true`)
5. Empty repo auto-initialized (README.md written), otherwise Release creation fails
6. Backup files uploaded as Release Assets, single file limit 2GB
7. GitHub scheduled backup shares `interval-minutes` with local backup
8. All network operations (upload/download) execute asynchronously, non-blocking main thread
9. Manual `/backup github-upload` will auto-clean local old backups (subject to `max-backups` limit)

## Dual-Mode Scheduled Backup

The plugin supports two independent trigger modes that can be enabled simultaneously:

**1. Interval Mode** (`backup.auto-backup: true` + `backup.interval-minutes: 60`)
- Execute backup every N minutes
- Suitable for high-frequency backup scenarios

**2. Time-Based Mode** (`backup.schedule.enabled: true`)
- Execute backup at specific times in a specified timezone
- Supports custom timezone (e.g. `Asia/Shanghai`, `America/New_York`, `Europe/London`)
- Supports 24-hour format (`HH:mm`, e.g. `00:00`, `12:00`, `18:30`)
- Supports 12-hour format (`hh:mm a`, e.g. `12:00 AM`, `06:00 PM`)
- Multiple trigger times configurable

Both modes can be enabled together without conflict. Example: interval mode backs up every hour, time-based mode adds extra backups at 00:00 and 12:00 daily.

## Permissions

| Permission | Default | Description |
|------------|---------|-------------|
| `pluralbackup.admin` | OP | Use all backup management commands |

## Build

```bash
mvn clean package

Generated jar file at target/PluralBackupJava-1.0.0.jar.

License

Copyright © PluralTeam

Партнёрский материал

Сервер для плагина PluralBackupJava - как у профи

Плагин PluralBackupJava создан для серверов: на своём сервере вы настраиваете его под себя и решаете, кому играть. Создать сервер с плагином PluralBackupJava для друзей можно за пару минут - BungeeHost всё уже подготовил.

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

26.2.x26.1.x1.21.x1.20.x1.19.x1.18.x

Платформы

Поддерживаемые окружения

Сервер

Детали

Лицензия:
Опубликован:4 месяца назад
Обновлён:4 месяца назад
Главная