Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Условие создания файла, который находится в Jar файле

Тема в разделе "Разработка плагинов для новичков", создана пользователем Lisenochek, 13 авг 2016.

  1. Автор темы
    Lisenochek

    Lisenochek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Народ, можете помочь. Помогите мне с условием создания файла, которые уже лежит в Jar файлике.
     
  2. Хостинг MineCraft
    <
  3. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Если файла нет в указанной папки, то выгружаем файл из jar архива в указанную папку.
     
  4. Автор темы
    Lisenochek

    Lisenochek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Вот мне и нужен этот метод выгрузки, т.к я не знаю, как его реализовать.
     
  5. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Код:
    File file = new File(this.getDataFolder(), "unknown.file");
    if (!file.exists()) {
        this.saveResource("unknown.file");
    }
     
  6. Автор темы
    Lisenochek

    Lisenochek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Крашит:
    Код:
    [14:03:40 ERROR]: Error occurred while enabling Realistic v1.4 beta (Is it up to date?)
    java.lang.ExceptionInInitializerError
            at com.realistic.api.API.onEnable(API.java:43) ~[?:?]
            at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[server.jar:git-Spigot-db6de12-18fbb24]
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340) [server.jar:git-Spigot-db6de12-18fbb24]
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [server.jar:git-Spigot-db6de12-18fbb24]
            at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:357) [server.jar:git-Spigot-db6de12-18fbb24]
            at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:317) [server.jar:git-Spigot-db6de12-18fbb24]
            at org.bukkit.craftbukkit.v1_8_R3.CraftServer.reload(CraftServer.java:741) [server.jar:git-Spigot-db6de12-18fbb24]
            at org.bukkit.Bukkit.reload(Bukkit.java:535) [server.jar:git-Spigot-db6de12-18fbb24]
            at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [server.jar:git-Spigot-db6de12-18fbb24]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [server.jar:git-Spigot-db6de12-18fbb24]
            at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) [server.jar:git-Spigot-db6de12-18fbb24]
            at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchServerCommand(CraftServer.java:627) [server.jar:git-Spigot-db6de12-18fbb24]
            at net.minecraft.server.v1_8_R3.DedicatedServer.aO(DedicatedServer.java:412) [server.jar:git-Spigot-db6de12-18fbb24]
            at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:375) [server.jar:git-Spigot-db6de12-18fbb24]
            at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [server.jar:git-Spigot-db6de12-18fbb24]
            at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [server.jar:git-Spigot-db6de12-18fbb24]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_101]
    Caused by: java.lang.NullPointerException
            at com.realistic.config.configMessage.<clinit>(configMessage.java:18) ~[?:?]
            ... 17 more
     
  7. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Разумеется. Я тебе дал только логику, имена подставляй сам.
     
  8. Автор темы
    Lisenochek

    Lisenochek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Так я подставил, но что-то пошло не так:
    Код:
            if (!messageFolder.exists()) {
                API.instance().saveResource("message.yml", true);
            }
     
  9. Bohdan_Hrytsak

    Bohdan_Hrytsak Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    NegaTiV
    Код:
    fileMes = new File(pl.getDataFolder(), "message.yml");
        if (!fileMes.exists()) {
          pl.saveResource("message.yml", false);
    
    Код:
        File fconfig = new File(pl.getDataFolder(), "config.yml");
        if (!fconfig.exists()) {
          pl.saveResource("config.yml", false);
    
    Часть кода из плагина.
    Код:
    pl.
    
    думаю догадалса.
     
  10. Автор темы
    Lisenochek

    Lisenochek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    А чем плох API.instance() ?
     
  11. Bohdan_Hrytsak

    Bohdan_Hrytsak Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    NegaTiV
    Да он не плох.
    PS: сейчас попробую что та накатать.
     
  12. Автор темы
    Lisenochek

    Lisenochek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Так даже так тот же краш.
     
  13. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Он в jar архиве то есть?
     
  14. Автор темы
    Lisenochek

    Lisenochek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Конечно. В самом корне, где и plugin.yml
     
  15. Bohdan_Hrytsak

    Bohdan_Hrytsak Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    NegaTiV
    Рабочий код,проверил.
    Код:
    package ua.bohdan.project;
    
        import java.io.File;
        import org.bukkit.plugin.java.JavaPlugin;
        public class Main
         extends JavaPlugin
         {
         public void onEnable(){
             configmess();
         }
         public void onDisable(){
         }
         public void configmess(){
             File mesconfig = new File(getDataFolder(), "message.yml");
              // если файла нету.
               if (!mesconfig.exists())
               {
                 //копируем файл из корня jar без замени.
               saveResource("message.yml", false);;
               }
         }
    }
    
    
    Может тут что та не так
    Код:
    API.instance()
    
    В большей части случаев я использую
    Код:
    public class Message{
        private final Main pl;
        public Message(Main pl)
        {
            this.pl = pl;
        }
    
     
    Последнее редактирование: 13 авг 2016
  16. Автор темы
    Lisenochek

    Lisenochek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Нет, крашит, да и сама операция проводится в другом классе, не в ГК.
     
  17. slavik123123123

    slavik123123123 Старожил Пользователь

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Код:
        private final Главный_класс plugin;
    
        public ItemPatcher(Главный_класс Главный_класс) {
            this.plugin = Главный_класс;
        }
    ну дальше File mesconfig = new File(plugin.getDataFolder(), "message.yml");
     
  18. Автор темы
    Lisenochek

    Lisenochek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Неа, не работает (([DOUBLEPOST=1471104440,1471097559][/DOUBLEPOST]Блин, разве нету решений?
     
  19. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    public void saveResourceAsStream(String name) {
    return api.getClass().getClassLoader().getResourceAsStream("file.yml");
    }

    File f = new File(api.getDataFolder(), "file.yml");
    if (!f.isFile()) {
    try (InputStream i = saveResourceAsStream("file.yml") {
    FileItils.copyInputStreamToFile(i, f);
    } catch (IOExcpetion e) {
    e.printStackTracke();
    }
     
  20. Автор темы
    Lisenochek

    Lisenochek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Очень много ошибок, не могу править код.
     
  21. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    ... Я с телефона
     

Поделиться этой страницей