Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
  • Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Лаунчер Sashok724 Launcher (Modification)

Звуки не работают у тех, у кого имя папки юзера содержит кириллицу!
Потому что нельзя использовать флаг -Dfile.encoding=UTF8 на клиенте. Должна быть стандартная кодировка системы. Раньше тоже по тупости юзал для исправления текста в лк с веба, но потом решил это более правильным путем.
 
Последнее редактирование:
Потому что нельзя использовать флаг -Dfile.encoding=UTF8 на клиенте. Должна быть стандартная кодировка системы. Раньше тоже по тупости юзал для исправления текста в лк с веба, но потом решил это более правильным путем.
Более правильный это какой?
 
В общем я тут столько кода нагородил и натестировал, что просто ужас.
Симлинк без админ-прав не создать. Решил генерировать батник SoundFix в корне клиента, который при запуске игроком с админ-правами создаст ему симлинк. Симлинк уже успешно создается и открывается (C:/.mine.by/Petya_1918fa783851db0dc1f72f83d33a5994), но какая-то ошибка при запуске лаунчера при его использовании.

Придумал другую идею.
Сделать возможность запуска из C:/.mine.by, если есть такая папка, а если ее нет, то из %appdata%.
И у тех, у кого нет звука, просто говорить, чтобы они эту папку переместили на диск C.
А там лаунчер ее потом пометит как скрытую, чтобы глаза не мозолила.

А так предлагаю всем проектам с лаунчером не засорять диск C, а использовать какую-то стандартизированную директорию для всех клиентов. @alexandrage, сделай коммит у себя, чтобы по умолчанию использующим лаунчер предлагало путь, к примеру "C:/MC/Launchers/НазваниеПроекта". А то у игроков, играющих на разных лаунчерах будет засорен корневой раздел. Надо бы хотя бы сейчас это остановить и как-то рассказать админам проектов. Можешь им даже предложить внутренний конвертер в обновлении лаунчера, который будет чекать старую папку (которую пропишет админ в лаунчере, например в Settings.oldDir) и если она есть, перенести ее на новый путь.

Почему я предложил именно C:/MC/Launchers?
Если делать к примеру просто MCLaunchers, то это мусорно. Лучше уже чтобы была универсальная папка MC, куда можно все по майнкрафту сложить, особенно запускать всякие MCP для работы с декомпиляцией. Это - полезно. А какой-то "MCLaunchers" и смотрится прямо в корне противно (много отвлекающих букв из-за "Launcher"), и если рядом создавать папки...... короче объясню так: пространства имён.

Можно напихать кучи всего всякого в корень
MCLaunchers
MCPrograms
MCServers
MC...

А можно сделать единый "воркспейс"/"пространство имен"/"top-level домен" (как угодно) "MC":
MC/Launchers
MC/Programs
- BuildTools
- MCP
MC/Servers
- MyServerSandbox
- MyServerHiTech

Все сразу по Майнкрафту в одном месте. И всякие MCP работают, так как их часто нужно запускать из корня. И ни одной больше лишней папки в корне. Все что по майну - в одной папке
 
Последнее редактирование:
И моя смекалка нашла ответ. Звуки не работают у тех, у кого имя папки юзера содержит кириллицу! И мб при пробелах такая же штука.
Проблема случайно не lwjgl? До версии 1.6 кириллицы с клавы в игре вообще не было до обновления этого самого lwjgl
Почему я предложил именно C:/MC/Launchers?
Идея благая, но порой мне кажется что юзерам пофиг на "гигиену" при пользовании ПК и просто забивают на это. Как и многие лончеры, в которых не предусмотрена возможность удалить папку с игрой.
 
Проблема случайно не lwjgl? До версии 1.6 кириллицы с клавы в игре вообще не было до обновления этого самого lwjgl
Оо, вспомнил те времена. Но нет, не в этом. На абсолютно всех версиях такое.
При том тот же TLauncher например нормально работает. Но я там ничего не нашел в коде кроме сниппета выше.

Сделал запуск с диска C, а хранение сессии в Юзер/AppData. Как хостер заменит диск, только тогда протестирую.
 
В логах вот что, когда кириллица в имени юзера:

Java:
[19:59:08] [Client thread/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:
[19:59:08] [Client thread/INFO]: [paulscode.sound.SoundSystemLogger:message:69]: SoundSystem shutting down...
[19:59:08] [Client thread/INFO]: [paulscode.sound.SoundSystemLogger:importantMessage:90]:     Author: Paul Lamb, www.paulscode.com
[19:59:08] [Client thread/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:
[19:59:08] [Client thread/INFO]: [RTM](Client) Start loading sounds
[19:59:08] [Client thread/INFO]: [RTM](Client) Start registering sounds.json
[19:59:08] [Sound Library Loader/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:
[19:59:08] [Sound Library Loader/INFO]: [paulscode.sound.SoundSystemLogger:message:69]: Starting up SoundSystem...
[19:59:08] [Client thread/INFO]: [RTM](Client) Cant't start loading sounds
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]: Initializing LWJGL OpenAL
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:     (The LWJGL binding of OpenAL.  For more information, see http://www.lwjgl.org)
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:errorMessage:131]: Error in class 'LibraryLWJGLOpenAL'
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:errorMessage:132]:     Unable to initialize OpenAL.  Probable cause: OpenAL not supported.
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:importantMessage:90]:     ERROR MESSAGE:
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         Could not locate OpenAL library.
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:importantMessage:90]:     STACK TRACE:
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         org.lwjgl.openal.AL.create(AL.java:151)
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         org.lwjgl.openal.AL.create(AL.java:102)
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         org.lwjgl.openal.AL.create(AL.java:201)
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         paulscode.sound.libraries.LibraryLWJGLOpenAL.init(LibraryLWJGLOpenAL.java:164)
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         paulscode.sound.SoundSystem.CommandNewLibrary(SoundSystem.java:1576)
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         paulscode.sound.SoundSystem.CommandQueue(SoundSystem.java:2572)
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         paulscode.sound.CommandThread.run(CommandThread.java:121)
[19:59:09] [Sound Library Loader/INFO]: [paulscode.sound.SoundSystemLogger:importantMessage:90]:     ERROR MESSAGE:
[19:59:09] [Sound Library Loader/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         Could not locate OpenAL library.
[19:59:09] [Sound Library Loader/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:
[19:59:09] [Sound Library Loader/INFO]: [paulscode.sound.SoundSystemLogger:message:69]: Starting up SoundSystem...
[19:59:09] [Thread-41/INFO]: [paulscode.sound.SoundSystemLogger:message:69]: Switching to No Sound
[19:59:09] [Thread-41/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:     (Silent Mode)
[19:59:10] [Sound Library Loader/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:
[19:59:10] [Sound Library Loader/INFO]: Sound engine started

Пишет про OpenAL, но если его отдельно устаналивать, то у большинства все равно не работает. То ли дело в самой DLL-ке, то ли что. В целом есть еще мысли, как можно попытаться, но я уже не хочу. Потратил сутки напролет уже. И сделал все на системдрайве. Звуки работают, хоть assets находятся по прежнему в директории пользователя и путь к ним содержит кириллицу. А вот DLL-ки не хотят на кириллицу. Так что дело точно не в пути к assets. Они и сейчас в кириллице, а работают.
Я догадываюсь. Надо посмотреть метод, который сканирует и пассит клиенту нативы. Только лично я уже умываю руки
 
В логах вот что, когда кириллица в имени юзера:

Java:
[19:59:08] [Client thread/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:
[19:59:08] [Client thread/INFO]: [paulscode.sound.SoundSystemLogger:message:69]: SoundSystem shutting down...
[19:59:08] [Client thread/INFO]: [paulscode.sound.SoundSystemLogger:importantMessage:90]:     Author: Paul Lamb, www.paulscode.com
[19:59:08] [Client thread/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:
[19:59:08] [Client thread/INFO]: [RTM](Client) Start loading sounds
[19:59:08] [Client thread/INFO]: [RTM](Client) Start registering sounds.json
[19:59:08] [Sound Library Loader/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:
[19:59:08] [Sound Library Loader/INFO]: [paulscode.sound.SoundSystemLogger:message:69]: Starting up SoundSystem...
[19:59:08] [Client thread/INFO]: [RTM](Client) Cant't start loading sounds
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]: Initializing LWJGL OpenAL
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:     (The LWJGL binding of OpenAL.  For more information, see http://www.lwjgl.org)
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:errorMessage:131]: Error in class 'LibraryLWJGLOpenAL'
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:errorMessage:132]:     Unable to initialize OpenAL.  Probable cause: OpenAL not supported.
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:importantMessage:90]:     ERROR MESSAGE:
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         Could not locate OpenAL library.
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:importantMessage:90]:     STACK TRACE:
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         org.lwjgl.openal.AL.create(AL.java:151)
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         org.lwjgl.openal.AL.create(AL.java:102)
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         org.lwjgl.openal.AL.create(AL.java:201)
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         paulscode.sound.libraries.LibraryLWJGLOpenAL.init(LibraryLWJGLOpenAL.java:164)
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         paulscode.sound.SoundSystem.CommandNewLibrary(SoundSystem.java:1576)
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         paulscode.sound.SoundSystem.CommandQueue(SoundSystem.java:2572)
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         paulscode.sound.CommandThread.run(CommandThread.java:121)
[19:59:09] [Sound Library Loader/INFO]: [paulscode.sound.SoundSystemLogger:importantMessage:90]:     ERROR MESSAGE:
[19:59:09] [Sound Library Loader/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         Could not locate OpenAL library.
[19:59:09] [Sound Library Loader/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:
[19:59:09] [Sound Library Loader/INFO]: [paulscode.sound.SoundSystemLogger:message:69]: Starting up SoundSystem...
[19:59:09] [Thread-41/INFO]: [paulscode.sound.SoundSystemLogger:message:69]: Switching to No Sound
[19:59:09] [Thread-41/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:     (Silent Mode)
[19:59:10] [Sound Library Loader/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:
[19:59:10] [Sound Library Loader/INFO]: Sound engine started

Пишет про OpenAL, но если его отдельно устаналивать, то у большинства все равно не работает. То ли дело в самой DLL-ке, то ли что. В целом есть еще мысли, как можно попытаться, но я уже не хочу. Потратил сутки напролет уже. И сделал все на системдрайве. Звуки работают, хоть assets находятся по прежнему в директории пользователя и путь к ним содержит кириллицу. А вот DLL-ки не хотят на кириллицу. Так что дело точно не в пути к assets. Они и сейчас в кириллице, а работают.
Я догадываюсь. Надо посмотреть метод, который сканирует и пассит клиенту нативы. Только лично я уже умываю руки
Я же ответил почему, и да это дело в самом lwjgl. Не используй флаг Dfile.encoding и все починится.
 
Я же ответил почему, и да это дело в самом lwjgl. Не используй флаг Dfile.encoding и все починится.
Аа, понял. Так я же его не использовал ранее, только вчера внедрил. И в TLauncher почему-то с этим флагом звуки не портятся.
 
Так там игра в отдельном процессе же запускается.
привет
не по теме, однако прошу, подскажи плс, поддержка по лаунчерам еще актуальна? куда не зайду - не могу найти чего можно купить чтоб лаунчер работал в нужной связке. Лет 6 назад я приобретал у тебя лаунчер (даж нашёл всё сорцы с того времени), щас думаю вот снова попробовать, но не получается найти ничего толкового
 
В логах вот что, когда кириллица в имени юзера:

Java:
[19:59:08] [Client thread/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:
[19:59:08] [Client thread/INFO]: [paulscode.sound.SoundSystemLogger:message:69]: SoundSystem shutting down...
[19:59:08] [Client thread/INFO]: [paulscode.sound.SoundSystemLogger:importantMessage:90]:     Author: Paul Lamb, www.paulscode.com
[19:59:08] [Client thread/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:
[19:59:08] [Client thread/INFO]: [RTM](Client) Start loading sounds
[19:59:08] [Client thread/INFO]: [RTM](Client) Start registering sounds.json
[19:59:08] [Sound Library Loader/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:
[19:59:08] [Sound Library Loader/INFO]: [paulscode.sound.SoundSystemLogger:message:69]: Starting up SoundSystem...
[19:59:08] [Client thread/INFO]: [RTM](Client) Cant't start loading sounds
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]: Initializing LWJGL OpenAL
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:     (The LWJGL binding of OpenAL.  For more information, see http://www.lwjgl.org)
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:errorMessage:131]: Error in class 'LibraryLWJGLOpenAL'
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:errorMessage:132]:     Unable to initialize OpenAL.  Probable cause: OpenAL not supported.
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:importantMessage:90]:     ERROR MESSAGE:
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         Could not locate OpenAL library.
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:importantMessage:90]:     STACK TRACE:
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         org.lwjgl.openal.AL.create(AL.java:151)
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         org.lwjgl.openal.AL.create(AL.java:102)
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         org.lwjgl.openal.AL.create(AL.java:201)
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         paulscode.sound.libraries.LibraryLWJGLOpenAL.init(LibraryLWJGLOpenAL.java:164)
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         paulscode.sound.SoundSystem.CommandNewLibrary(SoundSystem.java:1576)
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         paulscode.sound.SoundSystem.CommandQueue(SoundSystem.java:2572)
[19:59:09] [Thread-39/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         paulscode.sound.CommandThread.run(CommandThread.java:121)
[19:59:09] [Sound Library Loader/INFO]: [paulscode.sound.SoundSystemLogger:importantMessage:90]:     ERROR MESSAGE:
[19:59:09] [Sound Library Loader/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:         Could not locate OpenAL library.
[19:59:09] [Sound Library Loader/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:
[19:59:09] [Sound Library Loader/INFO]: [paulscode.sound.SoundSystemLogger:message:69]: Starting up SoundSystem...
[19:59:09] [Thread-41/INFO]: [paulscode.sound.SoundSystemLogger:message:69]: Switching to No Sound
[19:59:09] [Thread-41/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:     (Silent Mode)
[19:59:10] [Sound Library Loader/INFO]: [paulscode.sound.SoundSystemLogger:message:69]:
[19:59:10] [Sound Library Loader/INFO]: Sound engine started

Пишет про OpenAL, но если его отдельно устаналивать, то у большинства все равно не работает. То ли дело в самой DLL-ке, то ли что. В целом есть еще мысли, как можно попытаться, но я уже не хочу. Потратил сутки напролет уже. И сделал все на системдрайве. Звуки работают, хоть assets находятся по прежнему в директории пользователя и путь к ним содержит кириллицу. А вот DLL-ки не хотят на кириллицу. Так что дело точно не в пути к assets. Они и сейчас в кириллице, а работают.
Я догадываюсь. Надо посмотреть метод, который сканирует и пассит клиенту нативы. Только лично я уже умываю руки
Если не ошибаюсь, JVM может цеплять только те длл, которые находятся в -Djava.library.path. Причём нельзя сказать, что загрузка библиотеки происходит из нативного кода, поскольку lwjgl делает это средствами JVM https://github.com/LWJGL/lwjgl3/blo.../src/main/java/org/lwjgl/openal/ALC.java#L119
 
Где взять asset на 1.16.5 а то негде найти не могу, или как его сделать самому
 

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

Назад
Верх