package dev.loki.loparkour.player.data; import java.util.ArrayList; import java.util.List; /** * Per-player parkour preferences: what to show, which style to play, how hard the schematics may be. * *

Persistence goes through the flat key/value map built by PlayerSettingsManager, so the storage keys * are stable and independent of these field names. * * @author loki */ public class PlayerSettings { private Double schematicDifficulty; private Integer blockLead; private Boolean particles; private Boolean sound; private Boolean useSpecialBlocks; private Boolean showFallMessage; private Boolean showScoreboard; private Boolean ghostRecording; private Integer selectedTime; private String style; private List collectedRewards; public Double schematicDifficulty() { return schematicDifficulty; } public void setSchematicDifficulty(Double schematicDifficulty) { this.schematicDifficulty = schematicDifficulty; } public Integer blockLead() { return blockLead; } public void setBlockLead(Integer blockLead) { this.blockLead = blockLead; } public Boolean particles() { return particles; } public void setParticles(Boolean particles) { this.particles = particles; } public Boolean sound() { return sound; } public void setSound(Boolean sound) { this.sound = sound; } public Boolean useSpecialBlocks() { return useSpecialBlocks; } public void setUseSpecialBlocks(Boolean useSpecialBlocks) { this.useSpecialBlocks = useSpecialBlocks; } public Boolean showFallMessage() { return showFallMessage; } public void setShowFallMessage(Boolean showFallMessage) { this.showFallMessage = showFallMessage; } public Boolean showScoreboard() { return showScoreboard; } public void setShowScoreboard(Boolean showScoreboard) { this.showScoreboard = showScoreboard; } public Boolean ghostRecording() { return ghostRecording; } public void setGhostRecording(Boolean ghostRecording) { this.ghostRecording = ghostRecording; } public Integer selectedTime() { return selectedTime; } public void setSelectedTime(Integer selectedTime) { this.selectedTime = selectedTime; } public String style() { return style; } public void setStyle(String style) { this.style = style; } /** Reward keys already claimed by this player; never null after first access. */ public List collectedRewards() { if (collectedRewards == null) { collectedRewards = new ArrayList<>(); } return collectedRewards; } }