Plugin arenas.yml

4 Décembre 2021
14
0
1
23
Bonjour mon plugin de duel a différentes arènes mets le dossier arenas.yml ne veut pas se créer quand je lance le serveur il est censé se créer aidez-moi s'il vous plaît merci cordialement



code de plugin duel.java

Code:
package fr.lemineurfou.duel;



import java.io.File;

import java.io.IOException;

import java.util.HashMap;

import java.util.Map;



import org.apache.logging.log4j.core.config.yaml.YamlConfiguration;

import org.bukkit.Bukkit;

import org.bukkit.Location;

import org.bukkit.command.Command;

import org.bukkit.command.CommandSender;

import org.bukkit.entity.Player;

import org.bukkit.plugin.java.JavaPlugin;

import org.yaml.snakeyaml.Yaml;



import fr.lemineurfou.duel.arenas.ArenaManager;

import fr.lemineurfou.duel.commands.alert.alert;



public class duel extends JavaPlugin {

  

    private Map<Player, Player> players = new HashMap<>();

    private ArenaManager arenaManager = new ArenaManager();

    private File arenaFile;

    private YamlConfiguration arenaConfig;

  

    @Override

    public void onEnable() {

        System.out.println("Duel is on");

          getCommand("alert").setExecutor(new alert());

          getCommand("duel").setExecutor(this);  

        

          if(!getDataFolder().exists())

          {

              getDataFolder().mkdir();

          }

        

          arenaFile = new File(getDataFolder() + File.separator + "arenas.yml");

        

          if(!arenaFile.exists())

          {

              try {

                arenaFile.createNewFile();

            } catch (IOException e) {

                // TODO Auto-generated catch block

                e.printStackTrace();

            }

          }

        

          arenaConfig = YamlConfiguration.loadConfiguration(arenaFile);

    }

  



    @SuppressWarnings({ "null", "unlikely-arg-type" })

    @Override

    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {

      

        if(label.equalsIgnoreCase("duel") && sender instanceof Player)

        {

          

            Player player = (Player) sender;

          

            if(args.length == 0)

            {

                player.sendMessage("§4/duel <player>");

                player.sendMessage("§4/duel <yes/no>");

                return true;

            }

          

            if(args.length == 1)

            {

                String targetName = args[0];

              

                if(args[0].equalsIgnoreCase("yes"))

                {

                    if(players.containsKey(player))

                    {

                        player.sendMessage("Ok la duel ce lance !");

                      

                        Player firstPlayerTarget = players.get(player);

                        firstPlayerTarget.sendMessage("Ok le duel ce lance !");

                      

                        player.teleport(new Location(Bukkit.getWorld("world"), 0, 5, 10));

                        firstPlayerTarget.teleport(new Location(Bukkit.getWorld("world"), 10, 5, 10));

                      

                        players.remove(player);

                    }

                }

              

                else if(args[0].equalsIgnoreCase("no"))

                {

                    if(players.containsKey(player))

                    {

                        player.sendMessage("Vous avez refusé le duel !");

                      

                        Player firstPlayersTarget = players.get(player);

                        firstPlayersTarget.sendMessage("Le joueur §e" + player.getName()+"§r a refusé le duel !");

                      

                        players.remove(player);

                    }

                }

              

                else if(Bukkit.getPlayer(targetName) != null)

                {

                    Player target = Bukkit.getPlayer(targetName);

                  

                  

                    if(players.containsKey(targetName))

                    {

                        player.sendMessage("§
cAttention ce joueur à deja une demande en cours");
                        return true;
                    }
                  
                    players.put(target, player);
                    player.sendMessage("Vous venez de demander un duel à §e" + targetName);
                    target.sendMessage("§9Vous venez de recevoir une demande de duel de §r" + player.getName());
                }
              
                else
                {
                    player.sendMessage("Le jouer §c" + targetName+"§r n'existe pas ou n'est pas en ligne");
                }
              
                return true;
            }
          
        }
      
        return super.onCommand(sender, command, label, args);
    }
  
    @Override
    public void onDisable() {
        System.out.println("Duel is off");

code de Arena.java
Code:
package fr.lemineurfou.duel.arenas;

import java.util.ArrayList;
import java.util.List;

import org.bukkit.Location;
import org.bukkit.entity.Player;

public class Arena {
   
    private Location loc1;
    private Location loc2;
    private List<Player> players;
    private boolean isStarted;
   
    public Arena(Location loc1, Location loc2) {
        this.loc1 = loc1;
        this.loc2 = loc2;
        this.players = new ArrayList<>();
        this.isStarted = false;
       
    }
   
    public Location getFirstLoc() {
        return loc1;
       
    }
   
    public Location getSecondLoc() {
        return loc2;
    }
   
    public List<Player> getplayers() {
        return players;
       
    }
   
    public boolean isStarted() {
        return isStarted;
    }

}

code de ArenaManager.java
Code:
package fr.lemineurfou.duel.arenas;

import java.util.ArrayList;
import java.util.List;

import org.bukkit.entity.Player;

public class ArenaManager {
   
    private List<Arena> arenas = new ArrayList<>();
   
    public void addArena(Arena arena) {
        this.arenas.add(arena);
       
    }
   
    public void joinArena(Player firstPlayer, Player secondPlayer) {
       
        Arena nextArena = getNextArena();
       
        if(nextArena != null)
        {
            nextArena.getplayers().add(firstPlayer);
            nextArena.getplayers().add(secondPlayer);

           
        }
       
        else {
            firstPlayer.sendMessage("§cIl n'y a aucune arène disponible pour fair un duel");
        }   secondPlayer.sendMessage("§cIl n'y a aucune arène disponible pour fair un duel");
    }

    private Arena getNextArena() {
       
        for(Arena arena : arenas)
        {
             if(!arena.isStarted())
             {
                 return arena;
             }
        }
       
        return null;
    }
   
    public List<Arena> getArenas(){
        return arenas;
    }
}
 

ShE3py

Enbogueuse
Support
26 Septembre 2015
4 135
162
463
247
21
Mìlhüsa
Bonsoir,

Essaye à tout hasard de remplacer
Java:
arenaFile = new File(getDataFolder() + File.separator + "arenas.yml");
par
Java:
arenaFile = new File(this.getDataFolder(), "arenas.yml");

Après es-tu sûr de ne pas avoir d'erreur dans les logs ?

Cordialement,
ShE3py
 
4 Décembre 2021
14
0
1
23
Bonsoir,

Essaye à tout hasard de remplacer
Java:
arenaFile = new File(getDataFolder() + File.separator + "arenas.yml");
par
Java:
arenaFile = new File(this.getDataFolder(), "arenas.yml");

Après es-tu sûr de ne pas avoir d'erreur dans les logs ?

Cordialement,
ShE3py
merci mais sa marche pas voisi l'erreur
[17:24:42] [Server thread/ERROR]: Error occurred while enabling duel v2.0 (Is it up to date?)
java.lang.Error: Unresolved compilation problem:
The method loadConfiguration(File) is undefined for the type YamlConfiguration

at fr.lemineurfou.duel.duel.onEnable(duel.java:50) ~[?:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[spigot.jar:3284-Spigot-3892929-0ebef35]
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:342) ~[spigot.jar:3284-Spigot-3892929-0ebef35]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:480) ~[spigot.jar:3284-Spigot-3892929-0ebef35]
at org.bukkit.craftbukkit.v1_17_R1.CraftServer.enablePlugin(CraftServer.java:520) ~[spigot.jar:3284-Spigot-3892929-0ebef35]
at org.bukkit.craftbukkit.v1_17_R1.CraftServer.enablePlugins(CraftServer.java:434) ~[spigot.jar:3284-Spigot-3892929-0ebef35]
at net.minecraft.server.MinecraftServer.loadWorld(MinecraftServer.java:619) ~[spigot.jar:3284-Spigot-3892929-0ebef35]
at net.minecraft.server.dedicated.DedicatedServer.init(DedicatedServer.java:266) ~[spigot.jar:3284-Spigot-3892929-0ebef35]
at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1010) ~[spigot.jar:3284-Spigot-3892929-0ebef35]
at net.minecraft.server.MinecraftServer.lambda$0(MinecraftServer.java:305) ~[spigot.jar:3284-Spigot-3892929-0ebef35]
at java.lang.Thread.run(Thread.java:833) [?:?]
 

ShE3py

Enbogueuse
Support
26 Septembre 2015
4 135
162
463
247
21
Mìlhüsa
Tu as importé une mauvaises classe :
Code:
import org.apache.logging.log4j.core.config.yaml.YamlConfiguration;

Supprime cette ligne et importe org.bukkit.configuration.file.YamlConfiguration à la place.