MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

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

    Planifier Épinglé Verrouillé Déplacé Résolu 1.12.x
    1.12.2
    2 Messages 2 Publieurs 342 Vues 2 Watching
    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 Hors-ligne
      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
      • robin4002R Hors-ligne
        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
        • robin4002R robin4002 marked this topic as a question on
        • robin4002R robin4002 has marked this topic as solved on
        • robin4002R robin4002 a déplacé ce sujet de Support pour les moddeurs sur
        • 1 / 1
        • Premier message
          Dernier message
        Design by Woryk
        ContactMentions Légales

        MINECRAFT FORGE FRANCE © 2024

        Powered by NodeBB