{"action":"created","issue":{"url":"https://api.github.com/repos/linuxgurugamer/KSPAddonVersionChecker/issues/13","repository_url":"https://api.github.com/repos/linuxgurugamer/KSPAddonVersionChecker","labels_url":"https://api.github.com/repos/linuxgurugamer/KSPAddonVersionChecker/issues/13/labels{/name}","comments_url":"https://api.github.com/repos/linuxgurugamer/KSPAddonVersionChecker/issues/13/comments","events_url":"https://api.github.com/repos/linuxgurugamer/KSPAddonVersionChecker/issues/13/events","html_url":"https://github.com/linuxgurugamer/KSPAddonVersionChecker/pull/13","id":348550235,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2ODc0NzI5","number":13,"title":"Handle duplicative dll paths","user":{"login":"HebaruSan","id":1559108,"node_id":"MDQ6VXNlcjE1NTkxMDg=","avatar_url":"https://avatars2.githubusercontent.com/u/1559108?v=4","gravatar_id":"","url":"https://api.github.com/users/HebaruSan","html_url":"https://github.com/HebaruSan","followers_url":"https://api.github.com/users/HebaruSan/followers","following_url":"https://api.github.com/users/HebaruSan/following{/other_user}","gists_url":"https://api.github.com/users/HebaruSan/gists{/gist_id}","starred_url":"https://api.github.com/users/HebaruSan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HebaruSan/subscriptions","organizations_url":"https://api.github.com/users/HebaruSan/orgs","repos_url":"https://api.github.com/users/HebaruSan/repos","events_url":"https://api.github.com/users/HebaruSan/events{/privacy}","received_events_url":"https://api.github.com/users/HebaruSan/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-08-08T02:17:45Z","updated_at":"2018-08-10T20:26:45Z","closed_at":"2018-08-10T15:31:57Z","author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/linuxgurugamer/KSPAddonVersionChecker/pulls/13","html_url":"https://github.com/linuxgurugamer/KSPAddonVersionChecker/pull/13","diff_url":"https://github.com/linuxgurugamer/KSPAddonVersionChecker/pull/13.diff","patch_url":"https://github.com/linuxgurugamer/KSPAddonVersionChecker/pull/13.patch"},"body":"## Motivation\r\n\r\nhttps://github.com/KSP-CKAN/NetKAN/issues/1455#issuecomment-217134778\r\n\r\n> If a copy of miniavc.dll exists in both the GameData base folder and any subfolder then all dialogs surfaced by the mod are surfaced twice and that is annoying AF if you have a couple hundred mods installed.\r\n\r\nThis pull request aims to fix that.\r\n\r\n## Cause\r\n\r\nThe scenario described above can be generalized to any situation in which two copies of MiniAVC.dll are located in directories which are in an ancestor/descendant relationship. E.g.:\r\n\r\n- GameData/MiniAVC.dll\r\n- GameData/Astrogator/MiniAVC.dll\r\n\r\nOr even something like:\r\n\r\n- GameData/HeavilyBundledMod/MiniAVC.dll\r\n- GameData/HeavilyBundledMod/AnotherMod/Plugins/MiniAVC.dll\r\n\r\nIn those cases, this code will find version files in the nested subfolder multiple times and add them to the list of addons to check:\r\n\r\nhttps://github.com/linuxgurugamer/KSPAddonVersionChecker/blob/0caed8a8baffbd78885d1f8a701a803b2ba20463/MiniAVC/AddonLibrary.cs#L90-L100\r\n\r\nLater this results in multiple popups if there are incompatibilities or updates.\r\n\r\n## Changes\r\n\r\nNow we build a temporary `Dictionary` that tracks version files and their associated settings. If we find the same version file more than once, we don't add it multiple times; instead we compare the associated settings files and choose the one that is closest to that version file. Once we've checked all the files, we collapse the `Dictionary` to a list of `Addons`, as before.\r\n\r\nThis is what I was trying to compile on the mod adoption tutorial thread. I have not been able to get the build working, so there may be syntax errors here; just let me know and I'll fix them."},"comment":{"url":"https://api.github.com/repos/linuxgurugamer/KSPAddonVersionChecker/issues/comments/412196524","html_url":"https://github.com/linuxgurugamer/KSPAddonVersionChecker/pull/13#issuecomment-412196524","issue_url":"https://api.github.com/repos/linuxgurugamer/KSPAddonVersionChecker/issues/13","id":412196524,"node_id":"MDEyOklzc3VlQ29tbWVudDQxMjE5NjUyNA==","user":{"login":"HebaruSan","id":1559108,"node_id":"MDQ6VXNlcjE1NTkxMDg=","avatar_url":"https://avatars2.githubusercontent.com/u/1559108?v=4","gravatar_id":"","url":"https://api.github.com/users/HebaruSan","html_url":"https://github.com/HebaruSan","followers_url":"https://api.github.com/users/HebaruSan/followers","following_url":"https://api.github.com/users/HebaruSan/following{/other_user}","gists_url":"https://api.github.com/users/HebaruSan/gists{/gist_id}","starred_url":"https://api.github.com/users/HebaruSan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HebaruSan/subscriptions","organizations_url":"https://api.github.com/users/HebaruSan/orgs","repos_url":"https://api.github.com/users/HebaruSan/repos","events_url":"https://api.github.com/users/HebaruSan/events{/privacy}","received_events_url":"https://api.github.com/users/HebaruSan/received_events","type":"User","site_admin":false},"created_at":"2018-08-10T20:26:45Z","updated_at":"2018-08-10T20:26:45Z","author_association":"NONE","body":"I assume that would break existing usages. E.g.:\r\n\r\n- MyMod/MiniAVC.dll\r\n- MyMod/MyMod.version\r\n- MyMod/BundledMod1/BundledMod1.version"}}
{"actor":{"display_login":"HebaruSan"}}