A Node.js package to interact with FiveM servers, allowing you to retrieve server data, player information, and resources. Ideal for Discord bot integration or standalone Node.js applications.
npm install discord-fivem-apidiscord-fivem-api package using either npm or yarn:
bash
$ npm install discord-fivem-api
or
$ yarn add discord-fivem-api
`
Usage
First, import the DiscordFivemApi class:
`javascript
const DiscordFivemApi = require('discord-fivem-api');
`
Next, create a new instance of the class with the desired configuration options:
`javascript
const options = {
address: 'localhost', // IP or hostname of the FiveM server
port: 30120, // Port number (default: 30120)
useStructure: true, // Whether to use the custom Player and Server structures (default: true)
interval: 5000, // Interval in ms between server updates (default: 2500)
};
const api = new DiscordFivemApi(options, true); // 'true' initializes the API immediately
`
Configuration Options
The options object supports the following properties:
- address (required): The IP address or hostname of the FiveM server.
- port (optional, default: 30120): The port number of the FiveM server.
- useStructure: (optional, default: true): Whether to use the custom Player and Server classes from the structures directory.
- interval: (optional, default: 2500): The interval (in milliseconds) between server data updates.
The second argument (init) specifies whether to initialize the API immediately (true) or not (false, default).
$3
Once the DiscordFivemApi instance is created, you can use its methods to retrieve server information:
`javascript
api.getStatus()
.then((status) => console.log(Server status: ${status}))
.catch((err) => console.error(err));
api.getServerData()
.then((serverData) => console.log(serverData))
.catch((err) => console.error(err));
api.getServerPlayers()
.then((players) => console.log(players))
.catch((err) => console.error(err));
api.getPlayersOnline()
.then((count) => console.log(Players online: ${count}))
.catch((err) => console.error(err));
api.getMaxPlayers()
.then((maxPlayers) => console.log(Max players: ${maxPlayers}))
.catch((err) => console.error(err));
`
$3
- Returns a promise that resolves to 'online' or 'offline'.
- Returns a promise that resolves to an object containing server information. If useStructure is true, it returns an instance of the Server class.
- Returns a promise that resolves to an array of player objects. If useStructure is true, each object is an instance of the Player class.
- Returns a promise that resolves to the number of players currently online.
- Returns a promise that resolves to the server's maximum player capacity.
$3
`javascript
api.on('ready', () => console.log('API initialized'));
api.on('readyPlayers', (players) => console.log(Players: ${players.length}));
api.on('readyResources', (resources) => console.log(Resources: ${resources.length}));
api.on('playerJoin', (player) => console.log(${player.name} joined the server));
api.on('playerLeave', (player) => console.log(${player.name} left the server));
api.on('resourceAdd', (resource) => console.log(Resource added: ${resource}));
api.on('resourceRemove', (resource) => console.log(Resource removed: ${resource}));
`
$3
- ready: Emitted when the API is initialized.
- readyPlayers: Emitted when player data is available.
- readyResources: Emitted when resource data is available.
- playerJoin: Emitted when a player joins the server.
- playerLeave: Emitted when a player leaves the server.
- resourceAdd: Emitted when a new resource is added to the server.
- resourceRemove`: Emitted when a resource is removed from the server.