45a5035426
Drop the channels that already live in dedicated themed tabs (Tells, emotes, Novice Network, FC and PvP announcements, Sign and Glamour notifications) so the General tab is the public-chat catch-all instead of a duplicate of every themed tab. NpcDialogue moves in because the maintainer reads it alongside system messages.
215 lines
12 KiB
C#
Executable File
215 lines
12 KiB
C#
Executable File
using ChatTwo.Code;
|
|
using ChatTwo.Resources;
|
|
|
|
namespace ChatTwo.Util;
|
|
|
|
public static class TabsUtil
|
|
{
|
|
public static Dictionary<ChatType, (ChatSource, ChatSource)> AllChannels()
|
|
{
|
|
var channels = new Dictionary<ChatType, (ChatSource, ChatSource)>();
|
|
foreach (var chatType in Enum.GetValues<ChatType>())
|
|
channels[chatType] = (ChatSourceExt.All, ChatSourceExt.All);
|
|
|
|
return channels;
|
|
}
|
|
|
|
// Hellion-tuned General preset. Differs from upstream Vanilla:
|
|
// Tells (own tab), emotes, novice network and the FC/PvP announcement
|
|
// streams move into their dedicated themed tabs so the General tab
|
|
// is the public-chat catch-all that the maintainer actually runs in
|
|
// production. NpcDialogue stays here because the user reads it
|
|
// alongside system messages instead of in a separate Event tab.
|
|
public static Tab VanillaGeneral => new()
|
|
{
|
|
Name = Language.Tabs_Presets_General,
|
|
SelectedChannels = new Dictionary<ChatType, (ChatSource, ChatSource)>
|
|
{
|
|
// Special
|
|
[ChatType.Debug] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Urgent] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Notice] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
// Chat
|
|
[ChatType.Say] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Yell] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Shout] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Party] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossParty] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Alliance] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.FreeCompany] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.PvpTeam] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossLinkshell1] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossLinkshell2] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossLinkshell3] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossLinkshell4] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossLinkshell5] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossLinkshell6] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossLinkshell7] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossLinkshell8] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Linkshell1] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Linkshell2] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Linkshell3] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Linkshell4] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Linkshell5] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Linkshell6] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Linkshell7] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Linkshell8] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
// Announcements
|
|
[ChatType.System] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Error] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Echo] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.NpcAnnouncement] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.NpcDialogue] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.FreeCompanyLoginLogout] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.PvpTeamLoginLogout] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.RetainerSale] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.LootNotice] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Progress] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.LootRoll] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Crafting] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Gathering] = (ChatSource.LocalPlayer, ChatSource.LocalPlayer),
|
|
[ChatType.PeriodicRecruitmentNotification] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.RandomNumber] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Orchestrion] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.MessageBook] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Alarm] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
}
|
|
};
|
|
|
|
public static Tab VanillaEvent => new()
|
|
{
|
|
Name = Language.Tabs_Presets_Event,
|
|
SelectedChannels = new Dictionary<ChatType, (ChatSource, ChatSource)> { [ChatType.NpcDialogue] = (ChatSourceExt.All, ChatSourceExt.All), },
|
|
};
|
|
|
|
public static Tab VanillaTellExclusive => new()
|
|
{
|
|
Name = Language.Tabs_Presets_Tell,
|
|
SelectedChannels = new Dictionary<ChatType, (ChatSource, ChatSource)>
|
|
{
|
|
[ChatType.TellIncoming] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.TellOutgoing] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
},
|
|
Channel = InputChannel.Tell,
|
|
AllSenderMessages = true,
|
|
};
|
|
|
|
// Hellion default-tab presets used by the v10 wipe migration. Names are
|
|
// kept in HellionStrings (EN+DE) instead of Language.* so the upstream
|
|
// resource files stay untouched. Channel selections cover the channels
|
|
// a typical Eorzea raider uses without forcing the user to hand-tick
|
|
// each box on first start.
|
|
public static Tab HellionFreeCompany => new()
|
|
{
|
|
Name = HellionStrings.Tabs_Presets_FreeCompany,
|
|
SelectedChannels = new Dictionary<ChatType, (ChatSource, ChatSource)>
|
|
{
|
|
[ChatType.FreeCompany] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.FreeCompanyAnnouncement] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.FreeCompanyLoginLogout] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
},
|
|
Channel = InputChannel.FreeCompany,
|
|
};
|
|
|
|
public static Tab HellionParty => new()
|
|
{
|
|
Name = HellionStrings.Tabs_Presets_Party,
|
|
SelectedChannels = new Dictionary<ChatType, (ChatSource, ChatSource)>
|
|
{
|
|
[ChatType.Party] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossParty] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Alliance] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.PvpTeam] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.PvpTeamAnnouncement] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.PvpTeamLoginLogout] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.LootNotice] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.LootRoll] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
},
|
|
Channel = InputChannel.Party,
|
|
};
|
|
|
|
public static Tab HellionBeginner => new()
|
|
{
|
|
Name = HellionStrings.Tabs_Presets_Beginner,
|
|
SelectedChannels = new Dictionary<ChatType, (ChatSource, ChatSource)>
|
|
{
|
|
[ChatType.NoviceNetwork] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.NoviceNetworkSystem] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
},
|
|
Channel = InputChannel.NoviceNetwork,
|
|
};
|
|
|
|
public static Tab HellionLinkshell => new()
|
|
{
|
|
Name = HellionStrings.Tabs_Presets_Linkshell,
|
|
SelectedChannels = new Dictionary<ChatType, (ChatSource, ChatSource)>
|
|
{
|
|
[ChatType.Linkshell1] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Linkshell2] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Linkshell3] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Linkshell4] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Linkshell5] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Linkshell6] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Linkshell7] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Linkshell8] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossLinkshell1] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossLinkshell2] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossLinkshell3] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossLinkshell4] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossLinkshell5] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossLinkshell6] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossLinkshell7] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossLinkshell8] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
},
|
|
};
|
|
|
|
public static Dictionary<ChatType, (ChatSource, ChatSource)> MostlyPlayer => new()
|
|
{
|
|
// Special
|
|
[ChatType.Debug] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Urgent] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Notice] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
// Chat
|
|
[ChatType.Say] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Yell] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Shout] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.TellIncoming] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.TellOutgoing] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Party] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossParty] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Alliance] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.FreeCompany] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.PvpTeam] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossLinkshell1] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossLinkshell2] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossLinkshell3] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossLinkshell4] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossLinkshell5] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossLinkshell6] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossLinkshell7] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CrossLinkshell8] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Linkshell1] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Linkshell2] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Linkshell3] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Linkshell4] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Linkshell5] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Linkshell6] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Linkshell7] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Linkshell8] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.NoviceNetwork] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.StandardEmote] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.CustomEmote] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
// Announcements
|
|
[ChatType.System] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Error] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Echo] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.NoviceNetworkSystem] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.FreeCompanyAnnouncement] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.PvpTeamAnnouncement] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.FreeCompanyLoginLogout] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.PvpTeamLoginLogout] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.RandomNumber] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.MessageBook] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
};
|
|
}
|