• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Envoyer une requete à Mojang pour récupérer un UUID

    1.12.x
    1.12.2
    2
    2
    130
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • L
      LePseudoPasStylé dernière édition par robin4002

      Bonjour,
      Je suis nouveau sur ce forum et je cherche une solution à un problème. Je suis actuellement en train de coder un plugin de maintenance pour mon serveur. J’ai créer également une liste où mettre les joueurs qui ne seront pas affecter pas la maintenance sauf que pour les mettre dans cette liste, il faut que le joueur soit connecter et j’aimerai passer ce système à un système plus opérationnel avec une requete encoyer à Mojang qui renvoie ensuite sont UUID. Alors, je sais que c’est un forum pour Forge mais le code doit être le même également sur Spigot.
      Je vous envoie également ma class maintenance (c’est à la ligne 46 qui récupe les UUID des joueurs en ligne et c’est ca que je veux modifier).

      package fr.orgealexj06.fgplugin.commands;
      
      import com.google.gson.JsonObject;
      import fr.orgealexj06.fgplugin.FgPlugin;
      import fr.orgealexj06.fgplugin.constants.Messages;
      import fr.orgealexj06.fgplugin.utils.ServerManagement;
      import org.bukkit.Bukkit;
      import org.bukkit.ChatColor;
      import org.bukkit.OfflinePlayer;
      import org.bukkit.command.Command;
      import org.bukkit.command.CommandExecutor;
      import org.bukkit.command.CommandSender;
      import org.bukkit.entity.Player;
      
      import java.io.BufferedReader;
      import java.io.InputStreamReader;
      import java.io.OutputStream;
      import java.net.HttpURLConnection;
      import java.net.URL;
      import java.util.UUID;
      
      public class CommandMaintenance implements CommandExecutor {
          @Override
          public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
              if (sender.hasPermission("fg.maintenance.use")) {
                  if (label.equalsIgnoreCase("fgmaintenance")) {
                      if (args.length == 1) {
                          // Enabled maintenance {Command}
                          if (args[0].equalsIgnoreCase("on")) {
                              FgPlugin.ENABLED = true;
                              ServerManagement.kickAllNonAllowed();
      
                              // Admin Message enabled maintenance {Message}
                              sender.sendMessage(Messages.MAINTENANCE_ENABLED.getMessage());
      
                              // Disabled maintenance {Command}
                          } else if (args[0].equalsIgnoreCase("off")) {
                              FgPlugin.ENABLED = false;
      
                              // Admin Message disabled maintenance {Message}
                              sender.sendMessage(Messages.MAINTENANCE_DISABLED.getMessage());
                              // List of player authorized players {Command}
                          } else if (args[0].equalsIgnoreCase("list")) {
                              OfflinePlayer player;
                              for (UUID uuid : FgPlugin.getAUTHORIZED()) {
                                  player = Bukkit.getOfflinePlayer(uuid); // OfflinePlayer --> UUID Mojang Request
      
                                  if (player != null) {
                                      sender.sendMessage(ChatColor.LIGHT_PURPLE + player.getName());
                                  }
                              }
                          } else {
                              sender.sendMessage(Messages.COMMAND_INVALID_ARGS.getMessage());
                          }
                      } else if (args.length == 2) {
                          // Add player to the list of authorized players {Command}
                          if (args[0].equalsIgnoreCase("add")) {
                              final String playername = args[1];
                              final Player player = Bukkit.getPlayer(playername);
      
                              if (player != null) {
                                  final UUID uuid = player.getUniqueId();
      
                                  FgPlugin.getAUTHORIZED().add(uuid);
      
                                  sender.sendMessage(Messages.MAINTENANCE_PLAYER_ADD_TO_LIST.getMessage());
                              } else {
                                  sender.sendMessage(Messages.PLAYER_NOT_ONLINE.getMessage());
                              }
                          }
                          // Remove player of list of authorized players {Command}
                          else if (args[0].equalsIgnoreCase("remove")) {
                              final String playername = args[1];
                              final Player player = Bukkit.getPlayer(playername);
                              if (player != null) {
                                  final UUID uuid = player.getUniqueId();
      
                                  FgPlugin.getAUTHORIZED().remove(uuid);
      
                                  sender.sendMessage(Messages.MAINTENANCE_PLAYER_REMOVE_TO_LIST.getMessage());
                              } else {
                                  sender.sendMessage(Messages.PLAYER_NOT_ONLINE.getMessage());
                              }
                          }
                      } else {
                          sender.sendMessage(Messages.COMMAND_INVALID_ARGS_LENGHT.getMessage());
                      }
                      return true;
                  }
              }
              return false;
          }
      }
      
      

      Mais le problème c’est que je ne sais pas du tout comment faire
      Merci de m’aider

      1 réponse Dernière réponse Répondre Citer 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

        Bonjour,

        Faire une requête à chaque fois est inefficace, minecraft a un système de cache (fichier usercache.json).
        Il y a des fonctions toutes faite pour récupérer l’uuid d’un joueur via le pseudo, la commande /whitelist add l’utilise par exemple. Il faut regarder son fonctionner et voir si l’api de Bukkit fourni un wrapper pour.

        (et non, grosse différence entre forge et les plugins, dans le cas des plugins bukkit on utilise l’api de bukkit, alors que dans le cas de forge on appel directement le code de mc. Sur un plugin on peut aussi appeler directement le code de mc, mais cela a des conséquences sur la compatibilité intra-version, et le code restera différent de forge car spigot n’utilise pas du tout les mêmes mappings que forge, les fonctions ont donc des noms complètement différent).

        1 réponse Dernière réponse Répondre Citer 0
        • robin4002
          robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

          Bonjour,

          Faire une requête à chaque fois est inefficace, minecraft a un système de cache (fichier usercache.json).
          Il y a des fonctions toutes faite pour récupérer l’uuid d’un joueur via le pseudo, la commande /whitelist add l’utilise par exemple. Il faut regarder son fonctionner et voir si l’api de Bukkit fourni un wrapper pour.

          (et non, grosse différence entre forge et les plugins, dans le cas des plugins bukkit on utilise l’api de bukkit, alors que dans le cas de forge on appel directement le code de mc. Sur un plugin on peut aussi appeler directement le code de mc, mais cela a des conséquences sur la compatibilité intra-version, et le code restera différent de forge car spigot n’utilise pas du tout les mêmes mappings que forge, les fonctions ont donc des noms complètement différent).

          1 réponse Dernière réponse Répondre Citer 0
          • Ce sujet est désormais une question  robin4002 robin4002 
          • Cette question est désormais résolue  robin4002 robin4002 
          • Déplacé de Support pour les moddeurs par  robin4002 robin4002 
          • 1 / 1
          • Premier message
            Dernier message
          Design by Woryk
          Contact / Mentions Légales

          MINECRAFT FORGE FRANCE © 2018

          Powered by NodeBB