В общем я тут столько кода нагородил и натестировал, что просто ужас.
Симлинк без админ-прав не создать. Решил генерировать батник 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 работают, так как их часто нужно запускать из корня. И ни одной больше лишней папки в корне. Все что по майну - в одной папке