getDataFolder() undefined for the type cmd

YourSempai

Пользователь
Сообщения
21
Решения
1
Ошибка:
getDataFolder() undefined for the type cmd

В главном классе:
Java:
public class Main extends JavaPlugin {
    @Override
    public void onEnable() {
        getServer().getPluginCommand("teleport").setExecutor(new cmd());
    }
}

В cmd:
Java:
public class cmd implements CommandExecutor {
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String str, String[] args) {
        File config = new File(getDataFolder() + File.pathSeparator + "config.yml");
        return true;
    }
}
Всё лишнее убрал, чтобы не мешало.
Заранее спасибо.
 
Решение
Java:
public class MainClass extends JavaPlugin {
    private static MainClass instance;

    @Override
    public void onEnable() {
        instance = this;
    }
   
    public static MainClass getPlugin() {
        return instance;
    }
}

MainClass.getPlugin().getDataFolder();

Не знаю, правильно ли это будет, но я всегда так делаю и у меня всё в порядке :)
Оно является таковым(undefined), потому что в твоём классе cmd нет этого метода. Данный метод есть в классе JavaPlugin (ты его унаследовал через extends, а значит, метод есть и в твоём классе Main).
Точно не помню, можно ли так, попробуй Main.getDataFolder()
 
Java:
public class MainClass extends JavaPlugin {
    private static MainClass instance;

    @Override
    public void onEnable() {
        instance = this;
    }
   
    public static MainClass getPlugin() {
        return instance;
    }
}

MainClass.getPlugin().getDataFolder();

Не знаю, правильно ли это будет, но я всегда так делаю и у меня всё в порядке :)
 
Назад
Сверху Снизу