Code Patterns

Copy-paste examples for common plugin tasks. Commands, events, ECS, GUI, and more.

← Back to Patterns
moderation

Backup System

Server backup management with configuration and manual trigger

Example Code

java
// Trigger backup
Universe.get().runBackup().thenAccept(unused -> {
    player.sendMessage(Message.raw("Backup completed!"));
});

// Check if backup is enabled via command line
if (Options.getOptionSet().has(Options.BACKUP)) {
    String backupDir = Options.getOptionSet().valueOf(Options.BACKUP_DIRECTORY).toString();
    int maxCount = Options.getOptionSet().valueOf(Options.BACKUP_MAX_COUNT);
    int frequency = Options.getOptionSet().valueOf(Options.BACKUP_FREQUENCY_MINUTES);
}

// List backup files
File folder = new File(backupPath);
if (folder.exists() && folder.isDirectory()) {
    for (String s : folder.list()) {
        File file = new File(folder, s);
        if (file.isFile() && file.getName().endsWith(".zip")) {
            String name = file.getName();
            String size = FormatUtil.bytesToString(file.length());
            long ageMs = Instant.now().toEpochMilli() - file.lastModified();
            String age = FormatUtil.timeUnitToString(ageMs / 1000, TimeUnit.SECONDS);
        }
    }
}