Code Patterns

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

← Back to Patterns
storage

Simple Config Storage

Simple single-object JSON configuration storage (not array-based)

Example Code

java
public class BackupConfiguration extends BlockingDiskFile {
    private boolean enabled = true;
    private String folder = "backups";
    private int retentionAmount = 10;
    private int backupFrequency = 60;

    public BackupConfiguration() {
        super(Path.of("MyPlugin/Config.json"));
    }

    @Override
    protected void read(BufferedReader reader) throws IOException {
        var object = JsonParser.parseReader(reader).getAsJsonObject();
        this.enabled = object.get("enabled").getAsBoolean();
        this.folder = object.get("folder").getAsString();
        this.retentionAmount = object.get("retentionAmount").getAsInt();
        this.backupFrequency = object.get("backupFrequency").getAsInt();
    }

    @Override
    protected void write(BufferedWriter writer) throws IOException {
        JsonObject object = new JsonObject();
        object.addProperty("enabled", this.enabled);
        object.addProperty("folder", this.folder);
        object.addProperty("retentionAmount", this.retentionAmount);
        object.addProperty("backupFrequency", this.backupFrequency);
        writer.write(object.toString());
    }

    @Override
    protected void create(BufferedWriter writer) throws IOException {
        write(writer);  // Write defaults
    }

    // Getters and setters...
}