feat: allow tab input channel to be set to ExtraChat
Adds ExtraChat Linkshell channels to tab input channel selector. These are only by index, not by channel name due to limitations in the ExtraChat IPC API. Adds ExtraChat Linkshell channels to the channel selector in the chat log window. As these aren't real channels in-game, these are handled by just sending the corresponding `/eclX` command which causes ExtraChat to set a channel override.
This commit is contained in:
@@ -84,4 +84,14 @@ internal enum ChatType : ushort {
|
||||
CrossLinkshell6 = 105,
|
||||
CrossLinkshell7 = 106,
|
||||
CrossLinkshell8 = 107,
|
||||
|
||||
// Custom types:
|
||||
ExtraChatLinkshell1 = 1001,
|
||||
ExtraChatLinkshell2 = 1002,
|
||||
ExtraChatLinkshell3 = 1003,
|
||||
ExtraChatLinkshell4 = 1004,
|
||||
ExtraChatLinkshell5 = 1005,
|
||||
ExtraChatLinkshell6 = 1006,
|
||||
ExtraChatLinkshell7 = 1007,
|
||||
ExtraChatLinkshell8 = 1008,
|
||||
}
|
||||
|
||||
@@ -162,6 +162,14 @@ internal static class ChatTypeExt {
|
||||
ChatType.CrossLinkshell6 => Language.ChatType_CrossLinkshell6,
|
||||
ChatType.CrossLinkshell7 => Language.ChatType_CrossLinkshell7,
|
||||
ChatType.CrossLinkshell8 => Language.ChatType_CrossLinkshell8,
|
||||
ChatType.ExtraChatLinkshell1 => Language.ChatType_ExtraChatLinkshell1,
|
||||
ChatType.ExtraChatLinkshell2 => Language.ChatType_ExtraChatLinkshell2,
|
||||
ChatType.ExtraChatLinkshell3 => Language.ChatType_ExtraChatLinkshell3,
|
||||
ChatType.ExtraChatLinkshell4 => Language.ChatType_ExtraChatLinkshell4,
|
||||
ChatType.ExtraChatLinkshell5 => Language.ChatType_ExtraChatLinkshell5,
|
||||
ChatType.ExtraChatLinkshell6 => Language.ChatType_ExtraChatLinkshell6,
|
||||
ChatType.ExtraChatLinkshell7 => Language.ChatType_ExtraChatLinkshell7,
|
||||
ChatType.ExtraChatLinkshell8 => Language.ChatType_ExtraChatLinkshell8,
|
||||
_ => type.ToString(),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -29,4 +29,14 @@ internal enum InputChannel : uint {
|
||||
Linkshell6 = 24,
|
||||
Linkshell7 = 25,
|
||||
Linkshell8 = 26,
|
||||
|
||||
// Custom channels:
|
||||
ExtraChatLinkshell1 = 1001,
|
||||
ExtraChatLinkshell2 = 1002,
|
||||
ExtraChatLinkshell3 = 1003,
|
||||
ExtraChatLinkshell4 = 1004,
|
||||
ExtraChatLinkshell5 = 1005,
|
||||
ExtraChatLinkshell6 = 1006,
|
||||
ExtraChatLinkshell7 = 1007,
|
||||
ExtraChatLinkshell8 = 1008,
|
||||
}
|
||||
|
||||
@@ -30,6 +30,14 @@ internal static class InputChannelExt {
|
||||
InputChannel.Linkshell6 => ChatType.Linkshell6,
|
||||
InputChannel.Linkshell7 => ChatType.Linkshell7,
|
||||
InputChannel.Linkshell8 => ChatType.Linkshell8,
|
||||
InputChannel.ExtraChatLinkshell1 => ChatType.ExtraChatLinkshell1,
|
||||
InputChannel.ExtraChatLinkshell2 => ChatType.ExtraChatLinkshell2,
|
||||
InputChannel.ExtraChatLinkshell3 => ChatType.ExtraChatLinkshell3,
|
||||
InputChannel.ExtraChatLinkshell4 => ChatType.ExtraChatLinkshell4,
|
||||
InputChannel.ExtraChatLinkshell5 => ChatType.ExtraChatLinkshell5,
|
||||
InputChannel.ExtraChatLinkshell6 => ChatType.ExtraChatLinkshell6,
|
||||
InputChannel.ExtraChatLinkshell7 => ChatType.ExtraChatLinkshell7,
|
||||
InputChannel.ExtraChatLinkshell8 => ChatType.ExtraChatLinkshell8,
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(input), input, null),
|
||||
};
|
||||
|
||||
@@ -50,6 +58,14 @@ internal static class InputChannelExt {
|
||||
InputChannel.CrossLinkshell6 => 5,
|
||||
InputChannel.CrossLinkshell7 => 6,
|
||||
InputChannel.CrossLinkshell8 => 7,
|
||||
InputChannel.ExtraChatLinkshell1 => 0,
|
||||
InputChannel.ExtraChatLinkshell2 => 1,
|
||||
InputChannel.ExtraChatLinkshell3 => 2,
|
||||
InputChannel.ExtraChatLinkshell4 => 3,
|
||||
InputChannel.ExtraChatLinkshell5 => 4,
|
||||
InputChannel.ExtraChatLinkshell6 => 5,
|
||||
InputChannel.ExtraChatLinkshell7 => 6,
|
||||
InputChannel.ExtraChatLinkshell8 => 7,
|
||||
_ => uint.MaxValue,
|
||||
};
|
||||
|
||||
@@ -79,6 +95,14 @@ internal static class InputChannelExt {
|
||||
InputChannel.Linkshell6 => "/linkshell6",
|
||||
InputChannel.Linkshell7 => "/linkshell7",
|
||||
InputChannel.Linkshell8 => "/linkshell8",
|
||||
InputChannel.ExtraChatLinkshell1 => "/ecl1",
|
||||
InputChannel.ExtraChatLinkshell2 => "/ecl2",
|
||||
InputChannel.ExtraChatLinkshell3 => "/ecl3",
|
||||
InputChannel.ExtraChatLinkshell4 => "/ecl4",
|
||||
InputChannel.ExtraChatLinkshell5 => "/ecl5",
|
||||
InputChannel.ExtraChatLinkshell6 => "/ecl6",
|
||||
InputChannel.ExtraChatLinkshell7 => "/ecl7",
|
||||
InputChannel.ExtraChatLinkshell8 => "/ecl8",
|
||||
_ => "",
|
||||
};
|
||||
|
||||
@@ -150,4 +174,16 @@ internal static class InputChannelExt {
|
||||
InputChannel.CrossLinkshell8 => true,
|
||||
_ => false,
|
||||
};
|
||||
|
||||
internal static bool IsExtraChatLinkshell(this InputChannel channel) => channel switch {
|
||||
InputChannel.ExtraChatLinkshell1 => true,
|
||||
InputChannel.ExtraChatLinkshell2 => true,
|
||||
InputChannel.ExtraChatLinkshell3 => true,
|
||||
InputChannel.ExtraChatLinkshell4 => true,
|
||||
InputChannel.ExtraChatLinkshell5 => true,
|
||||
InputChannel.ExtraChatLinkshell6 => true,
|
||||
InputChannel.ExtraChatLinkshell7 => true,
|
||||
InputChannel.ExtraChatLinkshell8 => true,
|
||||
_ => false,
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user