Repository: godot
Issue: Calling signal callback with wrong parameter types raises confusing "Method not found" error.
Labels: enhancement,topic:core,usability

[Networking.zip](https://github.com/godotengine/godot/files/4155965/Networking.zip)

**Godot version:** 3.1.2

**OS/device including version:** Windows 10

**Issue description:**
When the the server (specific godot project) received an event (signal) with the name "network_peer_packet", the system should fire the method "ReceivedPacket" in the class Server.cs.

But instead it doesn't found it.

`ERROR: emit_signal: Error calling method from signal 'network_peer_packet': 'Node2D(MinimalServer.cs)::ReceivedPacket': Method not found.
   At: core/object.cpp:1236`

**Steps to reproduce:**
> Create a server with NetworkedMultiplayerENet
> Connect signal "network_peer_packet" to a method 

> Create a client
> SendByte to the server

**Minimal reproduction project:**

Server side :
```  
public class MinimalServer : Node {
        
        public readonly int PORT = 4041;
        public readonly int MAX_USERS = 2;

        private NetworkedMultiplayerENet host;
     
        public override void _Ready() {
          
            this.host = new NetworkedMultiplayerENet();
            Error error = host.CreateServer(PORT, MAX_USERS);
          
            if (error != Error.Ok) {
                GD.PrintErr(error); return;
            }
          
            this.GetTree().SetNetworkPeer(host);

            // HERE: Bind
            GetTree().Multiplayer.Connect("network_peer_packet", this, nameof(ReceivedPacket));
        }
     
        public void ReceivedPacket() {
            GD.Print("test");
        }
    }
``` 

Client side :
```
public class MinimalClient : Node {
        
        private readonly int PORT = 4041;
        private readonly string IP = "127.0.0.1";
    
        public NetworkedMultiplayerENet client;

        public override void _Ready() {
            
            this.client = new NetworkedMultiplayerENet();
            Error error = client.CreateClient(IP, PORT);
        
            if (error != Error.Ok) {
                GD.PrintErr(error); return;
            }
        
            this.GetTree().SetNetworkPeer(client);
            GD.Print("Connected to server " + IP + " and port " + PORT);
        }
        
        public override void _Input(InputEvent @event) {
        
            if(this.client == null)
                return;
        
            if (!(@event is InputEventKey))
                return;
        
            InputEventKey e = (InputEventKey) @event;
            if (e.IsPressed() && e.Scancode == (int) KeyList.Enter) {

                String payload = "Hello world";
            
                GD.Print("[CLIENT] Send tchat message with payload : " + payload);
                GetTree().Multiplayer.SendBytes(Encoding.UTF8.GetBytes(payload));
            }
        }
    }
```

**Action**: PRESS ENTER to send "Hello world" to server.

+ You can find a ZIP with the server and the client project.
+ In the client project, the UI is not important ( could be deleted )

[Networking.zip](https://github.com/godotengine/godot/files/4155967/Networking.zip)