Assures-toi que ta workspace est en UTF8.
Dans les préférences d’eclipse :
Group Details Private
Rédacteurs
Ce groupe est réservé aux rédacteurs du forum.
Member List
-
RE: Envoyer un message sur Discord quand un serveur Minecraft est ouvert
-
RE: Envoyer un message sur Discord quand un serveur Minecraft est ouvert
hum donc contrairement à ce que je pensais, le client http d’apache est pas dispo, pourtant il était présent sur le classpath de la workspace alors que je n’ai rien ajouté.
Donc il va falloir encore modifier le code, revenir sur le client http de java.
@EventHandler public void onServerStart(FMLServerStartedEvent event) { try { sendDiscordWebhookMessage("Server status notifier", "Le serveur vient de démarrer"); } catch(Exception ex) { System.err.println("Impossible d'envoyer le message de démarrage sur discord"); ex.printStackTrace(); } } public void sendDiscordWebhookMessage(String username, String message) throws Exception { URL url = new URL ("url"); HttpURLConnection con = (HttpURLConnection)url.openConnection(); con.setRequestMethod("POST"); con.setRequestProperty("Content-Type", "application/json; utf-8"); con.setRequestProperty("User-Agent", "Minecraft Server"); con.setRequestProperty("Accpet", "application/json"); con.setDoOutput(true); JsonObject json = new JsonObject(); json.addProperty("username", username); json.addProperty("content", message); try(OutputStream os = con.getOutputStream()) { byte[] input = json.toString().getBytes("utf-8"); os.write(input, 0, input.length); } BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(), "utf-8")); StringBuilder response = new StringBuilder(); String responseLine = null; while ((responseLine = br.readLine()) != null) { response.append(responseLine.trim()); } System.out.println(response.toString()); }
P.S : j’ai reprit le code des précédents message supprimé (les admin voient les messages supprimés) et en testant je crois que j’ai envoyé un message vers ton discord car j’ai oublié de changer l’url par mon webhook de test x).
-
RE: Envoyer un message sur Discord quand un serveur Minecraft est ouvert
Non, il y a que le lien à changer.
Envoies le rapport de crash ?
-
RE: Envoyer un message sur Discord quand un serveur Minecraft est ouvert
Bon après multiple tentative :
@EventHandler public void onServerStart(FMLServerStartedEvent event) { try { sendDiscordWebhookMessage("Server status notifier", "Le serveur vient de démarrer"); } catch(IOException ex) { System.err.println("Impossible d'envoyer le message de démarrage sur discord"); ex.printStackTrace(); } } public void sendDiscordWebhookMessage(String username, String message) throws IOException { HttpPost post = new HttpPost("lien webhook discord"); post.addHeader("Content-Type", "application/json"); post.addHeader("User-Agent", "Minecraft Server"); JsonObject json = new JsonObject(); json.addProperty("username", username); json.addProperty("content", message); // send a JSON data post.setEntity(new StringEntity(json.toString())); CloseableHttpClient httpClient = HttpClients.createDefault(); CloseableHttpResponse response = httpClient.execute(post); if (response.getEntity() != null) { String result = EntityUtils.toString(response.getEntity()); System.out.println(result); } }
Il faut impérativement avoir un
User-Agent
sinon Discord refuse la requête.
J’ai séparé l’envoie dans une fonction à part, comme ça tu peux également réutiliser la fonctionsendDiscordWebhookMessage
pour l’extinction du serveur -
RE: Envoyer un message sur Discord quand un serveur Minecraft est ouvert
Bizarre. Je vais regarder ça en détails ce soir.
-
RE: Envoyer un message sur Discord quand un serveur Minecraft est ouvert
Discord a refusé la requête (code 403, forbidden) assures-toi que l’url de web-hook est correcte (d’ailleurs, c’est pas une super idée de la publier sur le forum, des gens pourraient envoyer des messages vers ton discord avec).
-
RE: Envoyer un message sur Discord quand un serveur Minecraft est ouvert
Ah mais c’est normal, il manque
@EventHandler
au dessus de la fonctionpublic void onServerStart(FMLServerStartedEvent event)
-
RE: Envoyer un message sur Discord quand un serveur Minecraft est ouvert
Et dans les logs du serveur il y a quoi qui s’affiche ?
-
RE: Envoyer un message sur Discord quand un serveur Minecraft est ouvert
ça ne compile pas ou le mod n’a pas l’effet prévu ?
-
RE: Envoyer un message sur Discord quand un serveur Minecraft est ouvert
Les deux fonctionnent, donc peu importe.