bonjour,
j'ai un commande /duel createarena location1 loction2
quand je mai les location et je mai entré sa mai sur Minecraft
"An internale error occured while attenpting to perform this command"
cordialement,
Jessy.l
j'ai un commande /duel createarena location1 loction2
quand je mai les location et je mai entré sa mai sur Minecraft
"An internale error occured while attenpting to perform this command"
Code:
package fr.lemineurfou.duel;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import fr.lemineurfou.duel.arenas.Arena;
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);
loadArenaConfig();
ConfigurationSection arenaSection = arenaConfig.getConfigurationSection("arenas");
for(String string : arenaSection.getKeys(false))
{
String loc1 = arenaSection.getString(string + ".loc1");
String loc2 = arenaSection.getString(string + ".loc2");
Arena arena = new Arena(parseStringToLoc(loc1), parseStringToLoc(loc2));
arenaManager.addArena(arena);
}
}
private void loadArenaConfig() {
if(!getDataFolder().exists())
{
getDataFolder().mkdir();
}
arenaFile = new File(getDataFolder() + File.separator + "arenas.yml");
if(!arenaFile.exists())
{
try {
arenaFile.createNewFile();
} catch (IOException e) {
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(args[0].equalsIgnoreCase("createarena")) {
if(args.length < 3)
{
player.sendMessage("Tapez la commande /duel createarena <loc1> <loc2>");
return true;
}
Location loc1 = parseStringToLoc(args[1]);
Location loc2 = parseStringToLoc(args[2]);
Arena arena = new Arena(loc1, loc2);
String arenaName = "arena-" + new Random().nextInt(9999);
arenaConfig.set("arenas." + arenaName+".loc1", args[1]);
arenaConfig.set("arenas." + arenaName+".loc2", args[2]);
saveArenaConfig();
arenaManager.addArena(arena);
player.sendMessage("Vous venez de créer l'arène §a" + arenaName + "");
}
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()+" /duel <yes/no>");
}
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);
}
private void saveArenaConfig() {
if(!getDataFolder().exists())
{
getDataFolder().mkdir();
}
arenaFile = new File(getDataFolder() + File.separator + "arenas.yml");
if(!arenaFile.exists())
{
try {
arenaFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
arenaConfig = YamlConfiguration.loadConfiguration(arenaFile);
}
@Override
public void onDisable() {
System.out.println("Duel is off");
}
public ArenaManager getArenaManager() {
return arenaManager;
}
public Location parseStringToLoc(String string) {
String[] parseLoc = string.split(",");
String[] parsedLoc = null;
@SuppressWarnings("null")
double x = Double.valueOf(parsedLoc[0]);
double y = Double.valueOf(parsedLoc[1]);
double z = Double.valueOf(parsedLoc[2]);
return new Location(Bukkit.getWorld("word"), x, y, z);
}
public String unparsrLocToString(Location loc) {
return loc.getX() + "," + loc.getY() + "," + loc.getZ();
}
}
cordialement,
Jessy.l