adamk33n3r / runelite-watchdog

Custom notification plugin for RuneLite
BSD 2-Clause "Simplified" License
6 stars 21 forks source link

[Bug] Unable to open any alerts from previous version. #37

Closed iatethedinosaurs closed 1 year ago

iatethedinosaurs commented 1 year ago

With the new release, I am unable to open any notifications created in the previous version. Creating new notifications works fine, but clicking on notifications previously created just does nothing. The console window for the shadowJar produces the following error:

21:13:05.250 [AWT-EventQueue-0] ERROR net.runelite.client.RuneLite - Uncaught exception:
com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) Error injecting method, java.lang.IllegalArgumentException: invalid range properties
  at com.adamk33n3r.runelite.watchdog.ui.panels.NotificationsPanel.rebuild(Unknown Source)
  while locating com.adamk33n3r.runelite.watchdog.ui.panels.NotificationsPanel

1 error
        at com.google.inject.internal.Errors.throwProvisionExceptionIfErrorsExist(Errors.java:486)
        at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:67)
        at com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:987)
        at com.adamk33n3r.runelite.watchdog.ui.panels.AlertPanel.build(AlertPanel.java:253)
        at com.adamk33n3r.runelite.watchdog.WatchdogPanel.createPluginPanel(WatchdogPanel.java:237)
        at com.adamk33n3r.runelite.watchdog.WatchdogPanel.openAlert(WatchdogPanel.java:198)
        at com.adamk33n3r.runelite.watchdog.ui.AlertListItem.lambda$new$1(AlertListItem.java:31)
        at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
        at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
        at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
        at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
        at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
        at org.pushingpixels.substance.internal.utils.RolloverButtonListener.mouseReleased(RolloverButtonListener.java:126)
        at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
        at java.desktop/java.awt.Component.processMouseEvent(Component.java:6635)
        at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
        at java.desktop/java.awt.Component.processEvent(Component.java:6400)
        at java.desktop/java.awt.Container.processEvent(Container.java:2263)
        at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5011)
        at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
        at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843)
        at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
        at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
        at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
        at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
        at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
        at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843)
        at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
        at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
        at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
        at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.IllegalArgumentException: invalid range properties
        at java.desktop/javax.swing.DefaultBoundedRangeModel.<init>(DefaultBoundedRangeModel.java:109)
        at java.desktop/javax.swing.JSlider.<init>(JSlider.java:278)
        at java.desktop/javax.swing.JSlider.<init>(JSlider.java:245)
        at com.adamk33n3r.runelite.watchdog.ui.notifications.VolumeSlider.<init>(VolumeSlider.java:10)
        at com.adamk33n3r.runelite.watchdog.ui.notifications.panels.SoundNotificationPanel.<init>(SoundNotificationPanel.java:28)
        at com.adamk33n3r.runelite.watchdog.ui.panels.NotificationsPanel.addPanel(NotificationsPanel.java:116)
        at com.adamk33n3r.runelite.watchdog.ui.panels.NotificationsPanel.rebuild(NotificationsPanel.java:94)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at com.google.inject.internal.SingleMethodInjector$1.invoke(SingleMethodInjector.java:70)
        at com.google.inject.internal.SingleMethodInjector.inject(SingleMethodInjector.java:89)
        at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:132)
        at com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:93)
        at com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:80)
        at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1085)
        at com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:80)
        at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:62)
        ... 42 common frames omitted
adamk33n3r commented 1 year ago

Can you post me your watchdog.alerts from your properties as well as the name one of the alerts that you're experiencing issues?

adamk33n3r commented 1 year ago

With this release I migrated some data so there will be different validation rules. The one I'm guessing it is is I changed the volume for TTS from -25 to 5 (was referencing decibels) to 0 to 10. So if your properties still have something below zero, this error would happen.

Now...you SHOULDN'T have this error haha. It should have migrated it correctly. I'm wondering if it's because you ran some release candidates beforehand. Those are always non-supported and you should back up your config before using them.

Can you also tell me if there is a watchdog.pluginVersion in your properties?

iatethedinosaurs commented 1 year ago

watchdog.alerts=[{"type"\:"NotificationFiredAlert","message"\:"[2-3] seaweed spores have spawned\!","regexEnabled"\:false,"enabled"\:true,"name"\:"Seaweed Spores","debounceTime"\:0,"notifications"\:[{"type"\:"Sound","path"\:"C\:\\\\Users\\\\Julian\\\\Downloads\\\\The Essential Retro Video Game Sound Effects Collection [512 sounds] By Juhani Junkala\\\\General Sounds\\\\Coins\\\\sfx_coin_single2.wav","gain"\:-10,"fireWhenFocused"\:true}]},{"type"\:"NotificationFiredAlert","message"\:"Your bird houses are ready to be dismantled.","regexEnabled"\:false,"enabled"\:true,"name"\:"Bird Houses Ready","debounceTime"\:0,"notifications"\:[{"type"\:"GameMessage","message"\:"Your bird houses are ready\!","fireWhenFocused"\:true},{"type"\:"ScreenFlash","color"\:"\#460BC53C","flashNotification"\:"FLASH_TWO_SECONDS","fireWhenFocused"\:true},{"type"\:"Sound","path"\:"C\:\\\\Users\\\\Julian\\\\Downloads\\\\The Essential Retro Video Game Sound Effects Collection [512 sounds] By Juhani Junkala\\\\General Sounds\\\\Alarms\\\\Alarms\\\\sfx_alarm_loop6.wav","gain"\:-25,"fireWhenFocused"\:true}]},{"type"\:"NotificationFiredAlert","message"\:"You are now idle\!","regexEnabled"\:false,"enabled"\:true,"name"\:"Idle Alert","debounceTime"\:0,"notifications"\:[{"type"\:"Sound","path"\:"C\:\\\\Users\\\\Julian\\\\Downloads\\\\The Essential Retro Video Game Sound Effects Collection [512 sounds] By Juhani Junkala\\\\General Sounds\\\\Pause Sounds\\\\sfx_sounds_pause6_in.wav","gain"\:-22,"fireWhenFocused"\:true}]},{"type"\:"NotificationFiredAlert","message"\:"Instant Idle Notify","regexEnabled"\:false,"enabled"\:true,"name"\:"Instant Idle Notify","debounceTime"\:500,"notifications"\:[{"type"\:"Sound","path"\:"C\:\\\\Users\\\\Julian\\\\Downloads\\\\The Essential Retro Video Game Sound Effects Collection [512 sounds] By Juhani Junkala\\\\General Sounds\\\\Buttons\\\\sfx_sounds_button6_new.wav","gain"\:-4,"fireWhenFocused"\:true}]},{"type"\:"NotificationFiredAlert","message"\:"You have low prayer\!","regexEnabled"\:false,"enabled"\:true,"name"\:"Prayer Alert","debounceTime"\:0,"notifications"\:[{"type"\:"Sound","path"\:"C\:\\\\Users\\\\Julian\\\\Downloads\\\\The Essential Retro Video Game Sound Effects Collection [512 sounds] By Juhani Junkala\\\\General Sounds\\\\Negative Sounds\\\\sfx_sounds_error8.wav","gain"\:-22,"fireWhenFocused"\:true}]},{"type"\:"NotificationFiredAlert","message"\:"Your next hitpoint will regenerate soon\!","regexEnabled"\:false,"enabled"\:true,"name"\:"NMZ Regen Reset","debounceTime"\:0,"notifications"\:[{"type"\:"ScreenFlash","color"\:"\#196CD1EC","flashNotification"\:"FLASH_TWO_SECONDS","fireWhenFocused"\:true},{"type"\:"Sound","path"\:"C\:\\\\Users\\\\Julian\\\\Downloads\\\\The Essential Retro Video Game Sound Effects Collection [512 sounds] By Juhani Junkala\\\\General Sounds\\\\Menu Sounds\\\\sfx_menu_move1.wav","gain"\:-10,"fireWhenFocused"\:true}]},{"type"\:"NotificationFiredAlert","message"\:"Crystal impling is in the area","regexEnabled"\:false,"enabled"\:true,"name"\:"Crystal Impling","debounceTime"\:0,"notifications"\:[{"type"\:"Sound","path"\:"C\:\\\\Users\\\\Julian\\\\Downloads\\\\The Essential Retro Video Game Sound Effects Collection [512 sounds] By Juhani Junkala\\\\General Sounds\\\\Coins\\\\sfx_coin_cluster9.wav","gain"\:-16,"fireWhenFocused"\:true},{"type"\:"Overlay","color"\:"\#4600D4FF","sticky"\:false,"timeToLive"\:5,"message"\:"Crystal impling nearby\!","fireWhenFocused"\:true}]},{"type"\:"NotificationFiredAlert","message"\:"A power-up has spawned\: Power surge","regexEnabled"\:false,"enabled"\:true,"name"\:"NMZ Power Surge","debounceTime"\:0,"notifications"\:[{"type"\:"Sound","path"\:"C\:\\\\Users\\\\Julian\\\\Downloads\\\\The Essential Retro Video Game Sound Effects Collection [512 sounds] By Juhani Junkala\\\\General Sounds\\\\Positive Sounds\\\\sfx_sounds_powerup5.wav","gain"\:-25,"fireWhenFocused"\:true}]},{"type"\:"NotificationFiredAlert","message"\:"You have low hitpoints\!","regexEnabled"\:false,"enabled"\:true,"name"\:"Low Hitpoints Flash","debounceTime"\:0,"notifications"\:[{"type"\:"ScreenFlash","color"\:"\#46FF0000","flashNotification"\:"FLASH_UNTIL_CANCELLED","fireWhenFocused"\:true},{"type"\:"Sound","path"\:"C\:\\\\Users\\\\Julian\\\\Downloads\\\\The Essential Retro Video Game Sound Effects Collection [512 sounds] By Juhani Junkala\\\\General Sounds\\\\Alarms\\\\Low health Alarms\\\\sfx_lowhealth_alarmloop6.wav","gain"\:-25,"fireWhenFocused"\:true},{"type"\:"Overlay","color"\:"\#46FF0000","sticky"\:false,"timeToLive"\:5,"message"\:"You have low hitpoints\!","fireWhenFocused"\:true}]},{"type"\:"NotificationFiredAlert","message"\:".*Untradeable drop\: (?\!Rock|Crystal teleport seed|Clue scroll.*|Brimstone key|Raw paddlefish|Weapon frame|.*Corrupted shards)(.*)","regexEnabled"\:true,"enabled"\:true,"name"\:"Untradeable Drop","debounceTime"\:0,"notifications"\:[{"type"\:"Sound","path"\:"C\:\\\\Users\\\\Julian\\\\Downloads\\\\The Essential Retro Video Game Sound Effects Collection [512 sounds] By Juhani Junkala\\\\General Sounds\\\\Coins\\\\sfx_coin_double1.wav","gain"\:-10,"fireWhenFocused"\:true}]},{"type"\:"NotificationFiredAlert","message"\:"NPC aggression has expired\!","regexEnabled"\:false,"enabled"\:true,"name"\:"Aggression Timer","debounceTime"\:0,"notifications"\:[{"type"\:"Sound","path"\:"C\:\\\\Users\\\\Julian\\\\Downloads\\\\The Essential Retro Video Game Sound Effects Collection [512 sounds] By Juhani Junkala\\\\General Sounds\\\\Simple Damage Sounds\\\\sfx_damage_hit10.wav","gain"\:-16,"fireWhenFocused"\:true}]},{"type"\:"NotificationFiredAlert","message"\:"Your overload potion is about to expire\!","regexEnabled"\:false,"enabled"\:true,"name"\:"NMZ Overload","debounceTime"\:0,"notifications"\:[{"type"\:"ScreenFlash","color"\:"\#23AB43EF","flashNotification"\:"FLASH_TWO_SECONDS","fireWhenFocused"\:true},{"type"\:"Sound","path"\:"C\:\\\\Users\\\\Julian\\\\Downloads\\\\The Essential Retro Video Game Sound Effects Collection [512 sounds] By Juhani Junkala\\\\General Sounds\\\\Negative Sounds\\\\sfx_sounds_error15.wav","gain"\:-25,"fireWhenFocused"\:true}]},{"type"\:"NotificationFiredAlert","message"\:"Your overload potion is about to expire\!","regexEnabled"\:false,"enabled"\:true,"name"\:"NMZ Overload Potion","debounceTime"\:0,"notifications"\:[{"type"\:"Sound","path"\:"C\:\\\\Users\\\\Julian\\\\Downloads\\\\The Essential Retro Video Game Sound Effects Collection [512 sounds] By Juhani Junkala\\\\Explosions\\\\Shortest\\\\sfx_exp_shortest_hard5.wav","gain"\:-4,"fireWhenFocused"\:true}]},{"type"\:"NotificationFiredAlert","message"\:"A superior foe has appeared...","regexEnabled"\:false,"enabled"\:true,"name"\:"Superior Foe","debounceTime"\:0,"notifications"\:[{"type"\:"ScreenFlash","color"\:"\#46570505","flashNotification"\:"FLASH_UNTIL_CANCELLED","fireWhenFocused"\:true},{"type"\:"Sound","path"\:"C\:\\\\Users\\\\Julian\\\\Downloads\\\\The Essential Retro Video Game Sound Effects Collection [512 sounds] By Juhani Junkala\\\\General Sounds\\\\Negative Sounds\\\\sfx_sounds_negative2.wav","gain"\:-10,"fireWhenFocused"\:true}]},{"type"\:"ChatAlert","message"\:".*Valuable drop\: .* \\\\(([1-9][0-9][0-9]),\\\\d\\\\d\\\\d coins\\\\)","regexEnabled"\:true,"enabled"\:true,"name"\:"100k-\\u003c1M Drop","debounceTime"\:2500,"notifications"\:[{"type"\:"Sound","path"\:"C\:\\\\Users\\\\Julian\\\\Downloads\\\\The Essential Retro Video Game Sound Effects Collection [512 sounds] By Juhani Junkala\\\\medium_sound.wav","gain"\:-10,"fireWhenFocused"\:true}]},{"type"\:"ChatAlert","message"\:".*Valuable drop\: .* \\\\(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]),\\\\d\\\\d\\\\d,\\\\d\\\\d\\\\d coins\\\\)","regexEnabled"\:true,"enabled"\:true,"name"\:"1M+ Drop","debounceTime"\:2500,"notifications"\:[{"type"\:"Sound","path"\:"C\:\\\\Users\\\\Julian\\\\Downloads\\\\The Essential Retro Video Game Sound Effects Collection [512 sounds] By Juhani Junkala\\\\high_sound.wav","gain"\:-10,"fireWhenFocused"\:true}]},{"type"\:"ChatAlert","message"\:".*Valuable drop\: .* \\\\([5-9],\\\\d\\\\d\\\\d coins\\\\)","regexEnabled"\:true,"enabled"\:true,"name"\:"\\u003c10k Drop","debounceTime"\:2500,"notifications"\:[{"type"\:"Sound","path"\:"C\:\\\\Users\\\\Julian\\\\Downloads\\\\The Essential Retro Video Game Sound Effects Collection [512 sounds] By Juhani Junkala\\\\low_sound.wav","gain"\:-10,"fireWhenFocused"\:true}]},{"type"\:"NotificationFiredAlert","message"\:".*is slacking\!","regexEnabled"\:true,"enabled"\:true,"name"\:"Fishing Idle","debounceTime"\:0,"notifications"\:[{"type"\:"Sound","path"\:"C\:\\\\Users\\\\Julian\\\\Downloads\\\\The Essential Retro Video Game Sound Effects Collection [512 sounds] By Juhani Junkala\\\\General Sounds\\\\Menu Sounds\\\\sfx_menu_move5.wav","gain"\:-10,"fireWhenFocused"\:true}]},{"type"\:"NotificationFiredAlert","message"\:"You received a highlighted drop\: *","regexEnabled"\:false,"enabled"\:true,"name"\:"Highlighted Drop","debounceTime"\:3000,"notifications"\:[{"type"\:"Sound","path"\:"C\:\\\\Users\\\\Julian\\\\Downloads\\\\The Essential Retro Video Game Sound Effects Collection [512 sounds] By Juhani Junkala\\\\General Sounds\\\\Coins\\\\sfx_coin_cluster1.wav","gain"\:-22,"fireWhenFocused"\:true}]},{"type"\:"NotificationFiredAlert","message"\:"You are about to log out from idling too long\!","regexEnabled"\:false,"enabled"\:true,"name"\:"Idle Logout Notification","debounceTime"\:0,"notifications"\:[{"type"\:"Sound","path"\:"C\:\\\\Users\\\\Julian\\\\Downloads\\\\The Essential Retro Video Game Sound Effects Collection [512 sounds] By Juhani Junkala\\\\General Sounds\\\\Negative Sounds\\\\sfx_sounds_error13.wav","gain"\:-25,"fireWhenFocused"\:true}]},{"type"\:"NotificationFiredAlert","message"\:"*The platform beneath you*","regexEnabled"\:false,"enabled"\:true,"name"\:"Volcanic Mine Platform","debounceTime"\:0,"notifications"\:[{"type"\:"Sound","path"\:"C\:\\\\Users\\\\Julian\\\\Downloads\\\\The Essential Retro Video Game Sound Effects Collection [512 sounds] By Juhani Junkala\\\\General Sounds\\\\Negative Sounds\\\\sfx_sounds_damage1.wav","gain"\:-10,"fireWhenFocused"\:true}]},{"type"\:"ChatAlert","message"\:".*Valuable drop\: .* \\\\(([1-9][0-9]),\\\\d\\\\d\\\\d coins\\\\)","regexEnabled"\:true,"enabled"\:true,"name"\:"10k-\\u003c100k Drop","debounceTime"\:2500,"notifications"\:[{"type"\:"Sound","path"\:"C\:\\\\Users\\\\Julian\\\\Downloads\\\\The Essential Retro Video Game Sound Effects Collection [512 sounds] By Juhani Junkala\\\\General Sounds\\\\Coins\\\\sfx_coin_cluster7.wav","gain"\:-10,"fireWhenFocused"\:true}]},{"type"\:"ChatAlert","message"\:"* crumble* to dust*","regexEnabled"\:false,"enabled"\:true,"name"\:"Jewellry Destroyed","debounceTime"\:2500,"notifications"\:[{"type"\:"Sound","path"\:"C\:\\\\Users\\\\Julian\\\\Downloads\\\\The Essential Retro Video Game Sound Effects Collection [512 sounds] By Juhani Junkala\\\\General Sounds\\\\Interactions\\\\sfx_sounds_interaction10.wav","gain"\:-10,"fireWhenFocused"\:true}]},{"type"\:"NotificationFiredAlert","message"\:".*Untradeable drop\:.*(\\\\bClue scroll \\\\(easy\\\\)|\\\\bClue scroll \\\\(medium\\\\)|\\\\bClue scroll \\\\(hard\\\\)|\\\\bClue scroll \\\\(elite\\\\))","regexEnabled"\:true,"enabled"\:true,"name"\:"Clue Scroll Drop","debounceTime"\:0,"notifications"\:[{"type"\:"Sound","path"\:"C\:\\\\Users\\\\Julian\\\\Downloads\\\\The Essential Retro Video Game Sound Effects Collection [512 sounds] By Juhani Junkala\\\\General Sounds\\\\Coins\\\\sfx_coin_double4.wav","gain"\:-10,"fireWhenFocused"\:true}]}]

While all alerts are experiencing it, one of the names is Clue Scroll Drop.

Yeah, that might be possible. I just saw the note on the release candidate that said do not touch. While I did not download that one specifically, I might have cloned the repo during that commit and built the shadowJar which may have screwed things up. So if no one else is experiencing the same issue when the update gets pushed into the plugin-hub, then it most likely will be that I screwed up. I apologize if that's the case.

watchdog.pluginVersion=2.4.0

adamk33n3r commented 1 year ago

Hm, it seems like it didn't actually run the data migrations but it saved the version into the properties so it won't try to run them again. Are you signed into RuneLite? Cause I think if you are, you can't actually modify the properties file cause it pulls down the synced version on launch. If you're not signed in, I'm guessing it might be as simple as deleting the watchdog.pluginVersion line. Otherwise, what you could do is export all of your alerts, fix the volumes yourself in the exported JSON, and then import them again.

iatethedinosaurs commented 1 year ago

I am signed into RuneLite. So I'll go ahead and give the second option a shot. Thanks!

adamk33n3r commented 1 year ago

Ok. As long as all gain properties are within the range 0...10 then you should be good.

adamk33n3r commented 1 year ago

Sorry about that, I do think it must have been some messed up shenanigans with your stuff cause I had a friend test the release version and his stuff upgraded fine.

iatethedinosaurs commented 1 year ago

No worries! I must have screwed something up, but thank you for helping me resolve it! Got them all updated to proper values within the range and re-imported them and all is working fine now. I really appreciate your help!