altmp / altv-types

Type definitions for the alt:V JavaScript modules.
https://www.npmjs.com/~vadzz
MIT License
29 stars 73 forks source link

Custom Event Support for All Emit Types #261

Closed Stuyk closed 1 year ago

Stuyk commented 1 year ago

Server Example + Verification

import * as alt from 'alt-server';

declare module 'alt-server' {
    interface ICustomEmitEvent {
        test: (value1: string) => void;
    }

    interface ICustomEmitClientEvent {
        test: (value1: string) => void;
    }
}

alt.on('playerConnect', (player) => {
    alt.emit('playerConnect'); // invalid

    // emit
    alt.emit('hello', 'whatever', 5, {}); // valid

    alt.emit('test', 5); // invalid
    alt.emit('test', 'valid'); // valid

    // emitRaw
    alt.emitRaw('hello', 'whatever', 5, {}); // valid

    alt.emitRaw('test', 5); // invalid
    alt.emitRaw('test', 'valid'); // valid

    // player.emit
    player.emit('whatever', 'hi', 5, {}); // valid

    player.emit('test', 5); // invalid
    player.emit('test', 'valid'); // valid;

    // player.emitRaw
    player.emitRaw('whatever', 'hi', 5, {}); // valid

    player.emitRaw('test', 5); // invalid
    player.emitRaw('test', 'valid'); // valid;

    // emitClient
    alt.emitClient(player, 'whatever', 'hi', 5, {}); // valid
    alt.emitClient([player], 'whatever', 'hi', 5, {}); // valid

    alt.emitClient(player, 'test', 5); // invalid
    alt.emitClient(player, 'test', 'valid'); // valid

    alt.emitClient([player], 'test', 5); // invalid
    alt.emitClient([player], 'test', 'hi'); // valid

    // emitClientRaw
    alt.emitClientRaw(player, 'whatever', 'hi', 5, {}); // valid
    alt.emitClientRaw([player], 'whatever', 'hi', 5, {}); // valid

    alt.emitClientRaw(player, 'test', 5); // invalid
    alt.emitClientRaw(player, 'test', 'valid'); // valid

    alt.emitClientRaw([player], 'test', 5); // invalid
    alt.emitClientRaw([player], 'test', 'valid'); // valid

    // emitClientUnreliable
    alt.emitClientUnreliable(player, 'whatever', 'hi', 5, {}); // valid;
    alt.emitClientUnreliable([player], 'whatever', 'hi', 5, {}); // valid;

    alt.emitClientUnreliable(player, 'test', 5); // invalid
    alt.emitClientUnreliable(player, 'test', 'valid'); // valid

    alt.emitClientUnreliable([player], 'test', 5); // invalid
    alt.emitClientUnreliable([player], 'test', 'valid'); // valid

    // emitAllClients
    alt.emitAllClients('whatever', 'hi', 5, {}); // valid;

    alt.emitAllClients('test', 5); // invalid;
    alt.emitAllClients('test', 'valid'); // valid;

    // emitAllClientsRaw
    alt.emitAllClientsRaw('whatever', 'hi', 5, {}); // valid;

    alt.emitAllClientsRaw('test', 5); // invalid;
    alt.emitAllClientsRaw('test', 'valid'); // valid;

    // emitAllClientsUnreliable
    alt.emitAllClientsUnreliable('whatever', 'hi', 5, {}); // valid;

    alt.emitAllClientsUnreliable('test', 5); // invalid;
    alt.emitAllClientsUnreliable('test', 'valid'); // valid;
});

Client

import * as alt from 'alt-client';

declare module 'alt-client' {
    interface ICustomEmitEvent {
        testing: (arg1: string) => void;
    }

    interface ICustomEmitServerEvent {
        testing: (arg1: string) => void;
    }
}

// alt.emit
alt.emit('disconnect'); // invalid

alt.emit('hello', 'whatever', 5, {}); // valid

alt.emit('testing', 5); // invalid
alt.emit('testing', 'valid');

// alt.emitServer
alt.emitServer('hello', 'whatever', 5, {}); // valid

alt.emitServer('testing', 5); // invalid
alt.emitServer('testing', 'valid'); // invalid

// alt.emitServerRaw
alt.emitServerRaw('hello', 'whatever', 5, {}); // valid

alt.emitServerRaw('testing', 5); // invalid
alt.emitServerRaw('testing', 'valid'); // invalid

// alt.emitServerUnreliable
alt.emitServerUnreliable('hello', 'whatever', 5, {}); // valid

alt.emitServerUnreliable('testing', 5); // invalid
alt.emitServerUnreliable('testing', 'valid'); // invalid