Envoyer un message sur Discord quand un serveur Minecraft est ouvert
-
Bonsoir à toutes et à tous, je recherche depuis longtemps un moyen d’envoyer automatiquement un message sur discord quand mon serveur Minecraft est ouvert.
Merci de votre aide
Bonne soirée -
Bonsoir,
Discord permet d’envoyer un message via des webhooks, il est donc plutôt simple de faire un mod ou plugin permettant d’envoyer un message.Ton serveur est en quelle version ?
-
@robin4002 1.12.2
-
Ok et tu as un serveur sous bukkit ou sous forge ou sponge (ou sous un système gérant mod + plugin) ?
-
@robin4002 Je suis sous Magma (mods + plugins) :grinning_face_with_big_eyes:
-
Ok donc pleins de possibilité.
Tu sais faire des mods ?Si oui, tu peux facilement faire un mod pour réaliser ce que tu veux, il suffit d’utiliser l’event
FMLServerStartedEvent
dans la classe principale :@EventHandler public void onServerStart(FMLServerStartedEvent event) { }
et de mettre dedans un appel POST vers un webhook discord.
https://www.baeldung.com/httpurlconnection-postPour l’url, il faut aller sur le salon discord que tu souhaites, aller dans intégration et cliquer sur webhook.
Ensuite tu en ajoutes un et tu cliques sur copier l’url du webhook :
-
@robin4002 Merci, je vais test, je vais faire la base du mod et je te dis ça plus tard Il y a aussi un code pour quand le serveur s’arrête ? Merci
-
Idem mais avec
FMLServerStoppedEvent
^^ -
@robin4002 Et je dois le mettre dans la classe principale ? Car là, j’ai des erreurs :astonished_face: Il y a-t-il des chose à modifier, car je ne suis pas trop dans le domaine de la programmation. Merci
-
Oui c’est bien dans la classe principale. Fais voir ton code ?
-
Ce message a été supprimé ! -
Normal, il faut échapper le guillemet du json.
Ensuite il faut aussi adapter le contenu : https://discord.com/developers/docs/resources/webhook#execute-webhookPar exemple :
String jsonInputString = "{\"username\":\"Server status notifier\",\"content\":\"Le serveur vient de démarrer!\"}";
-
@robin4002 Ok, j’ai modifier la ligne de code et j’ai ajouter le texte de notif que je voulais. J’ai maintenant une erreur con.getOutputStream (l.59) et à jsonInputString (l.60). J’ai essayé de passer la souris dessus pour voir si je pouvais corriger quelques chose, mais en dirai que non.
-
C’est pas juste un try catch qui manque ? C’est quoi l’erreur indiqué ?
-
@robin4002 pour le jsonInputString ca me met “cannot be resolved” avec “create local variable”, “create field”… mais pas de try catch. Et le con.getOutputStream ca me met l’erreur “Type mismatch: cannot convert from java.io.OutputStream to org.omg.CORBA.portable.OutputStream” avec possibilité de “add cast to OutputStream” et "chang type of ‘os’ to ‘OutputStream’
-
Tu as importé le mauvais OutputStream, retire l’importation
org.omg.CORBA.portable.OutputStream
et remplaces parjava.io.OutputStream
.
PourjsonInputString
je ne sais pas ce que tu as fais pour avoir cette erreur, renvoies tout ton code. -
Ce message a été supprimé ! -
Ah oui, c’est tout con.
C’est parce que dans un de mes précédents messages j’ai écritjsonInString
au lieu dejsonInputString
x).
Il faut simplement que tu changes le nom de la variable à la ligne 58. -
@robin4002 Ok, et maintenant, je peux mettre un throws ou un try catch, je met le try catch ?
-
Les deux fonctionnent, donc peu importe.