kwsch / PKHeX

Pokémon Save File Editor
https://projectpokemon.org/pkhex/
Other
3.71k stars 696 forks source link

Crash in 24.07.03 release when right-clicking a Platinum save slot #4312

Closed apetresc closed 3 months ago

apetresc commented 3 months ago

Describe the bug In the attached save file, which was working perfectly fine in the release prior to this one, if I right-click on any of the Pokemon in the current Party (all of which are perfectly legit), I get the following crash:

Exception Details:
System.MissingMethodException: Method not found: 'Boolean PKHeX.Core.SaveFile.IsSlotOverwriteProtected(Int32, Int32)'.
   at PluginPile.Sorting.SortingPlugin.<>c__DisplayClass12_0.<LoadContextMenu>b__0(Object s, CancelEventArgs e)
   at System.Windows.Forms.ToolStripDropDown.SetVisibleCore(Boolean visible)
   at System.Windows.Forms.ContextMenuStrip.SetVisibleCore(Boolean visible)
   at System.Windows.Forms.ToolStripDropDown.Show(Control control, Point position)
   at System.Windows.Forms.Control.WmContextMenu(Message& m, Control sourceControl)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(HWND hWnd, MessageId msg, WPARAM wparam, LPARAM lparam)

Loaded Assemblies:
--------------------
System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Private.CoreLib.dll

PKHeX, Version=24.7.3.0, Culture=neutral, PublicKeyToken=null
C:\Users\apetresc\AppData\Local\Temp\.net\PKHeX\0JCk+1Xx7NGwnsTAIDqMbFmcVZOu_zM=\PKHeX.dll

System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Runtime.dll

System.Windows.Forms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\8.0.6\System.Windows.Forms.dll

System.ComponentModel.Primitives, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.ComponentModel.Primitives.dll

System.Windows.Forms.Primitives, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\8.0.6\System.Windows.Forms.Primitives.dll

System.Drawing.Primitives, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Drawing.Primitives.dll

System.Collections.Specialized, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Collections.Specialized.dll

System.Threading.Thread, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Threading.Thread.dll

System.Collections, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Collections.dll

System.Runtime.InteropServices, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Runtime.InteropServices.dll

System.Threading, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Threading.dll

System.Diagnostics.TraceSource, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Diagnostics.TraceSource.dll

System.Drawing.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\8.0.6\System.Drawing.Common.dll

Microsoft.Win32.Primitives, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\Microsoft.Win32.Primitives.dll

System.ComponentModel.EventBasedAsync, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.ComponentModel.EventBasedAsync.dll

Accessibility, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\8.0.6\Accessibility.dll

System.Resources.Extensions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\8.0.6\System.Resources.Extensions.dll

System.Memory, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Memory.dll

System.Drawing, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\8.0.6\System.Drawing.dll

System.Numerics.Vectors, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Numerics.Vectors.dll

PKHeX.Core, Version=24.7.3.0, Culture=neutral, PublicKeyToken=null
C:\Users\apetresc\AppData\Local\Temp\.net\PKHeX\0JCk+1Xx7NGwnsTAIDqMbFmcVZOu_zM=\PKHeX.Core.dll

System.Linq, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Linq.dll

System.Collections.Concurrent, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Collections.Concurrent.dll

Microsoft.Win32.SystemEvents, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\8.0.6\Microsoft.Win32.SystemEvents.dll

System.Collections.NonGeneric, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Collections.NonGeneric.dll

System.Text.Json, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Text.Json.dll

System.Text.Encodings.Web, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Text.Encodings.Web.dll

System.Text.Encoding.Extensions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Text.Encoding.Extensions.dll

System.ComponentModel.TypeConverter, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.ComponentModel.TypeConverter.dll

System.Runtime.Intrinsics, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Runtime.Intrinsics.dll

System.ComponentModel, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.ComponentModel.dll

PKHeX.Drawing.PokeSprite, Version=24.7.3.0, Culture=neutral, PublicKeyToken=null
C:\Users\apetresc\AppData\Local\Temp\.net\PKHeX\0JCk+1Xx7NGwnsTAIDqMbFmcVZOu_zM=\PKHeX.Drawing.PokeSprite.dll

System.ObjectModel, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.ObjectModel.dll

System.Private.Uri, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Private.Uri.dll

System.Runtime.Loader, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Runtime.Loader.dll

System.Windows.Extensions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\8.0.6\System.Windows.Extensions.dll

System.Net.Http, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Net.Http.dll

System.Net.Primitives, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Net.Primitives.dll

System.Diagnostics.Tracing, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Diagnostics.Tracing.dll

System.Diagnostics.DiagnosticSource, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Diagnostics.DiagnosticSource.dll

System.Net.Security, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Net.Security.dll

System.Security.Cryptography, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Security.Cryptography.dll

PluginPile.SortingPlugin, Version=1.8.0.0, Culture=neutral, PublicKeyToken=null
C:\Users\apetresc\AppData\Roaming\PKHeX\plugins\PluginPile.SortingPlugin.dll

System.IO.Compression, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.IO.Compression.dll

PluginPile.Common, Version=1.8.0.0, Culture=neutral, PublicKeyToken=null

System.Console, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Console.dll

System.Net.Sockets, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Net.Sockets.dll

System.Linq.Expressions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Linq.Expressions.dll

Microsoft.CSharp, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\Microsoft.CSharp.dll

System.Threading.Overlapped, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Threading.Overlapped.dll

System.Net.NameResolution, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Net.NameResolution.dll

System.Threading.ThreadPool, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Threading.ThreadPool.dll

System.Configuration.ConfigurationManager, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\8.0.6\System.Configuration.ConfigurationManager.dll

System.Xml.ReaderWriter, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Xml.ReaderWriter.dll

System.Private.Xml, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Private.Xml.dll

System.Net.WebClient, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Net.WebClient.dll

System.Runtime.Serialization.Formatters, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Runtime.Serialization.Formatters.dll

System.Xml.XmlSerializer, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Xml.XmlSerializer.dll

System.Reflection.Emit.ILGeneration, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Reflection.Emit.ILGeneration.dll

System.Reflection.Emit.Lightweight, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Reflection.Emit.Lightweight.dll

System.Reflection.Primitives, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Reflection.Primitives.dll

Anonymously Hosted DynamicMethods Assembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null

PKHeX.Drawing, Version=24.7.3.0, Culture=neutral, PublicKeyToken=null
C:\Users\apetresc\AppData\Local\Temp\.net\PKHeX\0JCk+1Xx7NGwnsTAIDqMbFmcVZOu_zM=\PKHeX.Drawing.dll

PKHeX.Drawing.Misc, Version=24.7.3.0, Culture=neutral, PublicKeyToken=null
C:\Users\apetresc\AppData\Local\Temp\.net\PKHeX\0JCk+1Xx7NGwnsTAIDqMbFmcVZOu_zM=\PKHeX.Drawing.Misc.dll

System.Security.Principal.Windows, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Security.Principal.Windows.dll

System.Security.Claims, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Security.Claims.dll

System.Text.RegularExpressions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Text.RegularExpressions.dll

System.Diagnostics.FileVersionInfo, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Diagnostics.FileVersionInfo.dll

System.Text.Encoding.CodePages, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Text.Encoding.CodePages.dll

System.Diagnostics.StackTrace, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Diagnostics.StackTrace.dll

System.Reflection.Metadata, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Reflection.Metadata.dll

System.Collections.Immutable, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.6\System.Collections.Immutable.dll

--------------------
User Message:
An error occurred in PKHeX. Please report this error to the PKHeX author.

To Reproduce Steps to reproduce the behavior:

  1. Open the attached save
  2. Right-click on a Pokemon in the party
  3. See error

Expected behavior The usual right-click menu should open

Pokemon - Platinum Version (USA) (Rev 1) (Speedup, Uncapped FPS).srm.zip

apetresc commented 3 months ago

Some new observations from playing around with it a bit more:

Hope this helps! I'll just revert to the previous release for now.

MrPerson0 commented 3 months ago

I'm able to right click the Pokemon with no issue. The error seems to be related to plugins, so if you have any plugins, make sure that they are up to date. If they are not, remove them and try again.

apetresc commented 3 months ago

@MrPerson0 Ah, you are indeed correct. The only plugin I had enabled was the Sorting plugin from PKHeXPluginPile, which I wouldn't have expected to have anything to do with the right-click menu. But you're right, disabling that one plugin does remove the crash.

I guess I will report this to PKHeXPluginPile then. Should I close, or is there anything useful about this report to the core? It still feels surprising to me that a sorting plugin can crash the right-click menu.

Lusamine commented 3 months ago

If you read the exception log you posted, it says that a method wasn't found, and the second line says it's from PluginPile. That means something changed in a method in PKHeX and the plugin wasn't updated to handle it. Should be handled by the plugin author.