Ir para conteúdo
  • 0

Caminho não encontrado ao criar a config


LuizB

Pergunta

Olá, estou com o seguinte problema:

 

[10:17:21] [Server thread/WARN]: java.io.IOException: O sistema não pode encontrar o caminho especificado
[10:17:21] [Server thread/WARN]: 	at java.io.WinNTFileSystem.createFileExclusively(Native Method)
[10:17:21] [Server thread/WARN]: 	at java.io.File.createNewFile(Unknown Source)
[10:17:21] [Server thread/WARN]: 	at me.t.CustomConfig.buildConfig(CustomConfig.java:56)
[10:17:21] [Server thread/WARN]: 	at me.t.CustomConfig.<init>(CustomConfig.java:22)
[10:17:21] [Server thread/WARN]: 	at me.t.Main.onEnable(Main.java:10)
[10:17:21] [Server thread/WARN]: 	at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321)
[10:17:21] [Server thread/WARN]: 	at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:335)
[10:17:21] [Server thread/WARN]: 	at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405)
[10:17:21] [Server thread/WARN]: 	at org.bukkit.craftbukkit.v1_8_R1.CraftServer.loadPlugin(CraftServer.java:356)
[10:17:21] [Server thread/WARN]: 	at org.bukkit.craftbukkit.v1_8_R1.CraftServer.enablePlugins(CraftServer.java:316)
[10:17:21] [Server thread/WARN]: 	at net.minecraft.server.v1_8_R1.MinecraftServer.q(MinecraftServer.java:402)
[10:17:21] [Server thread/WARN]: 	at net.minecraft.server.v1_8_R1.MinecraftServer.k(MinecraftServer.java:370)
[10:17:21] [Server thread/WARN]: 	at net.minecraft.server.v1_8_R1.MinecraftServer.a(MinecraftServer.java:325)
[10:17:21] [Server thread/WARN]: 	at net.minecraft.server.v1_8_R1.DedicatedServer.init(DedicatedServer.java:211)
[10:17:21] [Server thread/WARN]: 	at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:505)
[10:17:21] [Server thread/WARN]: 	at java.lang.Thread.run(Unknown Source)

Meu código:

 

public void buildConfig() {
		if (!m.getDataFolder().exists()) {
			m.getDataFolder().mkdir();
		}
		this.userfiled = new File(m.getDataFolder() + File.separator + folder_name, configName);
		if (!this.userfiled.exists()) {
			try {
				this.userfiled.createNewFile(); /* Linha 56, onde aponta o erro */
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		this.userfile = YamlConfiguration.loadConfiguration(this.userfiled);
	}
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

Primeiro vamos dar um fix neste metodo.

    public void reloadConfig() {
        userfile = YamlConfiguration.loadConfiguration(this.userfiled);
    }

Agora isso aqui: vc nao ta usando o bagulho que vc ta pegando, entao vc precisa usa-lo para ver se ta pegando

new BukkitRunnable() {
            
            @Override
            public void run() {
                System.out.println(cf.getConfig().getString("Seila"));
            }
        }.runTaskTimerAsynchronously(this, 30, 30);

Veja se vai aparecer na console agr...

Meu Deus kkk, esqueci de colocar pra imprimir a mensagem kkkk.

 

Funcionou direitinho.

Link para o comentário
Compartilhar em outros sites

Testa isso

 

public void buildConfig() {
        this.userfiled = new File(m.getDataFolder(), folder_name + File.separator + configName);
        if (!this.userfiled.exists()) {
            try {
                if(!this.userfiled.getParentFile().exists()){
                   this.userfiled.getParentFile().mkdirs();
                }
                this.userfiled.createNewFile(); /* Tava apotando erro pq o folder_name nao existe */ 
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        this.userfile = YamlConfiguration.loadConfiguration(this.userfiled);
    }

Troque as barras do separator, tente com a barra invertida e a barra normal. \ e /. No windows e no linux são diferentes.

File.separator serve para dar FIX nesse erro de MultiOS

Link para o comentário
Compartilhar em outros sites

Testa isso

public void buildConfig() {
        this.userfiled = new File(m.getDataFolder(), folder_name + File.separator + configName);
        if (!this.userfiled.exists()) {
            try {
                if(!this.userfiled.getParentFile().exists()){
                   this.userfiled.getParentFile().mkdirs();
                }
                this.userfiled.createNewFile(); /* Tava apotando erro pq o folder_name nao existe */ 
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        this.userfile = YamlConfiguration.loadConfiguration(this.userfiled);
    }

File.separator serve para dar FIX nesse erro de MultiOS

Ehhh, era o diretório que não existia, mas agora ele cria o arquivo direitinho, porém acho que não estou conseguindo gravar ou ler os dados.

 

Como eu crio e carrego os dados:

 

 

        @Override
	public void onEnable() {
		
		cf = new CustomConfig(this, "pasta", "cf.yml");
		cf.getConfig().set("Seila", "Pato de borracha");
		cf.saveConfig();
		new Comm(this);
		new BukkitRunnable() {
			
			@Override
			public void run() {
				cf.getConfig().getString("Seila"); // Não aparece NADA, e nem uma exeption
			}
		}.runTaskTimerAsynchronously(this, 30, 30);
	}

Classe completa -> https://hastebin.com/oroyihipon.java

 

Editado por Cuthmf
Link para o comentário
Compartilhar em outros sites

Ehhh, era o diretório que não existia, mas agora ele cria o arquivo direitinho, porém acho que não estou conseguindo gravar ou ler os dados.

 

Como eu crio e carrego os dados:

 

 

        @Override
	public void onEnable() {
		
		cf = new CustomConfig(this, "pasta", "cf.yml");
		cf.getConfig().set("Seila", "Pato de borracha");
		cf.saveConfig();
		new Comm(this);
		new BukkitRunnable() {
			
			@Override
			public void run() {
				cf.getConfig().getString("Seila"); // Não aparece NADA, e nem uma exeption
			}
		}.runTaskTimerAsynchronously(this, 30, 30);
	}

Classe completa -> https://hastebin.com/oroyihipon.java

 

Primeiro vamos dar um fix neste metodo.

 

    public void reloadConfig() {
        userfile = YamlConfiguration.loadConfiguration(this.userfiled);
    }

Agora isso aqui: vc nao ta usando o bagulho que vc ta pegando, entao vc precisa usa-lo para ver se ta pegando

 

new BukkitRunnable() {
            
            @Override
            public void run() {
                System.out.println(cf.getConfig().getString("Seila"));
            }
        }.runTaskTimerAsynchronously(this, 30, 30);

Veja se vai aparecer na console agr...

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...