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

Помогите Разная работа на разных осях

Discussion in 'Разработка плагинов для новичков' started by Fenix78563, Dec 4, 2016.

Thread Status:
Not open for further replies.
  1. Автор темы
    Fenix78563

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

    Trophy Points:
    76
    Имя в Minecraft:
    Blc_Dragon
    Доброго времени суток, форумчане.

    Прежде чем кричать File.separator дочитайте пожалуйста до конца и внимательно.
    Я тестил свой плагин на винде, и он работал. Поставил его на линукс.
    И теперь он не видит один файл.
    У меня есть такой код:
    Code:
    File corlang = new File(getDataFolder() + File.separator + "lang" + File.separator + plugin.getConfig().getString("lang") + ".yml");
            if (!corlang.exists()) {
                Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "Can't find lang file " + ChatColor.GOLD + corlang.getName());
                Bukkit.getConsoleSender().sendMessage(ChatColor.GREEN + "Using default lang file");
                corlang = new File(getDataFolder() + File.separator + "lang" + File.separator + "en_US" + ".yml"); //этот файл я создал выше
            }
    
    Конфиг выглядит так:
    Code:
    #name of language file
    lang: 'ru_Ru'
    
    Папка lang вот так:
    upload_2016-12-4_12-21-29.png

    Дальше больше. У меня над кодом выбора языка стоит код по подгрузке дефолтных языков.
    Он выглядит так.
    Code:
            File lru = new File(getDataFolder() + File.separator + "lang" + File.separator + "ru_RU.yml");
            if (!lru.exists()) {
                Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "Can't find language file ru_RU.yml");
                Bukkit.getConsoleSender().sendMessage(ChatColor.GOLD + "Creating new language file for you...");
                createYml.loadYaml(plugin, "lang"+ File.separator +"ru_RU.yml");
                Bukkit.getConsoleSender().sendMessage(ChatColor.GREEN + "Completed!");
            }
            File len = new File(getDataFolder() + File.separator + "lang" + File.separator + "en_US.yml");
            if (!len.exists()) {
                Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "Can't find language file en_US.yml");
                Bukkit.getConsoleSender().sendMessage(ChatColor.GOLD + "Creating new language file for you...");
                createYml.loadYaml(plugin, "lang"+ File.separator +"en_US.yml");
                Bukkit.getConsoleSender().sendMessage(ChatColor.GREEN + "Completed!");
            }
    
    Логи выглядят так
    Code:
    [02:04:38] [RCON Listener #2/INFO]: Rcon connection from: /тут был мой IP
    [02:04:46] [Server thread/INFO]: Can't find lang file ru_Ru.yml
    [02:04:46] [Server thread/INFO]: Using default lang file
    
    Т.е. Файл ru_RU точно есть, т.к. никаких сообщений не было о его отсутствии.
    Почему линукс не видит файл ru_RU причем только в одном случае из двух (нет он не поврежден, я полностью залил его в en_US и все прекрасно работает. И права доступа нормальные)

    Заранее спасибо
     
  2. Хостинг MineCraft
    <
  3. alexandrage

    alexandrage Администратор

    Trophy Points:
    173
    Skype:
    alexandr0116
    Можно смело писать "/", работает и на форточках.
     
  4. Автор темы
    Fenix78563

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

    Trophy Points:
    76
    Имя в Minecraft:
    Blc_Dragon
    где писать "/"? если вместо сепаратора, то думаю что не стоит. мало ли на какой оси будет пахать
     
  5. alexandrage

    alexandrage Администратор

    Trophy Points:
    173
    Skype:
    alexandr0116
    И скорее всего ты не учел важный фактор уникс системы. Регистрозависимую файловую систему.[DOUBLEPOST=1480836647,1480836578][/DOUBLEPOST]
    Яж тебе говорю, форточка смело хавает такие слеши "/".[DOUBLEPOST=1480836792][/DOUBLEPOST]А вот если стоит обратный слеш "\" тогда нигде кроме форточки не будет робить :). Так что сеператор не так и нужен.
     
  6. Автор темы
    Fenix78563

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

    Trophy Points:
    76
    Имя в Minecraft:
    Blc_Dragon
    Спасибо, действительно не учел. в конфиге одна букевка маленькая.

    Есть другие системы помимо форточек. не хочу делать просто потому что "форточка хавает, а кроме форточек нигде работать не будет". а то потом войдет в привычку и буду как оголтелый бегать искать лажу
     
  7. alexandrage

    alexandrage Администратор

    Trophy Points:
    173
    Skype:
    alexandr0116
    Обычные слеши робят везде. Мне ли не знать, яж сашколаунчером занимаюсь. Если у кого сдувается, то на руведре кипеш поднимется :D.
     
  8. Автор темы
    Fenix78563

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

    Trophy Points:
    76
    Имя в Minecraft:
    Blc_Dragon
    даж на андройде?
     
  9. alexandrage

    alexandrage Администратор

    Trophy Points:
    173
    Skype:
    alexandr0116
    Да, если ты там жабу поставишь. Ну я не думаю, что есть такие отбитые.[DOUBLEPOST=1480837670,1480837499][/DOUBLEPOST]Хотя на ведерке была тема как запустить серв на дроиде. Тот еще изврат.[DOUBLEPOST=1480837949][/DOUBLEPOST]P.s Я тебе скажу, когда без сеператора не обойтись. Когда нужно сравнить урл с урл из строки.
     
  10. Автор темы
    Fenix78563

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

    Trophy Points:
    76
    Имя в Minecraft:
    Blc_Dragon
    Окей, я учту, и всеравно буду ставить сепараторы. уже привык к этому, да и они мне больше нравятся

    Спасибо за помощь, пожалуй закрою тред, а тут уже пошло что то не то
     
Thread Status:
Not open for further replies.

Share This Page