Navigation

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Envoyer un message sur Discord quand un serveur Minecraft est ouvert

    Le salon libre
    3
    70
    181
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • robin4002
      robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by

      Assures-toi que ta workspace est en UTF8.
      Dans les préférences d’eclipse :
      eclipse utf8

      OrgeAlexj06 2 Replies Last reply Reply Quote 0
      • OrgeAlexj06
        OrgeAlexj06 @robin4002 last edited by

        @robin4002 Pourtant c’est bien config, mais bon, je vais trouver un texte sans accent. Merci pour tout 😁

        1 Reply Last reply Reply Quote 0
        • OrgeAlexj06
          OrgeAlexj06 @robin4002 last edited by robin4002

          @robin4002 Et pour l’extinction c’est ça ? :

          @EventHandler
              public void onServerStart(FMLServerStoppedEvent event)
              {
                  try {            
                      sendDiscordWebhookMessage("Server status notifier", "Le serveur de s'arrêter");
                  }
                  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());
              }
          
          1 Reply Last reply Reply Quote 0
          • robin4002
            robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by robin4002

            Oui, par contre tu n’as pas besoin de répéter la fonction sendDiscordWebhookMessage, elle ne doit que être une fois dans ton code. (et nommes la fonction onServerStopped au lieu de onServerStart).
            Tu peux alors avoir les deux fonctions (onServerStopped & onServerStarted) dans la même classe.

            OrgeAlexj06 3 Replies Last reply Reply Quote 0
            • OrgeAlexj06
              OrgeAlexj06 @robin4002 last edited by

              This post is deleted!
              1 Reply Last reply Reply Quote 0
              • OrgeAlexj06
                OrgeAlexj06 @robin4002 last edited by

                @robin4002 C’est bon, ça marche, et encore… Merci pour tout !!!

                1 Reply Last reply Reply Quote 1
                • OrgeAlexj06
                  OrgeAlexj06 @robin4002 last edited by

                  @robin4002 Bonjour, j’ai encore un petit problème à ce sujet, quand un joueur allume le jeu avec ce mod, ca envoie aussi le message. Je veux que ce soit juste un mod “serveur” que les gens peuvent se connecter sans l’avoir dans le dossier mod. Est-ce possible ? Merci de ton aide 😉

                  1 Reply Last reply Reply Quote 0
                  • robin4002
                    robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by robin4002

                    Heu oui, faut pas le donner au client ce mod ! Il ne doit que être installé sur le serveur.

                    Et effectivement, j’ai oublié de te préciser qu’il faut que tu ajoutes serverSideOnly = true dans la partie @Mod(modid = "tonmodid", name = "tonnom", version = "1.0.0", <ICI>)

                    OrgeAlexj06 2 Replies Last reply Reply Quote 0
                    • OrgeAlexj06
                      OrgeAlexj06 @robin4002 last edited by

                      @robin4002 Ok, merci beaucoup, car avec cette histoire de serveur, je suis un peu pommer, aussi sur un autre point mais je ferai un nouveau post je pense 😉

                      I 1 Reply Last reply Reply Quote 0
                      • I
                        ImperoMaximo @OrgeAlexj06 last edited by

                        @orgealexj06 Salut, compte tu mettre ton mod à disposition dans le futur ou non ? Car j’aime vraiment beaucoup le principe et cela peut être très utile (avec un moyen de changer l’url du webhook ou autre), merci d’avance !

                        OrgeAlexj06 1 Reply Last reply Reply Quote 0
                        • OrgeAlexj06
                          OrgeAlexj06 @ImperoMaximo last edited by

                          @imperomaximo Je verrai, je te dirai ça 😉

                          I 1 Reply Last reply Reply Quote 0
                          • I
                            ImperoMaximo @OrgeAlexj06 last edited by

                            @orgealexj06 Merci beaucoup 😁

                            1 Reply Last reply Reply Quote 0
                            • OrgeAlexj06
                              OrgeAlexj06 @robin4002 last edited by

                              @robin4002 Bonjour,
                              Je voudrais savoir comment faire pour envoyer le message quand une commande est envoyer. J’ai créer un plugin maintenance et je voudrai que ca envoie un message au début et a la fin de la maintenance mais je ne sais pas comment faire…
                              Merci de ton aide 😉
                              Bonne fin de journée

                              1 Reply Last reply Reply Quote 0
                              • robin4002
                                robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by

                                tu peux suivre ce tutoriel pour créer une commande : https://www.minecraftforgefrance.fr/topic/4471/créer-une-commande

                                OrgeAlexj06 1 Reply Last reply Reply Quote 0
                                • OrgeAlexj06
                                  OrgeAlexj06 @robin4002 last edited by

                                  @robin4002 Ok,merci, le morceau de code que j’ai mis à partir du onServerStarted, je peux le mettre dans un plugin ?
                                  Merci

                                  1 Reply Last reply Reply Quote 0
                                  • robin4002
                                    robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by

                                    Oui.

                                    OrgeAlexj06 1 Reply Last reply Reply Quote 0
                                    • OrgeAlexj06
                                      OrgeAlexj06 @robin4002 last edited by

                                      @robin4002 Bonjour,
                                      Je voudrai poser une autre questions qui pourrai aider moi et d’autres personnes qui peuvent suivre ce post. Quand le mod envoie le messages sur Discord, les messages s’accumule. A-t-il un moyen de supprimer à chaque fois le dernier message avant de poster le nouveau. Ce n’est pas forcement dérangeant mais c’est plus rapide et plus clean. Merci 😉

                                      1 Reply Last reply Reply Quote 0
                                      • robin4002
                                        robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by robin4002

                                        https://discord.com/developers/docs/resources/webhook#delete-webhook-message
                                        Il a bien un webhook pour supprimer un message, mais il faut l’id du message donc il faudrait regarder en mémoire cette id lors que le message est posté.

                                        OrgeAlexj06 1 Reply Last reply Reply Quote 0
                                        • OrgeAlexj06
                                          OrgeAlexj06 @robin4002 last edited by

                                          @robin4002 Ok, je verrai ça, et encore une petite chose, j’ai revu mon mod que j’avais un peu délaisser et mtn, il fonctionne plus, ai-je supprimer un truc sans faire exprès ?

                                          package fr.orgealexj06.serverstatus;
                                          
                                          import java.io.BufferedReader;
                                          import java.io.InputStreamReader;
                                          import java.io.OutputStream;
                                          import java.net.HttpURLConnection;
                                          import java.net.URL;
                                          
                                          import org.apache.logging.log4j.Logger;
                                          
                                          import com.google.gson.JsonObject;
                                          
                                          import net.minecraftforge.common.MinecraftForge;
                                          import net.minecraftforge.event.entity.minecart.MinecartEvent;
                                          import net.minecraftforge.fml.common.Mod;
                                          import net.minecraftforge.fml.common.Mod.EventHandler;
                                          import net.minecraftforge.fml.common.Mod.Instance;
                                          import net.minecraftforge.fml.common.SidedProxy;
                                          import net.minecraftforge.fml.common.event.FMLInitializationEvent;
                                          import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
                                          import net.minecraftforge.fml.common.event.FMLServerStartedEvent;
                                          import net.minecraftforge.fml.common.event.FMLServerStoppedEvent;
                                          
                                          @Mod(modid = ServerStatusMod.MODID, name = "ServerStatus", version = "1.0", acceptedMinecraftVersions = "[1.12.2]")
                                          public class ServerStatusMod {
                                          		
                                          	public static final String MODID = "serverstatus";
                                          	
                                          	@Instance(ServerStatusMod.MODID)
                                          	public static ServerStatusMod instance;
                                          	
                                          	@SidedProxy(clientSide = "fr.orgealexj06.serverstatus.ServerStatusClient", serverSide = "fr.orgealexj06.serverstatus.ServerStatusServer")
                                              public static ServerStatusCommon proxy;
                                          	
                                          	public static Logger logger;
                                          	
                                              @EventHandler
                                              public void preInit(FMLPreInitializationEvent event)
                                              {
                                                  logger = event.getModLog();
                                                  proxy.preInit(event.getSuggestedConfigurationFile());
                                                  
                                              }
                                           
                                              @EventHandler
                                              public void init(FMLInitializationEvent event)
                                              {
                                                  proxy.init();
                                                  MinecraftForge.EVENT_BUS.register(ServerStatusMod.class);
                                              }
                                              
                                              @EventHandler
                                              public void onServerStart(FMLServerStartedEvent event)
                                              {
                                                  try {            
                                                      sendDiscordWebhookMessage("FallenGloryStatus", "Le serveur est En-Ligne !");
                                                  }
                                                  catch(Exception ex) {
                                                      System.err.println("Impossible d'envoyer le message de démarrage sur discord");
                                                      ex.printStackTrace();
                                                  }
                                              }
                                              
                                              @EventHandler
                                              public void onServerStopped(FMLServerStoppedEvent event)
                                              {
                                                  try {            
                                                      sendDiscordWebhookMessage("FallenGloryStatus", "Le serveur est Hors-Ligne !");
                                                  }
                                                  catch(Exception ex) {
                                                      System.err.println("Impossible d'envoyer le message de démarrage sur discord");
                                                      ex.printStackTrace();
                                                  }
                                              }
                                              
                                              @EventHandler
                                              public void sendDiscordWebhookMessage(String username, String message) throws Exception
                                              {
                                                  URL url = new URL ("MonUrlDiscord");
                                                  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());
                                              }
                                          
                                          }
                                          

                                          Si tu as un peu de temps pour voir ça, ça m’aiderai 🙂

                                          1 Reply Last reply Reply Quote 0
                                          • robin4002
                                            robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by

                                            Hormis MonUrlDiscord (que je pense que tu as changé juste pour envoyer le code ?) ça me semble bon. Vérifies ton webhook sur les paramètres de discord.

                                            OrgeAlexj06 1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 3 / 4
                                            • First post
                                              Last post
                                            Design by Woryk
                                            Contact / Mentions Légales / Faire un don

                                            MINECRAFT FORGE FRANCE © 2018

                                            Powered by NodeBB