Bot pour afficher le nombre de joueurs

Bonjour, je souhaiterais mettre en place un bot permettant de voir en status le nombre de joueurs connecté sur le serveur.

en premier lieu j’ai fais mon propre bot mais je rencontrais des problèmes avec discord.js qui n’était pas compatible avec FiveM j’ai donc décidé de suivre un tuto.

tuto en question: FiveM Scripting 24 - Discord Bot in FiveM [1] - Show and Update Player Count. - YouTube

J’ai donc tout fait comme sur le tuto et dans ma console j’ai seulement une alerte de deprecation et la resource ne se stop pas donc jusque là rien d’alarmant néanmoins lorsque je vais voir mon bot celui si c’est offline.

Je ne sais abosulement pas d’où peux venir le problème car lorsque je le test en local je n’ai aucun problème, avez vous une idée ou un script fonctionnel à me transmettre ?

Cordialement

Salut, « deprecated » signifie que c’est plus maintenu, donc à ne pas utiliser (si possible).

Pour info, pas forcément besoin de lancer ton bot via FxServer, tu peux simplement faire un process à coté, ce sera mieux surtout si tu veux lui associer des commandes (si le serveur est offline, pas de commandes, forcément). Si tu veux utiliser cette méthode (qui est plus propre je trouve), pour trouver les joueurs tu dois faire une requete GET sur cette URL:

http://ip-de-ton-serveur:port/players.json; il existe aussi un info.json sur cette même URL.

Exemple:

const fetchPlayers = () => {
		return new Promise((resolve, reject) => {
			request(`http://${client.config.dns}:30120/players.json`, { json: true }, (err, res, data) => {
				if (err) return reject(err);
				try {
					resolve(data.length);
				}
				catch(e) {
					reject(e);
				}
			});
		});
	};

// Comment l'utiliser : 
fetchPlayers().then((nPlayers) => {
        client.user.setActivity(`En ligne : ${nPlayers}/64`);
}).catch((err) => {
	console.log(err);
	client.user.setActivity( 'En ligne : Erreur');
});

Maintenant à toi d’update le bot toutes les X secondes :slight_smile: (tu dois mettre ca dans l’event ready, comme ca, c’est tout le temps executé).

En espérant t’avoir aidé

P.S: tu as besoin de la lib request, mais c’est le même principe avec fetch ou axios

Bonjour merci de ton aide, je sais que deprecated signifie qui n’est plus maintenu mais ce n’est pas obsolet donc normalement ça aurait tout de même du fonctionner.

Ensuite la lib request je pense que je pourrais la trouver sur internet sinon j’utiliserais comme tu me la conseillé fetch ou axios.

Et enfin faire un process en dehors du serveur signifie héberger le bot et je n’ai pas la moindre idée de comment héberger un bot discord :sweat_smile: Tu pourrais m’aiguiller sur ce point s’il te plait ?

PS: par curiosité j’ai était voir avec l’url que tu m’a indiqué et il m’envoie « nope. » :sweat_smile:

Salut,

sur la plupart des serveurs, les fichiers JSON sont désactivés pour éviter des problèmes de sécurité etc.

Pour pallier à ça, j’ai développé un petit script NodeJS qui se lance soit en local sur sa machine soit sur un serveur Node qui permet de récupérer le nombre de joueurs de son serveur (sans donner accès a quoi que ce soit) et l’afficher dans le nom d’un channel discord !

Je reste dispo pour en discuter ou si tu veux de l’aide pour la configuration.

Mais c’est visiblement exactement ce que tu veux :wink:

Voici le lien du projet: https://github.com/WhySimply/DiscordFiveMPlayers

Salut, pour lancer un bot discord, tu as juste besoin de le lancer via nodejs, donc par exemple node fichier.js. Ensuite, pour l’héberger, il te faut un serveur avec un accès SSH et tu peux utiliser PM2 pour manager ton bot, voilà un lien qui devrait t’aider : Managing your bot process with PM2 | Discord.js Guide

Concernant le lien, je ne s’aurai te dire, essayes avec l’IP d’un autre serveur (je crois que ca ne marche pas si c’est une clef localhost)

Bonjour, oui je sais comment ce démarre un bot mais j’ai du mal à voir comment ça fonctionne chez un hébergeur et surtout je ne sais pas chez quel hébergeur alle, est-ce qu’il faut un vps ou y’a un type de serveur précis pour les bots ?

Et ce n’est pas une clef local mon serveur est chez un hébergeur.

ton script a besoin d’un token de bot pour fonctionner donc ne serait-il pas possible de lui mettre un status qui serait le nombre de joueurs connecté ?

Oui, tu as besoin d’un VPS ou d’une machine dédié (en gros, un serveur avec une connexion SSH). Au niveau de l’hébergeur, tu peux aller chez ovh; soyoustart; kimsufi; scaleway, ce sont de bons hébergeurs, jamais eu de soucis.

Ensuite, forcément, tu as besoin d’un token pour démarrer le bot, ne serait-ce pas ce qu’il te manque lors du démarrage de ton serveur ?

Si justement tu peux tout modifier ! Je viens de faire un post pour partager le bot et comme j’explique dans le post il est tout à fait possible de le modifier pour faire différentes choses et notamment d’afficher le nombre de joueurs dans le status du bot plutot que le nom du channel

non non, je suis sur un serveur de jeu, dédié a FiveM et j’ai un petit script de WL discord qui regarde si un joueur à le rôle citoyen pour lui autoriser l’accès au serveur donc j’ai un bot lié à ce script et j’aimerais que ce bot soit marqué comme en ligne et que le son status soit le nombre de joueurs connecté mais comme je l’ai dis au début j’ai tenté plusieurs chose et je n’ai pas réussi à le faire fonctionner, si je lance le bot en local sur mon pc ça fonctionne mais sur le serveur ça ne fonctionne pas donc je suppose que mon hébergeur dois bloquer certains trucs qui empêche le bot de fonctionner ou simplement je m’y prend mal mais si c’est le cas je ne sais pas ce que j’ai fais de mal.

ha c’est top et donc au niveau du start c’est comment, c’est une ressource a mettre dans le server.cfg ou c’est un script que je dois hébergé a par ?

C’est un script totalement indépendant du serveur FiveM tu peux le lancer en local dans un premier temps pour effectuer tes tests puis l’héberger quelque part comme sur Heroku par exemple (offre gratuite mais très limitée) etc…

Pour pouvoir le lancer en local il faut simplement que la commande « node index.js » fonctionne et pour ça il faut installer node et npm sur son serveur

je n’ai pas besoin de quelque chose de complet juste afficher le status du bot mais j’avais déjà essayer avec heroku, j’avais rien compris du tout :sweat_smile:

Si tu veux en discuter plus précisement sans spam ici voici mon discord: WhyNoT#2624 je reste dispo si tu veux qu’on fasse un test avec ton bot et mon hebergeur avant que tu paie un hosting ou un truc comme ça

bah en soit si tu peux m’expliquer la démarche pour le mettre sur heroku, ça suffira j’ai pas besoin que ce soit très complet.

Est-tu à l’aise avec git ? Avec l’invité de commande ? PS: je viens de push une nouvelle version sur le github qui permet de changer l’activité du bot aussi donc on peut choisir entre changer le nom d’un channel ou plutot l’activité du bot

Non je suis pas trop à l’aise avec git et l’invité de commandes :sweat_smile: oui j’ai vu c’est top merci beaucoup :+1:

Pour la mise en place de ton bot go switch sur discord si ça ne te dérange pas ce sera plus simple pour partager des screens etc.

oui y’a pas de soucis, je t’ajoute