first commit
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
package de.winniepat.fallSMPRewards.model;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
public final class PlayerData {
|
||||
|
||||
private UUID uuid;
|
||||
private int totalKills;
|
||||
private Set<String> claimedQuestIds;
|
||||
private Map<String, Long> lastCountedKillByVictim;
|
||||
|
||||
public PlayerData() {
|
||||
// Required for Gson.
|
||||
}
|
||||
|
||||
public PlayerData(UUID uuid) {
|
||||
this.uuid = uuid;
|
||||
this.totalKills = 0;
|
||||
this.claimedQuestIds = new HashSet<>();
|
||||
this.lastCountedKillByVictim = new HashMap<>();
|
||||
}
|
||||
|
||||
public void sanitize(UUID expectedUuid) {
|
||||
if (uuid == null) {
|
||||
uuid = expectedUuid;
|
||||
}
|
||||
if (claimedQuestIds == null) {
|
||||
claimedQuestIds = new HashSet<>();
|
||||
}
|
||||
if (lastCountedKillByVictim == null) {
|
||||
lastCountedKillByVictim = new HashMap<>();
|
||||
}
|
||||
if (totalKills < 0) {
|
||||
totalKills = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public UUID getUuid() {
|
||||
return uuid;
|
||||
}
|
||||
|
||||
public int getTotalKills() {
|
||||
return totalKills;
|
||||
}
|
||||
|
||||
public int addKill() {
|
||||
totalKills++;
|
||||
return totalKills;
|
||||
}
|
||||
|
||||
public long getRemainingCooldownMillis(UUID victimUuid, long cooldownMillis, long nowMillis) {
|
||||
Long lastCountedMillis = lastCountedKillByVictim.get(victimUuid.toString());
|
||||
if (lastCountedMillis == null) {
|
||||
return 0L;
|
||||
}
|
||||
long elapsed = nowMillis - lastCountedMillis;
|
||||
if (elapsed >= cooldownMillis) {
|
||||
return 0L;
|
||||
}
|
||||
return cooldownMillis - elapsed;
|
||||
}
|
||||
|
||||
public void setLastCountedKill(UUID victimUuid, long nowMillis) {
|
||||
lastCountedKillByVictim.put(victimUuid.toString(), nowMillis);
|
||||
}
|
||||
|
||||
public boolean hasClaimed(String questId) {
|
||||
return claimedQuestIds.contains(questId);
|
||||
}
|
||||
|
||||
public boolean claim(String questId) {
|
||||
return claimedQuestIds.add(questId);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user