GithubHelp home page GithubHelp logo

nadyanayme / tidychat Goto Github PK

View Code? Open in Web Editor NEW
15.0 2.0 8.0 486 KB

A better chat experience, with fewer redundant messages and system spam.

License: GNU Affero General Public License v3.0

C# 100.00%

tidychat's Introduction

Download count

Tidy Chat

  • Remove all of the redundant system messaging, leaving only important system messages
  • Better /instance messaging Better Instance messaging
  • Better received commendations messaging by condensing all earned commendations into a single message Condensed Commendations
  • Quality of Life improvement for quests that require you to /say some phrase by rewording it to be copy/pastable Autocopy /say text
  • Blocks emote spam among other players
  • Blocks spammy "You obtain" messages
  • Blocks spammy "You cast your lot" messages when rolling for loot
  • Blocks spammy crafting/synthesis messages other than "You synthesize " (for use with Chat Alerts)
  • Blocks spammy gathering messages
  • Blocks spammy progress messages like gaining experience or leveling up
  • Blocks Free Company Logout messages
  • Better Novice Network join/leave text
  • Block repetitive/spamming messages with Chat History
  • Whitelist specific players to override filters

Installation

Open Dalamud Plugins (/xlplugins or open it using the System Menu), browse to Tidy Chat and click install.

Open Settings

Use /tidychat or the shorthand /tidy to quickly access settings

How do Filters Work?

Check out the Tidy Chat wiki for more in-depth explanations about what each setting does in-game. (WIP)

tidychat's People

Contributors

jessidhia avatar nadyanayme avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

tidychat's Issues

New Whitelist -- Now Custom Filters [Guide]

Getting ahead of any potential issues with the upcoming update.

Q: How do I use regex filters?
To use a RegEx filter the First Name field needs to begin and end with /. For example: /gently pat/ on the Emote channel will allow or block any /pet messages. Please continue to request new filters to Tidy Chat - as being able to precompile the regex makes them 1000's of times more performant and everyone who uses Tidy Chat can benefit from the filter. Please reserve this power for filtering things that I consider to be too niche to be considered as a general filter for all users.

Q: Why were the Last Name and Server Name fields removed?
A: While they probably made data entry a little easier for people it was also unnecessary as it was joined into a single string anyway - so there was no difference between a First Name of Some Person@Server and separating each part into its own field. If you used those fields - your config file is still in tact and the legacy whitelist still exists. Going forward add whatever you see in chat for the player's name in the message contains field.

Q: Does the order of filters matter?
A: Yes. There isn't an easy way to re-arrange the filters currently but order matters and is executed from bottom->top (first added->last added) with the most recently added having lower priority if two filters match the same message. A way to re-arrange the order of the filters will (maybe) be added in a future update.

For example - I use the following filters on the System channel to block all "completed a venture!" messages except my first retainer - since I send all my ventures out at once I really only need to know when the first retainer has returned so I know to visit a summoning bell.

In other words - this will work to block all completed ventures except one:
image

While this will block all ventures (since it is executed first).
image

Q: Can I kill my game performance by overusing this feature?
A: Possibly? I haven't stress tested it. Game messages are short enough strings that I find it difficult to imagine anyone will have so many custom filters (especially ones with poorly written regex) where performance actually becomes an issue. Feel free to test it and let me know! :)

Filter duplicate messages?

I'd really like to see emotes, unless someone's spamming the same emote over and over. So maybe if the same message has been sent within the last n messages, filter it?

Instance in DTR Bar does not go away in non-instanced areas

I have a potential solution to fix this but it doesn't bother me since I know which zones are actually instanced so seeing "Instance 3" in Ul'dah isn't an issue for me personally...

  1. If a user leaves+enters a sanctuary in quick succession and an instance message is not found - remove the DTR Bar entry. For users who for whatever reason leave+enter a sanctuary by riding alongside the edge or something a quick /instance can bring back the entry if you happen to lose it in an instanced area.
  2. Using /instance outside of an instanced area will be updated to remove the DTR bar since it logs "You are not in an instanced area" to the chat.

If (1) doesn't work or isn't reliable enough (read: has a high false-positive rate) then (2) will have to be the way it is done.

The fix will come in an update hopefully sometime later today or tomorrow.

[Whitelist Suggestion] ARR Relic weapon completion steps

This is mainly for the books step as I just happened to notice while I was farming it. Unfortunately there isn't really a good catch-all phrase I've noticed for them.

Record of [boss name] kill (1/1) added for [weapon name] - [stat] +#.
All objectives under the category [category] for [weapon name] - [stat] +# complete!

I don't know if it would be easy to do, but maybe whitelisting all the Relic weapon names. This is probably kind of annoying since each step has a different name. Or maybe just whitelisting "Record of " and "All objectives under the category ", but I don't know if those would unintentionally whitelist something else.

Anyway, just something else to consider.
2022-02-14_23-43-04-930_Neneko_Vanilla Natural  Gameplay

Search for item results option

image
option to only show location of search item result, when system messages filter is enabled it doesn't show the location of searched item in inventory

Thank you!

Currently filters out the /isearch command

At the moment the /isearch command is getting removed with the general-purpose filters. I'm not entirely sure of the backend you're using but those are certainly system messages that should be allowed through. Thanks for the work so far though, I absolutely love not seeing 11 "You Cast a glamor. The... " messages whenever I switch classes. Maybe just the [gearset] equipped. Glamours projected from plate 5. lines would be good to stay. Anyways, thanks!

Suggestion: Friends option for whitelist

I'd like to suggest an option to automatically exclude all friends from filters (or at least for emote filters).
I have a large friends list for RP, and this would help a lot as opposed to adding them all manually. Don't want to see all the random emotes, but still want to see theirs.

Loving the plugin so far. Absolute game changer!

[FILTER] Job-specific level ups

Filter Request

Job-specific level up messages from players. I'd like to still see combat job level-ups from other players, but the crafter job level-ups can be rather spammy.

In essence; seeing 'attains level 15 arcanist' is OK, but 'attains level 15 weaver' is not.

"Useful Dungeon Messages" - Crowdsourced List

I was queueing Dzemael Darkhold and didn't see any of its "magitek timer" messages appear in chat, even though those are important for dungeon progression. Per Discord, plugin owner is unable to create a "useful dungeon message" list on their own. Thus, I've opened this issue in hopes that any and all such messages can be compiled and added to either the Whitelist feature (currently the only feature able to exclude these messages from TidyChat's filters) or as a separate feature (e.g. a toggleable checkbox). Please help me with this!

If adding an entry to this issue, be sure to include the dungeon name (so we can know which dungeons were searched) and exact text of the message(s) to be whitelisted. Failure messages are appreciated too. I'll need to requeue Dzemael to recall its exact message, but as an example:

The Thousand Maws of Toto-Rak:
You have obtained a magitek photocell.

Copperbell Mines:
"You need 12 onzes of firesand." (inexact, will edit when requeued)

Dzemael Darkhold:
Magitek terminal III begins counting down.
Magitek terminal III's countdown completes.

"You try on <link>" message

These messages appear to be blocked with no toggle. When I enable the experimental inverse mode, they properly show up, and they show up under [Debug] with that toggle turned on (though without the link being active), but I cannot find a toggle to enable these messages directly.

I often use these messages when comparing multiple items or glam options, or when I see an item in an Examine of another player that I'm interested in tracking down myself. Also, to my knowledge, those chat links are the only default way to try on the base appearance of a glamoured item (try on -> tries on glamoured version -> right click link in chat and 'try on' again -> tries on original appearance). Simple Tweaks offers a workaround for that particular hurdle (holding shift when selecting 'try on' tries on the base appearance), but it's still a bit annoying not having these messages to track items I'm looking at.

Potential Conflict with Cactbot's Raidboss

Suggested fix is to just disable System filters if you are using/depend on Raidboss and are raiding.

Potential fix for at least one Eureka fight has been added for 0.0.2.12 to show arena sealing off/being sealed off/unsealed texts.

On some occasions Raidboss relies on System messages to detect certain raid-related things - there is at least one known instance in Eureka's Baldesion Arsenal and potentially other Eureka and Bozja fights in particular due to how content in those instances work as well as older boss logs that haven't been updated to use data packets where possible and still use in-game text.

The extent to which this is an issue is currently unknown but it does break Raidboss.

I will add whitelists for messages as they are reported but won't be doing any digging into what raids/bosses this is an issue on and which lines need to be whitelisted in order to fix Cactbot.

Suggestion: Trial Synthesis results

It would be very helpful if there were an additional option (in the advanced settings, mayhaps?) to show trial synthesis results when finishing a trial synthesis. Currently they are filtered out.

These are the messages that I am referring to:

image

[Whitelist Suggestion] Keyboard commands for misc. volume controls

When controlling volume through the chat window, an option to still receive the output

/mastervolume -> "Master volume muted." / "Master volume unmuted."
/mastervolume # -> "Master volume set to #."
/bgm -> "BGM volume muted." / "BGM volume unmuted."
/bgm # -> "BGM volume set to #."
/soundeffects -> "Sound effects volume muted." / "Please tell me you've noticed the pattern."
/soundeffects # -> "I wonder what the output would be."
/voice -> "Voice volume blah blah blah"
/voice # -> "I bet this one is different. Oh it's not? What a surprise."
/systemsounds -> "Okay, I'm not typing out any more."
/systemsounds #
/ambientsounds
/ambientsounds #
/performsounds
/performsounds #

/mountbgm -> "Mount BGM volume muted." / "Mount BGM volume unmuted." (/mountbgm does not have a # command)

I guess any other potentially useful commands someone might think of.

Thanks.

Option to show "hunt mark slain (1/3)" type messages

Just a minor thing. When I'm doing hunts from the hunt board, I like to check the chat for my progress. Without the plugin, it looks like this:

You gain 2,307 (+118%) experience points.
Hunt mark automated avenger slain! (1/2)
You gain 2,307 (+118%) experience points.
Hunt mark automated avenger slain! (2/2)
You obtain 1,000 gil.
You gain 216,810 experience points.
You obtain 4 sacks of Nuts.

It would be nice if there was an option to have "Hunt mark automated avenger slain! (1/2)" still show up while the rest of the messages (gil, xp, nuts) get filtered out.

Tippy integration remains enabled after unchecking box

I tried Tippy and decided against it, so I unchecked the "Enable integration with Tippy" box. Even after saving config and restarting, I still get periodic messages saying

[TidyChat] To enable Tippy Tips for Tidy Chat you must first install Tippy.

In case it matters, Tippy is installed but disabled.

Did your Instance DTR Bar vanish? (v0.1.1.9)

I did an oopsie and forgot to migrate the old configuration name to the new configuration name. You'll need to go in and check that you want to use the DTR Bar again and then restart your game client (if it doesn't just crash right away). This should only impact those who updated to v0.1.1.9 prior to the release of v0.1.1.10.

Sorry everyone - I'll be sure to be more careful in the future.

[FILTER] Trust System Notifications

Filter Request

What is the exact in-game message? A screenshot is fine but copy/paste is preferred.

Alisaie attains level 90!
A new glamour for Alisaie is now available.

image

When does this message happen?

After you complete a dungeon with the trust system. And only if the story character is due for a level up for that run. The second quote about the glamour is only when they reach a level at an interval of 10 (i.e. 80 and 90).

Why is it important to see this message?

Because otherwise there is only an overlaid message in the middle of the screen that can be easily missed, and it would be helpful to keep it in chat. Also, you cannot filter these message without allowing all level up messages for all characters, even those who aren't an NPC.

Notes:

I have tried getting this to work on my fork of this plugin's repo, however it was already too late and all my NPCs were level 90, and I can't test it anymore without grinding an alt up to Shadow Bringers.

Novice network join message

The existing message takes up almost 7 lines (depending on chat width) and could use some reduction

"Novice - You've joined the Novice Network. There are currently \d{1,3} mentors (max. 100) and \d{1,3} new adventurers/returners (max. 412) participating.

Use the Player Search to find new adventurers/returners and invite them to the network.
There are no language restrictions on this channel."

Reduce to:

You've joined the Novice Network.

Suggested by: Nill#6390 on Discord

Localization - You can help!

You can help TidyChat support your local language by providing translations for the following strings:

  • You are now in the instanced area []. Current instance can be confirmed at any time using the /instance text command.
  • You received a player commendation!
  • [] has ended
  • You sense the presence of a powerful mark...
  • [] completed a venture.
  • You obtain xxx gil.
  • You obtain a venture.
  • You obtain xxx sacks of Nuts.
  • You obtain xxx flame/maelstorm/adder Seals.
  • You obtain a cracked []cluster. (A/S Rank Hunt rewards)
  • You obtain [] materials.
  • You obtain xxx [fire, ice, wind, earth, lightning, wind] [shards, crystals, clusters].

And whether your language uses . instead of , for numerical separators. (eg. 1.000 gil vs 1,000 gil)

Filter Suggestion: Unable to execute command outside a PvP area.

Hi.

I'm playing on Controller, and use the Macro #99 option to use sprint via R3, which requires me to use the same macro for this in both PvE and PvP.

Due to the PvE and PvP Sprint actions being different, it will spam the "Unable to execute command outside a PvP area." whenever I'm not in a PvP area, unless i block all Error Messages.

Therefore I'd like to request a filter addition to the plugin, specifically the option to hide "Unable to execute command outside a PvP area."

Hiding some system messages with no toggle

TidyChat is hiding all output from /? <command> as well as the Sightseeing Log's "You have arrived at a vista" messages.

I've attached my config file just in case it's PEBCAK, but I cannot find any settings for that in the system tab.

TidyChat.json
{
  "$type": "TidyChat.Configuration, TidyChat",
  "Version": 0,
  "Enabled": true,
  "EnableDebugMode": false,
  "IncludeChatTag": false,
  "PlayerName": "",
  "Whitelist": [],
  "SentByWhitelistPlayer": true,
  "TargetingWhitelistPlayer": true,
  "ChatHistoryFilter": false,
  "ChatHistoryChannels": 0,
  "ChatHistoryLength": 10,
  "DisableSelfChatHistory": true,
  "NoCoffee": true,
  "FilterSystemMessages": true,
  "FilterEmoteSpam": false,
  "FilterObtainedSpam": true,
  "FilterLootSpam": true,
  "FilterProgressSpam": false,
  "FilterCraftingSpam": false,
  "BetterInstanceMessage": true,
  "UseDTRBar": true,
  "DTRIsEnabled": true,
  "InstanceInDtrBar": true,
  "BetterSayReminder": true,
  "CopyBetterSayReminder": true,
  "BetterCommendationMessage": false,
  "IncludeDutyNameInComms": false,
  "BetterNoviceNetworkMessage": false,
  "HideSRankHunt": false,
  "HideSSRankHunt": false,
  "HideCommendations": false,
  "HideCompletedVenture": false,
  "HideInstanceMessage": false,
  "HideQuestReminder": false,
  "HideUsedEmotes": false,
  "HideOtherCustomEmotes": false,
  "HideReadyChecks": false,
  "HideCountdownTime": false,
  "HideUserLogins": false,
  "HideUserLogouts": false,
  "HideDebugTeleport": true,
  "HideSpideySenses": false,
  "HideAetherCompass": false,
  "HideSearchForItemResults": false,
  "HideExploratoryVoyage": false,
  "HideSubaquaticVoyage": false,
  "ShowGlamoursProjected": false,
  "ShowGearsetEquipped": true,
  "ShowMateriaRetrieved": true,
  "ShowVolumeControlMessage": false,
  "ShowTradeSent": true,
  "ShowTradeCanceled": true,
  "ShowAwaitingTradeConfirmation": false,
  "ShowTradeComplete": true,
  "ShowInviteSent": true,
  "ShowInviteeJoins": true,
  "ShowLeftParty": true,
  "ShowPartyDisband": true,
  "ShowPartyDissolved": true,
  "ShowInvitedBy": true,
  "ShowJoinParty": true,
  "ShowOfferedTeleport": true,
  "ShowSealedOff": true,
  "ShowHuntSlain": true,
  "ShowCompletionTime": true,
  "ShowRelicBookStep": true,
  "ShowRelicBookComplete": true,
  "ShowOnlineStatus": true,
  "ShowAttachToMail": true,
  "ShowObtainedPomander": true,
  "ShowReturnedPomander": true,
  "ShowCairnGlows": true,
  "ShowRestoresLifeToFallen": true,
  "ShowCairnActivates": true,
  "ShowTransference": true,
  "ShowAetherpoolIncrease": true,
  "ShowAetherpoolUnchanged": true,
  "ShowPomanderOfSafety": true,
  "ShowPomanderOfSight": true,
  "ShowPomanderOfAffluence": true,
  "ShowPomanderOfFlight": true,
  "ShowPomanderOfAlteration": true,
  "ShowPomanderOfWitching": true,
  "ShowPomanderOfSerenity": true,
  "ShowFloorNumber": true,
  "ShowSenseAccursedHoard": true,
  "ShowDoNotSenseAccursedHoard": true,
  "ShowDiscoverAccursedHoard": true,
  "ShowObtainedGil": true,
  "ShowObtainedMGP": true,
  "ShowObtainedClusters": true,
  "ShowObtainedWolfMarks": true,
  "ShowObtainedSeals": true,
  "ShowObtainedAlliedSeals": true,
  "ShowObtainedCenturioSeals": true,
  "ShowObtainedNuts": true,
  "ShowObtainedVenture": true,
  "ShowObtainedMaterials": true,
  "ShowObtainedTribalCurrency": true,
  "ShowObtainedShards": true,
  "ShowGainExperience": false,
  "ShowRouletteBonus": false,
  "ShowAdventurerInNeedBonus": false,
  "ShowGainPvpExp": false,
  "ShowEarnAchievement": false,
  "ShowOtherEarnedAchievement": false,
  "ShowObtainedPoeticsTomestones": true,
  "ShowObtainedAphorismTomestones": true,
  "ShowObtainedAstronomyTomestones": true,
  "ShowLootRoll": true,
  "ShowCastLot": false,
  "ShowOthersLootRoll": true,
  "ShowOthersCastLot": false,
  "ShowOthersObtain": false,
  "ShowLevelUps": true,
  "ShowOtherLevelUps": true,
  "ShowAbilityUnlocks": true,
  "ShowAttachedMateria": true,
  "ShowOvermeldFailure": true,
  "ShowMateriaShatters": true,
  "ShowMateriaExtract": true,
  "ShowDesynthesisLevel": false,
  "ShowDesynthesisObtains": false,
  "FilterGatheringSpam": false,
  "ShowAetherialReductionSands": true,
  "ShowLocationAffects": true,
  "HideGatheringYield": true,
  "HideGatherersBoon": true,
  "HideGatheringAttempts": true,
  "ShowCaughtFish": true,
  "ShowMeasuringIlms": true
}

While debugging myself, this reads to me like TidyChat blocks all incoming messages, only allowing the whitelisted messages. This would be the cause of the issue.

I would suggest a reverse approach - I want all messages shown to me except for the few I'm explicitly blocking; or perhaps a toggle, if this is the originally intended outcome. This also holds true for the exception handling; rather than eating data, I'd like to know the information I'm missing.

POTD & HoH Pomander return messages not shown

When TidyChat is enabled & "Show when you return a pomander to the coffer" is enabled the message will still not display. Only the toast notification. Might be the same for obtaining pomanders too. Other messages show fine.

System Message Filter Request

Heya! please add an option to show "X has invited you to a party" + "You Invite X to a party" + "Party has disbanded" etc to show on system messages filter. Thank you very much for this awesome plugin!

Getting certain messages with that option turned off

I am getting the following messages though they are turned off in TidyChat.

Other P. obtains X item.
Ren S. obtains X item. (I'm actually okay with seeing my own obtains item, if that's an option.)
A bonus of X has been awarded for using the duty roulette.
A bonus of X has been awarded for being the adventurer in need. (Assume both of these are part of duty roulette bonus?)
image

image

That's all for now. Thank you!

Suggestion: Option to show Spiritbond messages

I really like all the useless messages the system spam option filters out; unfortunately, having it on hides the messages for a piece of gear reaching 100% spiritbond and there is no option to show it.
I usually alt-tab when gathering/crafting so I use these messages to know when a piece reaches 100% spiritbond and also which piece, with the system filter as it is now I have to rely on other plugins to tell me a piece reached full spiritbond but I still have no way of conveniently knowing which piece it was, so I have to constantly check each piece of gear.

[FILTER] Duty Pop

Filter Request

add an option to hide the Duty Pop system message

What is the exact in-game message? A screenshot is fine but copy/paste is preferred.
image
Duty pop: Dohn Mheg

When does this message happen?
when duty finder match pop

Why is it important to see this message?
would like to hide it instead.

[FILTER] joining novice network

Filter Request

Option to filter out the "unable to join NN" message. It occur on every map change, and that gets old fast. I want to join the network when possible, but I don't need to be reminded that it wasn't possible every time I teleport.

What is the exact in-game message? A screenshot is fine but copy/paste is preferred.

Unable to join Novice Network. The channel has reached maximum number of users.

When does this message happen?

When you request to join novice network but it is full, you'll receive this message. Every time you change maps.

Why is it important to see this message?

The message itself helps you understand why you couldn't join the NN. Seeing it once is fine; seeing it on every attempt to join the network is unecessary IMO.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.