7d5496e959
81 namespace declarations and 100 using directives converted via sed, plus two FQN-aliases (ChatTwoPartyFinderPayload in PayloadHandler.cs and ModifierFlag in KeybindManager.cs) updated. Critical: Language.Designer.cs and HellionStrings.Designer.cs ResourceManager string arguments updated synchronously — these are runtime reflection lookups not caught by the C# compiler. Two intentional ChatTwo references remain: the legacy migration path 'ChatTwo.json' in Plugin.cs (still points to upstream Chat 2's config file by design) and the InternalsVisibleTo declaration in AssemblyInfo.cs (handled in the upcoming repo-folder rename task). The local alias names 'ChatTwoPartyFinderPayload' and 'ChatTwoConflictDetector' are preserved as local symbols; only their target namespaces and references changed.
228 lines
13 KiB
C#
Executable File
228 lines
13 KiB
C#
Executable File
using HellionChat.Code;
|
|
using HellionChat.Resources;
|
|
|
|
namespace HellionChat.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. The pure player-talk catch-all plus
|
|
// the active-gameplay event streams (loot, crafting, gathering, NPC
|
|
// dialogue, party-finder pings). Pure technical noise (System, Error,
|
|
// Login/Logout spam, retainer sales, alarms, sign messages) lives in
|
|
// the dedicated System tab so it doesn't bury actual conversation.
|
|
public static Tab VanillaGeneral => new()
|
|
{
|
|
Name = Language.Tabs_Presets_General,
|
|
SelectedChannels = new Dictionary<ChatType, (ChatSource, ChatSource)>
|
|
{
|
|
// Player 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),
|
|
// Active-gameplay events
|
|
[ChatType.NpcDialogue] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.LootNotice] = (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),
|
|
}
|
|
};
|
|
|
|
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),
|
|
},
|
|
// No automatic input-channel switch; the Gruppe tab is a read
|
|
// surface that pulls in Party, CrossParty, Alliance and PvpTeam
|
|
// together. Auto-routing /party into this tab would surprise the
|
|
// user when they actually wanted /alliance or /pvpteam.
|
|
};
|
|
|
|
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 HellionSystem => new()
|
|
{
|
|
Name = HellionStrings.Tabs_Presets_System,
|
|
SelectedChannels = new Dictionary<ChatType, (ChatSource, ChatSource)>
|
|
{
|
|
[ChatType.Debug] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Urgent] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Notice] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.System] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Error] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Echo] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.GatheringSystem] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.NoviceNetworkSystem] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.NpcAnnouncement] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.FreeCompanyLoginLogout] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.PvpTeamLoginLogout] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.RetainerSale] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.Progress] = (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),
|
|
[ChatType.Sign] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
[ChatType.GlamourNotifications] = (ChatSourceExt.All, ChatSourceExt.All),
|
|
},
|
|
};
|
|
|
|
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),
|
|
};
|
|
}
|