blob: b794edaf561db1c1fc95080d4386414470307980 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
package com.thatgravyboat.skyblockhud.seasons;
import com.thatgravyboat.skyblockhud.Utils;
import com.thatgravyboat.skyblockhud.api.events.SidebarLineUpdateEvent;
import java.util.regex.Pattern;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
public class SeasonDateHandler {
private static Season currentSeason = Season.ERROR;
private static int currentDate = 1;
private static String currentEvent = "";
private static String eventTime = "";
@SubscribeEvent
public void onSidebarLineUpdate(SidebarLineUpdateEvent event) {
if (Season.get(SeasonDateHandler.removeDate(event.formattedLine.toLowerCase()).toUpperCase()) != Season.ERROR) {
SeasonDateHandler.setCurrentDateAndSeason(
SeasonDateHandler.removeSeason(Utils.removeColor(event.formattedLine.toLowerCase().trim())),
SeasonDateHandler.removeDate(Utils.removeColor(event.formattedLine.toLowerCase().trim())).toUpperCase()
);
}
}
public static void setCurrentDateAndSeason(int date, String season) {
currentDate = date;
currentSeason = Season.get(season);
}
public static void setCurrentEvent(String event, String time) {
currentEvent = event;
eventTime = time;
}
public static Season getCurrentSeason() {
return currentSeason;
}
public static int getCurrentDate() {
return currentDate;
}
private static String getDataSuffix(int date) {
if (date > 10 && date < 14) return "th";
switch (date % 10) {
case 1:
return "st";
case 2:
return "nd";
case 3:
return "rd";
default:
return "th";
}
}
public static String getFancySeasonAndDate() {
return (currentSeason.getDisplayName() + " " + currentDate + getDataSuffix(currentDate));
}
public static String getCurrentEvent() {
return currentEvent;
}
public static String getCurrentEventTime() {
return eventTime;
}
public static String removeDate(String seasonDate) {
return Pattern.compile("[^a-zA-Z]").matcher(seasonDate.toLowerCase()).replaceAll("").replaceAll("st|nd|rd|th", "").trim();
}
public static int removeSeason(String seasonDate) {
return Integer.parseInt(Pattern.compile("[^0-9]").matcher(seasonDate.toLowerCase()).replaceAll("").trim());
}
}
|