Création plugin de hub en java

LEZIKO

Architecte en herbe
2 Novembre 2021
93
2
69
20
Bonjour/bonsoir je viens demander de l'aide car j'ai un problème, j'ai fait un plugin de hub et celui-ci fonctionne, maintenant j'aimerais que le hub ne se reset pas à chaque reload que je fais sur le serv donc on m'a dit d'utiliser le dossier config malheureusement comme je débute j'ai fait quelque chose qui ne fonctionne pas et j'aimerais savoir si vous pourriez m'aider je vous met en pièce jointe ce que j'ai fait :)

Voilà Cordialement,

LEZIKO
 

Fichiers joints

  • image_2021-11-02_192911.png
    image_2021-11-02_192911.png
    12.9 KB · Vues : 201
  • image_2021-11-02_192936.png
    image_2021-11-02_192936.png
    75.2 KB · Vues : 203
  • image_2021-11-02_193009.png
    image_2021-11-02_193009.png
    93.6 KB · Vues : 189
  • image_2021-11-02_193037.png
    image_2021-11-02_193037.png
    78.2 KB · Vues : 299
Bonsoir,

« CommandHub.java », ligne 26 :
Java:
player.getLocation((Location) main.getConfig().get("Location.loc"));

config.get("...") peut renvoyer null si la clef n'existe pas, auquel cas player.getLocation(null) sera sans effet.
Dans tous les cas, il faut que tu sauvegardes le fichier si tu veux enregistrer les changements sur le disque dur.

Java:
public class HubPlugin extends JavaPlugin {
   @Override
   public void onEnable() {
      HubCommand hubCommand = new HubCommand(this);
      
      this.getCommand("hub").setExecutor(hubCommand);
      this.getCommand("sethub").setExecutor(hubCommand);
   }
}
Java:
public class HubCommand implements CommandExecutor {
   private final HubPlugin plugin;
   private Location hub;
   
   public HubCommand(HubPlugin plugin) {
      this.plugin = plugin;
      
      this.hub = plugin.getConfig().getLocation("hub");
   }
   
   @Override
   public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
      if(!(sender instanceof Entity)) {
         sender.sendMessage("§cVous devez être une entité pour faire cela.");
         return true;
      }
      
      Entity executor = (Entity) sender;
      if(label.equals("sethub")) {
         this.hub = executor.getLocation();
         
         FileConfiguration config = plugin.getConfig();
         config.set("hub", this.hub);
         
         try {
            config.save(new File(plugin.getDataFolder(), "plugin.yml"));
         }
         catch(IOException e) {
            plugin.getLogger().log(Level.SEVERE, "Could not save config", e);
            executor.sendMessage("§4Impossible de sauvegarder le nouveau hub sur le disque dur.");
            
            return true;
         }
         
         executor.sendMessage("§aL'hub a bien été redéfini.");
      }
      else if(label.equals("hub")) {
         if(this.hub == null) {
            executor.sendMessage("§cAucun hub n'est disponible.");
         }
         else {
            if(executor.teleport(this.hub, TeleportCause.COMMAND)) {
               executor.sendMessage("§7Vous avez été téléporté au hub.");
            }
            else {
               // un autre plugin peut empêcher la téléportation, par ex. WorldGuard
               executor.sendMessage("§cTéléportation impossible.");
            }
         }
      }
      else {
         // impossible d'avoir une autre commande que `/sethub` ou `/hub`
         throw new RuntimeException("entered unreachable code");
      }
      
      return true;
   }
}

Cordialement,
ShE3py
 
Salut j'ai réessayé ça mais ça ne fonctionne toujours pas je te mets tout ça

encore merci pour votre aide :)
 

Fichiers joints

  • image_2021-11-07_002959.png
    image_2021-11-07_002959.png
    15.9 KB · Vues : 163
  • image_2021-11-07_003023.png
    image_2021-11-07_003023.png
    66.4 KB · Vues : 151
  • image_2021-11-07_003055.png
    image_2021-11-07_003055.png
    98.7 KB · Vues : 251
  • image_2021-11-07_003125.png
    image_2021-11-07_003125.png
    25.1 KB · Vues : 104
Stupidité de ma part ;
Java:
config.save(new File(plugin.getDataFolder(), "plugin.yml"));

Il s'agit de "config.yml" dans le nom du fichier à sauvegarder, car là il sauvegardait dans le mauvais fichier.
 
Stupidité de ma part ;
Java:
config.save(new File(plugin.getDataFolder(), "plugin.yml"));

Il s'agit de "config.yml" dans le nom du fichier à sauvegarder, car là il sauvegardait dans le mauvais fichier.
ça a marché !!! merci beaucoup comme ça j'vais pouvoir avancer et continuer d'apprendre merci 1000x :)