@@ -15,6 +15,12 @@ public class BedWarsModeStats {
1515 private final Map <String , Long > wins ;
1616 private final Map <String , Long > finalKills ;
1717 private final Map <String , Long > bedsBroken ;
18+ private final Map <String , Long > losses ;
19+ private final Map <String , Long > bedsLost ;
20+ private final Map <String , Long > kills ;
21+ private final Map <String , Long > deaths ;
22+ private final Map <String , Long > finalDeaths ;
23+ private final Map <String , Long > winstreaks ;
1824
1925 @ Setter private long dailyResetTimestamp ;
2026 @ Setter private long weeklyResetTimestamp ;
@@ -24,21 +30,28 @@ public BedWarsModeStats() {
2430 this .wins = new HashMap <>();
2531 this .finalKills = new HashMap <>();
2632 this .bedsBroken = new HashMap <>();
27- initializeResetTimestamps ();
28- }
29-
30- public BedWarsModeStats (Map <String , Long > wins , Map <String , Long > finalKills , Map <String , Long > bedsBroken ) {
31- this .wins = new HashMap <>(wins );
32- this .finalKills = new HashMap <>(finalKills );
33- this .bedsBroken = new HashMap <>(bedsBroken );
33+ this .losses = new HashMap <>();
34+ this .bedsLost = new HashMap <>();
35+ this .kills = new HashMap <>();
36+ this .deaths = new HashMap <>();
37+ this .finalDeaths = new HashMap <>();
38+ this .winstreaks = new HashMap <>();
3439 initializeResetTimestamps ();
3540 }
3641
3742 public BedWarsModeStats (Map <String , Long > wins , Map <String , Long > finalKills , Map <String , Long > bedsBroken ,
43+ Map <String , Long > losses , Map <String , Long > bedsLost , Map <String , Long > kills ,
44+ Map <String , Long > deaths , Map <String , Long > finalDeaths , Map <String , Long > winstreaks ,
3845 long dailyResetTimestamp , long weeklyResetTimestamp , long monthlyResetTimestamp ) {
3946 this .wins = new HashMap <>(wins );
4047 this .finalKills = new HashMap <>(finalKills );
4148 this .bedsBroken = new HashMap <>(bedsBroken );
49+ this .losses = new HashMap <>(losses );
50+ this .bedsLost = new HashMap <>(bedsLost );
51+ this .kills = new HashMap <>(kills );
52+ this .deaths = new HashMap <>(deaths );
53+ this .finalDeaths = new HashMap <>(finalDeaths );
54+ this .winstreaks = new HashMap <>(winstreaks );
4255 this .dailyResetTimestamp = dailyResetTimestamp ;
4356 this .weeklyResetTimestamp = weeklyResetTimestamp ;
4457 this .monthlyResetTimestamp = monthlyResetTimestamp ;
@@ -109,6 +122,30 @@ public long getBedsBroken(BedwarsLeaderboardMode mode, BedwarsLeaderboardPeriod
109122 return bedsBroken .getOrDefault (key (mode , period ), 0L );
110123 }
111124
125+ public long getLosses (BedwarsLeaderboardMode mode , BedwarsLeaderboardPeriod period ) {
126+ return losses .getOrDefault (key (mode , period ), 0L );
127+ }
128+
129+ public long getBedsLost (BedwarsLeaderboardMode mode , BedwarsLeaderboardPeriod period ) {
130+ return bedsLost .getOrDefault (key (mode , period ), 0L );
131+ }
132+
133+ public long getKills (BedwarsLeaderboardMode mode , BedwarsLeaderboardPeriod period ) {
134+ return kills .getOrDefault (key (mode , period ), 0L );
135+ }
136+
137+ public long getDeaths (BedwarsLeaderboardMode mode , BedwarsLeaderboardPeriod period ) {
138+ return deaths .getOrDefault (key (mode , period ), 0L );
139+ }
140+
141+ public long getFinalDeaths (BedwarsLeaderboardMode mode , BedwarsLeaderboardPeriod period ) {
142+ return finalDeaths .getOrDefault (key (mode , period ), 0L );
143+ }
144+
145+ public long getWinstreak (BedwarsLeaderboardMode mode ) {
146+ return winstreaks .getOrDefault (mode .getKey (), 0L );
147+ }
148+
112149 public void addWin (BedwarsLeaderboardMode mode , BedwarsLeaderboardPeriod period ) {
113150 wins .merge (key (mode , period ), 1L , Long ::sum );
114151 }
@@ -121,10 +158,39 @@ public void addBedBroken(BedwarsLeaderboardMode mode, BedwarsLeaderboardPeriod p
121158 bedsBroken .merge (key (mode , period ), 1L , Long ::sum );
122159 }
123160
161+ public void addLoss (BedwarsLeaderboardMode mode , BedwarsLeaderboardPeriod period ) {
162+ losses .merge (key (mode , period ), 1L , Long ::sum );
163+ }
164+
165+ public void addBedLost (BedwarsLeaderboardMode mode , BedwarsLeaderboardPeriod period ) {
166+ bedsLost .merge (key (mode , period ), 1L , Long ::sum );
167+ }
168+
169+ public void addKill (BedwarsLeaderboardMode mode , BedwarsLeaderboardPeriod period ) {
170+ kills .merge (key (mode , period ), 1L , Long ::sum );
171+ }
172+
173+ public void addDeath (BedwarsLeaderboardMode mode , BedwarsLeaderboardPeriod period ) {
174+ deaths .merge (key (mode , period ), 1L , Long ::sum );
175+ }
176+
177+ public void addFinalDeath (BedwarsLeaderboardMode mode , BedwarsLeaderboardPeriod period ) {
178+ finalDeaths .merge (key (mode , period ), 1L , Long ::sum );
179+ }
180+
181+ public void incrementWinstreak (BedwarsLeaderboardMode mode ) {
182+ winstreaks .merge (mode .getKey (), 1L , Long ::sum );
183+ }
184+
185+ public void resetWinstreak (BedwarsLeaderboardMode mode ) {
186+ winstreaks .put (mode .getKey (), 0L );
187+ }
188+
124189 public void recordWin (BedwarsLeaderboardMode mode ) {
125190 for (BedwarsLeaderboardPeriod period : BedwarsLeaderboardPeriod .values ()) {
126191 addWin (mode , period );
127192 }
193+ incrementWinstreak (mode );
128194 }
129195
130196 public void recordFinalKill (BedwarsLeaderboardMode mode ) {
@@ -139,17 +205,54 @@ public void recordBedBroken(BedwarsLeaderboardMode mode) {
139205 }
140206 }
141207
208+ public void recordLoss (BedwarsLeaderboardMode mode ) {
209+ for (BedwarsLeaderboardPeriod period : BedwarsLeaderboardPeriod .values ()) {
210+ addLoss (mode , period );
211+ }
212+ resetWinstreak (mode );
213+ }
214+
215+ public void recordBedLost (BedwarsLeaderboardMode mode ) {
216+ for (BedwarsLeaderboardPeriod period : BedwarsLeaderboardPeriod .values ()) {
217+ addBedLost (mode , period );
218+ }
219+ }
220+
221+ public void recordKill (BedwarsLeaderboardMode mode ) {
222+ for (BedwarsLeaderboardPeriod period : BedwarsLeaderboardPeriod .values ()) {
223+ addKill (mode , period );
224+ }
225+ }
226+
227+ public void recordDeath (BedwarsLeaderboardMode mode ) {
228+ for (BedwarsLeaderboardPeriod period : BedwarsLeaderboardPeriod .values ()) {
229+ addDeath (mode , period );
230+ }
231+ }
232+
233+ public void recordFinalDeath (BedwarsLeaderboardMode mode ) {
234+ for (BedwarsLeaderboardPeriod period : BedwarsLeaderboardPeriod .values ()) {
235+ addFinalDeath (mode , period );
236+ }
237+ }
238+
142239 public void resetPeriod (BedwarsLeaderboardPeriod period ) {
143240 for (BedwarsLeaderboardMode mode : BedwarsLeaderboardMode .values ()) {
144241 String k = key (mode , period );
145242 wins .remove (k );
146243 finalKills .remove (k );
147244 bedsBroken .remove (k );
245+ losses .remove (k );
246+ bedsLost .remove (k );
247+ kills .remove (k );
248+ deaths .remove (k );
249+ finalDeaths .remove (k );
148250 }
149251 }
150252
151253 public BedWarsModeStats copy () {
152254 return new BedWarsModeStats (wins , finalKills , bedsBroken ,
255+ losses , bedsLost , kills , deaths , finalDeaths , winstreaks ,
153256 dailyResetTimestamp , weeklyResetTimestamp , monthlyResetTimestamp );
154257 }
155258}
0 commit comments