Group Details Private

administrators

Ce groupe représente les administrateurs du forum.

  • RE: [Authentification] Envoyer un tocket directement à la connection au serveur

    Bonjour,

    Attention par contre, si ton login via le site va remplacer le login de Mojang, tu es en train de fabriqué une version modifiée du jeu que des joueurs peuvent obtenir sans avoir le jeu original. Et on appel cela une contrefaçon et c’est fortement sanctionné par la loi.

    Je vois deux approches possibles :

    • en utilisant l’événement de connexion du joueur, envoyer un paquet depuis le serveur pour l’authentification, auquel le client répond avec son token. Si le token renvoyé est valide tu considère le joueur comme ok. Tant qu’il n’est pas ok, en utilisant d’autres événements, tu bloques les actions : (par exemple cancel le tick event : https://github.com/MinecraftForge/MinecraftForge/blob/1.12.x/src/main/java/net/minecraftforge/event/entity/living/LivingEvent.java#L67 )
    • en modifiant le paquet de connexion via ASM. Plus complexe, nécessite l’utilisation d’un coremod. La lib Sponge mixins peut t’aider a écrire un patch plus facilement qu’en manipulant directement le bytecode.
    posted in Support pour les moddeurs
  • RE: Problème GriefPrevention

    Le post n’était pas marqué comme étant une demande d’aide, je m’en suis chargé 😉

    posted in Support pour les utilisateurs
  • RE: Problème GriefPrevention

    Hum en fait la dernière version de GriefPrevention date de 2019, donc je me demande s’il faudrait pas plutôt essayer avec les versions 1.x de Nucleus : https://ore.spongepowered.org/Nucleus/Nucleus/versions/1.14.6-S7.1

    posted in Support pour les utilisateurs
  • RE: Problème GriefPrevention

    Et tu as quelle version de GriefPrevention ?

    posted in Support pour les utilisateurs
  • RE: Problème GriefPrevention

    Bonjour,

    Au vu de l’erreur lors de l’initialisation, GriefPrevention a besoin d’un fichier de Nucleus qu’il ne trouve pas.

    Assures-toi que Nucleus ET GriefPrevention sont bien tout les deux à jours.

    posted in Support pour les utilisateurs
  • RE: Envoyer un message sur Discord quand un serveur Minecraft est ouvert

    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.

    posted in Le salon libre
  • RE: Envoyer un message sur Discord quand un serveur Minecraft est ouvert

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

    posted in Le salon libre
  • 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).

    posted in Le salon libre
  • 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 ?

    posted in Le salon libre
  • 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 fonction sendDiscordWebhookMessage pour l’extinction du serveur 😉

    posted in Le salon libre