Giter VIP home page Giter VIP logo

cookiemonsterframework's People

Contributors

bennett-zhang avatar danielnoord avatar dependabot[bot] avatar

Stargazers

 avatar

Watchers

 avatar  avatar

cookiemonsterframework's Issues

Cookie Monster Overriding Settings for other Mods (Easy Fix!)

Describe the bug
Cookie Monster is overriding the settings of CCSE mods.

To Reproduce
The steps needed to reproduce the behavior:

  1. Import the save file specified below. Note how the milk is currently Cosmic Milk.
  2. Open the console.
  3. Load CCSE: Game.LoadMod("https://klattmose.github.io/CookieClicker/CCSE.js");
  4. Note how the milk has now been reset to the default milk (in this case, Peach Milk). This is because CCSE has a separate property that controls the milk.
  5. Use the milk selector to change the milk back to Cosmic Milk.
  6. Save. (Ctrl+S) and reload the page.
  7. Load CCSE again: Game.LoadMod("https://klattmose.github.io/CookieClicker/CCSE.js");
  8. This time, because we saved previously, the milk should remain as Cosmic Milk.
  9. Now load Cookie Monster: Game.LoadMod('https://cookiemonsterteam.github.io/CookieMonster/dist/CookieMonster.js');
  10. Because of a bug, Cookie Monster will reset all of CCSE's settings.
  11. Reload without saving.
  12. Load CCSE one final time: Game.LoadMod("https://klattmose.github.io/CookieClicker/CCSE.js");
  13. Milk is now reset to default. The expected behavior is for the milk to stay as Cosmic Milk.

Solution to Fix the Bug
In saveFramework.js, there is a bug with the regular expression. On line 15, you are doing a greedy replacement. The regular expression is searching for modName and the final semicolon in the entire save file. What you want instead is a lazy search for the next semicolon.

The save file looks something like this:

cookieMonsterFramework:{\"settings\":{},\"headers\":{\"infoMenu\":1,\"optionsMenu\":1},\"favouriteSettings\":[]};CCSE:{\"version\":\"2.035\",\"Achievements\":{},\"Upgrades\":{},\"Buildings\":{},\"Buffs\":{},\"Seasons\":{},\"OtherMods\":{},\"vault\":[],\"permanentUpgrades\":[-1,-1,-1,-1,-1],\"chimeType\":\"No sound\",\"milkType\":\"Cosmic milk\",\"bgType\":\"Automatic\",\"showVersionNo\":1};

Note how it contains the data for both cookieMonsterFramework and CCSE. The regular expression is incorrectly selecting the entire string, including the settings for CCSE.

The fix is simple: change the regular expression from ${modName}.*(;|$) to ${modName}.*?(;|$). The extra question mark will perform a lazy search of the string and end at the first semicolon it encounters.

Save file

Mi4wNTJ8fDE2ODcyOTMxNDI4Mzc7MTY4NDk5NDk4OTk4NTsxNjg3NTk3ODQ3NTc5O1Bhbm9yYW1pYyBMaXphcmQ7eGhqemk7MywwLDEsMCw2LDMyLDE0fDExMDExMTAxMTAwMTAxMTAwMTExMDExMDAwMXwzLjIzNDE3OTQ2NzIwMTA5ODRlKzY5OzMuOTY3Njg2MzA4OTIxMTY2ZSs2OTsxNTUwMzsxNjcwOzMuOTY3MzAyOTI1OTM2MTM2ZSs2OTsxMDI7MjM7MTI7Ni45OTQxNzUxNDMzMjg5NjJlKzcyOzM7MTswOzA7LTE7MTA5Ozk0OzIuNjM5MzUzNzg2Mjg3Mzg5NGUrNjQ7NDQxOzE0OzE5Oy0xOzU7OzcuNDk1MzE2ODc1NzUxMDQ4ZSs2NDsxMjsxOTEyNDAwNDM3OTEzMDU4MDAwMDA7MTkxMTY1MTA1NjQ2MjQxMTUwMDAwOzc0OTM4MTQ1MDY0NjQ3NjAwOzA7MDs4NTg7ODM5Ozg2Mjs3Njc7Njk5OzI3OzE4OzIwOzI7NzU7MDswOzI0OzkwOzE2ODc1Mjk1NDc5MzM7MDswOzEyOSwyMjc7NDE7MTsxOzIuMjExNDQ0ODMwNjMyNjc0ZSs1OTs1MDsyMDAwOzEwMDA7fDEwNTksMTk0NiwxLjU5NzkyNDc1ODI4MjAzNGUrNjQsNCwsMCwxMDU5OzEwNTUsMTYwNSwyLjA2NDczODcyNjE4OTM2NjhlKzY0LDAsLDAsMTA1NTsxMDExLDI0MDgsMi44NzkxNDUwMTI1MzI4ODA0ZSs2Miw5LDE2ODc1OTc5MDcyNzI6NDoxNjg3NTg1NDE0ODAxOjA6MTMyOjE1MzE6MTo0OjE2ODcyOTMxNDI4NDI6IDExMTExMTEwMTExMTExMTExMDExMTAwMTExMTExMTAxMDAgMDowOjA6MDowOjA6MDowOjA6MDowOjA6MDowOjg6NjQ6MjM6NDc6MDowOjIyOjE6MDowOjA6MDowOjA6MDowOjA6MDowOjA6MDowOjA6MDowOjA6MTg6MTI6MDowOjA6MDowOjA6MDowOjA6MDowOjA6MDowOjA6MDowOjA6MDowOjA6MDowOjA6MDowOjA6MDowOjA6LDAsMTAxMTs5OTYsMjQzOCw2LjcwNDE4MjE3NTMzODk4OWUrNjIsMCwsMSw5OTY7OTc2LDIzNjIsNC42NzcyOTYwNzI3NDQzNDJlKzYxLDAsLDEsOTc2Ozk1OCwyMjkzLDUuNTQxMTkxOTY4MzQyMTA4ZSs2MCwxLDI6MTA2OjE6LTI1MTkwLjgxMDMxMjYyOTgyMzoxOiA0NTc0OjU6MTU6NDYyOjA6MDowOjAhMzI5MjoyOjEwMzo3NzowOjA6MDowITgxMDA6NTozMjc6OTI6MTA1MToxOjA6NzAxITc1MTg6MjoxMDA6MTg2OjA6MDowOjAhMTUwNjk6MjozNzI6MTg6MDowOjA6MCE1MzcwOjA6LTExMTozNzc6MDowOjA6MCExMjkyNDo1OjM2MToxNzQ6MDowOjA6Mzk0MCExMDE2NDo1OjU1OjQ2ODowOjA6MDo0NTg1ITI0OTc6MjotMjU2OjM1Mzo5NTM6MTowOjU4NzMhODcyMDo1Oi01OTo4MzowOjA6MDo2ODM3ITE1MzEyOjU6NTY6MjY2OjA6MDowOjY4MDEhMTI2Nzg6NToxNjoyMTk6MDowOjA6MCExNDAwMTo1OjYzOjQ0ODowOjA6MDowITEwNTA2OjU6OTE6NDU0Ojg1MzoxOjA6NjMxNCExMTExMzozOjUwNTozNzg6ODIzOjE6MDoxMDM1NyE5MDQ4OjE6LTM5NToxMTc6MDowOjA6MCExODk1ODo1OjE2NToyMjY6MDowOjA6MCExOTg3MToyOjIyMTozMDA6MDowOjA6MCEgMSwwLDk1ODs5NDIsMTMyMiw1LjMwMTI3MzA2NDM3MTE5OWUrNjIsMSw4LzAvNyAzIDE2ODc1Nzc1MzEwNzggMSwwLDk0Mjs5MTksMjE4OSwyLjA3NDI2NDQ3MjY2MDY2OTdlKzYwLDMsMTI2IDE0NSAxMzg5IDEsMCw5MTk7OTAwLDIxMjYsMy41NDgxMTY5MDk5ODk1Njk0ZSs1OSwwLCwwLDkwMDs4ODAsMjA4NywxLjA4MTkyMDcyNzI1MjkxNzZlKzYwLDAsLDAsODgwOzg3OCwyMDgzLDEuNDM1MDU2NjE4ODY5MDU3MWUrNjIsMCwsMCw4Nzg7ODQ1LDExOTUsNC43MjgzMjEzNTg4MzQ1MTVlKzYyLDAsLDAsODQ1OzgyNiwxOTc5LDkuNzAwMzAzNjk3NzM0NDQ1ZSs2MSwwLCwwLDgyNjs4MDksMTk0NSwzLjA5NTA2NjQzNDcyNTQxMzdlKzYyLDAsLDAsODA5Ozc5MSwxMTQxLDEuMzUzNjUzMzEyNTEwMjA2OGUrNjMsMCwsMCw3OTE7Nzc4LDExMjgsOC41NDA0Mzg5MTU1MjExNjllKzYzLDAsLDAsNzc4Ozc0OCwxMDk4LDQuNzA4MTQ3ODI4NTc4OTIzNWUrNjQsMCwsMCw3NDg7Njk4LDEwNDksMi44NDM1NjE3OTI4NjY3MzQ3ZSs2MywwLCwwLDY5ODs2NzAsMTAyMCwxLjE0MjQ5NDI5Mzc3OTY5OThlKzY0LDAsLDAsNjcwOzYzNywxMDExLDYuNDIzMTczNTM5MjY3ODdlKzY0LDAsLDAsNjM3O3wxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTExMTExMTAwMTExMTExMDAxMDExMTEwMDExMTExMTAwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMDAxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMDEwMTAwMDExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAwMTAxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMDExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMDAwMDExMTExMTExMTExMTExMTExMTExMTExMTExMTExMDExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTExMTExMTExMTEwMDExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMDAxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTExMTExMTExMTExMTExMTExMTEwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExfDExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwMTExMTExMTExMTExMTEwMTExMTExMTExMTAwMDAxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwMDAwMDAwMDAwMDAwMDExMTAxMTExMTExMTExMTAxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwMTExMTExMTExMTExMTExMTExMTAxMTExMTExMTExMTExMTEwMDExMTExMTExMTExMTExMTExMTExMTExMTExMDExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTExMTExMTExMTAxMTExMTExMTExMTExMTExMTAxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMDExMTExMTExMTExMTExMTExMTExMTExMTF8fENvb2tpZU1vbnN0ZXI6eyJzZXR0aW5ncyI6eyJDUFNNb2RlIjowLCJBdmdDUFNIaXN0IjozLCJBdmdDbGlja3NIaXN0IjowLCJDYWxjV3JpbmsiOjAsIlNjYWxlIjowLCJTY2FsZURlY2ltYWxzIjoyLCJTY2FsZVNlcGFyYXRvciI6MCwiU2NhbGVDdXRvZmYiOiI5OTk5OTkiLCJUaW1lRm9ybWF0IjowLCJEZXRhaWxlZFRpbWUiOjEsIlBQRGlzcGxheVRpbWUiOjEsIkJ1aWxkQ29sb3VyIjoxLCJQUE9ubHlDb25zaWRlckJ1eWFibGUiOjAsIlBQRXhjbHVkZVRvcCI6MCwiUFBSaWdpZGVsTW9kZSI6MCwiUFBTZWNvbmRzTG93ZXJMaW1pdCI6MCwiQ29sb3VyQmx1ZSI6IiM0YmI4ZjAiLCJDb2xvdXJHcmVlbiI6IiMwMGZmMDAiLCJDb2xvdXJZZWxsb3ciOiIjZmZmZjAwIiwiQ29sb3VyT3JhbmdlIjoiI2ZmN2YwMCIsIkNvbG91clJlZCI6IiNmZjAwMDAiLCJDb2xvdXJQdXJwbGUiOiIjZmYwMGZmIiwiQ29sb3VyR3JheSI6IiNiM2IzYjMiLCJDb2xvdXJQaW5rIjoiI2ZmMTQ5MyIsIkNvbG91ckJyb3duIjoiIzhiNDUxMyIsIkJvdEJhciI6MCwiVGltZXJCYXIiOjEsIlRpbWVyQmFyUG9zIjowLCJUaW1lckJhck92ZXJsYXkiOjIsIkF1dG9zYXZlVGltZXJCYXIiOjEsIlVwQmFyQ29sb3VyIjoxLCJVcGdyYWRlQmFyRml4ZWRQb3MiOjEsIlNvcnRCdWlsZGluZ3MiOjAsIlNvcnRVcGdyYWRlcyI6MCwiVXBncmFkZXNOZXZlckNvbGxhcHNlIjowLCJEcmFnb25BdXJhSW5mbyI6MSwiR3JpbW9pcmVCYXIiOjEsIkdDVGltZXIiOjEsIkZhdmljb24iOjEsIldyaW5rbGVyQnV0dG9ucyI6MSwiSGlkZVNlY3Rpb25zQnV0dG9ucyI6MCwiVG9vbHRpcEJ1aWxkVXBncmFkZSI6MSwiVG9vbHRpcEFtb3IiOjEsIlRvb2xXYXJuTHVja3kiOjEsIlRvb2xXYXJuTHVja3lGcmVuenkiOjEsIlRvb2xXYXJuQ29uanVyZSI6MSwiVG9vbFdhcm5Db25qdXJlRnJlbnp5IjoxLCJUb29sV2FybkVkaWZpY2UiOjEsIlRvb2xXYXJuVXNlciI6MCwiVG9vbFdhcm5Cb24iOjEsIlRvb2xXYXJuUG9zIjowLCJUb29sdGlwR3JpbSI6MSwiVG9vbHRpcFdyaW5rIjoxLCJUb29sdGlwTHVtcCI6MSwiVG9vbHRpcFBsb3RzIjoxLCJUb29sdGlwUGFudGhlb24iOjEsIlRvb2x0aXBBc2NlbmRCdXR0b24iOjEsIlN0YXRzIjoxLCJNaXNzaW5nVXBncmFkZXMiOjEsIk1pc3NpbmdBY2hpZXZlbWVudHMiOjEsIlVwU3RhdHMiOjEsIkhlYXZlbmx5Q2hpcHNUYXJnZXQiOiIxIiwiU2hvd01pc3NlZEdDIjoxLCJUaXRsZSI6MSwiR2VuZXJhbFNvdW5kIjoxLCJHQ05vdGlmaWNhdGlvbiI6MCwiR0NGbGFzaCI6MSwiQ29sb3VyR0NGbGFzaCI6IiNmZmZmZmYiLCJHQ1NvdW5kIjowLCJHQ1ZvbHVtZSI6MjUsIkdDU291bmRVUkwiOiJodHRwczovL2ZyZWVzb3VuZC5vcmcvZGF0YS9wcmV2aWV3cy82Ni82NjcxN185MzE2NTUtbHEubXAzIiwiRm9ydHVuZU5vdGlmaWNhdGlvbiI6MCwiRm9ydHVuZUZsYXNoIjoxLCJDb2xvdXJGb3J0dW5lRmxhc2giOiIjZmZmZmZmIiwiRm9ydHVuZVNvdW5kIjoxLCJGb3J0dW5lVm9sdW1lIjo1MCwiRm9ydHVuZVNvdW5kVVJMIjoiaHR0cHM6Ly9mcmVlc291bmQub3JnL2RhdGEvcHJldmlld3MvMTc0LzE3NDAyN18zMjQyNDk0LWxxLm1wMyIsIlNlYU5vdGlmaWNhdGlvbiI6MCwiU2VhRmxhc2giOjEsIkNvbG91clNlYUZsYXNoIjoiI2ZmZmZmZiIsIlNlYVNvdW5kIjoxLCJTZWFWb2x1bWUiOjEwLCJTZWFTb3VuZFVSTCI6Imh0dHBzOi8vd3d3LmZyZWVzb3VuZC5vcmcvZGF0YS9wcmV2aWV3cy8xMjEvMTIxMDk5XzIxOTMyNjYtbHEubXAzIiwiR2FyZEZsYXNoIjowLCJDb2xvdXJHYXJkRmxhc2giOiIjZmZmZmZmIiwiR2FyZFNvdW5kIjoxLCJHYXJkVm9sdW1lIjoxNSwiR2FyZFNvdW5kVVJMIjoiaHR0cHM6Ly9mcmVlc291bmQub3JnL2RhdGEvcHJldmlld3MvMTAzLzEwMzA0Nl84NjE3MTQtbHEubXAzIiwiTWFnaWNOb3RpZmljYXRpb24iOjAsIk1hZ2ljRmxhc2giOjEsIkNvbG91ck1hZ2ljRmxhc2giOiIjZmZmZmZmIiwiTWFnaWNTb3VuZCI6MSwiTWFnaWNWb2x1bWUiOjUwLCJNYWdpY1NvdW5kVVJMIjoiaHR0cHM6Ly9mcmVlc291bmQub3JnL2RhdGEvcHJldmlld3MvMjIxLzIyMTY4M18xMDE1MjQwLWxxLm1wMyIsIldyaW5rbGVyTm90aWZpY2F0aW9uIjowLCJXcmlua2xlckZsYXNoIjowLCJDb2xvdXJXcmlua2xlckZsYXNoIjoiI2ZmZmZmZiIsIldyaW5rbGVyU291bmQiOjEsIldyaW5rbGVyVm9sdW1lIjoxNSwiV3JpbmtsZXJTb3VuZFVSTCI6Imh0dHBzOi8vZnJlZXNvdW5kLm9yZy9kYXRhL3ByZXZpZXdzLzEyNC8xMjQxODZfODA0My1scS5tcDMiLCJXcmlua2xlck1heE5vdGlmaWNhdGlvbiI6MCwiV3JpbmtsZXJNYXhGbGFzaCI6MSwiQ29sb3VyV3JpbmtsZXJNYXhGbGFzaCI6IiNmZmZmZmYiLCJXcmlua2xlck1heFNvdW5kIjoxLCJXcmlua2xlck1heFZvbHVtZSI6MTUsIldyaW5rbGVyTWF4U291bmRVUkwiOiJodHRwczovL2ZyZWVzb3VuZC5vcmcvZGF0YS9wcmV2aWV3cy8xNTIvMTUyNzQzXzE1NjYzLWxxLm1wMyIsIkJ1bGtCdXlCbG9jayI6MSwiRmF2b3VyaXRlU2V0dGluZ3MiOjF9LCJoZWFkZXJzIjp7IkZhdm91cml0ZSI6MSwiQ2FsY3VsYXRpb24iOjEsIk5vdGF0aW9uIjoxLCJDb2xvdXJzIjoxLCJCYXJzRGlzcGxheSI6MSwiVG9vbHRpcCI6MSwiU3RhdGlzdGljcyI6MSwiTm90aWZpY2F0aW9uIjoxLCJOb3RpZmljYXRpb25HZW5lcmFsIjoxLCJOb3RpZmljYXRpb25HQyI6MSwiTm90aWZpY2F0aW9uRkMiOjEsIk5vdGlmaWNhdGlvblNlYSI6MSwiTm90aWZpY2F0aW9uR2FyZCI6MSwiTm90aWZpY2F0aW9uTWFnaSI6MSwiTm90aWZpY2F0aW9uV3JpbmsiOjEsIk5vdGlmaWNhdGlvbldyaW5rTWF4IjoxLCJNaXNjZWxsYW5lb3VzIjoxLCJMdWNreSI6MSwiQ2hhaW4iOjEsIlNwZWxscyI6MSwiR2FyZGVuIjoxLCJQcmVzdGlnZSI6MSwiV3JpbmsiOjEsIlNlYSI6MSwiQWNoaWV2cyI6MSwiTWlzYyI6MSwiaW5mb01lbnUiOjEsIm9wdGlvbnNNZW51IjoxfSwiZmF2b3VyaXRlU2V0dGluZ3MiOlsiUFBPbmx5Q29uc2lkZXJCdXlhYmxlIiwiUFBSaWdpZGVsTW9kZSIsIlNvcnRCdWlsZGluZ3MiXSwidmVyc2lvbiI6IjIuMDUyLjEwIiwibG9ja2VkTWluaWdhbWVzIjpbXX07Y29va2llTW9uc3RlckZyYW1ld29yazp7InNldHRpbmdzIjp7fSwiaGVhZGVycyI6eyJpbmZvTWVudSI6MSwib3B0aW9uc01lbnUiOjF9LCJmYXZvdXJpdGVTZXR0aW5ncyI6W119Ow%3D%3D%21END%21

Browser
Chrome

Notification flash eats inputs

Describe the bug
Flash element eats inputs, interfering with pointer clicks and hovers.

To Reproduce
Most easily testable with hover, though clicks are affected too:

  1. Hover over a collapsed menu (in the given save, Switches menu should expand on hover).
  2. Wait for a flash (in the given save, this will probably be a wrinkler)
  3. Menu collapses as it's no longer hovered.

Screenshots
Recording attached.

2021-09-14_19-26-28.mp4

Save file
This save should have a relatively fast Wrinkler spawn, which will cause screen flash when they reach the cookie:

Mi4wNDJ8fDE2MzE0NjI5MzQwNzM7MTYzMDU5OTEzNTI3MzsxNjMxNjQyMDQ5NDQ3O19oYXQ7c2hmdWR8MDExMTExMDExMDAxMTExMDAxMTEwMTEwMDB8Mi4zOTI2OTQyNTA1Nzg4MDQ1ZSs1MDs0LjQ2NDM4Mzk0NzU3MjYxNGUrNTI7MTI3ODQwOzMyMDQ7NC4yMjg2ODE3NzY5ODE1MDVlKzUyOzQ2MDs0OzE2OzMuMTI2OTIxNjE3NDE5NTE0ZSs1MDszOzIwOzA7MDstMTsxMDAxOzU5NDs3LjQ3NDgxMDQ4MDc2NzM4NWUrNDk7MTA0ODsxNDs1MTU7MTY0MzgzMjs2O2NocmlzdG1hczswOzA7Njc4NzQzNDcwOTA1Nzs0NTUwMTg2OTMyOTY1OzIyMzcyNDc3NzYwOTI7MDswOzQ5NDs2OTQ7NjEzOzY5Mzs2NDE7MjU7MTg7MTc7MTs1MDswOzA7MDsxODsxNjMxNjM1OTM0OTk2OzA7MDs7MTAwOzE7MTszLjI0NzA4ODI0NDU0NjI3NmUrNDQ7MDt8ODAwLDExNTAsMi4xNTcyNTUwMjUyODk4Nzg0ZSs0OCwwLCwwLDgwMDs4MTAsMTE2MCwyLjE1ODE1OTUwMjc2NDk2NjVlKzQ5LDAsLDEsODEwOzc0MCwxODA4MCw0LjM2OTgxODE1MDUwNDMwMmUrNDQsNSwxNjMxNjQyMTI1NTAzOjE6MTYzMTY0MDc0NTIzMDowOjc2OjM3NDoxOjA6MTYzMTQ2MjkzNDA4NDogMTExMTExMDAxMTAxMTEwMDAwMDAwMDAxMTEwMDEwMDAwMCAwOjA6MDowOjA6MDowOjA6MDowOjA6MDowOjA6MDowOjA6MDowOjA6MDowOjA6MDowOjA6MjE6MTA6MDowOjA6MDowOjA6MDowOjA6MDoxMDo3Njo5OjgyOjEwOjc2Ojk6Nzg6MDowOjA6MDowOjA6MjE6MTA6MDowOjA6MDowOjA6MDowOjA6MDowOjA6MDowOjA6MDowOjA6LDAsNzYwOzcyMCwyMTg4MCwzLjg4Mzk3NTg1NDY2NjU0ODVlKzQ2LDAsLDEsNzQwOzcyMCwxODYwMCw0LjkyOTY0MjI1NTM2MDY1OTRlKzQ1LDAsLDEsNzIwOzcxMCwxMDc1MCwxLjAzODQ1MjA2NDYwMTYzODRlKzQ1LDEsMDoyMDowOjQ0MzA4LjgxMTg2NTgxNzMzOjE6IDQ4ODoyOi0yMToyNDM6ODAwOjA6MCE0MTg6NDotMTA0OjQ4OjA6MDowITQ0ODo0Oi03ODoyMzY6NzIwOjA6MCE2ODM3OjU6MzY6NTc5OjA6MDowITgwNTE6MTo0Nzo0NTc6NzEwOjA6MCE3MDMwOjQ6MTE4OjU3MDo2ODA6MDowITUxOTk6MjotMzM6Njk6NjUwOjA6MCE2ODU6NDotMTY0Ojc3OjYzMDowOjAhMTAwNTA6MToxOTozMzI6MDowOjAhNzE2OTo0Oi0xNTM6NDUyOjA6MDowITg5NDE6MjotNDk6NDk3OjA6MDowITkyMjQ6MjotNDE6MTY2OjU3MDowOjAhMTA0NTc6MjotNjg6NDY3OjU1MDowOjAhMTQ3NzA6NToxNzoxNTowOjA6MCE1NjI4OjQ6LTE4NzoxMDE6MDowOjAhMTY4OTc6MToxNTozNDo0NzA6MDowISAwLDAsNzEwOzcwMCw0NDcwLDUuNTMzMTk3NTc0NTUyODA0ZSs0NSwxLDkvOC83LzIgMSAxNjMxNjQwNDU3NTkzIDEsMCw3MDA7NjcwLDEwMjAsMS43MzYxNTIzOTgyNDkyNjUzZSs0NSwxLDExMCAyNCAxNjUgMSwwLDY3MDs2NTAsMTAwMCw0LjQ3NjM0ODgwMTEyMTU4NmUrNDQsMCwsMSw2NTA7NjMwLDk4MCwyLjYwNTkyNDg0MjgzODQ2MjZlKzQ1LDAsLDEsNjMwOzYzMCw5ODAsMy40NjU5ODUxNTA4OTEyNDM1ZSs0NywwLCwxLDYzMDs2MDAsOTUwLDguODQyNDA4Njk3MTU1MzY1ZSs0NiwwLCwxLDYwMDs1ODAsOTMwLDguMTY3ODkwNTYxOTkxNzk3ZSs0NywwLCwxLDU4MDs1NzAsOTIwLDYuNTc1MTY4MTI2MjM1NjAxZSs0OCwwLCwxLDU3MDs1NTAsOTAwLDEuMzc3ODc4NjgxMjY1MTkzOGUrNDksMCwsMSw1NTA7NTUwLDkwMCwxLjE4MDA3ODY3MjI5MzczM2UrNTAsMCwsMSw1NTA7NTAwLDg1MCwxLjU3OTEyMDc4NDUxNTY1NjJlKzQ5LDAsLDEsNTAwOzQ2OSw4MjcsOS41MDE0MjYyOTI3NzYxNjVlKzQ5LDAsLDEsNDcwO3wxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTExMTExMTAwMTExMTExMDAxMDExMTExMTExMTExMTAwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMDAxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMDEwMTAwMDExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAwMTAxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMDExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMDAwMDExMTExMTExMTExMTExMTExMTExMTExMTExMTExMDExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTExMTExMTExMTEwMDExMTExMTExMTExMTExMTExMTExMDAwMDAwMDAwMDAwMDAxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMDAxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMDAxMTExMTExMTAwMDAxMTExMTExMDAwMDAwMDAwMDAxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwMDAwMDAwMDAwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwMDExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwMDAxMTExMTExMTAwMDAwMDAwMTExMTExMTF8MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTExMTExMTExMTExMTAxMTExMTExMTExMDAwMDExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTExMDAxMTAxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAwMDAwMDAwMDAwMDAwMTEwMTExMTExMTExMTExMDExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTExMTExMTExMTAwMDAxMTExMTExMTExMTEwMDExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTExMTExMTExMTExMTExMTExMDExMTEwMDAwMTExMDAwMDAwMTAxMTAwMDAxMTExMTExMTExMTExMTExMTAwMTExMTExMTExMTExMDAwMDAxMTExMTExMTExMDAwMTExMDExMTEwMDAwMDAwMHx8Q29va2llTW9uc3Rlcjp7InNldHRpbmdzIjp7IkNQU01vZGUiOjEsIkF2Z0NQU0hpc3QiOjMsIkF2Z0NsaWNrc0hpc3QiOjAsIkNhbGNXcmluayI6MCwiU2NhbGUiOjIsIlNjYWxlRGVjaW1hbHMiOjIsIlNjYWxlU2VwYXJhdG9yIjowLCJTY2FsZUN1dG9mZiI6OTk5OTk5LCJUaW1lRm9ybWF0IjowLCJEZXRhaWxlZFRpbWUiOjEsIlBQRGlzcGxheVRpbWUiOjAsIkJ1aWxkQ29sb3VyIjoxLCJQUE9ubHlDb25zaWRlckJ1eWFibGUiOjAsIlBQRXhjbHVkZVRvcCI6MCwiUFBSaWdpZGVsTW9kZSI6MSwiUFBTZWNvbmRzTG93ZXJMaW1pdCI6MCwiQ29sb3VyQmx1ZSI6IiM0YmI4ZjAiLCJDb2xvdXJHcmVlbiI6IiMwMGZmMDAiLCJDb2xvdXJZZWxsb3ciOiIjZmZmZjAwIiwiQ29sb3VyT3JhbmdlIjoiI2ZmN2YwMCIsIkNvbG91clJlZCI6IiNmZjAwMDAiLCJDb2xvdXJQdXJwbGUiOiIjZmYwMGZmIiwiQ29sb3VyR3JheSI6IiNiM2IzYjMiLCJDb2xvdXJQaW5rIjoiI2ZmMTQ5MyIsIkNvbG91ckJyb3duIjoiIzhiNDUxMyIsIkJvdEJhciI6MCwiVGltZXJCYXIiOjEsIlRpbWVyQmFyUG9zIjowLCJUaW1lckJhck92ZXJsYXkiOjIsIkF1dG9zYXZlVGltZXJCYXIiOjAsIlVwQmFyQ29sb3VyIjoxLCJVcGdyYWRlQmFyRml4ZWRQb3MiOjEsIlNvcnRCdWlsZGluZ3MiOjAsIlNvcnRVcGdyYWRlcyI6MCwiVXBncmFkZXNOZXZlckNvbGxhcHNlIjowLCJEcmFnb25BdXJhSW5mbyI6MSwiR3JpbW9pcmVCYXIiOjEsIkdDVGltZXIiOjEsIkZhdmljb24iOjEsIldyaW5rbGVyQnV0dG9ucyI6MSwiSGlkZVNlY3Rpb25zQnV0dG9ucyI6MCwiVG9vbHRpcEJ1aWxkVXBncmFkZSI6MSwiVG9vbHRpcEFtb3IiOjEsIlRvb2xXYXJuTHVja3kiOjEsIlRvb2xXYXJuTHVja3lGcmVuenkiOjEsIlRvb2xXYXJuQ29uanVyZSI6MSwiVG9vbFdhcm5Db25qdXJlRnJlbnp5IjoxLCJUb29sV2FybkVkaWZpY2UiOjEsIlRvb2xXYXJuVXNlciI6MCwiVG9vbFdhcm5Cb24iOjEsIlRvb2xXYXJuUG9zIjoxLCJUb29sdGlwR3JpbSI6MSwiVG9vbHRpcFdyaW5rIjoxLCJUb29sdGlwTHVtcCI6MSwiVG9vbHRpcFBsb3RzIjoxLCJUb29sdGlwUGFudGhlb24iOjEsIlRvb2x0aXBBc2NlbmRCdXR0b24iOjEsIlN0YXRzIjoxLCJNaXNzaW5nVXBncmFkZXMiOjEsIk1pc3NpbmdBY2hpZXZlbWVudHMiOjEsIlVwU3RhdHMiOjEsIkhlYXZlbmx5Q2hpcHNUYXJnZXQiOjEsIlNob3dNaXNzZWRHQyI6MSwiVGl0bGUiOjEsIkdlbmVyYWxTb3VuZCI6MSwiR0NOb3RpZmljYXRpb24iOjAsIkdDRmxhc2giOjEsIkNvbG91ckdDRmxhc2giOiIjZmZmZmZmIiwiR0NTb3VuZCI6MSwiR0NWb2x1bWUiOjEwMCwiR0NTb3VuZFVSTCI6Imh0dHBzOi8vZnJlZXNvdW5kLm9yZy9kYXRhL3ByZXZpZXdzLzY2LzY2NzE3XzkzMTY1NS1scS5tcDMiLCJGb3J0dW5lTm90aWZpY2F0aW9uIjowLCJGb3J0dW5lRmxhc2giOjEsIkNvbG91ckZvcnR1bmVGbGFzaCI6IiNmZmZmZmYiLCJGb3J0dW5lU291bmQiOjEsIkZvcnR1bmVWb2x1bWUiOjEwMCwiRm9ydHVuZVNvdW5kVVJMIjoiaHR0cHM6Ly9mcmVlc291bmQub3JnL2RhdGEvcHJldmlld3MvMTc0LzE3NDAyN18zMjQyNDk0LWxxLm1wMyIsIlNlYU5vdGlmaWNhdGlvbiI6MCwiU2VhRmxhc2giOjEsIkNvbG91clNlYUZsYXNoIjoiI2ZmZmZmZiIsIlNlYVNvdW5kIjoxLCJTZWFWb2x1bWUiOjEwMCwiU2VhU291bmRVUkwiOiJodHRwczovL3d3dy5mcmVlc291bmQub3JnL2RhdGEvcHJldmlld3MvMTIxLzEyMTA5OV8yMTkzMjY2LWxxLm1wMyIsIkdhcmRGbGFzaCI6MSwiQ29sb3VyR2FyZEZsYXNoIjoiI2ZmZmZmZiIsIkdhcmRTb3VuZCI6MSwiR2FyZFZvbHVtZSI6MTAwLCJHYXJkU291bmRVUkwiOiJodHRwczovL2ZyZWVzb3VuZC5vcmcvZGF0YS9wcmV2aWV3cy8xMDMvMTAzMDQ2Xzg2MTcxNC1scS5tcDMiLCJNYWdpY05vdGlmaWNhdGlvbiI6MCwiTWFnaWNGbGFzaCI6MSwiQ29sb3VyTWFnaWNGbGFzaCI6IiNmZmZmZmYiLCJNYWdpY1NvdW5kIjoxLCJNYWdpY1ZvbHVtZSI6MTAwLCJNYWdpY1NvdW5kVVJMIjoiaHR0cHM6Ly9mcmVlc291bmQub3JnL2RhdGEvcHJldmlld3MvMjIxLzIyMTY4M18xMDE1MjQwLWxxLm1wMyIsIldyaW5rbGVyTm90aWZpY2F0aW9uIjowLCJXcmlua2xlckZsYXNoIjoxLCJDb2xvdXJXcmlua2xlckZsYXNoIjoiI2ZmZmZmZiIsIldyaW5rbGVyU291bmQiOjEsIldyaW5rbGVyVm9sdW1lIjoxMDAsIldyaW5rbGVyU291bmRVUkwiOiJodHRwczovL2ZyZWVzb3VuZC5vcmcvZGF0YS9wcmV2aWV3cy8xMjQvMTI0MTg2XzgwNDMtbHEubXAzIiwiV3JpbmtsZXJNYXhOb3RpZmljYXRpb24iOjAsIldyaW5rbGVyTWF4Rmxhc2giOjEsIkNvbG91cldyaW5rbGVyTWF4Rmxhc2giOiIjZmZmZmZmIiwiV3JpbmtsZXJNYXhTb3VuZCI6MSwiV3JpbmtsZXJNYXhWb2x1bWUiOjEwMCwiV3JpbmtsZXJNYXhTb3VuZFVSTCI6Imh0dHBzOi8vZnJlZXNvdW5kLm9yZy9kYXRhL3ByZXZpZXdzLzE1Mi8xNTI3NDNfMTU2NjMtbHEubXAzIiwiQnVsa0J1eUJsb2NrIjoxLCJGYXZvdXJpdGVTZXR0aW5ncyI6MX0sImhlYWRlcnMiOnsiRmF2b3VyaXRlIjowLCJDYWxjdWxhdGlvbiI6MCwiTm90YXRpb24iOjAsIkNvbG91cnMiOjAsIkJhcnNEaXNwbGF5IjowLCJUb29sdGlwIjowLCJTdGF0aXN0aWNzIjowLCJOb3RpZmljYXRpb24iOjEsIk5vdGlmaWNhdGlvbkdlbmVyYWwiOjAsIk5vdGlmaWNhdGlvbkdDIjowLCJOb3RpZmljYXRpb25GQyI6MCwiTm90aWZpY2F0aW9uU2VhIjowLCJOb3RpZmljYXRpb25HYXJkIjowLCJOb3RpZmljYXRpb25NYWdpIjowLCJOb3RpZmljYXRpb25XcmluayI6MCwiTm90aWZpY2F0aW9uV3JpbmtNYXgiOjAsIk1pc2NlbGxhbmVvdXMiOjEsIkx1Y2t5IjoxLCJDaGFpbiI6MCwiU3BlbGxzIjowLCJHYXJkZW4iOjAsIlByZXN0aWdlIjoxLCJXcmluayI6MSwiU2VhIjoxLCJBY2hpZXZzIjowLCJNaXNjIjoxLCJpbmZvTWVudSI6MSwib3B0aW9uc01lbnUiOjF9LCJmYXZvdXJpdGVTZXR0aW5ncyI6WyJQUFJpZ2lkZWxNb2RlIl0sInZlcnNpb24iOiIyLjAzMS4xMCIsImxvY2tlZE1pbmlnYW1lcyI6W119O2Nvb2tpZU1vbnN0ZXJGcmFtZXdvcms6eyJzZXR0aW5ncyI6e30sImhlYWRlcnMiOnsiaW5mb01lbnUiOjEsIm9wdGlvbnNNZW51IjowfSwiZmF2b3VyaXRlU2V0dGluZ3MiOltdfTtNRVRBOipjb29sZXIgc2FtcGxlIG1vZCwqbGFuZyBzYW1wbGUgbW9kLCpzYW1wbGUgbW9kLGNvb2tpZSBtb25zdGVyOw

Browser
Steam, v 2.042


Setting style pointer-events: none; on the flash element should resolve the issue; I'd have made a pull request for this but I don't have a proper test environment set up for Cookie Clicker. The following in the console does seem to work, as far as I can tell:

$('#CMFlashScreen').style.pointerEvents = "none";

Settings get's duplicated on any setting's input

Describe the bug
CookieMonsterFramework duplicates it's settings whenever a setting is changed, this effects other Mod's settings being displayed.

To Reproduce

  1. Load in any mod that uses CookieMonsterFramework, the particular mod I use is Cookie Monster.
  2. Go into settings, minimize the Cookie Monster Mod Family folder (not required to reproduce, but makes it easier to see the issue)
  3. Change any setting, for example Custom Grandmas or Alt Font. It doesn't matter which setting since all settings cause the issue.

Screenshots
https://imgur.com/a/jXX34Kt

Save file
Unimportant, can be reproduced on brand new saves or even old saves that's been going on for a while.

Browsers
Reproducible for me on my following browsers:
Chrome 93 (Brave)
Chrome 83 (Google Chrome)
Edge 94
Firefox 92

Proposal to fix
I haven't tested this, but as a coder, this seems like a possible solution to fix the problem.
CookieMonsterFramework/src/frameworkDataObject/menuSections/options/createFrameworkOptionsMenuSection.js add the following on the first line of the createFrameworkOptionsMenuSection function:

if(l('cookieMonsterFrameworkMenuSection')) l('cookieMonsterFrameworkMenuSection').remove();

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.