shdwp / xivPartyIcons

XIV Dalamud plugin to show icons instead of names.
25 stars 34 forks source link

partyicons makes it so ACT stops reading combat lines/logs #62

Closed mayatyler closed 2 years ago

mayatyler commented 2 years ago

for whatever reason act stopped reading logs for custom triggers for me and a few other today that i talked to but after disabling partyicons it fixed it hoping this is a bug that can be fixed as i really like this plugin

Brasolis commented 2 years ago

+

The plugin is currently removing all the basic battle logging such as "X uses Battle Litany", "You use Technical Step" etc.

squidmade commented 2 years ago

Thank you for reporting this. To help with repro, could either of you share your plugin configuration to this issue? It will be at %appdata%\XIVLauncher\pluginConfigs\PartyIcons.json.

mayatyler commented 2 years ago

Thank you for reporting this. To help with repro, could either of you share your plugin configuration to this issue? It will be at %appdata%\XIVLauncher\pluginConfigs\PartyIcons.json.

{ "Disabled": false, "Testing": false, "ScheduledForDeletion": false, "InstalledFromUrl": "OFFICIAL", "IsThirdParty": false, "EffectiveVersion": "1.0.8.1", "Author": "shdwp, Avaflow, squidmade", "Name": "PartyIcons", "Punchline": "Replace names with job icons, raid role positions and more!", "Description": "Adjusts player nameplates base on current content. For example you can display raid positions (that are assigned automatically by listening to the chat), job icons, or names with job icons.\n\nReverse-engineering effort achived by authors of JobIcons: haplo, daemitus, Loskh, wozaiha, without them this plugin would not be possible!", "Changelog": "- Added setting to enable or disable context menu role assignment.\r\n- Made the /ppi command toggle the settings window instead of only showing the window.\r\n- Fixed the initial size and position of the settings window not matching the current display dimensions.\r\n- Fixed the size and position of the settings window not persisting.\r\n- Fixed the settings window height being zero when expanding the window after it was hidden.\r\n", "Tags": [ "UI" ], "CategoryTags": null, "IsHide": false, "InternalName": "PartyIcons", "AssemblyVersion": "1.0.8.1", "TestingAssemblyVersion": null, "IsTestingExclusive": false, "RepoUrl": "https://github.com/shdwp/xivPartyIcons", "ApplicableVersion": "any", "DalamudApiLevel": 7, "DownloadCount": 78454, "LastUpdate": 1662224364, "DownloadLinkInstall": "https://kamori.goats.dev/Plugin/Download/PartyIcons?isUpdate=False&isTesting=False&branch=api7&isDip17=True", "DownloadLinkUpdate": "https://raw.githubusercontent.com/goatcorp/DalamudPlugins/api7/plugins/PartyIcons/latest.zip", "DownloadLinkTesting": "https://kamori.goats.dev/Plugin/Download/PartyIcons?isUpdate=False&isTesting=True&branch=api7&isDip17=True", "LoadRequiredState": 0, "LoadSync": false, "LoadPriority": 0, "CanUnloadAsync": false, "ImageUrls": [ "https://github.com/goatcorp/DalamudPlugins/raw/api6/plugins/PartyIcons/images/image1.png", "https://github.com/goatcorp/DalamudPlugins/raw/api6/plugins/PartyIcons/images/image2.png", "https://github.com/goatcorp/DalamudPlugins/raw/api6/plugins/PartyIcons/images/image3.png", "https://github.com/goatcorp/DalamudPlugins/raw/api6/plugins/PartyIcons/images/image4.png" ], "IconUrl": "https://github.com/goatcorp/DalamudPlugins/raw/api6/plugins/PartyIcons/images/icon.png", "AcceptsFeedback": true, "FeedbackMessage": null, "_isDip17Plugin": true, "_Dip17Channel": "stable" }

hmm-norah commented 2 years ago

That's the wrong file

hmm-norah commented 2 years ago

Additionally, I cannot reproduce this. Using ACT's built in trigger or Triggernometry, I'm getting pings on 'you used shadow of death' as well as triggers like this one image

squidmade commented 2 years ago

I checked the ACT FFXIV plugin's Discord to see if this had been discussed and found the info needed for repro from the original conversation in the #troubleshooting channel. The repro is to launch ACT while the game is running and PartyIcons has been loaded.

Since these repro steps don't work for @hmm-norah, we can probably use that to help figure out the difference.

mayatyler commented 2 years ago

what file is it? also idk if it helps but its stoping my custom trigger that play .wav files if that helps at all

hmm-norah commented 2 years ago

You went to the wrong folder, the original path posted is correct

%appdata%\XIVLauncher\pluginConfigs\PartyIcons.json

mayatyler commented 2 years ago

ty { "$type": "PartyIcons.Configuration, PartyIcons", "ChatContentMessage": true, "HideLocalPlayerNameplate": true, "TestingMode": true, "EasternNamingConvention": false, "DisplayRoleInPartyList": false, "Version": 1, "IconSetId": 0, "SizeMode": 1, "NameplateOverworld": 0, "NameplateAllianceRaid": 4, "NameplateDungeon": 4, "NameplateBozjaParty": 0, "NameplateBozjaOthers": 0, "NameplateRaid": 4, "NameplateOthers": 0, "ChatOverworld": 2, "ChatAllianceRaid": 2, "ChatDungeon": 3, "ChatRaid": 2, "ChatOthers": 1, "StaticAssignments": { "$type": "System.Collections.Generic.Dictionary`2[[System.String, System.Private.CoreLib],[PartyIcons.Entities.RoleId, PartyIcons]], System.Private.CoreLib" } }

squidmade commented 2 years ago

I did more A/B testing in order to help narrow down how this is happening. Here's a more complete description of the repro steps:

  1. Launch the game without the plugin enabled.
  2. Launch ACT.
  3. Trigger something for Triggernometry or Cactbot, observe that it works.
  4. Enable the plugin.
  5. Again, trigger something for Triggernometry or Cactbot, and observe that it works.
  6. Restart ACT.
  7. Trigger something for Triggernometry or Cactbot, and observe that it does not work.
hmm-norah commented 2 years ago

Tried to reproduce using these steps, it still works for me. This settings file is for the latest commit but it shouldn't matter because that's what Squidmade is also using.

 {

  "$type": "PartyIcons.Configuration, PartyIcons",
  "ChatContentMessage": true,
  "HideLocalPlayerNameplate": true,
  "TestingMode": false,
  "EasternNamingConvention": false,
  "DisplayRoleInPartyList": true,
  "UseContextMenu": true,
  "AssignFromChat": false,
  "Version": 1,
  "IconSetId": 0,
  "SizeMode": 1,
  "NameplateOverworld": 0,
  "NameplateAllianceRaid": 0,
  "NameplateDungeon": 0,
  "NameplateBozjaParty": 0,
  "NameplateBozjaOthers": 0,
  "NameplateRaid": 6,
  "NameplateOthers": 0,
  "ChatOverworld": 2,
  "ChatAllianceRaid": 2,
  "ChatDungeon": 3,
  "ChatRaid": 2,
  "ChatOthers": 0,
  "StaticAssignments": {
    "$type": "System.Collections.Generic.Dictionary`2[[System.String, System.Private.CoreLib],[PartyIcons.Entities.RoleId, PartyIcons]], System.Private.CoreLib"
  }
}
Brasolis commented 2 years ago

Here is my config json if it helps at all

{ "$type": "PartyIcons.Configuration, PartyIcons", "ChatContentMessage": true, "HideLocalPlayerNameplate": true, "TestingMode": false, "EasternNamingConvention": false, "DisplayRoleInPartyList": false, "Version": 1, "IconSetId": 0, "SizeMode": 1, "NameplateOverworld": 0, "NameplateAllianceRaid": 2, "NameplateDungeon": 4, "NameplateBozjaParty": 5, "NameplateBozjaOthers": 0, "NameplateRaid": 4, "NameplateOthers": 0, "ChatOverworld": 0, "ChatAllianceRaid": 0, "ChatDungeon": 0, "ChatRaid": 0, "ChatOthers": 0, "StaticAssignments": { "$type": "System.Collections.Generic.Dictionary`2[[System.String, System.Private.CoreLib],[PartyIcons.Entities.RoleId, PartyIcons]], System.Private.CoreLib" } }

mayatyler commented 2 years ago

Tried to reproduce using these steps, it still works for me. This settings file is for the latest commit but it shouldn't matter because that's what Squidmade is also using.

 {

  "$type": "PartyIcons.Configuration, PartyIcons",
  "ChatContentMessage": true,
  "HideLocalPlayerNameplate": true,
  "TestingMode": false,
  "EasternNamingConvention": false,
  "DisplayRoleInPartyList": true,
  "UseContextMenu": true,
  "AssignFromChat": false,
  "Version": 1,
  "IconSetId": 0,
  "SizeMode": 1,
  "NameplateOverworld": 0,
  "NameplateAllianceRaid": 0,
  "NameplateDungeon": 0,
  "NameplateBozjaParty": 0,
  "NameplateBozjaOthers": 0,
  "NameplateRaid": 6,
  "NameplateOthers": 0,
  "ChatOverworld": 2,
  "ChatAllianceRaid": 2,
  "ChatDungeon": 3,
  "ChatRaid": 2,
  "ChatOthers": 0,
  "StaticAssignments": {
    "$type": "System.Collections.Generic.Dictionary`2[[System.String, System.Private.CoreLib],[PartyIcons.Entities.RoleId, PartyIcons]], System.Private.CoreLib"
  }
}

I really don't know only thing that seems to fix it for at least the people I have talked to is disabling partyicons

hmm-norah commented 2 years ago

Given that someone on the Dalamud Discord was able to reproduce this without PartyIcons enabled, and I can't even get it to happen on my own computer, I'm not convinced that this is actually the problem.

besides, the plugin hasn't had any large functionality changes for months and months.

Helios747 commented 2 years ago

I was able to repro after unloading the plugin once the game was loaded. So it was loaded at one point without a restart.

Given that and that the codebase hasn't been touched in months, I'm led to believe this is either a Dalamud framework issue or an ACT plugin issue. Since the ACT folks are saying that any chat hooking plugin can trigger this.

Possibly an XIVCommon bug? This project leverages it. Does it use it for any chat related features?

mayatyler commented 2 years ago

so where would be the right place to report this p.s sorry for wasting everyones time

GoldenLumia commented 2 years ago

Confirming I also have this issue. Likely not exclusive to PartyIcons, but it is triggering on PartyIcons for me.

squidmade commented 2 years ago

Being the new maintainer, it took some investigation but there was a way that the plugin was getting the rapture atk module (by accessing the ui module's virtual function array) that causes the act plugin's signature scanning to return a false match for the chat log's vtable, e.g. the address reported in this log line that the act plugin outputs

251|2022-09-04T17:15:05.1649342-05:00|Found VTable for [ChatLog] at address [1C50ECB8048]|456c797aaaee5d6b

changes only when PartyIcons is loaded and ACT is restarted.

My guess is that this code was written before there was a convenient function in client structs to get this module. I will say that on the act plugin's side, there may be a situation in the future that will cause its sig scan to return a false match for the chat log vtable and I'll recommend that it gets looked into. I know that sometimes scanning for a vtable can be tricky if the ctor/dtor are simple.