package net.t7seven7t.craftfx.data.effect; import net.t7seven7t.craftfx.data.AbstractData; import net.t7seven7t.craftfx.data.Data; import net.t7seven7t.util.TimeUtil; import java.util.Optional; /** * */ public class TimerData extends AbstractData { private final int iterationsDef; private final long intervalDef; private int iterations; private long interval; public TimerData(int iterationsDef, long intervalDef) { this.iterationsDef = iterationsDef; this.intervalDef = intervalDef; } public TimerData() { this(1, 20); } public int getIterations() { return iterations; } public long getInterval() { return interval; } @Override public void onDataHolderUpdate() { this.iterations = Math.max(get("timer-iterations", Integer.class, iterationsDef), 1); Optional<String> optInterval = get("timer-interval", String.class); this.interval = Math.max(optInterval.map(TimeUtil::parseString).map(i -> i / 50) .orElse(intervalDef), 1); } @Override public Data getCopy() { return new TimerData(iterationsDef, intervalDef); } }