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

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

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

Статус темы:
Закрыта.
  1. Автор темы
    Fenix78563

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

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

    Прежде чем кричать File.separator дочитайте пожалуйста до конца и внимательно.
    Я тестил свой плагин на винде, и он работал. Поставил его на линукс.
    И теперь он не видит один файл.
    У меня есть такой код:
    Код:
    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"); //этот файл я создал выше
            }
    
    Конфиг выглядит так:
    Код:
    #name of language file
    lang: 'ru_Ru'
    
    Папка lang вот так:
    upload_2016-12-4_12-21-29.png

    Дальше больше. У меня над кодом выбора языка стоит код по подгрузке дефолтных языков.
    Он выглядит так.
    Код:
            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!");
            }
    
    Логи выглядят так
    Код:
    [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 Администратор

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Спасибо за помощь, пожалуй закрою тред, а тут уже пошло что то не то
     
Статус темы:
Закрыта.

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