mirror of
https://github.com/Grasscutters/Cultivation.git
synced 2025-12-12 23:24:35 +01:00
Compare commits
30 Commits
v1.2.0-alp
...
dependabot
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2693501957 | ||
|
|
31c60755af | ||
|
|
22a2fff644 | ||
|
|
d11e432e76 | ||
|
|
572006ff95 | ||
|
|
27148eac8e | ||
|
|
7dce15f553 | ||
|
|
1204f967d7 | ||
|
|
51b938a5da | ||
|
|
0def90223f | ||
|
|
f6de90ca50 | ||
|
|
6a161f4539 | ||
|
|
5b6f4e94db | ||
|
|
a32d7186df | ||
|
|
680c6b04a4 | ||
|
|
5db28756d2 | ||
|
|
6d53f344ac | ||
|
|
d144b2dc94 | ||
|
|
7264331436 | ||
|
|
016d377f30 | ||
|
|
0e2b4a4a54 | ||
|
|
a1571ad800 | ||
|
|
d849ea32c9 | ||
|
|
1c7293578c | ||
|
|
73a9e18712 | ||
|
|
96bf4ef3fe | ||
|
|
4c5b79513a | ||
|
|
b222601cf1 | ||
|
|
f8d2e62a06 | ||
|
|
33547cd34e |
@@ -1,4 +1,4 @@
|
||||
EN | [简中](README_zh-CN.md) | [繁中](README_zh-TW.md) |
|
||||
EN | [简中](README_zh-CN.md) | [繁中](README_zh-TW.md) | [日本語](README_ja-JP.md)
|
||||
|
||||
# Cultivation
|
||||
|
||||
@@ -19,7 +19,7 @@ A game launcher designed to easily proxy traffic from anime game to private serv
|
||||
- [Screenshots](#screenshots)
|
||||
- [Credits](#credits)
|
||||
|
||||
# Client Patching Notice - RSA
|
||||
# Client Patching Notice
|
||||
|
||||
For game versions 3.1 and above, Cultivation automatically makes a small patch to your game client when launching using Grasscutter, and restores it upon closing the game. In theory, you should still be totally safe, however it would be dishonest to not explicitly state that **modifying the game client could, theoretically, lead to a ban if you connect to official servers with it**. It is extremely unlikely AND there are no instances known of it happening, but the possibility exists.
|
||||
|
||||
|
||||
124
README_ja-JP.md
Normal file
124
README_ja-JP.md
Normal file
@@ -0,0 +1,124 @@
|
||||
[EN](README.md) | [简中](README_zh-CN.md) | [繁中](README_zh-TW.md) | 日本語
|
||||
|
||||
# Cultivation
|
||||
|
||||
某アニメゲームからプライベートサーバーへのトラフィックを簡単にプロキシできるように設計されたゲームランチャー。
|
||||
|
||||
# 目次
|
||||
|
||||
- [クライアントのパッチに関するお知らせ](#クライアントのパッチに関するお知らせ)
|
||||
- [ダウンロード](#ダウンロード)
|
||||
- [セットアップ](#セットアップ)
|
||||
- [トラブルシューティング](#トラブルシューティング)
|
||||
- [開発者向けクイックスタート](#開発者向けクイックスタート)
|
||||
- [セットアップ](#セットアップ)
|
||||
- [ビルド](#ビルド)
|
||||
- [コードフォーマット・lint](#コードフォーマットlint)
|
||||
- [artifactを生成](#artifactを生成)
|
||||
- [テーマについて](#テーマについて)
|
||||
- [スクリーンショット](#スクリーンショット)
|
||||
- [クレジット](#クレジット)
|
||||
|
||||
# クライアントのパッチに関するお知らせ
|
||||
|
||||
ゲームバージョン3.1以降の場合、CultivationはGrasscutterを使用して起動するときにゲームクライアントに自動的に小さなパッチ(RSAパッチ)を適用し、ゲームを閉じると自動的に解除します。理論上は安全ですが、<strong>ゲームクライアント自体に変更を加えるため、公式サーバーに接続するとBANにつながる可能性があります。</strong>これによるBANについての既知の事例はありませんが、可能性は存在します。
|
||||
|
||||
# ダウンロード
|
||||
|
||||
[**リリースビルドはこちら**](https://github.com/Grasscutters/Cultivation/releases)
|
||||
|
||||
MSIインストーラーをダウンロードして開き、インストールしたら、管理者としてCultivationを実行します。[より詳細なセットアップ手順](#セットアップ)については、以下を参照してください。
|
||||
|
||||
**Windows 7をお使いの場合:** [WebView2](https://developer.microsoft.com/ja-jp/microsoft-edge/webview2/#download-section)を手動でダウンロードしてインストールする必要があります。また、Cultivationのインストールには`.msi`の代わりに`.zip`を使用してください。
|
||||
|
||||
# セットアップ
|
||||
|
||||
5分間の解説動画(英語): https://youtu.be/e0irOYbQe7I
|
||||
|
||||
- Cultivationをダウンロードします。
|
||||
- Windows 10/11をお使いの場合は、MSIインストーラーを使用してください。
|
||||
- Windows 7をお使いの場合またはMSIインストーラーが動作しない場合、ZIPを使用してください。また、[WebView2](https://developer.microsoft.com/ja-jp/microsoft-edge/webview2/)をインストールしてください。
|
||||
- GNU/LinuxまたはmacOSをお使いの場合は、[Linux・macOSでの動作をサポートするのを手伝っていただけると嬉しいです!](https://github.com/Grasscutters/Cultivation/issues/7)
|
||||
- Cultivationをインストールまたは展開します。
|
||||
- Cultivationを<strong><u>管理者権限で</u></strong>開きます。
|
||||
- Options(右上の歯車アイコン)内で、ゲームのインストールパスを設定します。
|
||||
- 他の場所に既存のGrasscutterサーバーがインストールされている場合は、`.jar`ファイルのパスを設定できます。Cultivationを介して行われるすべてのダウンロードは、そのパスを自動的に使用します。追加の構成は必要ありません。
|
||||
- 複数のJavaバージョンを使用している場合、Java 17のパスをCultivationに設定できます(自分でGrasscutterサーバーを実行している場合にのみ必要です)。
|
||||
- 自分でサーバーをダウンロードするか、公開サーバーに参加するかどうかを決定します。
|
||||
- 公開サーバーに参加する場合は、[Grasscutterに接続]をクリックして、アドレスとポートを入力してください。
|
||||
- システムエラー、または4214エラーが表示されている場合は、[Discordサポートチャンネル](https://discord.gg/grasscutter)で問い合わせてください。
|
||||
- 自分でサーバーをダウンロードする場合は、"Downloads"メニューを開きます。(右上の下矢印アイコン)
|
||||
- "Grasscutter All-in-Oneをダウンロード"します。(一番上)
|
||||
- それが完了したら、「起動」の横にあるサーバーアイコンをクリックします。
|
||||
- 自分のサーバーでプレイするには:
|
||||
- [Grasscutterに接続]をクリックします。
|
||||
- アドレスに`localhost`、ポート番号に`443`を指定します。
|
||||
- HTTPS接続を無効にします。
|
||||
- 何らかのエラーが発生した場合は、[Discordサポートチャンネル](https://discord.gg/grasscutter)で問い合わせてください。
|
||||
- 何らかのCultivationに関する問題は[Issuesページ](/issues)へお願いします。
|
||||
- 何らかのGrasscutterサーバーに関する問題は[GrasscutterのIssuesページ](https://github.com/Grasscutters/Grasscutter/issues)へお願いします。
|
||||
|
||||
# トラブルシューティング
|
||||
|
||||
### ホワイトスクリーン、インスタントクラッシュなどの問題
|
||||
|
||||
- まず、[Windows 8 互換モード](https://www.lifewire.com/run-older-programs-with-windows-10-compatibility-mode-4587064)で実行してみてください。
|
||||
- 解決しない場合は、[WebView2](https://developer.microsoft.com/ja-jp/microsoft-edge/webview2/#download-section)を完全にアンインストールしてから再インストールしてみてください。
|
||||
- アンインストール時に問題が発生する場合は、`HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}`レジストリを削除して再度試してください。
|
||||
- [コマンドプロンプトからアンインストール](https://superuser.com/a/1743626)する方法を試すこともできます。
|
||||
|
||||
### Cultivationを使用した後にインターネットに接続できない問題
|
||||
|
||||
ゲームを終了すると、Cultivationウィンドウに戻り再びポップアップすることを確認してください。これは、ゲームが終了されたこと、そしてプロキシ設定が正常に戻されたことを示しています。ウィンドウに戻る前にCultivationを閉じた場合、またはインターネットの他の問題が発生した場合は、[Windowsのプロキシ設定](https://is.gd/tZHkvl)を開き、"手動プロキシセットアップ"をオフにしてください。これでインターネット接続は元に戻ります。
|
||||
|
||||
# 開発者向けクイックスタート
|
||||
|
||||
### セットアップ
|
||||
|
||||
- [NodeJS >12](https://nodejs.org/en/) をインストール
|
||||
- [yarn](https://classic.yarnpkg.com/lang/en/docs/install) をインストール (`npm`愛用者の方々、ごめんなさい...)
|
||||
- [Rust](https://www.rust-lang.org/tools/install) をインストール
|
||||
- `yarn install`
|
||||
- `yarn tauri dev`
|
||||
|
||||
### ビルド
|
||||
|
||||
リリースビルド:
|
||||
|
||||
- `yarn build`
|
||||
|
||||
デバッグビルド:
|
||||
|
||||
- `yarn build --debug`
|
||||
|
||||
### コードフォーマット・lint
|
||||
|
||||
- `yarn format`
|
||||
- `yarn lint`, `yarn lint:fix`
|
||||
|
||||
### artifactを生成
|
||||
|
||||
- 秘密鍵へのパスを持つ環境変数として`TAURI_PRIVATE_KEY`を追加
|
||||
- 秘密鍵のパスワードを持つ環境変数として`TAURI_KEY_PASSWORD`を追加
|
||||
- `yarn build`
|
||||
|
||||
アップデートは`src-tauri/target/(release|debug)/msi/Cultivation_X.X.X_x64_xx-XX.msi.zip`へ追加されます
|
||||
|
||||
# テーマについて
|
||||
|
||||
テーマについての完全なリファレンスは[こちら](/THEMES.md)
|
||||
|
||||
# スクリーンショット
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## クレジット
|
||||
|
||||
- [SpikeHD](https://github.com/SpikeHD): オリジナルである **GrassClipper** を製作し、Cultivationの素晴らしいUIを作成
|
||||
- [KingRainbow44](https://github.com/KingRainbow44): ゼロからプロキシデーモンを作成し、Cultivationへ統合
|
||||
- [Benj](https://github.com/4Benj): クライアントのパッチに関するアシスタント
|
||||
- [lilmayofuksu](https://github.com/lilmayofuksu): クライアントのパッチに関するアシスタント
|
||||
- [Tauri](https://tauri.app): 素晴らしく軽量でシンプルなデスクトップアプリケーションフレームワーク・ライブラリを提供
|
||||
@@ -1,4 +1,4 @@
|
||||
[EN](README.md) | 简中 | [繁中](README_zh-TW.md)
|
||||
[EN](README.md) | 简中 | [繁中](README_zh-TW.md) | [日本語](README_ja-JP.md)
|
||||
|
||||
# Cultivation
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[EN](README.md) | [简中](README_zh-CN.md) | 繁中
|
||||
[EN](README.md) | [简中](README_zh-CN.md) | 繁中 | [日本語](README_ja-JP.md)
|
||||
|
||||
# 客戶端修補通知
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
"@tauri-apps/cli": "^1.0.0-rc.11",
|
||||
"@tauri-apps/cli": "^1.5.6",
|
||||
"@typescript-eslint/eslint-plugin": "^5.22.0",
|
||||
"@typescript-eslint/parser": "^5.22.0",
|
||||
"cross-env": "^7.0.3",
|
||||
|
||||
4
src-tauri/Cargo.lock
generated
4
src-tauri/Cargo.lock
generated
@@ -5289,9 +5289,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "webpki"
|
||||
version = "0.22.0"
|
||||
version = "0.22.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd"
|
||||
checksum = "07ecc0cd7cac091bf682ec5efa18b1cff79d617b84181f38b3951dbe135f607f"
|
||||
dependencies = [
|
||||
"ring",
|
||||
"untrusted",
|
||||
|
||||
@@ -33,7 +33,9 @@
|
||||
"horny_mode": "Horny 模式",
|
||||
"auto_mongodb": "自动启动 MongoDB",
|
||||
"un_elevated": "非提升运行游戏(无管理员)",
|
||||
"redirect_more": "还可以重定向其他MHY游戏"
|
||||
"redirect_more": "还可以重定向其他MHY游戏",
|
||||
"web_cache": "删除 webCaches 文件夹",
|
||||
"launch_args": "Launch Args"
|
||||
},
|
||||
"downloads": {
|
||||
"grasscutter_fullbuild": "下载 Grasscutter 一体化",
|
||||
|
||||
@@ -33,7 +33,9 @@
|
||||
"horny_mode": "Horny模式",
|
||||
"auto_mongodb": "自動啟動 MongoDB",
|
||||
"un_elevated": "在不升高的情况下运行游戏(没有管理员)。",
|
||||
"redirect_more": "同時重定向其他 MHY 遊戲"
|
||||
"redirect_more": "同時重定向其他 MHY 遊戲",
|
||||
"web_cache": "刪除 webCaches 文件夾",
|
||||
"launch_args": "Launch Args"
|
||||
},
|
||||
"downloads": {
|
||||
"grasscutter_fullbuild": "下載Grasscutter多合一下載",
|
||||
|
||||
@@ -3,60 +3,65 @@
|
||||
"main": {
|
||||
"title": "Cultivation",
|
||||
"launch_button": "Starten",
|
||||
"gc_enable": "Über Grasscutter verbinden",
|
||||
"https_enable": "HTTPS nutzen",
|
||||
"ip_placeholder": "Server Adresse...",
|
||||
"port_placeholder": "Port...",
|
||||
"files_downloading": "Herunterladen von Dateien: ",
|
||||
"files_extracting": "Extrahieren von Dateien: ",
|
||||
"game_path_notify": "Spielpfad nicht gefunden, denken Sie daran, ihn in den Einstellungen festzulegen!"
|
||||
"gc_enable": "Mit Grasscutter verbinden",
|
||||
"https_enable": "HTTPS verwenden",
|
||||
"ip_placeholder": "Server-Adresse",
|
||||
"port_placeholder": "Port",
|
||||
"files_downloading": "Dateien herunterladen: ",
|
||||
"files_extracting": "Dateien extrahieren: ",
|
||||
"game_path_notify": "Spielverzeichnis nicht gefunden, bitte lege es in den Einstellungen fest!"
|
||||
},
|
||||
"options": {
|
||||
"enabled": "Aktiviert",
|
||||
"disabled": "Deaktiviert",
|
||||
"game_path": "Spielpfad",
|
||||
"game_executable": "Spiel Datei auswählen",
|
||||
"recover_rsa": "Notfall Wiederherstellung der RSA",
|
||||
"grasscutter_jar": "Grasscuter JAR auswählen",
|
||||
"game_path": "Spielinstallationspfad festlegen",
|
||||
"game_command": "Spielstartbefehl",
|
||||
"game_executable": "Spiele Datei festlegen",
|
||||
"recover_rsa": "Notfall-RSA löschen",
|
||||
"grasscutter_jar": "Grasscutter-JAR festlegen",
|
||||
"toggle_encryption": "Verschlüsselung umschalten",
|
||||
"install_certificate": "Installeer proxy certificaat",
|
||||
"java_path": "Benutzerdefinierten Java Pfad setzen",
|
||||
"install_certificate": "Proxy-Zertifikat installieren",
|
||||
"java_path": "Benutzerdefinierten Java-Pfad festlegen",
|
||||
"grasscutter_with_game": "Grasscutter automatisch mit dem Spiel starten",
|
||||
"language": "Sprache auswählen",
|
||||
"background": "Benutzerdefinierten Hintergrund festlegen (link oder bild)",
|
||||
"use_theme_background": "Verwenden Sie den vom ausgewählten Thema bereitgestellten Hintergrund",
|
||||
"theme": "Theme auswählen",
|
||||
"background": "Benutzerdefinierten Hintergrund festlegen (Link oder Bild-Datei)",
|
||||
"use_theme_background": "Hintergrund des ausgewählten Themes verwenden",
|
||||
"theme": "Theme festlegen",
|
||||
"patch_rsa": "RSA automatisch patchen",
|
||||
"use_proxy": "Gebruik interne proxy",
|
||||
"wipe_login": "Wis de inlogcache",
|
||||
"horny_mode": "Geile modus",
|
||||
"auto_mongodb": "Start automatisch MongoDB",
|
||||
"un_elevated": "Führen Sie das Spiel nicht erhöht aus (kein Admin)",
|
||||
"redirect_more": "Leiten Sie auch andere MHY-Spiele um"
|
||||
"use_proxy": "Internen Proxy verwenden",
|
||||
"wipe_login": "Login-Cache löschen",
|
||||
"horny_mode": "Horny Modus",
|
||||
"auto_mongodb": "MongoDB automatisch starten",
|
||||
"un_elevated": "Spiel ohne Administratorrechte ausführen",
|
||||
"redirect_more": "Auch andere miHoYo-Spiele umleiten",
|
||||
"check_aagl": "Für weitere Optionen, schaue weiter",
|
||||
"grasscutter_elevation": "Methode zur Ausführung von GC auf eingeschränkten Ports",
|
||||
"web_cache": "WebCaches-Ordner löschen",
|
||||
"launch_args": "Launch Args"
|
||||
},
|
||||
"downloads": {
|
||||
"grasscutter_fullbuild": "Alles in Einem Grasscutter Daten herunterladen",
|
||||
"grasscutter_fullquest": "Alles in Einem Questing Daten herunterladen",
|
||||
"grasscutter_stable_data": "Stabile Grasscutter Daten herunterladen",
|
||||
"grasscutter_latest_data": "Aktuellste Grasscutter Daten herunterladen",
|
||||
"grasscutter_stable_data_update": "Stabile Grasscutter Daten aktualisieren",
|
||||
"grasscutter_latest_data_update": "Aktuellste Grasscutter Daten aktualisieren",
|
||||
"grasscutter_unstable": "Stabile Grasscutter Version herunterladen",
|
||||
"grasscutter_latest": "Aktuellste Grasscutter Version herunterladen",
|
||||
"grasscutter_unstable_update": "Stabile Grasscutter Version aktualisieren",
|
||||
"grasscutter_latest_update": "Aktuellste Grasscutter Version aktualisieren",
|
||||
"resources": "Grasscutter Ressourcen herunterladen",
|
||||
"grasscutter_fullbuild": "Grasscutter All-in-One herunterladen",
|
||||
"grasscutter_fullquest": "Questing All-in-One herunterladen",
|
||||
"grasscutter_stable_data": "Stabile Grasscutter-Daten herunterladen",
|
||||
"grasscutter_latest_data": "Neueste Grasscutter-Daten herunterladen",
|
||||
"grasscutter_stable_data_update": "Stabile Grasscutter-Daten aktualisieren",
|
||||
"grasscutter_latest_data_update": "Neueste Grasscutter-Daten aktualisieren",
|
||||
"grasscutter_unstable": "Grasscutter Questing herunterladen",
|
||||
"grasscutter_latest": "Neueste Grasscutter-Version herunterladen",
|
||||
"grasscutter_unstable_update": "Grasscutter Questing aktualisieren",
|
||||
"grasscutter_latest_update": "Neueste Grasscutter-Version aktualisieren",
|
||||
"resources": "Grasscutter-Ressourcen herunterladen",
|
||||
"game": "Spiel herunterladen",
|
||||
"aio_header": "Alles in Einem herunterladen",
|
||||
"individual_header": "Einzelne Teile herunterladen:",
|
||||
"aio_header": "Alles-in-Einem Downloads:",
|
||||
"individual_header": "Einzelne Downloads:",
|
||||
"mods_header": "Mods:",
|
||||
"migoto": "GIMI 3dmigoto herunterladen"
|
||||
},
|
||||
"download_status": {
|
||||
"downloading": "Lädt herunter",
|
||||
"extracting": "Extrahiert",
|
||||
"downloading": "Herunterladen",
|
||||
"extracting": "Extrahieren",
|
||||
"error": "Fehler",
|
||||
"finished": "Fertig",
|
||||
"finished": "Abgeschlossen",
|
||||
"stopped": "Gestoppt"
|
||||
},
|
||||
"components": {
|
||||
@@ -67,30 +72,32 @@
|
||||
"install": "Installieren"
|
||||
},
|
||||
"news": {
|
||||
"latest_commits": "Letzte Commits",
|
||||
"latest_version": "Letzte Version"
|
||||
"latest_commits": "Neueste Commits",
|
||||
"latest_version": "Neueste Version"
|
||||
},
|
||||
"help": {
|
||||
"port_help_text": "Vergewissern Sie sich, dass es sich um den Port des Dispatch-Servers handelt, nicht um den Port des Spiel-Servers. Dieser ist fast immer '443'.",
|
||||
"game_help_text": "Sie müssen keine separate Kopie verwenden, um mit Grasscutter zu spielen. Dies ist entweder für ein Downgrade auf die Version 2.6 oder wenn Sie das Spiel nicht installiert haben.",
|
||||
"gc_stable_jar": "Laden Sie den aktuellen stabilen Grasscutter-Build herunter, der eine Jar-Datei und Datendateien enthält.",
|
||||
"gc_fullbuild": "Download een volledige Grasscutter-build, inclusief repo, jar en bronnen. Is volledig ingesteld en vereist geen andere downloads uit dit menu",
|
||||
"gc_dev_jar": "Laden Sie die neueste Grasscutter-Entwicklungsversion herunter, welche eine Jar-Datei und Datendateien enthält.",
|
||||
"gc_stable_data": "Laden Sie die stabilen Grasscutter Daten herunter, welche keine Jar-Datei enthalten. Dies ist nützlich zum Aktualisieren.",
|
||||
"gc_dev_data": "Laden Sie die neuesten Grasscutter-Entwicklungsdateien herunter, welche keine Jar-Datei enthält. Dies ist nützlich zum Aktualisieren.",
|
||||
"resources": "Diese werden auch benötigt, um einen Grasscutter-Server auszuführen. Diese Schaltfläche ist grau, wenn Sie einen bestehenden Ressourcenordner mit Inhalten haben",
|
||||
"emergency_rsa": "Im Fall, dass etwas schief laufen sollte, kannst du deine RSA auf die letzte offizielle Version zurücksetzen",
|
||||
"use_proxy": "Nutze den internen Proxy von Cultivation. Du solltest dies aktivieren, es sei denn du nutzt Programme wie Fiddler",
|
||||
"patch_rsa": "Patche und aktualisiere deine RSA automatisch. Solange du nicht mit einer alten/nicht offiziellen Version spielst oder deine RSA manuell gepatcht hast, sollte dies aktiviert sein.",
|
||||
"add_delay": "Verzögerung im 3dmigoto-Lader einstellen! \nDies sollte die Ladeprobleme beheben, führt aber zu einer kleinen Verzögerung, wenn 3dmigoto beim Start des Spiels geladen wird. \nSie können nun wieder mit 3dmigoto starten.",
|
||||
"migoto": "Zum Importieren von Modellen von GameBanana"
|
||||
"port_help_text": "Stelle sicher, dass dies der Port des Dispatch-Servers ist, nicht der des Spielservers. Dies ist fast immer '443'.",
|
||||
"game_help_text": "Du musst keine separate Kopie verwenden, um mit Grasscutter zu spielen. Dies ist entweder für ein Downgrade auf Version 2.6 oder wenn du das Spiel nicht installiert hast.",
|
||||
"gc_stable_jar": "Lade die aktuelle stabile Grasscutter-Version herunter, die die JAR-Datei und Daten enthält.",
|
||||
"gc_fullbuild": "Lade eine vollständige Grasscutter-Version herunter, inklusive Repository, JAR-Datei und Ressourcen. Sie ist vollständig eingerichtet und erfordert keine weiteren Downloads aus diesem Menü.",
|
||||
"gc_dev_jar": "Lade die neueste Entwicklungsversion von Grasscutter herunter, die die JAR-Datei und Daten enthält.",
|
||||
"gc_stable_data": "Lade die aktuellen stabilen Grasscutter-Daten herunter, die keine JAR-Datei enthalten. Dies ist nützlich für Updates.",
|
||||
"gc_dev_data": "Lade die neuesten Entwicklungsdetails von Grasscutter herunter, die keine JAR-Datei enthalten. Dies ist nützlich für Updates.",
|
||||
"encryption": "Dies sollte normalerweise deaktiviert sein.",
|
||||
"resources": "Diese werden auch benötigt, um einen Grasscutter-Server auszuführen. Diese Schaltfläche ist grau, wenn bereits ein Ressourcenordner mit Inhalten vorhanden ist.",
|
||||
"emergency_rsa": "Für den Fall, dass etwas schiefgegangen ist, erzwingt das Löschen des RSA-Patches.",
|
||||
"use_proxy": "Verwende den internen Cultivation-Proxy. Dies sollte aktiviert sein, es sei denn, du verwendest etwas wie Fiddler.",
|
||||
"patch_rsa": "Patche und entpatche dein Spiel-RSA automatisch. Dies sollte aktiviert sein, es sei denn, du spielst mit alten/nicht offiziellen Versionen (Versionen 3.0 und älter).",
|
||||
"add_delay": "Setze eine Verzögerung im 3dmigoto-Loader! Dies sollte Ladeprobleme beheben, fügt jedoch eine geringfügige Verzögerung hinzu, wenn 3dmigoto beim Starten des Spiels geladen wird. Du kannst jetzt wieder mit 3dmigoto starten.",
|
||||
"migoto": "Zum Importieren von Modellen von GameBanana",
|
||||
"grasscutter_elevation_help_text": "Die Methode, die verwendet wird, um Grasscutter zu ermöglichen, Port 443 zu binden (was für normale Benutzer unter Linux nicht erlaubt ist). Verfügbare Methoden:\n Capability - gewähre der Java Virtual Machine die Fähigkeit, Ports unter 1024 zu binden. Dies ermöglicht auch allen anderen Programmen, die auf dieser JVM ausgeführt werden, diese Ports zu binden.\n Root - führe GC als Root aus. Dies ermöglicht auch dem GC-Server, seinen Plugins und der JVM so ziemlich alles, einschließlich das Senden deiner Bilder an die NSA, CIA und die Alphabet-Boys.\n None - für keine Methode. Dies erfordert, dass du den GC-Dispatch-Port änderst."
|
||||
},
|
||||
"swag": {
|
||||
"akebi_name": "Akebi",
|
||||
"migoto_name": "Migoto",
|
||||
"reshade_name": "Reshade",
|
||||
"akebi": "Akebi.exe festlegen",
|
||||
"migoto": "Migoto.exe festlegen",
|
||||
"reshade": "Reshade injector festlegen"
|
||||
"akebi": "Akebi/Acrepi Ausführbare Datei festlegen",
|
||||
"migoto": "3DMigoto Ausführbare Datei festlegen",
|
||||
"reshade": "Reshade Injector festlegen"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,7 +35,9 @@
|
||||
"un_elevated": "Run the game non-elevated (no admin)",
|
||||
"redirect_more": "Also redirect other MHY games",
|
||||
"check_aagl": "For more options, check the other launcher",
|
||||
"grasscutter_elevation": "Method of running GC on restricted ports"
|
||||
"grasscutter_elevation": "Method of running GC on restricted ports",
|
||||
"web_cache": "Delete webCaches folder",
|
||||
"launch_args": "Launch Args"
|
||||
},
|
||||
"downloads": {
|
||||
"grasscutter_fullbuild": "Download Grasscutter All-in-One",
|
||||
|
||||
@@ -33,7 +33,9 @@
|
||||
"horny_mode": "Modo cachondo",
|
||||
"auto_mongodb": "Iniciar automáticamente MongoDB",
|
||||
"un_elevated": "Ejecutar el juego sin permisos de administrador",
|
||||
"redirect_more": "También redirigir otros juegos MHY"
|
||||
"redirect_more": "También redirigir otros juegos MHY",
|
||||
"web_cache": "Eliminar la carpeta webCaches",
|
||||
"launch_args": "Launch Args"
|
||||
},
|
||||
"downloads": {
|
||||
"grasscutter_fullbuild": "Descargar datos todo en uno de Grasscutter",
|
||||
|
||||
@@ -33,7 +33,9 @@
|
||||
"horny_mode": "Mode horny",
|
||||
"auto_mongodb": "Démarrer automatiquement MongoDB",
|
||||
"un_elevated": "Exécuter le jeu sans élévation (pas d'administrateur)",
|
||||
"redirect_more": "Réorienter également les autres jeux MHY"
|
||||
"redirect_more": "Réorienter également les autres jeux MHY",
|
||||
"web_cache": "Supprimer le dossier webCaches",
|
||||
"launch_args": "Launch Args"
|
||||
},
|
||||
"downloads": {
|
||||
"grasscutter_fullbuild": "Telecharger Grasscutter tout-en-un",
|
||||
|
||||
@@ -32,7 +32,9 @@
|
||||
"horny_mode": "Mode Terangsang",
|
||||
"auto_mongodb": "Mulai MongoDB secara otomatis",
|
||||
"un_elevated": "Jalankan game yang tidak ditinggikan (tanpa admin)",
|
||||
"redirect_more": "Juga mengarahkan ulang game MHY lainnya"
|
||||
"redirect_more": "Juga mengarahkan ulang game MHY lainnya",
|
||||
"web_cache": "Hapus folder webCaches",
|
||||
"launch_args": "Launch Args"
|
||||
},
|
||||
"downloads": {
|
||||
"grasscutter_fullbuild": "Sedang Mendownload Grasscutter Semua Dalam Satu",
|
||||
|
||||
@@ -33,7 +33,9 @@
|
||||
"horny_mode": "Modalità Horny",
|
||||
"auto_mongodb": "Avvia Automaticamente MongoDB",
|
||||
"un_elevated": "Avvia il gioco non-elevato (non admin)",
|
||||
"redirect_more": "Reindirizza anche altri giochi MHY"
|
||||
"redirect_more": "Reindirizza anche altri giochi MHY",
|
||||
"web_cache": "Elimina la cartella webCaches",
|
||||
"launch_args": "Launch Args"
|
||||
},
|
||||
"downloads": {
|
||||
"grasscutter_fullbuild": "Scarica Grasscutter Tutto-in-Uno",
|
||||
|
||||
103
src-tauri/lang/ja.json
Normal file
103
src-tauri/lang/ja.json
Normal file
@@ -0,0 +1,103 @@
|
||||
{
|
||||
"lang_name": "日本語",
|
||||
"main": {
|
||||
"title": "Cultivation",
|
||||
"launch_button": "起動",
|
||||
"gc_enable": "Grasscutterに接続",
|
||||
"https_enable": "HTTPS接続を使用",
|
||||
"ip_placeholder": "サーバーアドレス...",
|
||||
"port_placeholder": "ポート...",
|
||||
"files_downloading": "ファイルをダウンロード中: ",
|
||||
"files_extracting": "ファイルを展開中: ",
|
||||
"game_path_notify": "ゲームのパスが見つかりません!"
|
||||
},
|
||||
"options": {
|
||||
"enabled": "有効",
|
||||
"disabled": "無効",
|
||||
"game_path": "ゲームのインストールパスを設定",
|
||||
"game_command": "ゲームの実行コマンド",
|
||||
"game_executable": "ゲームの実行ファイルパスを設定",
|
||||
"recover_rsa": "RSAを強制削除",
|
||||
"grasscutter_jar": "Grasscutter jarファイルを設定",
|
||||
"toggle_encryption": "暗号化の有無",
|
||||
"install_certificate": "プロキシの証明書をインストール",
|
||||
"java_path": "カスタムJavaパスを設定",
|
||||
"grasscutter_with_game": "ゲーム起動時にGrasscutterを自動起動",
|
||||
"language": "言語を設定",
|
||||
"background": "カスタムの背景を設定 (画像ファイルまたはリンク)",
|
||||
"use_theme_background": "選択したテーマが提供する背景を使用",
|
||||
"theme": "テーマを設定",
|
||||
"patch_rsa": "自動的にRSAにパッチを適用",
|
||||
"use_proxy": "内部プロキシを使用",
|
||||
"wipe_login": "ログインキャッシュを削除",
|
||||
"horny_mode": "Hornyモード",
|
||||
"auto_mongodb": "MongoDBを自動起動",
|
||||
"un_elevated": "昇格せずにゲームを実行 (非管理者権限)",
|
||||
"redirect_more": "他のmhyゲームもリダイレクト",
|
||||
"check_aagl": "その他のオプションは、他のランチャーをチェックしてください",
|
||||
"grasscutter_elevation": "制限されたポートでのGCの実行方法",
|
||||
"web_cache": "webCachesフォルダを削除",
|
||||
"launch_args": "Launch Args"
|
||||
},
|
||||
"downloads": {
|
||||
"grasscutter_fullbuild": "Grasscutter All-in-Oneをダウンロード",
|
||||
"grasscutter_fullquest": "Questing All-in-Oneをダウンロード",
|
||||
"grasscutter_stable_data": "Grasscutter安定版データファイルをダウンロード",
|
||||
"grasscutter_latest_data": "Grasscutter最新版データファイルをダウンロード",
|
||||
"grasscutter_stable_data_update": "Grasscutter安定版データファイルをアップデート",
|
||||
"grasscutter_latest_data_update": "Grasscutter最新版データファイルをアップデート",
|
||||
"grasscutter_unstable": "Grasscutter Questingをダウンロード",
|
||||
"grasscutter_latest": "Grasscutter最新版をダウンロード",
|
||||
"grasscutter_unstable_update": "Grasscutter Questingをアップデート",
|
||||
"grasscutter_latest_update": "Grasscutter最新版をアップデート",
|
||||
"resources": "Grasscutter Resourcesをダウンロード",
|
||||
"game": "ゲームをダウンロード",
|
||||
"aio_header": "All-in-Oneダウンロード:",
|
||||
"individual_header": "個別ダウンロード:",
|
||||
"mods_header": "Mod:",
|
||||
"migoto": "GIMI 3Dmigotoをダウンロード"
|
||||
},
|
||||
"download_status": {
|
||||
"downloading": "ダウンロード中",
|
||||
"extracting": "展開中",
|
||||
"error": "エラー",
|
||||
"finished": "完了しました",
|
||||
"stopped": "停止しました"
|
||||
},
|
||||
"components": {
|
||||
"select_file": "ファイルまたはフォルダーを選択...",
|
||||
"select_folder": "フォルダーを選択...",
|
||||
"download": "ダウンロード",
|
||||
"delete": "削除",
|
||||
"install": "インストール"
|
||||
},
|
||||
"news": {
|
||||
"latest_commits": "最新のコミット",
|
||||
"latest_version": "最新のバージョン"
|
||||
},
|
||||
"help": {
|
||||
"port_help_text": "ゲームサーバーのポートではなく、Dispatchサーバーのポートです。これは大抵'443'です。",
|
||||
"game_help_text": "Grasscutterでプレイするために別のコピーを使用する必要はありません。これは、ゲームがインストールされていない場合か、ver 2.6にダウングレードするためにあります。",
|
||||
"gc_stable_jar": "Grasscutterの現時点での安定版 (jarファイルとデータファイルを含む) をダウンロードします。",
|
||||
"gc_fullbuild": "repo、jar、resourcesを含む完全なGrasscutterビルドをダウンロードします。これは完全にセットアップされており、他のダウンロードを行う必要はありません。",
|
||||
"gc_dev_jar": "Grasscutterの現時点での最新版 (jarファイルとデータファイルを含む) をダウンロードします。",
|
||||
"gc_stable_data": "Grasscutterの現時点での安定版データファイルをダウンロードします。jarファイルは含まれません。アップデートのために使用します。",
|
||||
"gc_dev_data": "Grasscutterの現時点での最新版データファイルをダウンロードします。jarファイルは含まれません。アップデートのために使用します。",
|
||||
"encryption": "これは通常は無効にするべきです。",
|
||||
"resources": "これはGrasscutterサーバーを実行するために必要です。既存のresourcesフォルダ内にファイルがある場合、このボタンはグレーアウトします。",
|
||||
"emergency_rsa": "何か問題が起きた場合に、RSAパッチを強制的に削除します。",
|
||||
"use_proxy": "Cultivationの内部プロキシを使用します。Fiddlerのような外部のプロキシを使わない限り、これを有効にしておく必要があります。",
|
||||
"patch_rsa": "ゲームのRSAに自動的にパッチを適用/解除します。古い(ver 3.0以前)又は非公式のバージョンでプレイしない限り、これは有効にしておくべきです。",
|
||||
"add_delay": "3Dmigoto Loaderに遅延を設定しました!\nこれはロード時の問題を解決しますが、ゲーム起動時に3Dmigotoがロードされる際に遅延が発生します。\nもう一度3Dmigotoを使用して起動できます。",
|
||||
"migoto": "GameBananaからモデルをインポートするために使用します。",
|
||||
"grasscutter_elevation_help_text": "Grasscutterがポート443をバインド(Linuxでは一般ユーザーは許可されていません)できるようにするための方法を指定します。\n利用可能な方法:\n「Capability」1024以下のポートをバインドする権限をJava仮想マシンに与えます。これは、そのJVM上で実行されている他のすべてのプログラムがこれらのポートをバインドできるようになることを意味します。\n「Root」Grasscutterをrootとして実行します。これは、GCサーバー、そのプラグイン、およびJVMが制限なくほとんど何でもできるようになることを意味します。\n「None」なし。この場合、GrasscutterのDispatchポートを変更する必要があります。"
|
||||
},
|
||||
"swag": {
|
||||
"akebi_name": "Akebi",
|
||||
"migoto_name": "3Dmigoto",
|
||||
"reshade_name": "Reshade",
|
||||
"akebi": "Akebi実行ファイルを設定",
|
||||
"migoto": "3Dmigoto実行ファイルを設定",
|
||||
"reshade": "Reshadeインジェクターを設定"
|
||||
}
|
||||
}
|
||||
@@ -33,7 +33,9 @@
|
||||
"horny_mode": "Horny 모드",
|
||||
"auto_mongodb": "MongoDB 자동 시작",
|
||||
"un_elevated": "게임 비상승 실행(관리자 없음)",
|
||||
"redirect_more": "다른 MHY 게임도 리디렉션"
|
||||
"redirect_more": "다른 MHY 게임도 리디렉션",
|
||||
"web_cache": "webCaches 폴더 삭제",
|
||||
"launch_args": "Launch Args"
|
||||
},
|
||||
"downloads": {
|
||||
"grasscutter_fullbuild": "올인원 Grasscutter 다운로드",
|
||||
|
||||
@@ -31,7 +31,9 @@
|
||||
"horny_mode": "Uzbudināts režīms",
|
||||
"auto_mongodb": "Automātiski startējiet MongoDB",
|
||||
"un_elevated": "Palaist spēli bez paaugstinājuma (bez administratora)",
|
||||
"redirect_more": "Arī novirzīt citas MHY spēles"
|
||||
"redirect_more": "Arī novirzīt citas MHY spēles",
|
||||
"web_cache": "Dzēsiet mapi WebCaches",
|
||||
"launch_args": "Launch Args"
|
||||
},
|
||||
"downloads": {
|
||||
"grasscutter_fullbuild": "Lejupielādējiet Grasscutter viss vienā",
|
||||
|
||||
@@ -32,7 +32,9 @@
|
||||
"horny_mode": "Geile modus",
|
||||
"auto_mongodb": "Start automatisch MongoDB",
|
||||
"un_elevated": "Voer het spel uit zonder hoogtevrees (geen admin)",
|
||||
"redirect_more": "Richt ook andere MHY-spellen"
|
||||
"redirect_more": "Richt ook andere MHY-spellen",
|
||||
"web_cache": "Verwijder de webCaches-map",
|
||||
"launch_args": "Launch Args"
|
||||
},
|
||||
"downloads": {
|
||||
"grasscutter_fullbuild": "Grasscutter Alles-in-één Downloaden",
|
||||
|
||||
@@ -35,7 +35,9 @@
|
||||
"un_elevated": "Uruchamiaj grę bez uprawnień administratora/roota",
|
||||
"redirect_more": "Przekieruj też inne gry MHY",
|
||||
"check_aagl": "Więcej opcji znajdziesz w drugim launcherze",
|
||||
"grasscutter_elevation": "Sposób uruchomienia GC na ograniczonym porcie"
|
||||
"grasscutter_elevation": "Sposób uruchomienia GC na ograniczonym porcie",
|
||||
"web_cache": "Usuń folder webCaches",
|
||||
"launch_args": "Launch Args"
|
||||
},
|
||||
"downloads": {
|
||||
"grasscutter_fullbuild": "Pobierz Grasscutter (wszystko w jednym)",
|
||||
|
||||
@@ -33,7 +33,9 @@
|
||||
"horny_mode": "Modo com tesão",
|
||||
"auto_mongodb": "Iniciar MongoDB Automaticamente",
|
||||
"un_elevated": "Executar o jogo não-elevated (sem admin)",
|
||||
"redirect_more": "Também redirecionar outros jogos MHY"
|
||||
"redirect_more": "Também redirecionar outros jogos MHY",
|
||||
"web_cache": "Excluir pasta webCaches",
|
||||
"launch_args": "Launch Args"
|
||||
},
|
||||
"downloads": {
|
||||
"grasscutter_fullbuild": "Baixar o Grasscutter Tudo-em-Um",
|
||||
|
||||
@@ -32,7 +32,9 @@
|
||||
"horny_mode": "роговой режим",
|
||||
"auto_mongodb": "Автоматически запускать MongoDB",
|
||||
"un_elevated": "Запустите игру в неэлегантном режиме (без администратора)",
|
||||
"redirect_more": "Также перенаправьте другие игры MHY"
|
||||
"redirect_more": "Также перенаправьте другие игры MHY",
|
||||
"web_cache": "Удалить папку webCaches",
|
||||
"launch_args": "Launch Args"
|
||||
},
|
||||
"downloads": {
|
||||
"grasscutter_fullbuild": "Скачать все в одном Grasscutter",
|
||||
|
||||
@@ -33,7 +33,9 @@
|
||||
"horny_mode": "Chế độ hứng tình",
|
||||
"auto_mongodb": "Tự động khởi động MongoDB",
|
||||
"un_elevated": "Chạy trò chơi không nâng cao (không có quản trị viên)",
|
||||
"redirect_more": "Đồng thời chuyển hướng các trò chơi MHY khác"
|
||||
"redirect_more": "Đồng thời chuyển hướng các trò chơi MHY khác",
|
||||
"web_cache": "Xóa thư mục webCaches",
|
||||
"launch_args": "Launch Args"
|
||||
},
|
||||
"downloads": {
|
||||
"grasscutter_fullbuild": "Tải Grasscutter tất cả trong một",
|
||||
|
||||
@@ -28,6 +28,8 @@ pub struct Configuration {
|
||||
pub auto_mongodb: Option<bool>,
|
||||
pub un_elevated: Option<bool>,
|
||||
pub redirect_more: Option<bool>,
|
||||
pub launch_args: Option<String>,
|
||||
pub offline_mode: Option<bool>,
|
||||
}
|
||||
|
||||
pub fn config_path() -> PathBuf {
|
||||
|
||||
@@ -214,7 +214,7 @@ pub fn run_jar(path: String, execute_in: String, java_path: String) {
|
||||
|
||||
#[cfg(not(target_os = "linux"))]
|
||||
#[tauri::command]
|
||||
pub fn run_jar_root(path: String, execute_in: String, java_path: String) {
|
||||
pub fn run_jar_root(_path: String, _execute_in: String, _java_path: String) {
|
||||
panic!("Not implemented");
|
||||
}
|
||||
|
||||
|
||||
@@ -45,6 +45,7 @@ interface IState {
|
||||
notification: React.ReactElement | null
|
||||
isGamePathSet: boolean
|
||||
game_install_path: string
|
||||
platform: string
|
||||
}
|
||||
|
||||
export class Main extends React.Component<IProps, IState> {
|
||||
@@ -64,6 +65,7 @@ export class Main extends React.Component<IProps, IState> {
|
||||
notification: null,
|
||||
isGamePathSet: true,
|
||||
game_install_path: '',
|
||||
platform: '',
|
||||
}
|
||||
|
||||
listen('lang_error', (payload) => {
|
||||
@@ -152,10 +154,18 @@ export class Main extends React.Component<IProps, IState> {
|
||||
game_install_path: game_path,
|
||||
})
|
||||
|
||||
if (this.state.game_install_path === '') {
|
||||
this.setState({ isGamePathSet: false })
|
||||
}
|
||||
|
||||
this.setState({
|
||||
migotoSet: !!(await getConfigOption('migoto_path')),
|
||||
})
|
||||
|
||||
this.setState({
|
||||
platform: await invoke('get_platform'),
|
||||
})
|
||||
|
||||
if (!cert_generated) {
|
||||
// Generate the certificate
|
||||
await invoke('generate_ca_files', {
|
||||
@@ -169,6 +179,9 @@ export class Main extends React.Component<IProps, IState> {
|
||||
const updatedConfig = await getConfigOption('patch_rsa')
|
||||
await setConfigOption('patch_rsa', updatedConfig)
|
||||
|
||||
// Update launch args to allow launching when updating from old versions
|
||||
await setConfigOption('launch_args', await getConfigOption('launch_args'))
|
||||
|
||||
// Get latest version and compare to this version
|
||||
const latestVersion: {
|
||||
tag_name: string
|
||||
@@ -222,7 +235,7 @@ export class Main extends React.Component<IProps, IState> {
|
||||
})) as boolean
|
||||
|
||||
// Set no game path so the user understands it doesn't exist there
|
||||
if (!game_exists) {
|
||||
if (!game_exists && this.state.platform === 'windows') {
|
||||
setConfigOption('game_install_path', '')
|
||||
}
|
||||
|
||||
@@ -323,7 +336,10 @@ export class Main extends React.Component<IProps, IState> {
|
||||
this.state.optionsOpen ? (
|
||||
<Options
|
||||
downloadManager={this.props.downloadHandler}
|
||||
closeFn={() => this.setState({ optionsOpen: !this.state.optionsOpen })}
|
||||
closeFn={async () => {
|
||||
this.setState({ optionsOpen: !this.state.optionsOpen })
|
||||
this.setState({ migotoSet: !!(await getConfigOption('migoto_path')) })
|
||||
}}
|
||||
/>
|
||||
) : null
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ import { GrasscutterElevation } from './menu/Options'
|
||||
import { getGameExecutable, getGameVersion, getGrasscutterJar } from '../../utils/game'
|
||||
import { patchGame, unpatchGame } from '../../utils/rsa'
|
||||
import { listen } from '@tauri-apps/api/event'
|
||||
import { confirm } from '@tauri-apps/api/dialog'
|
||||
|
||||
interface IProps {
|
||||
openExtras: (playGame: () => void) => void
|
||||
@@ -118,6 +119,24 @@ export default class ServerLaunchSection extends React.Component<IProps, IState>
|
||||
return
|
||||
}
|
||||
|
||||
// Check for HTTPS on local
|
||||
if (this.state.httpsEnabled) {
|
||||
if (this.state.ip == 'localhost') {
|
||||
if (
|
||||
await confirm(
|
||||
"Oops! HTTPS is enabled but you're connecting to localhost! \nHTTPS MUST be disabled for localhost. \n\nWould you like to disable HTTPS and continue?",
|
||||
{ title: 'WARNING!!', type: 'warning' }
|
||||
)
|
||||
) {
|
||||
this.toggleHttps()
|
||||
} else {
|
||||
if (!(await confirm('You have chosen to keep HTTPS enabled! \n\nYOU WILL ERROR ON LOGIN.'))) {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Connect to proxy
|
||||
if (config.toggle_grasscutter) {
|
||||
const game_exe = await getGameExecutable()
|
||||
@@ -195,9 +214,19 @@ export default class ServerLaunchSection extends React.Component<IProps, IState>
|
||||
if (config.un_elevated) {
|
||||
await invoke('run_un_elevated', {
|
||||
path: config.game_install_path,
|
||||
args: config.launch_args,
|
||||
})
|
||||
} else {
|
||||
await invoke('run_program_relative', { path: exe || config.game_install_path })
|
||||
if (config.launch_args.length < 1) {
|
||||
// Run relative when there are no args
|
||||
await invoke('run_program_relative', { path: exe || config.game_install_path })
|
||||
} else {
|
||||
// Run directly when there are args
|
||||
await invoke('run_program', {
|
||||
path: exe || config.game_install_path,
|
||||
args: config.launch_args,
|
||||
})
|
||||
}
|
||||
}
|
||||
else alert('Game not found! At: ' + (exe || config.game_install_path))
|
||||
}
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
import React from 'react'
|
||||
import { app } from '@tauri-apps/api'
|
||||
import { app, invoke } from '@tauri-apps/api'
|
||||
import { appWindow } from '@tauri-apps/api/window'
|
||||
import { getConfig, setConfigOption } from '../../utils/configuration'
|
||||
import Tr from '../../utils/language'
|
||||
import { confirm } from '@tauri-apps/api/dialog'
|
||||
|
||||
import './TopBar.css'
|
||||
import closeIcon from '../../resources/icons/close.svg'
|
||||
import minIcon from '../../resources/icons/min.svg'
|
||||
import { unpatchGame } from '../../utils/rsa'
|
||||
|
||||
interface IProps {
|
||||
children?: React.ReactNode | React.ReactNode[]
|
||||
@@ -36,7 +38,19 @@ export default class TopBar extends React.Component<IProps, IState> {
|
||||
this.setState({ version })
|
||||
}
|
||||
|
||||
handleClose() {
|
||||
async handleClose() {
|
||||
if (await invoke('is_game_running')) {
|
||||
const confirmed = await confirm(
|
||||
'Game is running. You WILL NOT be unpatched. Would you like to exit?',
|
||||
'WARNING!!'
|
||||
)
|
||||
if (!confirmed) {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
await invoke('disconnect')
|
||||
unpatchGame()
|
||||
appWindow.close()
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,8 @@ import DownloadHandler from '../../../utils/download'
|
||||
import * as meta from '../../../utils/rsa'
|
||||
import HelpButton from '../common/HelpButton'
|
||||
import SmallButton from '../common/SmallButton'
|
||||
import { confirm } from '@tauri-apps/api/dialog'
|
||||
import TextInput from '../common/TextInput'
|
||||
|
||||
export enum GrasscutterElevation {
|
||||
None = 'None',
|
||||
@@ -49,6 +51,7 @@ interface IState {
|
||||
platform: string
|
||||
un_elevated: boolean
|
||||
redirect_more: boolean
|
||||
launch_args: string
|
||||
|
||||
// Linux stuff
|
||||
grasscutter_elevation: string
|
||||
@@ -84,6 +87,7 @@ export default class Options extends React.Component<IProps, IState> {
|
||||
platform: '',
|
||||
un_elevated: false,
|
||||
redirect_more: false,
|
||||
launch_args: '',
|
||||
|
||||
// Linux stuff
|
||||
grasscutter_elevation: GrasscutterElevation.None,
|
||||
@@ -103,8 +107,10 @@ export default class Options extends React.Component<IProps, IState> {
|
||||
this.setCustomBackground = this.setCustomBackground.bind(this)
|
||||
this.toggleEncryption = this.toggleEncryption.bind(this)
|
||||
this.removeRSA = this.removeRSA.bind(this)
|
||||
this.deleteWebCache = this.deleteWebCache.bind(this)
|
||||
this.addMigotoDelay = this.addMigotoDelay.bind(this)
|
||||
this.toggleUnElevatedGame = this.toggleUnElevatedGame.bind(this)
|
||||
this.setLaunchArgs = this.setLaunchArgs.bind(this)
|
||||
}
|
||||
|
||||
async componentDidMount() {
|
||||
@@ -143,6 +149,7 @@ export default class Options extends React.Component<IProps, IState> {
|
||||
platform,
|
||||
un_elevated: config.un_elevated || false,
|
||||
redirect_more: config.redirect_more || false,
|
||||
launch_args: config.launch_args,
|
||||
|
||||
// Linux stuff
|
||||
grasscutter_elevation: config.grasscutter_elevation || GrasscutterElevation.None,
|
||||
@@ -290,6 +297,17 @@ export default class Options extends React.Component<IProps, IState> {
|
||||
const path = config.grasscutter_path.replace(/\\/g, '/')
|
||||
const folderPath = path.substring(0, path.lastIndexOf('/'))
|
||||
|
||||
if (!(await server.encryptionEnabled(folderPath + '/config.json'))) {
|
||||
if (
|
||||
!(await confirm(
|
||||
'Cultivation requires encryption DISABLED to connect and play locally. \n\n Are you sure you want to enable encryption?',
|
||||
'Warning!'
|
||||
))
|
||||
) {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
await server.toggleEncryption(folderPath + '/config.json')
|
||||
|
||||
this.setState({
|
||||
@@ -336,6 +354,20 @@ export default class Options extends React.Component<IProps, IState> {
|
||||
})
|
||||
}
|
||||
|
||||
async deleteWebCache() {
|
||||
alert('Cultivation may freeze for a moment while this occurs!')
|
||||
|
||||
// Get webCaches folder path
|
||||
const pathArr = this.state.game_install_path.replace(/\\/g, '/').split('/')
|
||||
pathArr.pop()
|
||||
const path = pathArr.join('/') + '/GenshinImpact_Data/webCaches'
|
||||
const path2 = pathArr.join('/') + '/Yuanshen_Data/webCaches'
|
||||
|
||||
// Delete the folder
|
||||
await invoke('dir_delete', { path: path })
|
||||
await invoke('dir_delete', { path: path2 })
|
||||
}
|
||||
|
||||
async toggleOption(opt: keyof Configuration) {
|
||||
const changedVal = !(await getConfigOption(opt))
|
||||
|
||||
@@ -347,6 +379,14 @@ export default class Options extends React.Component<IProps, IState> {
|
||||
})
|
||||
}
|
||||
|
||||
async setLaunchArgs(value: string) {
|
||||
await setConfigOption('launch_args', value)
|
||||
|
||||
this.setState({
|
||||
launch_args: value,
|
||||
})
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<Menu closeFn={this.props.closeFn} className="Options" heading="Options">
|
||||
@@ -646,6 +686,29 @@ export default class Options extends React.Component<IProps, IState> {
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Divider />
|
||||
|
||||
<div className="OptionSection" id="menuOptionsContainerAdvanced">
|
||||
<div className="OptionLabel" id="menuOptionsLabelWebCache">
|
||||
<Tr text="options.web_cache" />
|
||||
</div>
|
||||
<div className="OptionValue" id="menuOptionsButtondeleteWebcache">
|
||||
<BigButton onClick={this.deleteWebCache} id="deleteWebcache">
|
||||
<Tr text="components.delete" />
|
||||
</BigButton>
|
||||
</div>
|
||||
<div className="OptionLabel" id="menuOptionsLaunchArgs">
|
||||
<Tr text="options.launch_args" />
|
||||
</div>
|
||||
<TextInput
|
||||
id="launch_args"
|
||||
key="launch_args"
|
||||
placeholder={'-arg=value'}
|
||||
onChange={this.setLaunchArgs}
|
||||
value={this.state.launch_args}
|
||||
/>
|
||||
</div>
|
||||
</Menu>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ let defaultConfig: Configuration
|
||||
auto_mongodb: false,
|
||||
un_elevated: false,
|
||||
redirect_more: false,
|
||||
launch_args: '',
|
||||
|
||||
// Linux stuff
|
||||
grasscutter_elevation: 'None',
|
||||
@@ -62,6 +63,7 @@ export interface Configuration {
|
||||
auto_mongodb: boolean
|
||||
un_elevated: boolean
|
||||
redirect_more: boolean
|
||||
launch_args: string
|
||||
|
||||
// Linux stuff
|
||||
grasscutter_elevation: string
|
||||
|
||||
104
yarn.lock
104
yarn.lock
@@ -1692,65 +1692,71 @@
|
||||
resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.0.2.tgz#5228720e35d50fd08df87067dc29e7306c1f7a10"
|
||||
integrity sha512-yuNW0oeJ1/ZA7wNF1KgxhHrSu5viPVzY/UgUczzN5ptLM8dH15Juy5rEGkoHfeXGju90Y/l22hi3BtIrp/za+w==
|
||||
|
||||
"@tauri-apps/cli-darwin-arm64@1.0.4":
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.0.4.tgz#fd63fad851c8c899233618af0a9dc2d1a29a8c41"
|
||||
integrity sha512-hMVTPoinjKYV8fgviQ871ZnVipAVXJV3ZwfiK9FcE9/dkUCUtKtetfwnicRV6YDSFbWY9qAg+Sm0INrLT5Ky+A==
|
||||
"@tauri-apps/cli-darwin-arm64@1.5.6":
|
||||
version "1.5.6"
|
||||
resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.5.6.tgz#0d68eaf6fa1b35197a9d4991ac5377e6085a569a"
|
||||
integrity sha512-NNvG3XLtciCMsBahbDNUEvq184VZmOveTGOuy0So2R33b/6FDkuWaSgWZsR1mISpOuP034htQYW0VITCLelfqg==
|
||||
|
||||
"@tauri-apps/cli-darwin-x64@1.0.4":
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.0.4.tgz#52e7a4151a26e9333375a82a0cb15614f01cf3e0"
|
||||
integrity sha512-6bR8WIqJdcutLLcmv4S+bkCRbLAwjl80zPL97vs7Zgum01aeygjUTaZS46fpeDgqF8nR8piFAZkz8Bnco6fbzw==
|
||||
"@tauri-apps/cli-darwin-x64@1.5.6":
|
||||
version "1.5.6"
|
||||
resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.5.6.tgz#a48e1f66b12c33cf6c9c216865f2e9a3ff18a923"
|
||||
integrity sha512-nkiqmtUQw3N1j4WoVjv81q6zWuZFhBLya/RNGUL94oafORloOZoSY0uTZJAoeieb3Y1YK0rCHSDl02MyV2Fi4A==
|
||||
|
||||
"@tauri-apps/cli-linux-arm-gnueabihf@1.0.4":
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.0.4.tgz#8889ce864dba0763290fa3f05af99f8cd2f574bf"
|
||||
integrity sha512-NNhz8Nh/CQvAPzR5bj1sC2CgpkUOjZg8Eg1i/Ta/pbrjgT0E/reD+12TGdkNuQNEOUQ1klWcdeHfAptWPicRgQ==
|
||||
"@tauri-apps/cli-linux-arm-gnueabihf@1.5.6":
|
||||
version "1.5.6"
|
||||
resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.5.6.tgz#385cd8054be7722cc07acc2d6d86f8e20c6265ef"
|
||||
integrity sha512-z6SPx+axZexmWXTIVPNs4Tg7FtvdJl9EKxYN6JPjOmDZcqA13iyqWBQal2DA/GMZ1Xqo3vyJf6EoEaKaliymPQ==
|
||||
|
||||
"@tauri-apps/cli-linux-arm64-gnu@1.0.4":
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.0.4.tgz#27ae14f15d5fef76dcb70b4d7dac7bbb9e13ea81"
|
||||
integrity sha512-chzpMgkZyu0MWF75DDiEV06XyI8LM7q0NMxRx7esJwZpypj4AG0Pj4+9Di38zYWZrfYqz/bWrCMPIV30vty1Gg==
|
||||
"@tauri-apps/cli-linux-arm64-gnu@1.5.6":
|
||||
version "1.5.6"
|
||||
resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.5.6.tgz#bd3f8f61637a1073909cb2d663aa0c6e8e036337"
|
||||
integrity sha512-QuQjMQmpsCbzBrmtQiG4uhnfAbdFx3nzm+9LtqjuZlurc12+Mj5MTgqQ3AOwQedH3f7C+KlvbqD2AdXpwTg7VA==
|
||||
|
||||
"@tauri-apps/cli-linux-arm64-musl@1.0.4":
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.0.4.tgz#118a44226c3e0c324b9c842718548b22fcfbd3d2"
|
||||
integrity sha512-w+wbNoIOdHoV65Q/z29EK4KtFiNXfV+2lIsML/Hw0VEJEzl9FsqGelu1zAycq8hkoQhf0yPlD/m4FfAWnFzg6Q==
|
||||
"@tauri-apps/cli-linux-arm64-musl@1.5.6":
|
||||
version "1.5.6"
|
||||
resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.5.6.tgz#77fb4a804b77447bffba725a4b8b62df45f9ff97"
|
||||
integrity sha512-8j5dH3odweFeom7bRGlfzDApWVOT4jIq8/214Wl+JeiNVehouIBo9lZGeghZBH3XKFRwEvU23i7sRVjuh2s8mg==
|
||||
|
||||
"@tauri-apps/cli-linux-x64-gnu@1.0.4":
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.0.4.tgz#1724345de55a597a7fbd363f3af33ebf4eaaad4d"
|
||||
integrity sha512-TiVRk+VBYA2mE4DqwLu/WD6wTHewHVbdMUtfeXdwe/kabLqbJTWuswUv5T8JUp3mYFZKqlPhyi+qWSJOc0Ianw==
|
||||
"@tauri-apps/cli-linux-x64-gnu@1.5.6":
|
||||
version "1.5.6"
|
||||
resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.5.6.tgz#e70a6c9dd243c2a3fa1fec69de9ebc9abf4dc795"
|
||||
integrity sha512-gbFHYHfdEGW0ffk8SigDsoXks6USpilF6wR0nqB/JbWzbzFR/sBuLVNQlJl1RKNakyJHu+lsFxGy0fcTdoX8xA==
|
||||
|
||||
"@tauri-apps/cli-linux-x64-musl@1.0.4":
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.0.4.tgz#b36904c42be4bdab21cefdd052c8c85f9913f6be"
|
||||
integrity sha512-TKdncZ6aFu9PfHakrrqg3XIoxgl510rN0tOTJuZ1WQT2nDD5zlP3Mo++FNIt6/TfjqayLcubIZp3dG9pU383dA==
|
||||
"@tauri-apps/cli-linux-x64-musl@1.5.6":
|
||||
version "1.5.6"
|
||||
resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.5.6.tgz#f25dad778b2da6ab7b2b81f81c0805026d742c33"
|
||||
integrity sha512-9v688ogoLkeFYQNgqiSErfhTreLUd8B3prIBSYUt+x4+5Kcw91zWvIh+VSxL1n3KCGGsM7cuXhkGPaxwlEh1ug==
|
||||
|
||||
"@tauri-apps/cli-win32-ia32-msvc@1.0.4":
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.0.4.tgz#6db7d26050f15fca0ad067119001e566085990f5"
|
||||
integrity sha512-KedA4LB/PsePE3BLm2gg/IIA4rLjbyBUzV2FTdpWqx8ws3OzL6BLDGRVJ+zXe/b9SddhhZk7Rqss6y+gtsWKsA==
|
||||
"@tauri-apps/cli-win32-arm64-msvc@1.5.6":
|
||||
version "1.5.6"
|
||||
resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-1.5.6.tgz#47d0f359e04d93c1fd0b527e18a56606f3df9bed"
|
||||
integrity sha512-DRNDXFNZb6y5IZrw+lhTTA9l4wbzO4TNRBAlHAiXUrH+pRFZ/ZJtv5WEuAj9ocVSahVw2NaK5Yaold4NPAxHog==
|
||||
|
||||
"@tauri-apps/cli-win32-x64-msvc@1.0.4":
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.0.4.tgz#bf14bb0cfa2c0e74a981c6424dc36f68dbfd4b5c"
|
||||
integrity sha512-6m1Ie7+YeKdOY7aXZCw/Py30DeMEAukE2+WWuZgfxZTTG9QrnZO+DbaKtjuEG0A8HKHCz63+ZNxOTshS1ognEw==
|
||||
"@tauri-apps/cli-win32-ia32-msvc@1.5.6":
|
||||
version "1.5.6"
|
||||
resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.5.6.tgz#54c7ec152065e8167068411b82748a25a483d948"
|
||||
integrity sha512-oUYKNR/IZjF4fsOzRpw0xesl2lOjhsQEyWlgbpT25T83EU113Xgck9UjtI7xemNI/OPCv1tPiaM1e7/ABdg5iA==
|
||||
|
||||
"@tauri-apps/cli@^1.0.0-rc.11":
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@tauri-apps/cli/-/cli-1.0.4.tgz#4a943d10ff022ae6ad9fb33e94cc5c25509bcfb9"
|
||||
integrity sha512-AqfbQUFU2jDYmkjiowl+Yv1yNkey/e+N23sKyDtXQQNvxE6ieR4voY4i6bShY97F+DbRVdjWcjGiLkWS3i4DHw==
|
||||
"@tauri-apps/cli-win32-x64-msvc@1.5.6":
|
||||
version "1.5.6"
|
||||
resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.5.6.tgz#963280a4f7001c27d4e4745f302728297c007deb"
|
||||
integrity sha512-RmEf1os9C8//uq2hbjXi7Vgz9ne7798ZxqemAZdUwo1pv3oLVZSz1/IvZmUHPdy2e6zSeySqWu1D0Y3QRNN+dg==
|
||||
|
||||
"@tauri-apps/cli@^1.5.6":
|
||||
version "1.5.6"
|
||||
resolved "https://registry.yarnpkg.com/@tauri-apps/cli/-/cli-1.5.6.tgz#5011c9dd3a36dc89073fed7d4cb429d38b37862b"
|
||||
integrity sha512-k4Y19oVCnt7WZb2TnDzLqfs7o98Jq0tUoVMv+JQSzuRDJqaVu2xMBZ8dYplEn+EccdR5SOMyzaLBJWu38TVK1A==
|
||||
optionalDependencies:
|
||||
"@tauri-apps/cli-darwin-arm64" "1.0.4"
|
||||
"@tauri-apps/cli-darwin-x64" "1.0.4"
|
||||
"@tauri-apps/cli-linux-arm-gnueabihf" "1.0.4"
|
||||
"@tauri-apps/cli-linux-arm64-gnu" "1.0.4"
|
||||
"@tauri-apps/cli-linux-arm64-musl" "1.0.4"
|
||||
"@tauri-apps/cli-linux-x64-gnu" "1.0.4"
|
||||
"@tauri-apps/cli-linux-x64-musl" "1.0.4"
|
||||
"@tauri-apps/cli-win32-ia32-msvc" "1.0.4"
|
||||
"@tauri-apps/cli-win32-x64-msvc" "1.0.4"
|
||||
"@tauri-apps/cli-darwin-arm64" "1.5.6"
|
||||
"@tauri-apps/cli-darwin-x64" "1.5.6"
|
||||
"@tauri-apps/cli-linux-arm-gnueabihf" "1.5.6"
|
||||
"@tauri-apps/cli-linux-arm64-gnu" "1.5.6"
|
||||
"@tauri-apps/cli-linux-arm64-musl" "1.5.6"
|
||||
"@tauri-apps/cli-linux-x64-gnu" "1.5.6"
|
||||
"@tauri-apps/cli-linux-x64-musl" "1.5.6"
|
||||
"@tauri-apps/cli-win32-arm64-msvc" "1.5.6"
|
||||
"@tauri-apps/cli-win32-ia32-msvc" "1.5.6"
|
||||
"@tauri-apps/cli-win32-x64-msvc" "1.5.6"
|
||||
|
||||
"@testing-library/dom@^8.5.0":
|
||||
version "8.16.0"
|
||||
|
||||
Reference in New Issue
Block a user