aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/thatgravyboat/skyblockhud/seasons/SeasonDateHandler.java
blob: 1e22afc35ab634132636d4b789611ce045358a97 (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
package com.thatgravyboat.skyblockhud.seasons;

import com.thatgravyboat.skyblockhud.Utils;
import com.thatgravyboat.skyblockhud.api.events.SidebarLineUpdateEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;

import java.util.regex.Pattern;

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());
    }
}