Files
HellionChat/ChatTwo/Code/InputChannelExt.cs
T
2022-01-06 15:57:24 -05:00

82 lines
3.7 KiB
C#
Executable File

namespace ChatTwo.Code;
internal static class InputChannelExt {
internal static ChatType ToChatType(this InputChannel input) => input switch {
InputChannel.Tell => ChatType.TellOutgoing,
InputChannel.Say => ChatType.Say,
InputChannel.Party => ChatType.Party,
InputChannel.Alliance => ChatType.Alliance,
InputChannel.Yell => ChatType.Yell,
InputChannel.Shout => ChatType.Shout,
InputChannel.FreeCompany => ChatType.FreeCompany,
InputChannel.PvpTeam => ChatType.PvpTeam,
InputChannel.NoviceNetwork => ChatType.NoviceNetwork,
InputChannel.CrossLinkshell1 => ChatType.CrossLinkshell1,
InputChannel.CrossLinkshell2 => ChatType.CrossLinkshell2,
InputChannel.CrossLinkshell3 => ChatType.CrossLinkshell3,
InputChannel.CrossLinkshell4 => ChatType.CrossLinkshell4,
InputChannel.CrossLinkshell5 => ChatType.CrossLinkshell5,
InputChannel.CrossLinkshell6 => ChatType.CrossLinkshell6,
InputChannel.CrossLinkshell7 => ChatType.CrossLinkshell7,
InputChannel.CrossLinkshell8 => ChatType.CrossLinkshell8,
InputChannel.Linkshell1 => ChatType.Linkshell1,
InputChannel.Linkshell2 => ChatType.Linkshell2,
InputChannel.Linkshell3 => ChatType.Linkshell3,
InputChannel.Linkshell4 => ChatType.Linkshell4,
InputChannel.Linkshell5 => ChatType.Linkshell5,
InputChannel.Linkshell6 => ChatType.Linkshell6,
InputChannel.Linkshell7 => ChatType.Linkshell7,
InputChannel.Linkshell8 => ChatType.Linkshell8,
_ => throw new ArgumentOutOfRangeException(nameof(input), input, null),
};
public static uint LinkshellIndex(this InputChannel channel) => channel switch {
InputChannel.Linkshell1 => 0,
InputChannel.Linkshell2 => 1,
InputChannel.Linkshell3 => 2,
InputChannel.Linkshell4 => 3,
InputChannel.Linkshell5 => 4,
InputChannel.Linkshell6 => 5,
InputChannel.Linkshell7 => 6,
InputChannel.Linkshell8 => 7,
InputChannel.CrossLinkshell1 => 0,
InputChannel.CrossLinkshell2 => 1,
InputChannel.CrossLinkshell3 => 2,
InputChannel.CrossLinkshell4 => 3,
InputChannel.CrossLinkshell5 => 4,
InputChannel.CrossLinkshell6 => 5,
InputChannel.CrossLinkshell7 => 6,
InputChannel.CrossLinkshell8 => 7,
_ => uint.MaxValue,
};
public static string Prefix(this InputChannel channel) => channel switch {
InputChannel.Tell => "/tell",
InputChannel.Say => "/say",
InputChannel.Party => "/party",
InputChannel.Alliance => "/alliance",
InputChannel.Yell => "/yell",
InputChannel.Shout => "/shout",
InputChannel.FreeCompany => "/freecompany",
InputChannel.PvpTeam => "/pvpteam",
InputChannel.NoviceNetwork => "/novice",
InputChannel.CrossLinkshell1 => "/cwlinkshell1",
InputChannel.CrossLinkshell2 => "/cwlinkshell2",
InputChannel.CrossLinkshell3 => "/cwlinkshell3",
InputChannel.CrossLinkshell4 => "/cwlinkshell4",
InputChannel.CrossLinkshell5 => "/cwlinkshell5",
InputChannel.CrossLinkshell6 => "/cwlinkshell6",
InputChannel.CrossLinkshell7 => "/cwlinkshell7",
InputChannel.CrossLinkshell8 => "/cwlinkshell8",
InputChannel.Linkshell1 => "/linkshell1",
InputChannel.Linkshell2 => "/linkshell2",
InputChannel.Linkshell3 => "/linkshell3",
InputChannel.Linkshell4 => "/linkshell4",
InputChannel.Linkshell5 => "/linkshell5",
InputChannel.Linkshell6 => "/linkshell6",
InputChannel.Linkshell7 => "/linkshell7",
InputChannel.Linkshell8 => "/linkshell8",
_ => "",
};
}