Création d’un bot Discord synchronisé avec votre jeu Roblox

tutorials
scripting
#1

Aujourd’hui, Discord est devenu une application crucial pour un jeu Roblox que ce soit pour parler avec sa communauté ou encore pour jouer avec eux.
Connecter son jeu avec Discord est donc une priorité.

C’est pour cela que nous allons voir dans ce tutoriel comment afficher les stats d’un joueur, de votre propre jeu Roblox et tout cela sur votre serveur Discord.

(Si vous voyez des fautes d’othographes, n’hésitez pas à me le dire)

Partie 1: création de votre bot discord, de votre application sur la plateforme d’hébergement (glitch.com) et de votre compte sur UptimeRobot

1/Création de votre bot

Nous allons voir tout d’abbord comment créer et mettre en place votre propre bot discord dans votre propre serveur et tout ça assez simplement.

Tout d’abbord, vous devez vous rendre sur ce site: https://discordapp.com/developers/applications/

En arrivant vous pouvez voir que vous avez aucune application.

Mais remédions tout de suite à ça en créant une nouvelle application qui sera notre bot.

Pour cela vous avez simplement à cliquer sur le bouton " new application " en haut à droite de votre écran.

Vous pourrez ensuite ajouter le nom de votre application (le nom donné ici ne sera pas le nom figurera sur votre bot)
Vous venez de créer votre première application mais pour l’instant elle ne va pas servir à grand chose. En effet, il faut transformer cette application en bot!
Pour faire cela, il faut que vous cliquez sur le texte " bot " sur le côté gauche de votre écran. Ensuite vous avez juste à cliquer sur " Add bot ".

Et c’est tout, votre bot est maintenant crée, vous pouvez bien sûr ajouter votre propre image et le nom de ce bot dans la catégorie bot de votre application.

2/La plateforme d’hébergement (glitch.com)

Il est temps maintenant de mettre en place la plateforme d’hébergement. C’est elle qui va tenir votre bot en ligne.

Pour cela, rendez vous sur ce site: https://glitch.com/ et créez un nouveau compte en cliquant sur le petit bouton “sign in” en haut à droite de votre écran.
Vous pouvez ensuite choisir la méthode qui vous convient le mieux pour vous connectez à votre hébergeur.

Une fois vore compte créé, vous pouvez créer une nouvelle application en cliquant sur “New project” et ensuite sur “hello-express”

Comme vous avez du voir, votre application n’a pas un super nom (en tout cas typical-butter ne correspond pas trop à l’app que je créer en ce moment.). Pour le changer, vous avez simplement à cliquer sur le nom de votre application en haut à gauche et ensuite changer le nom

3/Mise en place de UptimeRobot

Sur glitch, les applications ne reste pas toujours en ligne et peuvent parfois dormir ce qui peut rendre votre bot hors ligne.
Pour régler ce désagrément, vous pouvez créer un compte Uptime Robot. Uptime Robot permet, toutes les 5 minutes, de se rendre sur l’adresse internet de votre app et donc de rendre l’app de nouveau en ligne.

Pour créer un compte uptime robot, vous pouvez vous rendre sur ce site: https://uptimerobot.com/signUp et ensuite vous inscrire.

Lorsque votre authentification est effectué, vous avez seulement à cliquer sur “Add a new monitor” en haut à gauche de votre écran et vous pouvez remplir le petit formulaire qui est apparu
Pour “Monitor type” vous devez mettre HTTP(S), pour “Friendly name” il faut le nom de l’application, et enfin pour “URL (or IP)” vous devez mettre le lien vers votre application.

Le lien de votre application est celle de votre application sur Glitch.com. Pour récupérer ce lien vous devez donc retourner sur votre application et cliquer sur le bouton “show” en haut à gauche de votre écran

Vous avez ensuite plus qu’à copier le lien sur lequel la page vous a redirigé et de le copier dans “URL (or IP)” dans Uptime Robot.
Votre page devrait ressembler à ceci:

Vous avez maintenant juste à cliquer sur “Create monitor” en bas de votre écran.
Voila, votre compte uptime robot a été créé et vous pouvez maintenant continuer ce tutoriel!

Le suite est plus facile :grinning:

Partie 2: Mise en place de votre bot Discord

Dans cette partie, nous allons voir comment régler notre bot pour qu’il puisse envoyer des messages sur un serveur discord. Nous allons donc utilisez principalement glitch mais ne fermez pas encore votre application discord ou la page pour les applications discord. Vous en aurez besoin pour la suite

Donc pour commencer, ouvrez votre application sur glitch. Une fois que votre belle application est ouverte, vous allez voir sur votre droite qu’il y a plusieurs fichiers. Pour notre application, nous n’aurons pas besoin d’autant de fichiers donc ce que vous avez à faire maintenant c’est de supprimer plusieurs de ces fichiers de sorte qu’il ne reste seulement les fichiers "Assets’, “Env”, “server.js” et “package.json”

Une fois que tout ceci est fait, vous pouvez ouvrir le fichier server.js et vous pouvez effacer ce qu’il y a dans ce fichier.
Il vous faut aussi créé un fichier ou seront stocké vos stats. Pour cela, vous avez juste à appuyer sur “New File” et a créé un nouveau fichier nommé “stat.json”. A l’intérieur de ce fichier, vous pouvez ajouter ce code:
{}

Voila c’est tout, votre fichier est maintenant prêt à recevoir des données :grin:
Juste avant de programmer notre application, il faut juste récupérez le module “discord.js” qui nous servira à faire marcher notre bot. Pour cela, vous devez simplement cliquer sur le fichier “package.json” et ensuite cliquer sur “add package”. Vous avex ensuite plus qu’à taper “discord.js” et ensuite sélectionner “discord.js” dans la barre déroulante.

Maintenant, nous allons passer à la partie programmation du fichier server.js.
Pour que votre bot marche à la perfection vous devez ajouter ce script dans le fichier server.js:

Script ici
var http = require('http'),
url = require('url');
const fs = require("fs");
const Discord = require("discord.js");
const client = new Discord.Client();
var StatFile = JSON.parse(fs.readFileSync("./stat.json","utf8"));

http.createServer(function (req, res) {
  if (req.url === '/favicon.ico') {
    
  }else{
    res.setHeader("Content-Type", "application/json; charset=utf-8");
    res.writeHead(200, {'Content-Type': 'text/plain'});
    var Parameters = url.parse(req.url,true).query;
    if (Parameters["Method"] == "AddStat" && Parameters["UserID"] && Parameters["StatName"] && Parameters["StatValue"]){
      var UserID = Parameters["UserID"] 
      var StatName= Parameters["StatName"]
      var StatValue = Parameters["StatValue"]
      if (StatFile[UserID]==undefined){
        StatFile[UserID] = {}
      }
      StatFile[UserID][StatName] = StatValue
      fs.writeFileSync("./stat.json", JSON.stringify(StatFile))
    }else{
      res.end("Tout marche!")
    }
  }
}).listen(process.env.PORT);

client.on("message", message => {
  if (message.content.startsWith("!stat ")){
    var Desc = message.content.split("!stat ")
      if (StatFile[Desc[1]]){
        var Description = ""
        
          var StatList = JSON.parse(process.env.StatsList)
        for (i in StatList){
          if (StatFile[Desc[1]][StatList[i]]){
            Description = Description + StatList[i] + ": **" + StatFile[Desc[1]][StatList[i]] + "**\n"
          }
        }
         message.channel.send({embed:{
						title: "Stats pour "+Desc[1],
						description: Description
						
					}})
      }else{
        message.channel.send({embed:{
						title: "Stats pour "+Desc[1],
						description: "Pas de stats pour ce compte"
						
					}})
      }
    }
})
client.login(process.env.BotToken)

Et vous devez aussi ajouter ceci dans le fichier env:

BotToken=""
StatsList=''

Alors, vous avez pu voir que votre application ne marche plus, et c’est complétement normal. Il faut que vous renseignez dans le fichier env, juste en face du nom BotToken, le token de votre bot (Ce token doit rester secret ou sinon, tout le monde pourra controller votre bot!)
Pour le récupérer il faut que vous alliez sur vos application de discord et ensuite, dans l’onglet bot, et enfin copier le token du bot

Ensuite vous pouvez l’ajouter comme dans l’exemple ci dessous dans le fichier env:

  BotToken="NTU2MTY0NTI2MzAzNjA4ODM1.D25_CQ.nTJu0Tkq07dHXXmWcgQ2bmj3p7I"

Pour finir la configuration de votre bot, vous devez ajouter, juste en face de la variable StatsList, les stats que vous souhaitez afficher.

Imaginons, votre jeu sauvegarde le nombre de personnes que un joueur a tué et le nom que vous utilisez pour cette variable s’appelle “Kills”. Alors, la valeur face à StatsList sera:

StatsList='["Kills"]'

Si vous voulez montrer plus d’une statistique en un message, vous avez juste à ajouter le nom d’une autre statistique.
Exemple: Si l’on veut montrer les statistiques de la variable “Kills” et “Money”, la variable StatsList sera:

StatsList='["Kills","Money"]'

Et voila, c’est tout! Votre bot est maintenant créé et normalement, il devrait marche!
Une dernière chose, si votre bot n’est pas encore dans votre serveur, vous pouvez l’ajouter grâce à un lien. Vous pouvez trouver ce lien sur la page de votre application discord dans “OAuth2” et en cochant la case “bot”

Dans la prochaine partie, nous verrons comment envoyer vos stats à partir de Roblox.

Partie 3: Mettre en place les statistiques sur votre jeu Roblox

Dans cette dernière partie, nous allons voir comment envoyer les stats à partir de votre jeu Roblox jusqu’à votre bot.

Pour commencer, vous pouvez récupérer le module script pour envoyer des données ici:
https://www.roblox.com/catalog/02966080679/redirect

Vous avez ensuite plus qu’à l’ajouter à votre jeu.
Ce module script offre une fonction facile d’utilisation qui va vous permettre d’envoyer vos stats.

Pour l’utiliser, c’est très simple:
Vous avez tout simplement à ajouter dans le script le lien de votre application de glitch dans la variable AppSite et ensuite, vous pouvez créer un nouveau script ressemblant à ceci:

local SendData = require(script.Parent.StatScript)

SendData:SetAsync("Alexisdu61","Kills","3")

Ici, le joueur “Alexisdu61” aura un nombre de “Kills” correpondant à “3”. C’est aussi simple que ça!

Et si vous voulez voir vos stats dans votre serveur discord vous avez vous avez seulement à écrire: !stat Alexisdu61
Et le bot vous donnera les stats pour le joueur Alexisdu61

Si vous avez des questions par rapport à ce tutoriel, l’espace commentaire est fait pour ça!
Voila c’est tout!

7 Likes