altmp / altv-issues

Issues and roadmap for alt:V project
92 stars 17 forks source link

[C#] Event with numerics (enum/int/byte) argument triggers NullReferenceException #2237

Open M1raclee opened 4 months ago

M1raclee commented 4 months ago

Description of the problem

When I try to call event with any numerics on client-side it triggers an exception: System.NullReferenceException: Object reference not set to an instance of an object.

client-side code (main class, inherited of Resource. Also tried AsyncResource):

public enum TestEnumEvent
    {
        Test1,
        Test2,
        Test3
    }

    private event Action<TestEnumEvent> TestEvent;

    public override void OnStart()
    {
        Alt.Log("Starting resource...");
        TestEvent += EventCallback;

        TestEvent?.Invoke(TestEnumEvent.Test2);
        Alt.Log("Started ==> R");
    }
     void EventCallback(TestEnumEvent e)
    {
        Alt.Log($"##### Test event: {e}");
    }

Same problem with int:

private event Action<int> TestEvent;

    public override void OnStart()
    {
        Alt.Log("Starting resource...");
        TestEvent += EventCallback;

        TestEvent?.Invoke(123);
        Alt.Log("Started ==> R");
    }

    void EventCallback(int e)
    {
        Alt.Log($"##### Test event: {e}");
    }

float type just crash the client, with no extra exceptions in client logs

Null-ref triggers on this line: TestEvent?.Invoke

If I change int/byte/enum to string or custom class - this code works fine, without exceptions

Reproduction steps

Expected behaviour

No exceptions for numberics types in Actions

Additional context

Client version: 16.0.100 / 16.0.0-dev.239 Server version: 16.0.100 / 16.0.0-dev.239

Changelog said, that in 16.0.83 version was change, like:

Operating system

Windows 10

Version

latest release/dev

Crashdump ID

-

Confirmation of issue's presence

Yiin commented 4 months ago

It's module problem, open issue on https://github.com/FabianTerhorst/coreclr-module