The logs of error i get is this:
Error invoking callback for event playerConnecting: System.InvalidCastException: Invalid cast from 'System.String' to 'CitizenFX.Core.Player'.
at System.Convert.DefaultToType (System.IConvertible value, System.Type targetType, System.IFormatProvider provider) [0x00269] in <4fffd39960df419684f9b9cb5ce46688>:0
at System.String.System.IConvertible.ToType (System.Type type, System.IFormatProvider provider) [0x00000] in <4fffd39960df419684f9b9cb5ce46688>:0
at System.Convert.ChangeType (System.Object value, System.Type conversionType, System.IFormatProvider provider) [0x0021b] in <4fffd39960df419684f9b9cb5ce46688>:0
at System.Convert.ChangeType (System.Object value, System.Type conversionType) [0x0000c] in <4fffd39960df419684f9b9cb5ce46688>:0
at CitizenFX.Core.CallUtilities.<GetPassArguments>g__ChangeType|0_0 (System.Object value, System.Type type) [0x0001d] in /src/code/client/clrcore/EventHandlerDictionary.cs:127
at CitizenFX.Core.CallUtilities.GetPassArguments (System.Reflection.MethodInfo method, System.Object[] args, System.String sourceString) [0x0008d] in /src/code/client/clrcore/EventHandlerDictionary.cs:169
at CitizenFX.Core.EventHandlerEntry.Invoke (System.String sourceString, System.Object[] args) [0x00047] in /src/code/client/clrcore/EventHandlerDictionary.cs:88
How i produced that, in next code:
EventHandlers["playerConnecting"] += new Action<Player, string, dynamic, dynamic>((player, playerName, cb, deferrals) => new OnPlayerConnectingEvent(player, playerName, cb, deferrals));
But if i change the “player” as last parameter like this:
EventHandlers["playerConnecting"] += new Action<string, dynamic, dynamic, Player>((playerName, cb, deferrals, player) => new OnPlayerConnectingEvent(player, playerName, cb, deferrals));
And triggers other error:
Error invoking callback for event playerConnecting: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object
at ScriptServer.Events.OnPlayerConnectingEvent..ctor (System.String playerName, System.Object cb, System.Object deferrals, CitizenFX.Core.Player source) [0x00008] in <bae2ef949fc846e98098f2fe3c5bc2f4>:0
at (wrapper dynamic-method) System.Object.CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,string,object,object,CitizenFX.Core.Player)
at System.Dynamic.UpdateDelegates.UpdateAndExecute5[T0,T1,T2,T3,T4,TRet] (System.Runtime.CompilerServices.CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4) [0x00144] in <3e501f8d5238405b81a46e43e9571825>:0
at (wrapper delegate-invoke) System.Func`7[System.Runtime.CompilerServices.CallSite,System.Type,System.String,System.Object,System.Object,CitizenFX.Core.Player,ScriptServer.Events.OnPlayerConnectingEvent].invoke_TResult_T1_T2_T3_T4_T5_T6(System.Runtime.CompilerServices.CallSite,System.Type,string,object,object,CitizenFX.Core.Player)
at ScriptServer.Queue.Queue+<>c.<.ctor>b__35_8 (System.String playerName, System.Object cb, System.Object deferrals, CitizenFX.Core.Player player) [0x0005c] in <bae2ef949fc846e98098f2fe3c5bc2f4>:0
at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0003b] in <4fffd39960df419684f9b9cb5ce46688>:0
--- End of inner exception stack trace ---
at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00051] in <4fffd39960df419684f9b9cb5ce46688>:0
at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <4fffd39960df419684f9b9cb5ce46688>:0
at System.Delegate.DynamicInvokeImpl (System.Object[] args) [0x000e7] in <4fffd39960df419684f9b9cb5ce46688>:0
at System.MulticastDelegate.DynamicInvokeImpl (System.Object[] args) [0x00008] in <4fffd39960df419684f9b9cb5ce46688>:0
at System.Delegate.DynamicInvoke (System.Object[] args) [0x00000] in <4fffd39960df419684f9b9cb5ce46688>:0
at CitizenFX.Core.EventHandlerEntry.Invoke (System.String sourceString, System.Object[] args) [0x00064] in /src/code/client/clrcore/EventHandlerDictionary.cs:89
But if i had that event method on same class where im calling EventHandlers, with “player” as first parameter, everything works perfectly.