quisquous / cactbot

FFXIV TypeScript Raiding Overlay
Apache License 2.0
793 stars 383 forks source link

ngld overlayplugin is crashy #660

Closed quisquous closed 4 years ago

quisquous commented 4 years ago

See my comments on #577.

Filing this issue just to have a place to have this conversation and for other people to chime in if they're having the same issue.

nicholasnjh commented 4 years ago

(1) disable the hibiyasleep OverlayPlugin.dll in ACT, close ACT (2) download the latest version of the ngld overlayplugin (3) unblock and unzip that somewhere on disk (4) load the OverlayPlugin.dll in that folder as an ACT plugin (5) download the cactbot-0.11.1-ngld.zip file (6) read and follow these new instructions carefully: https://github.com/quisquous/cactbot/tree/ngldoverlay#installing-cactbot (7) you will need to re-add all of your overlays, sorry (8) please also click the "Automatically Report Errors" checkbox in the general tab

I followed the steps, once i disabled hibiyasleep overlayplugin.dll everything stops working, my acts stops responding altogether. nvm , i force closed it, reopened it and loaded the new overlayplugin and it prompted with

"Could not load type 'rainbowmage.overlayplugin.registry' from assembly 'overlayplugin.common, version= 0.3.4.0. culture= netral, publickeytoken = null

i reinstalled ACT and worked through , it works after i reinstalled it

Akurosia commented 4 years ago

Just tried to use ngld's version, but as soon as i add the raidboss overlay, i get following log output

[14.10.2019 17:57:55] Info: InitPlugin: PluginDirectory = E:\FINAL FANTASY XIV - A Realm Reborn\AdditionalExtern\ACT\Plugins\OverlayPlugin_ngld [14.10.2019 17:57:56] Info: InitPlugin: Initialized. [14.10.2019 17:57:56] Error: Got a subscription for missing event "onPlayerChangedEvent"! [14.10.2019 17:57:56] Error: Got a subscription for missing event "onLogEvent"! [14.10.2019 17:57:56] Error: Got a subscription for missing event "onGameActiveChangedEvent"! [14.10.2019 17:57:56] Error: JS Handler call failed: System.Exception: Tried to call missing handler "cactbotReadDataFiles"! bei RainbowMage.OverlayPlugin.EventDispatcher.CallHandler(JObject e) bei RainbowMage.OverlayPlugin.OverlayApi.<>cDisplayClass15_0.b0() [14.10.2019 17:57:56] Error: Got a subscription for missing event "onZoneChangedEvent"! [14.10.2019 17:57:56] Error: Got a subscription for missing event "onInCombatChangedEvent"! [14.10.2019 17:57:56] Error: JS Handler call failed: System.Exception: Tried to call missing handler "cactbotLoadUser"! bei RainbowMage.OverlayPlugin.EventDispatcher.CallHandler(JObject e) bei RainbowMage.OverlayPlugin.OverlayApi.<>cDisplayClass15_0.b0()

So far also nothing worked for me (tried redownloading both nglds overlay plugin + cactbot version, unblock it, also other cactbot overlay throw similar issues)

EDIT: FYI, ACT started as Admin with x64 .exe // switching back to hibiya without any issues at all at the current state

ngld commented 4 years ago
"Could not load type 'rainbowmage.overlayplugin.registry' from assembly 'overlayplugin.common, version= 0.3.4.0. culture= netral, publickeytoken = null

That error means that the old OverlayPlugin is still loaded, either because ACT hasn't been restarted after disabling the old plugin or because the old DLLs are in the wrong folder (like the ACT folder).

@Akurosia After adding Cactbot, restart ACT. Does that fix the issue?

quisquous commented 4 years ago

@Akurosia I think @panicstevenson (privately) reported this same issue and said that a restart fixed it.

panicstevenson commented 4 years ago

I figured my experience was going to be unique, but just in case anyone else does the same: I did everything in place. I put everything in their old folders, overwriting DLLs, etc. as necessary. I would not recommend this approach.

I actually had to restart ACT twice; initially, everything was erroring in a very obvious and obnoxious manner. Upon coming back up, everything looked great and then I was met with Cactbot errors. Probably not the most obvious thing since everything just came up fresh, I restarted ACT again and then everything went away; no configuration change on my end.

Akurosia commented 4 years ago

I retsarted multiple times and stil could reproduce this on my end. Also i tested if the hibiya version was working still and tried it again with multiple restarts in between but still no luck for my side. I will try it again later today after cleaning the config file for the overlayplugin(ngld) to see if it was just the config that got currupted.

ngld commented 4 years ago

Weird. You did add CactbotOverlay.dll as a plugin, right? What's ACT displaying as the status (the field below the plugin name)?

Regarding the two restarts: The first is necessary to unload the old OverlayPlugin (since you can't have both versions loaded at the same time) and the second restart is necessary because OverlayPlugin only looks for addons during startup and you can't add Cactbot before OverlayPlugin.

Akurosia commented 4 years ago

@ngld here a small status update: Order of Plugins: FFXIV_ACT, OverlayPlugin, Cactbot Status of OverlayPlugin: Initialized Status of Cactbot: Ready

I cleared now all OverlayPlugin (ngld) related files and tried everything again (always with small different kind of errors) but after like the 6th try or so it worked (always made sure to restart multiple times to test if this helped, but apparently it didn't work for me). What i noticed is, that i did not had either the CactbotEventSource element or the MiniParseEventSource available. Now, as i have both available, it works.

What my tests showed, is that i can remove the CactbotEventSource element while i can't remove the MiniParseEventSource element manually.

ngld commented 4 years ago

The errors you saw occured since the CactbotEventSource wasn't registered in OverlayPlugin (it provides the missing events and handlers). Removing CactbotEventSource in the UI doesn't actually do anything (except hide the tab). It's more of an oversight that you can actually close that tab... you're not even supposed to be able to do that.

Now I'm curious what changed between the restarts and why OverlayPlugin didn't detect Cactbot before...

eestyle commented 4 years ago

Have the same problem as Akurosia, though I could not get it to work even after multiple restart or install. The only way I can get it to work is I have to manually uncheck and recheck the "enabled" box of the overlayplugin.dll under plugin listing every time after ACT started.

ngld commented 4 years ago

The problem with addon detection is that at the time OverlayPlugin is initialized through ACT, only the plugins listed above it have been loaded and the remaining plugins aren't accessible since it's still parsing the XML configuration at that point. To find addons that are listed after OverlayPlugin, it waits for the main window to become visible which should only happen after it's done loading all plugins. The only explanation why Cactbot isn't detected during ACT startup but loads fine if OverlayPlugin is enabled afterwards seems to be that the main window is visible before Cactbot is loaded. I wonder why that would happen...

Do you use any other plugins? Which ACT version do you use? Finally, as a workaround, you can still put the CactbotOverlay.dll file in OverlayPlugin's addons folder.

nicholasnjh commented 4 years ago

image image

Ive had time to time freeze / staggers for like a second, and soemtimes the timelines jsut never appear at all . sometimes they do

ngld commented 4 years ago

Not sure about the freezes but the console errors would cause issues with timelines. That's another race condition during overlay load but it should be easy to fix.

eestyle commented 4 years ago

ACT version 3.4.4.264 I use special spell timer, and a chat translate plugin as well as Mopi Mopi with websocket just so I can record game play with parses on window capture.

nicholasnjh commented 4 years ago

I would like to leave another comment on the problem, The timelines work fine, and then suddenly they just disappear for no apparent reason throughout the rest of the fight , this was in a dungeon when i was running ( the twinning) boss had timeline, then suddenly it just went off , like on the last 30% or something, i think its got something to do with the sync ? idk , happened a few times in savage too (this was last tuesday with the ngld version)

ngld commented 4 years ago

Did you see any errors in the log (the text box below the overlay settings)?

nicholasnjh commented 4 years ago

Did you see any errors in the log (the text box below the overlay settings)?

image

its weird because sometimes it does it, sometimes it doesnt

ngld commented 4 years ago

Sorry, forgot that the fix hasn't made it into a release, yet. Can you test if https://rawcdn.githack.com/quisquous/cactbot/bb048b268dcc556d1579129e7a34547fae786de1/ui/raidboss/raidboss.html fixes your problems?

ngld commented 4 years ago

@eestyle @Akurosia If you place CactbotOverlay.dll in OverlayPlugin's addons folder (and don't add it to ACT as a plugin), does that resolve your startup issues?

nicholasnjh commented 4 years ago

Sorry, forgot that the fix hasn't made it into a release, yet. Can you test if https://rawcdn.githack.com/quisquous/cactbot/bb048b268dcc556d1579129e7a34547fae786de1/ui/raidboss/raidboss.html fixes your problems?

its a blank page when i tried to open it , or you telling me to use that link as the URL in the cactbot URL bit?

ngld commented 4 years ago

Yes. Load that instead of your local raidboss.html in your overlay.

eestyle commented 4 years ago

@ngld Yes it does solve it, though however it showed some other errors during start up, but it will load properly. Heres the logs

[20/10/2019 10:29:07 AM] Info: InitPlugin: PluginDirectory = C:\Program Files (x86)\Advanced Combat Tracker\Plugins\NGLD Overlay [20/10/2019 10:29:07 AM] Info: LoadAddons: C:\Program Files (x86)\Advanced Combat Tracker\Plugins\NGLD Overlay\addons\CactbotOverlay.dll [20/10/2019 10:29:07 AM] Info: LoadAddons: Cactbot.PluginLoader: Initialized [20/10/2019 10:29:07 AM] Error: LoadAddons: Cactbot.OverlayAddonMain: RainbowMage.OverlayPlugin.TinyIoCResolutionException: Unable to resolve type: Cactbot.CactbotEventSource ---> RainbowMage.OverlayPlugin.TinyIoCResolutionException: Unable to resolve type: Cactbot.CactbotEventSource ---> System.Exception: Duplicate handler for name cactbotLoadUser! at RainbowMage.OverlayPlugin.EventDispatcher.RegisterHandler(String name, Func`2 handler) at Cactbot.CactbotEventSource..ctor(ILogger logger) at lambda_method(Closure , Object[] ) at RainbowMage.OverlayPlugin.TinyIoCContainer.ConstructType(Type requestedType, Type implementationType, ConstructorInfo constructor, NamedParameterOverloads parameters, ResolveOptions options) --- End of inner exception stack trace --- at RainbowMage.OverlayPlugin.TinyIoCContainer.ConstructType(Type requestedType, Type implementationType, ConstructorInfo constructor, NamedParameterOverloads parameters, ResolveOptions options) at RainbowMage.OverlayPlugin.TinyIoCContainer.MultiInstanceFactory.GetObject(Type requestedType, TinyIoCContainer container, NamedParameterOverloads parameters, ResolveOptions options) --- End of inner exception stack trace --- at RainbowMage.OverlayPlugin.TinyIoCContainer.MultiInstanceFactory.GetObject(Type requestedType, TinyIoCContainer container, NamedParameterOverloads parameters, ResolveOptions options) at RainbowMage.OverlayPlugin.TinyIoCContainer.ResolveInternal(TypeRegistration registration, NamedParameterOverloads parameters, ResolveOptions options) at RainbowMage.OverlayPlugin.Registry.RegisterEventSource[T]() at RainbowMage.OverlayPlugin.PluginMain.LoadAddons() [20/10/2019 10:29:09 AM] Info: cactbot: 0.11.1.0 C:\Program Files (x86)\Advanced Combat Tracker\Plugins\NGLD Overlay\addons\CactbotOverlay.dll [20/10/2019 10:29:09 AM] Info: OverlayPlugin: 0.7.2.0 [20/10/2019 10:29:09 AM] Info: FFXIV Plugin: 2.0.4.0 [20/10/2019 10:29:09 AM] Info: ACT: 3.4.4.264 C:\Program Files (x86)\Advanced Combat Tracker\Advanced Combat Tracker.exe [20/10/2019 10:29:09 AM] Info: Language: en [20/10/2019 10:29:09 AM] Info: InitPlugin: Initialized.

I haven't updated to 0.8.1 though.

ngld commented 4 years ago

Duplicate handler for name cactbotLoadUser!

Now it's being loaded twice... Once you remove CactbotOverlay.dll from your plugins list in ACT, the issue should be resolved.

eestyle commented 4 years ago

Actually I have already removed the cactbotoverlay.dll from plugins list and even tried deleting the file from the cactbot folder so that its only in the ngld overlay addons folder. Its still showing the same error. Perhaps there are something wrong with my ACT config files or something.

ngld commented 4 years ago

Hmm... no. I think there's an old file still left in this Cactbot build. Can you replace your CactbotOverlay.dll with this one and see if that changes anything?

eestyle commented 4 years ago

The new file loaded without any errors if added in overlay addon folder. Though if I use it under plugin listing I still get the subscription for missing event error. Thank you for this, I will just use it in the addons for now.

Akurosia commented 4 years ago

@ngld with the latest cactbot release 0.11.2 and your latest overlay plugin 0.8.1 and with the previously mentioned CactbotOverlay.dll inside the addon folder i get following log: NOTE: this also happens without the previously mentioned CactbotOverlay.dll

[22.10.2019 17:51:03] Info: InitPlugin: PluginDirectory = E:\FINAL FANTASY XIV - A Realm Reborn\AdditionalExtern\ACT\Plugins\OverlayPlugin_ngld [22.10.2019 17:51:03] Info: LoadAddons: E:\FINAL FANTASY XIV - A Realm Reborn\AdditionalExtern\ACT\Plugins\OverlayPlugin_ngld\addons\CactbotOverlay.dll [22.10.2019 17:51:03] Error: LoadAddons: Cactbot.PluginLoader: RainbowMage.OverlayPlugin.TinyIoCResolutionException: Unable to resolve type: Cactbot.CactbotEventSource ---> RainbowMage.OverlayPlugin.TinyIoCResolutionException: Unable to resolve type: Cactbot.CactbotEventSource ---> System.MissingMethodException: Methode nicht gefunden: "Void RainbowMage.OverlayPlugin.EventSourceBase.RegisterEventHandler(System.String, System.Func`2<Newtonsoft.Json.Linq.JObject,Newtonsoft.Json.Linq.JToken>)". bei Cactbot.CactbotEventSource..ctor(ILogger logger) bei lambda_method(Closure , Object[] ) bei RainbowMage.OverlayPlugin.TinyIoCContainer.ConstructType(Type requestedType, Type implementationType, ConstructorInfo constructor, NamedParameterOverloads parameters, ResolveOptions options) --- Ende der internen Ausnahmestapelüberwachung --- bei RainbowMage.OverlayPlugin.TinyIoCContainer.ConstructType(Type requestedType, Type implementationType, ConstructorInfo constructor, NamedParameterOverloads parameters, ResolveOptions options) bei RainbowMage.OverlayPlugin.TinyIoCContainer.MultiInstanceFactory.GetObject(Type requestedType, TinyIoCContainer container, NamedParameterOverloads parameters, ResolveOptions options) --- Ende der internen Ausnahmestapelüberwachung --- bei RainbowMage.OverlayPlugin.TinyIoCContainer.MultiInstanceFactory.GetObject(Type requestedType, TinyIoCContainer container, NamedParameterOverloads parameters, ResolveOptions options) bei RainbowMage.OverlayPlugin.TinyIoCContainer.ResolveInternal(TypeRegistration registration, NamedParameterOverloads parameters, ResolveOptions options) bei RainbowMage.OverlayPlugin.Registry.RegisterEventSource[T]() bei RainbowMage.OverlayPlugin.PluginMain.LoadAddons() [22.10.2019 17:51:04] Info: InitPlugin: Initialized. [22.10.2019 17:51:05] Error: JS Handler call failed: System.Exception: Tried to call missing handler "cactbotLoadUser"! bei RainbowMage.OverlayPlugin.EventDispatcher.CallHandler(JObject e) bei RainbowMage.OverlayPlugin.OverlayApi.<>cDisplayClass16_0.b0() [22.10.2019 17:51:05] Error: JS Handler call failed: System.Exception: Tried to call missing handler "cactbotLoadUser"! bei RainbowMage.OverlayPlugin.EventDispatcher.CallHandler(JObject e) bei RainbowMage.OverlayPlugin.OverlayApi.<>cDisplayClass16_0.b0() [22.10.2019 17:51:05] Error: Got a subscription for missing event "onPlayerChangedEvent"! [22.10.2019 17:51:06] Error: Got a subscription for missing event "onPlayerChangedEvent"! [22.10.2019 17:51:06] Error: JS Handler call failed: System.Exception: Tried to call missing handler "cactbotLoadUser"! bei RainbowMage.OverlayPlugin.EventDispatcher.CallHandler(JObject e) bei RainbowMage.OverlayPlugin.OverlayApi.<>cDisplayClass16_0.b0() [22.10.2019 17:51:06] Error: Got a subscription for missing event "onImportLogEvent"! [22.10.2019 17:51:06] Error: JS Handler call failed: System.Exception: Tried to call missing handler "cactbotLoadUser"! bei RainbowMage.OverlayPlugin.EventDispatcher.CallHandler(JObject e) bei RainbowMage.OverlayPlugin.OverlayApi.<>cDisplayClass16_0.b0() [22.10.2019 17:51:06] Error: JS Handler call failed: Newtonsoft.Json.JsonReaderException: Error reading JObject from JsonReader. Current JsonReader item is not an object: String. Path '', line 1, position 22. bei Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings) bei Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings) bei RainbowMage.OverlayPlugin.OverlayApi.<>cDisplayClass16_0.b0() [22.10.2019 17:51:06] Error: Got a subscription for missing event "onPlayerChangedEvent"! [22.10.2019 17:51:06] Error: Got a subscription for missing event "onPlayerChangedEvent"! [22.10.2019 17:51:06] Error: JS Handler call failed: System.Exception: Tried to call missing handler "cactbotLoadUser"! bei RainbowMage.OverlayPlugin.EventDispatcher.CallHandler(JObject e) bei RainbowMage.OverlayPlugin.OverlayApi.<>cDisplayClass16_0.b0() [22.10.2019 17:51:06] Error: JS Handler call failed: System.Exception: Tried to call missing handler "cactbotLoadUser"! bei RainbowMage.OverlayPlugin.EventDispatcher.CallHandler(JObject e) bei RainbowMage.OverlayPlugin.OverlayApi.<>c__DisplayClass16_0.b__0()

ngld commented 4 years ago

Can you check if you have a Newtonsoft.Json.dll file in your ACT folder? In OverlayPlugin's folder, the only DLL is OverlayPlugin.dll and all other DLLs are in the libs subfolder, right? Finally, can you try disabling all plugins except the FFXIV plugin and OverlayPlugin then restarting ACT?

Akurosia commented 4 years ago

I dont have the Newtonsoft.Json.dll either in ACT nor in my OverlayPlugin_ngld folder (but its inside my OverlayPlugin_ngld/libs/ folder)

I disabled all my plugins except the FFXIV_ACT_Plugin.dll and the OverlayPlugin_ngld\OverlayPlugin.dll

I get now following error:

[22.10.2019 18:09:44] Info: InitPlugin: PluginDirectory = E:\FINAL FANTASY XIV - A Realm Reborn\AdditionalExtern\ACT\Plugins\OverlayPlugin_ngld [22.10.2019 18:09:44] Info: LoadAddons: E:\FINAL FANTASY XIV - A Realm Reborn\AdditionalExtern\ACT\Plugins\OverlayPlugin_ngld\addons\CactbotOverlay.dll [22.10.2019 18:09:44] Error: LoadAddons: Cactbot.PluginLoader: RainbowMage.OverlayPlugin.TinyIoCResolutionException: Unable to resolve type: Cactbot.CactbotEventSource ---> RainbowMage.OverlayPlugin.TinyIoCResolutionException: Unable to resolve type: Cactbot.CactbotEventSource ---> System.MissingMethodException: Methode nicht gefunden: "Void RainbowMage.OverlayPlugin.EventSourceBase.RegisterEventHandler(System.String, System.Func`2<Newtonsoft.Json.Linq.JObject,Newtonsoft.Json.Linq.JToken>)". bei Cactbot.CactbotEventSource..ctor(ILogger logger) bei lambda_method(Closure , Object[] ) bei RainbowMage.OverlayPlugin.TinyIoCContainer.ConstructType(Type requestedType, Type implementationType, ConstructorInfo constructor, NamedParameterOverloads parameters, ResolveOptions options) --- Ende der internen Ausnahmestapelüberwachung --- bei RainbowMage.OverlayPlugin.TinyIoCContainer.ConstructType(Type requestedType, Type implementationType, ConstructorInfo constructor, NamedParameterOverloads parameters, ResolveOptions options) bei RainbowMage.OverlayPlugin.TinyIoCContainer.MultiInstanceFactory.GetObject(Type requestedType, TinyIoCContainer container, NamedParameterOverloads parameters, ResolveOptions options) --- Ende der internen Ausnahmestapelüberwachung --- bei RainbowMage.OverlayPlugin.TinyIoCContainer.MultiInstanceFactory.GetObject(Type requestedType, TinyIoCContainer container, NamedParameterOverloads parameters, ResolveOptions options) bei RainbowMage.OverlayPlugin.TinyIoCContainer.ResolveInternal(TypeRegistration registration, NamedParameterOverloads parameters, ResolveOptions options) bei RainbowMage.OverlayPlugin.Registry.RegisterEventSource[T]() bei RainbowMage.OverlayPlugin.PluginMain.LoadAddons() [22.10.2019 18:09:45] Info: InitPlugin: Initialized. [22.10.2019 18:09:45] Error: JS Handler call failed: System.Exception: Tried to call missing handler "cactbotLoadUser"! bei RainbowMage.OverlayPlugin.EventDispatcher.CallHandler(JObject e) bei RainbowMage.OverlayPlugin.OverlayApi.<>cDisplayClass16_0.b0() [22.10.2019 18:09:45] Error: JS Handler call failed: System.Exception: Tried to call missing handler "cactbotLoadUser"! bei RainbowMage.OverlayPlugin.EventDispatcher.CallHandler(JObject e) bei RainbowMage.OverlayPlugin.OverlayApi.<>cDisplayClass16_0.b0() [22.10.2019 18:09:45] Error: Got a subscription for missing event "onPlayerChangedEvent"! [22.10.2019 18:09:46] Error: Got a subscription for missing event "onPlayerChangedEvent"! [22.10.2019 18:09:46] Error: JS Handler call failed: System.Exception: Tried to call missing handler "cactbotLoadUser"! bei RainbowMage.OverlayPlugin.EventDispatcher.CallHandler(JObject e) bei RainbowMage.OverlayPlugin.OverlayApi.<>cDisplayClass16_0.b0() [22.10.2019 18:09:46] Error: Got a subscription for missing event "onImportLogEvent"! [22.10.2019 18:09:46] Error: JS Handler call failed: System.Exception: Tried to call missing handler "cactbotLoadUser"! bei RainbowMage.OverlayPlugin.EventDispatcher.CallHandler(JObject e) bei RainbowMage.OverlayPlugin.OverlayApi.<>cDisplayClass16_0.b0() [22.10.2019 18:09:46] Error: JS Handler call failed: Newtonsoft.Json.JsonReaderException: Error reading JObject from JsonReader. Current JsonReader item is not an object: String. Path '', line 1, position 22. bei Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings) bei Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings) bei RainbowMage.OverlayPlugin.OverlayApi.<>cDisplayClass16_0.b0() [22.10.2019 18:09:46] Error: Got a subscription for missing event "onPlayerChangedEvent"! [22.10.2019 18:09:46] Error: JS Handler call failed: System.Exception: Tried to call missing handler "cactbotLoadUser"! bei RainbowMage.OverlayPlugin.EventDispatcher.CallHandler(JObject e) bei RainbowMage.OverlayPlugin.OverlayApi.<>cDisplayClass16_0.b0() [22.10.2019 18:09:46] Error: Got a subscription for missing event "onPlayerChangedEvent"! [22.10.2019 18:09:46] Error: JS Handler call failed: System.Exception: Tried to call missing handler "cactbotLoadUser"! bei RainbowMage.OverlayPlugin.EventDispatcher.CallHandler(JObject e) bei RainbowMage.OverlayPlugin.OverlayApi.<>c__DisplayClass16_0.b__0()

ngld commented 4 years ago

So it's still the same error. Hm... I last touched the method it's complaining about 2 months ago so I doubt that's the actual issue here (unless you have a very old version of OverlayPlugin). Can you double check? If you select OverlayPlugin in the plugins list, it should display 0.8.1.0 as the version on the right side.

The only other possible cause for that error is that .NET managed to load two copies of Newtonsoft.Json.dll but if that's happening I'm wondering why it worked for the other person before.

Akurosia commented 4 years ago

This is th eoutput from your plugin version (i espacilly made 2 directions so i can swap in case of an error between your version and hibiya without compromising either the hibiya or your version):

Assembly Info: FileName: E:\FINAL FANTASY XIV - A Realm Reborn\AdditionalExtern\ACT\Plugins\OverlayPlugin_ngld\OverlayPlugin.dll OriginalFilename: OverlayPlugin.dll FileVersion: 0.8.1.0 ProductVersion: 0.8.1.0 FileDescription: OverlayPlugin ProductName: OverlayPlugin LegalCopyright: Copyright © RainbowMage 2015, Kuriyama hibiya 2016, ngld 2019 Comments: Overlay plugin for Advanced Combat Tracker

EDIT: I also tried with removeing everything "old" from your version, + clearing OverlayPluginCache and OverlayPluginCef and start fresh with the same result (either with cactbot in addon folder or loaded as seperate dll via ACT)

ngld commented 4 years ago

The hibiya files are in a subfolder and not in ACT's own folder, right? Can you attach your OverlayPlugin.Core.dll file? Should be in OverlayPlugin_ngld\libs and you might have to put it in a .zip to upload it (GitHub checks file extensions).

Akurosia commented 4 years ago

All my plugins are always in ACT/Plugins/NAMEOFPLUGIN/ e.g. your plugin is in ACT\Plugins\OverlayPlugin_ngld while hibiya is in ACT\Plugins\OverlayPlugin_hibiya where the only exception is the FFXIV_ACT_Plugin itself which lies in ACT/Plugins/ directly Also here the requested OverlayPlugin.Core.dll : OverlayPlugin.Core.zip

ngld commented 4 years ago

So... that DLL includes the method that the error is complaining about and it is loaded since that file contains the logic to load addons. AFAIK that only leaves the possibility that Newtonsoft.Json.dll is loaded twice which seems pretty weird given what you've said before.

Akurosia commented 4 years ago

From the ACT config, these are my plugins for the test i ran while testing your version:

    <ActPlugins>
        <Plugin Enabled="False" Path="E:\FINAL FANTASY XIV - A Realm Reborn\AdditionalExtern\ACT\Plugins\websoket\ACTWebSocket.dll" />
        <Plugin Enabled="True" Path="E:\FINAL FANTASY XIV - A Realm Reborn\AdditionalExtern\ACT\Plugins\FFXIV_ACT_Plugin.dll" />
        <Plugin Enabled="False" Path="E:\FINAL FANTASY XIV - A Realm Reborn\AdditionalExtern\ACT\Plugins\OverlayPlugin_hibiya\OverlayPlugin.dll" />
        <Plugin Enabled="True" Path="E:\FINAL FANTASY XIV - A Realm Reborn\AdditionalExtern\ACT\Plugins\OverlayPlugin_ngld\OverlayPlugin.dll" />
        <Plugin Enabled="False" Path="E:\FINAL FANTASY XIV - A Realm Reborn\AdditionalExtern\ACT\Plugins\Triggernometry\Triggernometry.dll" />
        <Plugin Enabled="False" Path="E:\FINAL FANTASY XIV - A Realm Reborn\AdditionalExtern\ACT\Plugins\ping\ACT.FFXIVPing.dll" />
        <Plugin Enabled="False" Path="E:\FINAL FANTASY XIV - A Realm Reborn\AdditionalExtern\ACT\Plugins\SlimDX_XAudio\SlimDX_XAudio2.dll" />
        <Plugin Enabled="False" Path="E:\FINAL FANTASY XIV - A Realm Reborn\AdditionalExtern\ACT\Plugins\Hojuring\ACT.TTSYukkuri.dll" />
        <Plugin Enabled="False" Path="E:\FINAL FANTASY XIV - A Realm Reborn\AdditionalExtern\ACT\Plugins\Hojuring\ACT.UltraScouter.dll" />
        <Plugin Enabled="False" Path="E:\FINAL FANTASY XIV - A Realm Reborn\AdditionalExtern\ACT\Plugins\Hojuring\ACT.SpecialSpellTimer.dll" />
        <Plugin Enabled="False" Path="E:\FINAL FANTASY XIV - A Realm Reborn\AdditionalExtern\ACT\Plugins\Universalis\UniversalisPlugin.dll" />
    </ActPlugins>
Akurosia commented 4 years ago

I think i found the culprit... I have a 4k and a 3440x1440 display, so i had a lot of problems with ACT rescalling to a tiny size whenever it started on my 4k display. So i activated the windows internal HighDPI scalling feature (Rightclick on the Advanced Combat Tracker.exe > Compatibility tab > Change High DPI Settings) There i activated the Second checkbox and set it to application Apparently it seams, whenever i do this, i have the cactbot loading issue. If i remove it, ACT is loading everything fine (except its actual size in generall as it is way to tiny)

eestyle commented 4 years ago

Can confirm, also on dual monitor, after unchecking high dpi scalling it will load the plugin normally. Though I still cannot get raidboss to work properly. No error messages but raidboss would not start when I test it in summarford farm. Test plugin shows its detecting everything though. After reverting back to hibi plugin I now get an error on raidboss.html line 66 and 63 which dosent exist...though the plugin works with those errors. Tried fresh install act with the same result from new and old overlay plugin.

Also I thought I mention this, yesterday while I was trying to get the new plugin working, something triggered my pc speaker(the beep speaker inside my pc case) to beep no stop when I launch act and firefox/chrome. Probably not related but I was only fiddling around with cactbot and overlay at that time. It only went away after I reinstalled .net framwork 4.8. Though I will have to see if that really fixed it, I didnt have much time after to test things.

geetarkev commented 4 years ago

Attempted changing overlay plugin to ngld yesterday. Things went bad. Ended up doing a fresh ACT install and now I'm getting this error whether I use hibiyasleep or ngld:

Info: Cactbot: BrowserConsole: Unknown job role (Source: file:///C:/Users/geeta/cactbot/resources/common.js, Line: 35)

The Test html works fine, but some of the others do not, including raidboss.

ngld commented 4 years ago

The 5.1 patch broke the FFXIV plugin. We'll have to wait until that's updated before ACT is usable again.

geetarkev commented 4 years ago

Ah, that's good to hear. I thought I was being an idiot again today.

geetarkev commented 4 years ago

I'm getting this error even after doing a complete fresh install:

Error: JS Handler call failed: System.Exception: Tried to call missing handler "cactbotLoadUser"! at RainbowMage.OverlayPlugin.EventDispatcher.CallHandler(JObject e) at RainbowMage.OverlayPlugin.OverlayApi.<>c__DisplayClass16_0.b__0()

ngld commented 4 years ago

That means that the Cactbot addon hasn't been loaded. Make sure that the Cactbot EventSource appears in the overlay list: Advanced_Combat_Tracker_2019-10-31_07-52-54

If Cactbot is in the plugins list and enabled but still doesn't appear in OverlayPlugin, try moving the CactbotOverlay.dll in OverlayPlugin's addons folder and restart ACT.

de-gene-rate commented 4 years ago

Can also confirm that the plugin is not friendly with the windows DPI compatibility settings. For the life of me no matter what I did the log would keep spitting errors and the timeline wouldnt load at all in game.

Read that turning off DPI compatibility worked for a couple of people and that did it. Everything looks fine now.

Also if you need to do this, you can increase the ACT window text by going to the ACT Options tab -> Color and Font Settings -> Main User Interface -> click each of the 3 Change Font buttons one by one and increase their size till you get something that works for you.

geetarkev commented 4 years ago

Unfortunately putting it in addons leaves me with a string of even more errors.

Error: LoadAddons: Cactbot.PluginLoader: RainbowMage.OverlayPlugin.TinyIoCResolutionException: Unable to resolve type: Cactbot.CactbotEventSource ---> RainbowMage.OverlayPlugin.TinyIoCResolutionException: Unable to resolve type: Cactbot.CactbotEventSource ---> System.MissingMethodException: Method not found: 'Void RainbowMage.OverlayPlugin.EventSourceBase.RegisterEventHandler(System.String, System.Func2<Newtonsoft.Json.Linq.JObject,Newtonsoft.Json.Linq.JToken>)'. at Cactbot.CactbotEventSource..ctor(ILogger logger) at lambda_method(Closure , Object[] ) at RainbowMage.OverlayPlugin.TinyIoCContainer.ConstructType(Type requestedType, Type implementationType, ConstructorInfo constructor, NamedParameterOverloads parameters, ResolveOptions options) --- End of inner exception stack trace --- at RainbowMage.OverlayPlugin.TinyIoCContainer.ConstructType(Type requestedType, Type implementationType, ConstructorInfo constructor, NamedParameterOverloads parameters, ResolveOptions options) at RainbowMage.OverlayPlugin.TinyIoCContainer.MultiInstanceFactory.GetObject(Type requestedType, TinyIoCContainer container, NamedParameterOverloads parameters, ResolveOptions options) --- End of inner exception stack trace --- at RainbowMage.OverlayPlugin.TinyIoCContainer.MultiInstanceFactory.GetObject(Type requestedType, TinyIoCContainer container, NamedParameterOverloads parameters, ResolveOptions options) at RainbowMage.OverlayPlugin.TinyIoCContainer.ResolveInternal(TypeRegistration registration, NamedParameterOverloads parameters, ResolveOptions options) at RainbowMage.OverlayPlugin.Registry.RegisterEventSource[T]() at RainbowMage.OverlayPlugin.PluginMain.LoadAddons() [10/31/2019 10:44:17 AM] Error: LoadAddons: Cactbot.OverlayAddonMain: RainbowMage.OverlayPlugin.TinyIoCResolutionException: Unable to resolve type: Cactbot.CactbotEventSource ---> RainbowMage.OverlayPlugin.TinyIoCResolutionException: Unable to resolve type: Cactbot.CactbotEventSource ---> System.MissingMethodException: Method not found: 'Void RainbowMage.OverlayPlugin.EventSourceBase.RegisterEventHandler(System.String, System.Func2<Newtonsoft.Json.Linq.JObject,Newtonsoft.Json.Linq.JToken>)'. at Cactbot.CactbotEventSource..ctor(ILogger logger) at lambda_method(Closure , Object[] ) at RainbowMage.OverlayPlugin.TinyIoCContainer.ConstructType(Type requestedType, Type implementationType, ConstructorInfo constructor, NamedParameterOverloads parameters, ResolveOptions options) --- End of inner exception stack trace --- at RainbowMage.OverlayPlugin.TinyIoCContainer.ConstructType(Type requestedType, Type implementationType, ConstructorInfo constructor, NamedParameterOverloads parameters, ResolveOptions options) at RainbowMage.OverlayPlugin.TinyIoCContainer.MultiInstanceFactory.GetObject(Type requestedType, TinyIoCContainer container, NamedParameterOverloads parameters, ResolveOptions options) --- End of inner exception stack trace --- at RainbowMage.OverlayPlugin.TinyIoCContainer.MultiInstanceFactory.GetObject(Type requestedType, TinyIoCContainer container, NamedParameterOverloads parameters, ResolveOptions options) at RainbowMage.OverlayPlugin.TinyIoCContainer.ResolveInternal(TypeRegistration registration, NamedParameterOverloads parameters, ResolveOptions options) at RainbowMage.OverlayPlugin.Registry.RegisterEventSource[T]() at RainbowMage.OverlayPlugin.PluginMain.LoadAddons() [10/31/2019 10:44:18 AM] Info: InitPlugin: Initialized. [10/31/2019 10:44:18 AM] Error: Got a subscription for missing event "onPlayerChangedEvent"! [10/31/2019 10:44:18 AM] Error: JS Handler call failed: System.Exception: Tried to call missing handler "cactbotLoadUser"! at RainbowMage.OverlayPlugin.EventDispatcher.CallHandler(JObject e) at RainbowMage.OverlayPlugin.OverlayApi.<>c__DisplayClass16_0.b__0()

ngld commented 4 years ago

@geetarkev Have you tried disabling the high DPI compatibility setting as suggested before?

geetarkev commented 4 years ago

Okay so that fixed it, thank you! However, I had the dpi settings on because the plugin was screwing with the ACT text and it makes the cactbot timers/alerts smaller. It's not a big deal, I'll get used to it. I'm just glad its working with the new plugin now.

act

ngld commented 4 years ago

The weird thing is that I can't reproduce the issue on my own system. No matter what I set my DPI settings to, it works fine (even with the released versions).

I might have found a solution. Can someone with the problem here test this OverlayPlugin build? If that alone doesn't fix it, try moving Cactbot out of the addons folder and add it again as an ACT plugin.

geetarkev commented 4 years ago

I'm running a 1440p monitor with windows at 150% scaling otherwise stuff is too small. When I change it to 100% scaling it fixes ACT.

Akurosia commented 4 years ago

@ngld After multiple restarts with my previously mentioned highDPI settings, it works at least for me with you just mentioned build (cactbot loaded as dll, not via addon folder).

But i noticed that for some odd reason the jobs overlay does not pick up the jobs.css from my set user directory (which is set to file:///E:/FINAL%20FANTASY%20XIV%20-%20A%20Realm%20Reborn/AdditionalExtern/ACT/Plugins/OverlayPlugin_ngld/cactbot/user) but does pick up my raidboss.css

Another addition is, when loading the raidboss-emulator an error is always printed when starting ACT or reloading the overlay

[31.10.2019 21:19:03] Error: JS Handler call failed: Newtonsoft.Json.JsonReaderException: Error reading JObject from JsonReader. Current JsonReader item is not an object: String. Path '', line 1, position 22.
   bei Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
   bei Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
   bei RainbowMage.OverlayPlugin.OverlayApi.<>c__DisplayClass16_0.<callHandler>b__0()
ngld commented 4 years ago

Due to the way ACT loads plugins, Cactbot sometimes fails to detect the user directory. Does it work if you manually select it on the Cactbot EventSource tab?

Regarding the raidboss-emulator issue: That looks like the emulator is sending invalid data to OverlayPlugin. I'll look into it.