Code/Examples/TwitchChatExample/CustomSubscriberBadges.cs
using System;
using System.Threading;
using System.Threading.Tasks;
using Sandbox;

namespace TwitchAPI.Examples;

public class CustomSubscriberBadges
{
    [ImageAssetPath, Title( "Default/1 Month Badge" )] public string DefaultBadge { get; set; }
    [ImageAssetPath, Title( "2 Month Badge" )] public string MonthBadge2 { get; set; }
    [ImageAssetPath, Title( "3 Month Badge" )] public string MonthBadge3 { get; set; }
    [ImageAssetPath, Title( "6 Month Badge" )] public string MonthBadge6 { get; set; }
    [ImageAssetPath, Title( "9 Month Badge" )] public string MonthBadge9 { get; set; }
    [ImageAssetPath, Title( "1 Year Badge" )] public string YearBadge1 { get; set; }
    [ImageAssetPath, Title( "1.5 Year Badge" )] public string YearBadge1_5 { get; set; }
    [ImageAssetPath, Title( "2 Year Badge" )] public string YearBadge2 { get; set; }
    [ImageAssetPath, Title( "2.5 Year Badge" )] public string YearBadge2_5 { get; set; }
    [ImageAssetPath, Title( "3 Year Badge" )] public string YearBadge3 { get; set; }
    [ImageAssetPath, Title( "3.5 Year Badge" )] public string YearBadge3_5 { get; set; }
    [ImageAssetPath, Title( "4 Year Badge" )] public string YearBadge4 { get; set; }
    [ImageAssetPath, Title( "4.5 Year Badge" )] public string YearBadge4_5 { get; set; }
    [ImageAssetPath, Title( "5 Year Badge" )] public string YearBadge5 { get; set; }
    [ImageAssetPath, Title( "5.5 Year Badge" )] public string YearBadge5_5 { get; set; }
    [ImageAssetPath, Title( "6 Year Badge" )] public string YearBadge6 { get; set; }
    [ImageAssetPath, Title( "6.5 Year Badge" )] public string YearBadge6_5 { get; set; }
    [ImageAssetPath, Title( "7 Year Badge" )] public string YearBadge7 { get; set; }
    [ImageAssetPath, Title( "7.5 Year Badge" )] public string YearBadge7_5 { get; set; }
    [ImageAssetPath, Title( "8 Year Badge" )] public string YearBadge8 { get; set; }
    [ImageAssetPath, Title( "8.5 Year Badge" )] public string YearBadge8_5 { get; set; }
    [ImageAssetPath, Title( "9 Year Badge" )] public string YearBadge9 { get; set; }
    [ImageAssetPath, Title( "9.5 Year Badge" )] public string YearBadge9_5 { get; set; }
    [ImageAssetPath, Title( "10 Year Badge" )] public string YearBadge10 { get; set; }

    public string GetBadge( int months )
    {
        if ( months >= 120 && !string.IsNullOrEmpty( YearBadge10 ) ) return YearBadge10;
        if ( months >= 114 && !string.IsNullOrEmpty( YearBadge9_5 ) ) return YearBadge9_5;
        if ( months >= 108 && !string.IsNullOrEmpty( YearBadge9 ) ) return YearBadge9;
        if ( months >= 102 && !string.IsNullOrEmpty( YearBadge8_5 ) ) return YearBadge8_5;
        if ( months >= 96 && !string.IsNullOrEmpty( YearBadge8 ) ) return YearBadge8;
        if ( months >= 90 && !string.IsNullOrEmpty( YearBadge7_5 ) ) return YearBadge7_5;
        if ( months >= 84 && !string.IsNullOrEmpty( YearBadge7 ) ) return YearBadge7;
        if ( months >= 78 && !string.IsNullOrEmpty( YearBadge6_5 ) ) return YearBadge6_5;
        if ( months >= 72 && !string.IsNullOrEmpty( YearBadge6 ) ) return YearBadge6;
        if ( months >= 66 && !string.IsNullOrEmpty( YearBadge5_5 ) ) return YearBadge5_5;
        if ( months >= 60 && !string.IsNullOrEmpty( YearBadge5 ) ) return YearBadge5;
        if ( months >= 54 && !string.IsNullOrEmpty( YearBadge4_5 ) ) return YearBadge4_5;
        if ( months >= 48 && !string.IsNullOrEmpty( YearBadge4 ) ) return YearBadge4;
        if ( months >= 42 && !string.IsNullOrEmpty( YearBadge3_5 ) ) return YearBadge3_5;
        if ( months >= 36 && !string.IsNullOrEmpty( YearBadge3 ) ) return YearBadge3;
        if ( months >= 30 && !string.IsNullOrEmpty( YearBadge2_5 ) ) return YearBadge2_5;
        if ( months >= 24 && !string.IsNullOrEmpty( YearBadge2 ) ) return YearBadge2;
        if ( months >= 18 && !string.IsNullOrEmpty( YearBadge1_5 ) ) return YearBadge1_5;
        if ( months >= 12 && !string.IsNullOrEmpty( YearBadge1 ) ) return YearBadge1;
        if ( months >= 9 && !string.IsNullOrEmpty( MonthBadge9 ) ) return MonthBadge9;
        if ( months >= 6 && !string.IsNullOrEmpty( MonthBadge6 ) ) return MonthBadge6;
        if ( months >= 3 && !string.IsNullOrEmpty( MonthBadge3 ) ) return MonthBadge3;
        if ( months >= 2 && !string.IsNullOrEmpty( MonthBadge2 ) ) return MonthBadge2;

        return DefaultBadge;
    }

}