├── .github └── workflows │ ├── build.yml │ └── check.yml ├── .gitignore ├── LICENSE ├── README.md ├── babel.config.js ├── blog ├── Artifact.md ├── Domain.md ├── NewStart.md └── authors.yml ├── docs ├── about.md ├── client │ ├── oneclick.md │ ├── patch.md │ └── proxy.md ├── faq │ ├── error-4206.md │ ├── error-4214.md │ ├── index.md │ ├── no-file.md │ └── question-db-connect.mdx ├── file-interpretation │ ├── banners.md │ ├── config.md │ └── extend-emotion.md ├── intro.md ├── other │ └── ssl.md └── server │ ├── create │ ├── deploy │ │ ├── android │ │ │ ├── linux-deploy-root.md │ │ │ └── termux-non-root.md │ │ ├── click-to-run.md │ │ ├── fastrun-debian-ios.md │ │ ├── ios.md │ │ ├── linux.mdx │ │ ├── macos.md │ │ └── windows.md │ └── get.mdx │ └── join.md ├── docusaurus.config.js ├── package.json ├── sidebars.js ├── src ├── components │ ├── HomepageFeatures │ │ ├── index.tsx │ │ └── styles.module.css │ └── providers │ │ └── Artifacts.ts ├── css │ └── custom.css └── pages │ ├── artifact.tsx │ ├── auth.tsx │ ├── awesome.md │ ├── index.module.css │ └── index.tsx ├── static ├── .nojekyll ├── FightProp.json ├── Mobs.json ├── SimpleTextMap.json └── img │ ├── click-svgrepo-com.svg │ ├── comment-discussion-svgrepo-com.svg │ ├── docusaurus.png │ ├── emotions │ ├── UI_EmotionIcon1.png │ ├── UI_EmotionIcon10.png │ ├── UI_EmotionIcon11.png │ ├── UI_EmotionIcon12.png │ ├── UI_EmotionIcon13.png │ ├── UI_EmotionIcon14.png │ ├── UI_EmotionIcon15.png │ ├── UI_EmotionIcon16.png │ ├── UI_EmotionIcon17.png │ ├── UI_EmotionIcon18.png │ ├── UI_EmotionIcon19.png │ ├── UI_EmotionIcon2.png │ ├── UI_EmotionIcon20.png │ ├── UI_EmotionIcon21.png │ ├── UI_EmotionIcon22.png │ ├── UI_EmotionIcon23.png │ ├── UI_EmotionIcon24.png │ ├── UI_EmotionIcon25.png │ ├── UI_EmotionIcon26.png │ ├── UI_EmotionIcon27.png │ ├── UI_EmotionIcon28.png │ ├── UI_EmotionIcon29.png │ ├── UI_EmotionIcon3.png │ ├── UI_EmotionIcon30.png │ ├── UI_EmotionIcon31.png │ ├── UI_EmotionIcon32.png │ ├── UI_EmotionIcon33.png │ ├── UI_EmotionIcon34.png │ ├── UI_EmotionIcon35.png │ ├── UI_EmotionIcon36.png │ ├── UI_EmotionIcon37.png │ ├── UI_EmotionIcon38.png │ ├── UI_EmotionIcon39.png │ ├── UI_EmotionIcon4.png │ ├── UI_EmotionIcon40.png │ ├── UI_EmotionIcon41.png │ ├── UI_EmotionIcon42.png │ ├── UI_EmotionIcon43.png │ ├── UI_EmotionIcon44.png │ ├── UI_EmotionIcon45.png │ ├── UI_EmotionIcon46.png │ ├── UI_EmotionIcon47.png │ ├── UI_EmotionIcon48.png │ ├── UI_EmotionIcon49.png │ ├── UI_EmotionIcon5.png │ ├── UI_EmotionIcon50.png │ ├── UI_EmotionIcon51.png │ ├── UI_EmotionIcon52.png │ ├── UI_EmotionIcon53.png │ ├── UI_EmotionIcon54.png │ ├── UI_EmotionIcon55.png │ ├── UI_EmotionIcon56.png │ ├── UI_EmotionIcon57.png │ ├── UI_EmotionIcon58.png │ ├── UI_EmotionIcon59.png │ ├── UI_EmotionIcon6.png │ ├── UI_EmotionIcon60.png │ ├── UI_EmotionIcon61.png │ ├── UI_EmotionIcon62.png │ ├── UI_EmotionIcon63.png │ ├── UI_EmotionIcon64.png │ ├── UI_EmotionIcon65.png │ ├── UI_EmotionIcon66.png │ ├── UI_EmotionIcon67.png │ ├── UI_EmotionIcon68.png │ ├── UI_EmotionIcon69.png │ ├── UI_EmotionIcon7.png │ ├── UI_EmotionIcon70.png │ ├── UI_EmotionIcon71.png │ ├── UI_EmotionIcon72.png │ ├── UI_EmotionIcon73.png │ ├── UI_EmotionIcon74.png │ ├── UI_EmotionIcon75.png │ ├── UI_EmotionIcon76.png │ ├── UI_EmotionIcon77.png │ ├── UI_EmotionIcon78.png │ ├── UI_EmotionIcon79.png │ ├── UI_EmotionIcon8.png │ ├── UI_EmotionIcon80.png │ ├── UI_EmotionIcon81.png │ ├── UI_EmotionIcon82.png │ ├── UI_EmotionIcon83.png │ ├── UI_EmotionIcon84.png │ ├── UI_EmotionIcon85.png │ ├── UI_EmotionIcon86.png │ ├── UI_EmotionIcon87.png │ ├── UI_EmotionIcon88.png │ ├── UI_EmotionIcon89.png │ ├── UI_EmotionIcon9.png │ ├── UI_EmotionIcon90.png │ ├── UI_EmotionIcon91.png │ ├── UI_EmotionIcon92.png │ ├── UI_EmotionIcon93.png │ ├── UI_EmotionIcon94.png │ ├── UI_EmotionIcon95.png │ ├── UI_EmotionIcon96.png │ ├── UI_EmotionTagIcon_00.png │ ├── UI_EmotionTagIcon_01.png │ ├── UI_EmotionTagIcon_02.png │ ├── UI_EmotionTagIcon_03.png │ ├── UI_EmotionTagIcon_04.png │ ├── UI_EmotionTagIcon_05.png │ └── UI_EmotionTagIcon_06.png │ ├── favicon.ico │ ├── logo.svg │ ├── translate-language-svgrepo-com.svg │ ├── undraw_docusaurus_mountain.svg │ ├── undraw_docusaurus_react.svg │ └── undraw_docusaurus_tree.svg ├── tsconfig.json └── yarn.lock /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: 构建 2 | 3 | on: 4 | workflow_dispatch: 5 | 6 | 7 | jobs: 8 | Build: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/checkout@v3 12 | - name: Setup Node.js 13 | uses: actions/setup-node@v3 14 | with: 15 | node-version: 16 16 | - name: Install Dependencies 17 | run: yarn 18 | - name: Build 19 | run: yarn build 20 | - name: Upload Artifact 21 | uses: actions/upload-artifact@v3.1.0 22 | with: 23 | name: gcdoc-web 24 | path: build -------------------------------------------------------------------------------- /.github/workflows/check.yml: -------------------------------------------------------------------------------- 1 | name: 测试 2 | 3 | on: 4 | workflow_dispatch: 5 | push: 6 | branches: 7 | - main 8 | pull_request: 9 | branches: 10 | - main 11 | 12 | jobs: 13 | Build: 14 | strategy: 15 | matrix: 16 | node-version: [16,18] 17 | os: ['ubuntu-latest' ,'windows-latest' ,'macos-latest'] 18 | runs-on: ${{ matrix.os }} 19 | steps: 20 | - uses: actions/checkout@v3 21 | - name: Setup Node.js 22 | uses: actions/setup-node@v3 23 | with: 24 | node-version: ${{ matrix.node-version }} 25 | - name: Install Dependencies 26 | run: yarn 27 | - name: Build Test 28 | run: yarn build 29 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | /node_modules 3 | 4 | # Production 5 | /build 6 | 7 | # Generated files 8 | .docusaurus 9 | .cache-loader 10 | 11 | # Misc 12 | .DS_Store 13 | .env.local 14 | .env.development.local 15 | .env.test.local 16 | .env.production.local 17 | 18 | npm-debug.log* 19 | yarn-debug.log* 20 | yarn-error.log* 21 | 22 | .idea 23 | .vercel 24 | .github 25 | package-lock.json 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Grasscutter Documention | 割草机文档 2 | 3 | This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator. 4 | 5 | 此网页使用[Docusaurus 2](https://docusaurus.io/)创建,这是一个现代化网页生成器 6 | 7 | **English Version comming soon!** 8 | 9 | **英文版本很快就好** 10 | 11 | 12 | ### Installation 13 | ### 安装 14 | 15 | ``` 16 | $ yarn 17 | ``` 18 | 19 | ### push前请看 20 | ### See before you push 21 | 若您想为我们的项目作出贡献,建议您push后在提交pr之前先在actions中查看测试是否通过(如果你在文档里添加了格式化代码或更改了代码文件),若有需要,请在actions中手动构建查看文档是否达到自己的预期,别像我一样狼狈地删pr 22 | 23 | If you want to contribute to our project, we recommend that you to see if the test is passed in actions before starting pr(If you have added formatting codes or changed the code file in the document), if necessary, please build manually in actions to see if the documentation meets your expectations, do not delete pr in a difficult position like I did 24 | 25 | ### Local Development 26 | ### 本地开发 27 | 28 | ``` 29 | $ yarn start 30 | ``` 31 | 32 | This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. 33 | 34 | 此命令会启动一个本地开发服务器并打开浏览器窗口,大部分改变会自动生效,无需重启服务器。 35 | 36 | ### Build 37 | ### 构建 38 | 39 | ``` 40 | $ yarn build 41 | ``` 42 | 43 | This command generates static content into the `build` directory and can be served using any static contents hosting service. 44 | 45 | 此命令将会在`build`文件夹中生成静态文件以让您将其部署到任何静态网页托管服务器中 46 | 47 | ### Deployment 48 | ### 部署 49 | 50 | [![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/GenKitCN/gcdoc&template=docusaurus-2) 51 | 52 | 53 | Using SSH: 54 | 55 | ``` 56 | $ USE_SSH=true yarn deploy 57 | ``` 58 | 59 | Not using SSH: 60 | 61 | ``` 62 | $ GIT_USER= yarn deploy 63 | ``` 64 | 65 | If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. 66 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [require.resolve('@docusaurus/core/lib/babel/preset')], 3 | }; 4 | -------------------------------------------------------------------------------- /blog/Artifact.md: -------------------------------------------------------------------------------- 1 | --- 2 | slug: artifact_tool 3 | title: 圣遗物生成工具测试 4 | authors: wansn 5 | tags: [grasscutter, genkit, tools, artifact, docusaurus] 6 | --- 7 | 8 | 在 [源项目](https://github.com/exzork/gc-tool)的基础上大幅改进 9 | - 优化列表显示 10 | - 全部使用MUI 组件 11 | - 转换为中文 12 | - ~~大改原项目结构~~ 13 | 14 | ### ~~在我电脑上圣遗物副词条列表加载要4s 呜呜呜~~ -------------------------------------------------------------------------------- /blog/Domain.md: -------------------------------------------------------------------------------- 1 | --- 2 | slug: domain 3 | title: 新的域名 4 | authors: chitang 5 | tags: [domain, genkit] 6 | --- 7 | 8 | 池塘的 mihoyo-is-in.icu 9 | 10 | TomyJan 的 genkit.org 11 | 12 | 两个域名的解析完全一样,作用也完全一样(甚至到期时间就差一天) 13 | 14 | ~~喜欢用哪个用哪个吧~~ -------------------------------------------------------------------------------- /blog/NewStart.md: -------------------------------------------------------------------------------- 1 | --- 2 | slug: first-blog-post 3 | title: 开始使用Docusaurus! 4 | authors: wansn 5 | tags: [grasscutter, genkit, docusaurus] 6 | --- 7 | 8 | 开始使用Docusaurus提供文档! 9 | -------------------------------------------------------------------------------- /blog/authors.yml: -------------------------------------------------------------------------------- 1 | wansn: 2 | name: Wansn 3 | title: GenKit成员 4 | url: https://github.com/Wansn-w 5 | image_url: https://github.com/Wansn-w.png 6 | 7 | chitang: 8 | name: Chi_Tang 9 | url: https://github.com/chitang233 10 | image_url: https://github.com/chitang233.png -------------------------------------------------------------------------------- /docs/about.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 🏷️ 关于  GenKit  和  Grasscutter 3 | sidebar_label: "🏷️ 关于" 4 | --- 5 | 6 | > 所谓薙刀,乃是斩除芜杂之利器。 7 | > 8 | > 秉薙刀之人,意在守护恒常之道。 9 | > 10 | > 当高踞雷云之上者俯视她所倾心的凡世, 11 | > 所见无不浅薄的争端,闪灭的执欲泡影… 12 | > 争夺源于无谓爱执与狂欲,乃恒世之敌。 13 | > 搅扰不变恒世的杂草,将交由雷光殛灭。 14 | > 15 | > ... 16 | > 17 | > 既然谁人都无法逆转现世之无常、绪绝的独乐, 18 | > 19 | > 那就将心中的常世净土带到她所珍爱的国度吧。 20 | -------------------------------------------------------------------------------- /docs/client/oneclick.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 🕹️ 一键连接 3 | sidebar_label: "🕹️ 一键连接" 4 | --- 5 | 6 | 您可使用第三方一键完成 代理 + Patch 来连接 GC 服务器 7 | 8 | 推荐的启动器: 9 | 10 | - [Cultivation](https://github.com/Grasscutters/Cultivation) *GC 官方一键连接工具* 11 | - [TJGL](https://zi5.cc/TJGL) *TomyJan 开发的启动器, 更简洁易用, 且支持换服/多账号管理* 12 | -------------------------------------------------------------------------------- /docs/client/patch.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 🎨 Patch 3 | sidebar_label: "🎨 Patch" 4 | --- 5 | 6 | Patch 内容 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/client/proxy.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 🪡 代理 3 | sidebar_label: "🪡 代理" 4 | --- 5 | 6 | 代理内容 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/faq/error-4206.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "⚠️ 登录提示错误 4206 的解决方法" 3 | sidebar_label: ⚠️ 错误 4206 4 | --- -------------------------------------------------------------------------------- /docs/faq/error-4214.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "登录提示错误 4214 的解决方法" 3 | sidebar_label: 错误 4214 4 | --- 5 | ## 无法连接至服务器 错误4214 6 | 在新版本的原神中,添加了对域名指向的校验,指向错误的ip时就会显示无法连接 7 | ## 解决办法 8 | 下载[补丁](https://github.com/GenKitCN/gcdoc/raw/main/docs/faq/genshin-patch.zip) 9 | 10 | 打开你的原神安装目录,将压缩包内文件直接拖入,全部替换即可 11 | -------------------------------------------------------------------------------- /docs/faq/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "错误索引" 3 | sidebar_label: index 4 | --- 5 | 6 | 待更新 7 | 8 | -------------------------------------------------------------------------------- /docs/faq/no-file.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "java.io.FileNotFoundException" 3 | sidebar_label: FileNotFoundException 4 | --- 5 | 6 | 从 `development` 分支中下载 `data` 文件夹,将其覆盖到本地 7 | -------------------------------------------------------------------------------- /docs/faq/question-db-connect.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: "MongoDB使用Navicat连接方法 附无限期试用教程" 3 | sidebar_label: MongoDB的连接 4 | --- 5 | :::info 6 | 本文作者 [@Lance](https://github.com/cnlancehu/) 7 | 8 | 使用 CC BY-SA 4.0 协议共享 9 | ::: 10 | ## 下载Navicat 11 | 12 | 登入Navicat[官网](https://www.navicat.com.cn/download/navicat-premium) 13 | 14 | 选择你系统版本并下载,根据安装程序走即可 15 | 16 | ## 连接 17 | 点击左上角连接,在列表中选择MongoDB 18 | ![image](https://user-images.githubusercontent.com/106385654/180144221-2df6f352-2a5f-4dc5-8373-f0d055807c29.png) 19 | 填写连接名,其余默认即可(在本地使用的话) 20 | 21 | 当然如果你会自己捣鼓,其他的都可能需要修改,但这里不作进一步解释 22 | 23 | ![image](https://user-images.githubusercontent.com/106385654/180144338-05fd1fae-5ebd-4ebb-add8-9ada90f342f5.png) 24 | 25 | 按下确定后,开启MongoDB,双击Navicat左侧你刚才填写的连接名,就可连接到服务器(看到下面Grasscutter容器后即为成功) 26 | ![image](https://user-images.githubusercontent.com/106385654/180144825-bc49f691-352f-489f-ba70-4165ae754d4e.png) 27 | 28 | 我们编辑游戏内文件都主要使用集合选项,双击展开即可进行查看 29 | 30 | ## 无限期试用(Windows) 31 | 新建bat文件,点击编辑,键入以下代码并保存 32 | ```bash 33 | @echo off 34 | echo Delete HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium\Registration[version and language] 35 | for /f %%i in ('"REG QUERY "HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium" /s | findstr /L Registration"') do ( 36 | reg delete %%i /va /f 37 | ) 38 | echo. 39 | echo Delete Info folder under HKEY_CURRENT_USER\Software\Classes\CLSID 40 | for /f %%i in ('"REG QUERY "HKEY_CURRENT_USER\Software\Classes\CLSID" /s | findstr /E Info"') do ( 41 | reg delete %%i /va /f 42 | ) 43 | echo. 44 | echo finish 45 | pause 46 | ``` 47 | 48 | 运行后即可续期 49 | 50 | :::info 51 | 本文作者 [@Lance](https://github.com/cnlancehu/) 52 | 53 | 使用 CC BY-SA 4.0 协议共享 54 | ::: -------------------------------------------------------------------------------- /docs/file-interpretation/banners.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: ⚙ Banners.json 3 | sidebar_label: ⚙ Banners.json 4 | --- 5 | 6 | 待添加 7 | -------------------------------------------------------------------------------- /docs/file-interpretation/config.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: ⚙ config.json 3 | sidebar_label: ⚙ config.json 4 | --- 5 | 6 | ## 概览 {#overview} 7 | 8 | `config.json` 包含了您服务端的配置信息,位于您服务端的根目录。 9 | 10 | 包含了: 🗄️数据库 / 📁目录 / 🖥️服务器 11 | 12 |
13 | 原文件 14 | 15 | ```json title="config.json" 16 | { 17 | "DatabaseUrl": "mongodb://localhost:27017", 18 | "DatabaseCollection": "grasscutter", 19 | "RESOURCE_FOLDER": "./resources/", 20 | "DATA_FOLDER": "./data/", 21 | "PACKETS_FOLDER": "./packets/", 22 | "DUMPS_FOLDER": "./dumps/", 23 | "KEY_FOLDER": "./keys/", 24 | "SCRIPTS_FOLDER": "./resources/Scripts/", 25 | "PLUGINS_FOLDER": "./plugins/", 26 | "LANGUAGE_FOLDER": "./languages/", 27 | "DebugMode": "NONE", 28 | "RunMode": "HYBRID", 29 | "GameServer": { 30 | "Name": "Test", 31 | "Ip": "127.0.0.1", 32 | "PublicIp": "127.0.0.1", 33 | "Port": 22102, 34 | "PublicPort": 0, 35 | "DispatchServerDatabaseUrl": "mongodb://localhost:27017", 36 | "DispatchServerDatabaseCollection": "grasscutter", 37 | "InventoryLimitWeapon": 2000, 38 | "InventoryLimitRelic": 2000, 39 | "InventoryLimitMaterial": 2000, 40 | "InventoryLimitFurniture": 2000, 41 | "InventoryLimitAll": 30000, 42 | "MaxAvatarsInTeam": 4, 43 | "MaxAvatarsInTeamMultiplayer": 4, 44 | "MaxEntityLimit": 1000, 45 | "WatchGacha": false, 46 | "ServerNickname": "Kiana", 47 | "ServerAvatarId": 10000046, 48 | "ServerNameCardId": 210001, 49 | "ServerLevel": 1, 50 | "ServerWorldLevel": 1, 51 | "ServerSignature": "Server Signature", 52 | "WelcomeEmotes": [ 53 | 2007, 54 | 1002, 55 | 4010 56 | ], 57 | "WelcomeMotd": "Welcome to Grasscutter emu", 58 | "WelcomeMailTitle": "Welcome to Grasscutter!", 59 | "WelcomeMailSender": "Lawnmower", 60 | "WelcomeMailContent": "Hi there!\r\nFirst of all, welcome to Grasscutter. If you have any issues, please let us know so that Lawnmower can help you! \r\n\r\nCheck out our:\r\n ", 61 | "WelcomeMailItems": [ 62 | { 63 | "itemId": 13509, 64 | "itemCount": 1, 65 | "itemLevel": 1 66 | }, 67 | { 68 | "itemId": 201, 69 | "itemCount": 10000, 70 | "itemLevel": 1 71 | } 72 | ], 73 | "EnableOfficialShop": true, 74 | "Game": { 75 | "ADVENTURE_EXP_RATE": 1.0, 76 | "MORA_RATE": 1.0, 77 | "DOMAIN_DROP_RATE": 1.0 78 | } 79 | }, 80 | "DispatchServer": { 81 | "Ip": "127.0.0.1", 82 | "PublicIp": "127.0.0.1", 83 | "Port": 443, 84 | "PublicPort": 0, 85 | "KeystorePath": "./keystore.p12", 86 | "KeystorePassword": "123456", 87 | "UseSSL": true, 88 | "FrontHTTPS": true, 89 | "CORS": false, 90 | "CORSAllowedOrigins": [ 91 | "*" 92 | ], 93 | "AutomaticallyCreateAccounts": false, 94 | "defaultPermissions": [ 95 | "" 96 | ], 97 | "GameServers": [] 98 | }, 99 | "LocaleLanguage": "zh_CN", 100 | "DefaultLanguage": "en", 101 | "OpenStamina": true 102 | } 103 | ``` 104 | 105 |
106 | 107 | ## 字段 108 | 109 | ## `DatabaseUrl` 110 | 111 | - 类型:`string` 112 | 113 | 数据库地址,格式为`mongodb://IP:端口` 114 | 115 | ```json title="config.json" 116 | { 117 | "DatabaseUrl": "mongodb://localhost:27017" 118 | } 119 | ``` 120 | 121 | ## `DatabaseCollection` 122 | 123 | - 类型:`string` 124 | 125 | 数据库名称 126 | 127 | ```json title="config.json" 128 | { 129 | "DatabaseCollection": "grasscutter" 130 | } 131 | ``` 132 | 133 | ## `RESOURCE_FOLDER` 134 | 135 | - 类型:`string` 136 | 137 | 资源文件夹路径 138 | 139 | ```json title="config.json" 140 | { 141 | "RESOURCE_FOLDER": "./resources/" 142 | } 143 | ``` 144 | 145 | ## `DATA_FOLDER` 146 | 147 | - 类型:`string` 148 | 149 | 数据文件夹路径 150 | 151 | ```json title="config.json" 152 | { 153 | "DATA_FOLDER": "./data/" 154 | } 155 | ``` 156 | 157 | ## `PACKETS_FOLDER` 158 | 159 | - 类型:`string` 160 | 161 | 自定义回复数据包文件夹路径 162 | 163 | ```json title="config.json" 164 | { 165 | "PACKETS_FOLDER": "./packets/" 166 | } 167 | ``` 168 | 169 | ## `DUMPS_FOLDER` 170 | 171 | - 类型:`string` 172 | 173 | 目前未使用,未知 174 | 175 | ```json title="config.json" 176 | { 177 | "DUMPS_FOLDER": "./dumps/" 178 | } 179 | ``` 180 | 181 | ## `KEY_FOLDER` 182 | 183 | - 类型:`string` 184 | 185 | 加解密密钥文件夹路径 186 | 187 | ```json title="config.json" 188 | { 189 | "KEY_FOLDER": "./keys/" 190 | } 191 | ``` 192 | 193 | ## `SCRIPTS_FOLDER` 194 | 195 | - 类型:`string` 196 | 197 | Lua脚本路径 198 | 199 | ```json title="config.json" 200 | { 201 | "SCRIPTS_FOLDER": "./resources/Scripts/" 202 | } 203 | ``` 204 | 205 | ## `PLUGINS_FOLDER` 206 | 207 | - 类型:`string` 208 | 209 | 插件文件夹路径 210 | 211 | ```json title="config.json" 212 | { 213 | "PLUGINS_FOLDER": "./plugins/" 214 | } 215 | ``` 216 | 217 | ## `LANGUAGE_FOLDER` 218 | 219 | - 类型:`string` 220 | 221 | 语言文件所在文件夹路径 222 | 223 | ```json title="config.json" 224 | { 225 | "LANGUAGE_FOLDER": "./languages/" 226 | } 227 | ``` 228 | 229 | ## `DebugMode` 230 | 231 | - 类型:`'NONE' | 'MISSING' | 'ALL'` 232 | - NONE: 不显示调试信息 233 | - MISSING: 仅显示未知请求 234 | - ALL: 全部显示 235 | 236 | 调试模式 237 | 238 | ```json title="config.json" 239 | { 240 | "DebugMode": "NONE" 241 | } 242 | ``` 243 | 244 | ## `RunMode` 245 | 246 | - 类型:`'HYBRID' | 'DISPATCH_ONLY' | 'GAME_ONLY'` 247 | - HYBRID: 同时运行负载均衡服务器和游戏服务器 248 | - DISPATCH_ONLY: 仅运行负载均衡服务器 249 | - GAME_ONLY: 仅运行游戏服务器 250 | 251 | ```json title="config.json" 252 | { 253 | "RunMode": "HYBRID" 254 | } 255 | ``` 256 | 257 | ## `GameServer` 258 | 259 | - 类型:string 260 | 261 | 游戏服务器配置。 262 |
263 | 原始json 264 | 265 | ```json title="$.GameServer" 266 | { 267 | "Name": "Test", 268 | "Ip": "127.0.0.1", 269 | "PublicIp": "127.0.0.1", 270 | "Port": 22102, 271 | "PublicPort": 0, 272 | "DispatchServerDatabaseUrl": "mongodb://localhost:27017", 273 | "DispatchServerDatabaseCollection": "grasscutter", 274 | "InventoryLimitWeapon": 2000, 275 | "InventoryLimitRelic": 2000, 276 | "InventoryLimitMaterial": 2000, 277 | "InventoryLimitFurniture": 2000, 278 | "InventoryLimitAll": 30000, 279 | "MaxAvatarsInTeam": 4, 280 | "MaxAvatarsInTeamMultiplayer": 4, 281 | "MaxEntityLimit": 1000, 282 | "WatchGacha": false, 283 | "ServerNickname": "Kiana", 284 | "ServerAvatarId": 10000046, 285 | "ServerNameCardId": 210001, 286 | "ServerLevel": 1, 287 | "ServerWorldLevel": 1, 288 | "ServerSignature": "Server Signature", 289 | "WelcomeEmotes": [ 290 | 2007, 291 | 1002, 292 | 4010 293 | ], 294 | "WelcomeMotd": "Welcome to Grasscutter emu", 295 | "WelcomeMailTitle": "Welcome to Grasscutter!", 296 | "WelcomeMailSender": "Lawnmower", 297 | "WelcomeMailContent": "Hi there!\r\nFirst of all, welcome to Grasscutter. If you have any issues, please let us know so that Lawnmower can help you! \r\n\r\nCheck out our:\r\n ", 298 | "WelcomeMailItems": [ 299 | { 300 | "itemId": 13509, 301 | "itemCount": 1, 302 | "itemLevel": 1 303 | }, 304 | { 305 | "itemId": 201, 306 | "itemCount": 10000, 307 | "itemLevel": 1 308 | } 309 | ], 310 | "EnableOfficialShop": true, 311 | "Game": { 312 | "ADVENTURE_EXP_RATE": 1.0, 313 | "MORA_RATE": 1.0, 314 | "DOMAIN_DROP_RATE": 1.0 315 | } 316 | } 317 | ``` 318 | 319 |
320 | 321 | ### `Name` 322 | 323 | - 类型: `string` 324 | 325 | 游戏服务器名称 326 | 327 | ```json title="config.json" 328 | { 329 | "GameServer": { 330 | "Name": "Test" 331 | } 332 | } 333 | ``` 334 | 335 | ### `Ip` 336 | 337 | - 类型: `string` 338 | 339 | 游戏服务器IP地址 340 | 341 | ```json title="config.json" 342 | { 343 | "GameServer": { 344 | "Ip": "127.0.0.1" 345 | } 346 | } 347 | ``` 348 | 349 | ### `PublicIp` 350 | 351 | - 类型: `string` 352 | 353 | 游戏服务器公开IP地址 354 | 355 | ```json title="config.json" 356 | { 357 | "GameServer": { 358 | "PublicIp": "127.0.0.1" 359 | } 360 | } 361 | ``` 362 | 363 | ### `Port` 364 | 365 | - 类型:`integer` 366 | 367 | 368 | ```json title="config.json" 369 | { 370 | "GameServer": { 371 | "Port": 22102 372 | } 373 | } 374 | ``` 375 | 376 | ### `PublicPort` 377 | 378 | - 类型:`integer` 379 | 380 | 381 | ```json title="config.json" 382 | { 383 | "GameServer": { 384 | "PublicPort": 0 385 | } 386 | } 387 | ``` 388 | 389 | ### `DispatchServerDatabaseUrl` 390 | 391 | - 类型:`string` 392 | 393 | 394 | ```json title="config.json" 395 | { 396 | "GameServer": { 397 | "DispatchServerDatabaseUrl": "mongodb://localhost:27017" 398 | } 399 | } 400 | ``` 401 | 402 | ### `DispatchServerDatabaseCollection` 403 | 404 | - 类型:`string` 405 | 406 | 407 | ```json title="config.json" 408 | { 409 | "GameServer": { 410 | "DispatchServerDatabaseCollection": "grasscutter" 411 | } 412 | } 413 | ``` 414 | 415 | ### `InventoryLimitWeapon` 416 | 417 | - 类型:`integer` 418 | 419 | 库存武器最大数量 420 | 421 | ```json title="config.json" 422 | { 423 | "GameServer": { 424 | "InventoryLimitWeapon": 2000 425 | } 426 | } 427 | ``` 428 | 429 | ### `InventoryLimitRelic` 430 | 431 | - 类型:`integer` 432 | 433 | 库存圣遗物最大数量 434 | 435 | ```json title="config.json" 436 | { 437 | "GameServer": { 438 | "InventoryLimitRelic": 2000 439 | } 440 | } 441 | ``` 442 | 443 | ### `InventoryLimitMaterial` 444 | 445 | - 类型:`integer` 446 | 447 | 库存材料最大数量 448 | 449 | ```json title="config.json" 450 | { 451 | "GameServer": { 452 | "InventoryLimitMaterial": 2000 453 | } 454 | } 455 | ``` 456 | 457 | ### `InventoryLimitFurniture` 458 | 459 | - 类型:`integer` 460 | 461 | 库存家具最大数量 462 | 463 | ```json title="config.json" 464 | { 465 | "GameServer": { 466 | "InventoryLimitFurniture": 2000 467 | } 468 | } 469 | ``` 470 | 471 | ### `InventoryLimitAll` 472 | 473 | - 类型:`integer` 474 | 475 | 总库存最大数量 476 | 477 | ```json title="config.json" 478 | { 479 | "GameServer": { 480 | "InventoryLimitAll": 30000 481 | } 482 | } 483 | ``` 484 | 485 | ### `MaxAvatarsInTeam` 486 | 487 | - 类型:`integer` 488 | 489 | 队内最大角色数量 490 | 491 | ```json title="config.json" 492 | { 493 | "GameServer": { 494 | "MaxAvatarsInTeam": 4 495 | } 496 | } 497 | ``` 498 | 499 | ### `MaxAvatarsInTeamMultiplayer` 500 | 501 | - 类型:`integer` 502 | 503 | 多人游戏队内最大角色数量 504 | 505 | ```json title="config.json" 506 | { 507 | "GameServer": { 508 | "MaxAvatarsInTeamMultiplayer": 4 509 | } 510 | } 511 | ``` 512 | 513 | ### `MaxEntityLimit` 514 | 515 | - 类型:`integer` 516 | 517 | 最大实体数量 518 | 519 | ```json title="config.json" 520 | { 521 | "GameServer": { 522 | "MaxEntityLimit": 1000 523 | } 524 | } 525 | ``` 526 | 527 | ### `WatchGacha` 528 | 529 | - 类型:`boolean` 530 | 531 | 532 | ```json title="config.json" 533 | { 534 | "GameServer": { 535 | "WatchGacha": false 536 | } 537 | } 538 | ``` 539 | 540 | ### `ServerNickname` 541 | 542 | - 类型:`string` 543 | 544 | 游戏内控制台名称 545 | 546 | ```json title="config.json" 547 | { 548 | "GameServer": { 549 | "ServerNickname": "Kiana" 550 | } 551 | } 552 | ``` 553 | 554 | ### `ServerAvatarId` 555 | 556 | - 类型:`integer` 557 | 558 | 游戏内控制台头像ID 559 | 560 | ```json title="config.json" 561 | { 562 | "GameServer": { 563 | "ServerAvatarId": 10000046 564 | } 565 | } 566 | ``` 567 | 568 | ### `ServerNameCardId` 569 | 570 | - 类型:`integer` 571 | 572 | 游戏内控制台名片ID 573 | 574 | ```json title="config.json" 575 | { 576 | "GameServer": { 577 | "ServerNameCardId": 210001 578 | } 579 | } 580 | ``` 581 | 582 | ### `ServerLevel` 583 | 584 | - 类型:`integer` 585 | 586 | 游戏内控制台冒险等级 587 | 588 | ```json title="config.json" 589 | { 590 | "GameServer": { 591 | "ServerLevel": 1 592 | } 593 | } 594 | ``` 595 | 596 | ### `ServerWorldLevel` 597 | 598 | - 类型:`integer` 599 | 600 | 游戏内控制台世界等级 601 | 602 | ```json title="config.json" 603 | { 604 | "GameServer": { 605 | "ServerWorldLevel": 1 606 | } 607 | } 608 | ``` 609 | 610 | ### `ServerSignature` 611 | 612 | - 类型:`string` 613 | 614 | 游戏内控制台签名 615 | 616 | ```json title="config.json" 617 | { 618 | "GameServer": { 619 | "ServerSignature": "Server Signature" 620 | } 621 | } 622 | ``` 623 | 624 | ### `WelcomeEmotes` 625 | 626 | - 类型:`list` 627 | 628 | 游戏内控制台欢迎表情ID 629 | 630 | ```json title="config.json" 631 | { 632 | "GameServer": { 633 | "WelcomeEmotes": [ 634 | 2007, 635 | 1002, 636 | 4010 637 | ] 638 | } 639 | } 640 | ``` 641 | 642 | ### `WelcomeMotd` 643 | 644 | - 类型:`string` 645 | 646 | 游戏内控制台欢迎文本 647 | 648 | ```json title="config.json" 649 | { 650 | "GameServer": { 651 | "WelcomeMotd": "Welcome to Grasscutter emu" 652 | } 653 | } 654 | ``` 655 | 656 | ### `WelcomeMailTitle` 657 | 658 | - 类型:`string` 659 | 660 | 欢迎邮件标题 661 | 662 | ```json title="config.json" 663 | { 664 | "GameServer": { 665 | "WelcomeMailTitle": "Welcome to Grasscutter!" 666 | } 667 | } 668 | ``` 669 | 670 | ### `WelcomeMailSender` 671 | 672 | - 类型:`string` 673 | 674 | 欢迎邮件发件人 675 | 676 | ```json title="config.json" 677 | { 678 | "GameServer": { 679 | "WelcomeMailSender": "Lawnmower" 680 | } 681 | } 682 | ``` 683 | 684 | ### `WelcomeMailContent` 685 | 686 | - 类型:`string` 687 | 688 | 欢迎邮件内容文本 689 | 690 | ```json title="config.json" 691 | { 692 | "GameServer": { 693 | "WelcomeMailContent": "Hi there!\r\nFirst of all, welcome to Grasscutter. If you have any issues, please let us know so that Lawnmower can help you! \r\n\r\nCheck out our:\r\n " 694 | } 695 | } 696 | ``` 697 | 698 | ### `WelcomeMailItems` 699 | 700 | - 类型:`` 701 | 702 | 欢迎邮件附件内容 703 | 704 | - itemId: 物品ID 705 | - itemCount: 物品数量 706 | - itemLevel: 物品等级 707 | 708 | ```json title="config.json" 709 | { 710 | "GameServer": { 711 | "WelcomeMailItems": [ 712 | { 713 | "itemId": 13509, 714 | "itemCount": 1, 715 | "itemLevel": 1 716 | }, 717 | { 718 | "itemId": 201, 719 | "itemCount": 10000, 720 | "itemLevel": 1 721 | } 722 | ] 723 | } 724 | } 725 | ``` 726 | 727 | ### `EnableOfficialShop` 728 | 729 | - 类型:`boolean` 730 | 731 | 是否开启商店`true/false` 732 | 733 | ```json title="config.json" 734 | { 735 | "GameServer": { 736 | "EnableOfficialShop": true 737 | } 738 | } 739 | ``` 740 | 741 | ### `Game` 742 | 743 | - 类型:`object` 744 | 745 | - ADVENTURE_EXP_RATE: 冒险阅历倍率 746 | - MORA_RATE: 摩拉倍率 747 | - DOMAIN_DROP_RATE: 怪物掉落倍率 748 | 749 | ```json title="config.json" 750 | { 751 | "GameServer": { 752 | "Game": { 753 | "ADVENTURE_EXP_RATE": 1.0, 754 | "MORA_RATE": 1.0, 755 | "DOMAIN_DROP_RATE": 1.0 756 | } 757 | } 758 | } 759 | ``` 760 | 761 |
762 | 配置示例 763 | 764 | ```json title="config.json" 765 | { 766 | "GameServer": { 767 | "Name": "Test", 768 | "Ip": "127.0.0.1", 769 | "PublicIp": "127.0.0.1", 770 | "Port": 22102, 771 | "PublicPort": 0, 772 | "DispatchServerDatabaseUrl": "mongodb://localhost:27017", 773 | "DispatchServerDatabaseCollection": "grasscutter", 774 | "InventoryLimitWeapon": 2000, 775 | "InventoryLimitRelic": 2000, 776 | "InventoryLimitMaterial": 2000, 777 | "InventoryLimitFurniture": 2000, 778 | "InventoryLimitAll": 30000, 779 | "MaxAvatarsInTeam": 4, 780 | "MaxAvatarsInTeamMultiplayer": 4, 781 | "MaxEntityLimit": 1000, 782 | "WatchGacha": false, 783 | "ServerNickname": "Kiana", 784 | "ServerAvatarId": 10000046, 785 | "ServerNameCardId": 210001, 786 | "ServerLevel": 1, 787 | "ServerWorldLevel": 1, 788 | "ServerSignature": "Server Signature", 789 | "WelcomeEmotes": [ 790 | 2007, 791 | 1002, 792 | 4010 793 | ], 794 | "WelcomeMotd": "Welcome to Grasscutter emu", 795 | "WelcomeMailTitle": "Welcome to Grasscutter!", 796 | "WelcomeMailSender": "Lawnmower", 797 | "WelcomeMailContent": "Hi there!\r\nFirst of all, welcome to Grasscutter. If you have any issues, please let us know so that Lawnmower can help you! \r\n\r\nCheck out our:\r\n ", 798 | "WelcomeMailItems": [ 799 | { 800 | "itemId": 13509, 801 | "itemCount": 1, 802 | "itemLevel": 1 803 | }, 804 | { 805 | "itemId": 201, 806 | "itemCount": 10000, 807 | "itemLevel": 1 808 | } 809 | ], 810 | "EnableOfficialShop": true, 811 | "Game": { 812 | "ADVENTURE_EXP_RATE": 1.0, 813 | "MORA_RATE": 1.0, 814 | "DOMAIN_DROP_RATE": 1.0 815 | } 816 | } 817 | } 818 | ``` 819 | 820 |
821 | 822 | ## `DispatchServer` 823 | 824 | - 类型:string 825 | 826 | ```json title="config.json" 827 | { 828 | "DispatchServer": "{ 829 | "Ip": "127.0.0.1", 830 | "PublicIp": "127.0.0.1", 831 | "Port": 443, 832 | "PublicPort": 0, 833 | "KeystorePath": "./keystore.p12", 834 | "KeystorePassword": "123456", 835 | "UseSSL": true, 836 | "FrontHTTPS": true, 837 | "CORS": false, 838 | "CORSAllowedOrigins": [ 839 | "*" 840 | ], 841 | "AutomaticallyCreateAccounts": false, 842 | "defaultPermissions": [ 843 | "" 844 | ], 845 | "GameServers": [] 846 | }" 847 | } 848 | ``` 849 | 850 | ## `LocaleLanguage` 851 | 852 | - 类型:string 853 | 854 | 本地语言 855 | 856 | ```json title="config.json" 857 | { 858 | "LocaleLanguage": "zh_CN" 859 | } 860 | ``` 861 | 862 | ## `DefaultLanguage` 863 | 864 | - 类型:string 865 | 866 | 默认语言 867 | 868 | ```json title="config.json" 869 | { 870 | "DefaultLanguage": "en" 871 | } 872 | ``` 873 | 874 | ## `OpenStamina` 875 | 876 | - 类型:boolean 877 | 878 | 是否开启体力消耗`true/false` 879 | 880 | ```json title="config.json" 881 | { 882 | "OpenStamina": true 883 | } 884 | ``` 885 | -------------------------------------------------------------------------------- /docs/file-interpretation/extend-emotion.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 🔣 扩展-表情包对照表格 3 | sidebar_label: 🔣 扩展-表情包对照表格 4 | --- 5 | 6 | 7 | | 表情 | ID | 注释 | 8 | |---------------------------------------------|------|--------| 9 | | ![1001](/img/emotions/UI_EmotionIcon1.png) | 1001 | 交给我吧 | 10 | | ![1002](/img/emotions/UI_EmotionIcon2.png) | 1002 | 出货吧! | 11 | | ![1003](/img/emotions/UI_EmotionIcon3.png) | 1003 | 哼哼~ | 12 | | ![1004](/img/emotions/UI_EmotionIcon4.png) | 1004 | 该吃饭了 | 13 | | ![1005](/img/emotions/UI_EmotionIcon5.png) | 1005 | 吃惊 | 14 | | ![1006](/img/emotions/UI_EmotionIcon6.png) | 1006 | 小事一桩 | 15 | | ![1007](/img/emotions/UI_EmotionIcon7.png) | 1007 | 不要啊 | 16 | | ![1008](/img/emotions/UI_EmotionIcon8.png) | 1008 | 唔… | 17 | | ![1009](/img/emotions/UI_EmotionIcon9.png) | 1009 | 干得漂亮 | 18 | | ![1010](/img/emotions/UI_EmotionIcon10.png) | 1010 | 救救我 | 19 | | ![1011](/img/emotions/UI_EmotionIcon11.png) | 1011 | 你真幽默 | 20 | | ![1012](/img/emotions/UI_EmotionIcon12.png) | 1012 | 给我走开! | 21 | | ![1013](/img/emotions/UI_EmotionIcon13.png) | 1013 | 睡着了 | 22 | | ![1014](/img/emotions/UI_EmotionIcon14.png) | 1014 | 拜托~ | 23 | | ![1015](/img/emotions/UI_EmotionIcon15.png) | 1015 | 警觉 | 24 | | ![1016](/img/emotions/UI_EmotionIcon16.png) | 1016 | 1摩拉可以吗 | 25 | | ![2001](/img/emotions/UI_EmotionIcon17.png) | 2001 | OK | 26 | | ![2002](/img/emotions/UI_EmotionIcon18.png) | 2002 | 乖巧 | 27 | | ![2003](/img/emotions/UI_EmotionIcon19.png) | 2003 | 疑问 | 28 | | ![2004](/img/emotions/UI_EmotionIcon20.png) | 2004 | 委屈 | 29 | | ![2005](/img/emotions/UI_EmotionIcon21.png) | 2005 | 比心 | 30 | | ![2006](/img/emotions/UI_EmotionIcon22.png) | 2006 | 哼哼 | 31 | | ![2007](/img/emotions/UI_EmotionIcon23.png) | 2007 | 点赞 | 32 | | ![2008](/img/emotions/UI_EmotionIcon24.png) | 2008 | 晚安 | 33 | | ![2009](/img/emotions/UI_EmotionIcon25.png) | 2009 | 倒 | 34 | | ![2010](/img/emotions/UI_EmotionIcon26.png) | 2010 | 暗中观察 | 35 | | ![2011](/img/emotions/UI_EmotionIcon27.png) | 2011 | 哦 | 36 | | ![2012](/img/emotions/UI_EmotionIcon28.png) | 2012 | 期待 | 37 | | ![2013](/img/emotions/UI_EmotionIcon29.png) | 2013 | 吃惊 | 38 | | ![2014](/img/emotions/UI_EmotionIcon30.png) | 2014 | 有主意了 | 39 | | ![2015](/img/emotions/UI_EmotionIcon31.png) | 2015 | 撒花 | 40 | | ![2016](/img/emotions/UI_EmotionIcon32.png) | 2016 | 鼓掌 | 41 | | ![3001](/img/emotions/UI_EmotionIcon33.png) | 3001 | 喝茶 | 42 | | ![3002](/img/emotions/UI_EmotionIcon34.png) | 3002 | 我全都要 | 43 | | ![3003](/img/emotions/UI_EmotionIcon35.png) | 3003 | 思考 | 44 | | ![3004](/img/emotions/UI_EmotionIcon36.png) | 3004 | 摊手 | 45 | | ![3005](/img/emotions/UI_EmotionIcon37.png) | 3005 | 叹气 | 46 | | ![3006](/img/emotions/UI_EmotionIcon38.png) | 3006 | 得意 | 47 | | ![3007](/img/emotions/UI_EmotionIcon39.png) | 3007 | 烦躁 | 48 | | ![3008](/img/emotions/UI_EmotionIcon40.png) | 3008 | 无聊 | 49 | | ![3009](/img/emotions/UI_EmotionIcon41.png) | 3009 | 超凶 | 50 | | ![3010](/img/emotions/UI_EmotionIcon42.png) | 3010 | 傲娇 | 51 | | ![3011](/img/emotions/UI_EmotionIcon43.png) | 3011 | 燃起来了 | 52 | | ![3012](/img/emotions/UI_EmotionIcon44.png) | 3012 | 气死了 | 53 | | ![3013](/img/emotions/UI_EmotionIcon45.png) | 3013 | 赌气 | 54 | | ![3014](/img/emotions/UI_EmotionIcon46.png) | 3014 | 我拒绝 | 55 | | ![3015](/img/emotions/UI_EmotionIcon47.png) | 3015 | 好饿 | 56 | | ![3016](/img/emotions/UI_EmotionIcon48.png) | 3016 | 是摩拉 | 57 | | ![4001](/img/emotions/UI_EmotionIcon49.png) | 4001 | 送花 | 58 | | ![4002](/img/emotions/UI_EmotionIcon50.png) | 4002 | 没什么 | 59 | | ![4003](/img/emotions/UI_EmotionIcon51.png) | 4003 | 怎么了 | 60 | | ![4004](/img/emotions/UI_EmotionIcon52.png) | 4004 | 冷 | 61 | | ![4005](/img/emotions/UI_EmotionIcon53.png) | 4005 | 打瞌睡 | 62 | | ![4006](/img/emotions/UI_EmotionIcon54.png) | 4006 | 不要摸 | 63 | | ![4007](/img/emotions/UI_EmotionIcon55.png) | 4007 | 懊恼 | 64 | | ![4008](/img/emotions/UI_EmotionIcon56.png) | 4008 | 挺好的 | 65 | | ![4009](/img/emotions/UI_EmotionIcon57.png) | 4009 | 祈祷 | 66 | | ![4010](/img/emotions/UI_EmotionIcon58.png) | 4010 | 早安 | 67 | | ![4011](/img/emotions/UI_EmotionIcon59.png) | 4011 | 加油 | 68 | | ![4012](/img/emotions/UI_EmotionIcon60.png) | 4012 | 记录 | 69 | | ![4013](/img/emotions/UI_EmotionIcon61.png) | 4013 | 吃惊 | 70 | | ![4014](/img/emotions/UI_EmotionIcon62.png) | 4014 | 失去高光 | 71 | | ![4015](/img/emotions/UI_EmotionIcon63.png) | 4015 | 才不是 | 72 | | ![4016](/img/emotions/UI_EmotionIcon64.png) | 4016 | 哈哈哈 | 73 | | ![5001](/img/emotions/UI_EmotionIcon65.png) | 5001 | 坏笑 | 74 | | ![5002](/img/emotions/UI_EmotionIcon66.png) | 5002 | 念诗 | 75 | | ![5003](/img/emotions/UI_EmotionIcon67.png) | 5003 | 搞砸了 | 76 | | ![5004](/img/emotions/UI_EmotionIcon68.png) | 5004 | 卖萌 | 77 | | ![5005](/img/emotions/UI_EmotionIcon69.png) | 5005 | 吓唬 | 78 | | ![5006](/img/emotions/UI_EmotionIcon70.png) | 5006 | 交给我吧 | 79 | | ![5007](/img/emotions/UI_EmotionIcon71.png) | 5007 | 打哈欠 | 80 | | ![5008](/img/emotions/UI_EmotionIcon72.png) | 5008 | 不好意思 | 81 | | ![5009](/img/emotions/UI_EmotionIcon73.png) | 5009 | 吃 | 82 | | ![5010](/img/emotions/UI_EmotionIcon74.png) | 5010 | 揉眼 | 83 | | ![5011](/img/emotions/UI_EmotionIcon75.png) | 5011 | 静坐 | 84 | | ![5012](/img/emotions/UI_EmotionIcon76.png) | 5012 | 来吧 | 85 | | ![5013](/img/emotions/UI_EmotionIcon77.png) | 5013 | 疑问 | 86 | | ![5014](/img/emotions/UI_EmotionIcon78.png) | 5014 | 发呆 | 87 | | ![5015](/img/emotions/UI_EmotionIcon79.png) | 5015 | 冷漠 | 88 | | ![5016](/img/emotions/UI_EmotionIcon80.png) | 5016 | 皱眉 | 89 | | ![6001](/img/emotions/UI_EmotionIcon81.png) | 6001 | 赞扬 | 90 | | ![6002](/img/emotions/UI_EmotionIcon82.png) | 6002 | 让我看看 | 91 | | ![6003](/img/emotions/UI_EmotionIcon83.png) | 6003 | 干杯 | 92 | | ![6004](/img/emotions/UI_EmotionIcon84.png) | 6004 | 开饭了 | 93 | | ![6005](/img/emotions/UI_EmotionIcon85.png) | 6005 | 没问题 | 94 | | ![6006](/img/emotions/UI_EmotionIcon86.png) | 6006 | 睡不着 | 95 | | ![6007](/img/emotions/UI_EmotionIcon87.png) | 6007 | 无奈 | 96 | | ![6008](/img/emotions/UI_EmotionIcon88.png) | 6008 | 得意 | 97 | | ![6009](/img/emotions/UI_EmotionIcon89.png) | 6009 | 挠头 | 98 | | ![6010](/img/emotions/UI_EmotionIcon90.png) | 6010 | 咆哮 | 99 | | ![6011](/img/emotions/UI_EmotionIcon91.png) | 6011 | 迷茫 | 100 | | ![6012](/img/emotions/UI_EmotionIcon92.png) | 6012 | 休息 | 101 | | ![6013](/img/emotions/UI_EmotionIcon93.png) | 6013 | 嫌弃 | 102 | | ![6014](/img/emotions/UI_EmotionIcon94.png) | 6014 | 汗 | 103 | | ![6015](/img/emotions/UI_EmotionIcon95.png) | 6015 | 凝视 | 104 | | ![6016](/img/emotions/UI_EmotionIcon96.png) | 6016 | 下班 | -------------------------------------------------------------------------------- /docs/intro.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 🎲 概述 3 | sidebar_label: "🎲 概述" 4 | slug: / 5 | --- 6 | 7 | ## 简介{#intro} 8 | 9 | 欢迎访问 GenKit Wiki ! 10 | 11 | :::info 12 | 本 Wiki 内容若非特殊标注, 均由 GenKit 成员共同撰写并使用 CC BY-NC-SA 4.0 协议共享 13 | ::: 14 | 15 | [Grasscutter](https://github.com/Grasscutters/Grasscutter) (后称 GC ) 是基于抓包分析构建的*某动漫游戏* (后称 GS ) 第三方开源服务端 16 | 17 | 你可以使用它来部署自己的服务器, 也可以加入公开的大型服务器游玩 18 | 19 | GenKit 是一个第三方 GC 交流学习组织 20 | 21 | ## 步骤{#step} 22 | 23 | 需要进入一个 GC 服务器, 你需要经过以下步骤: 24 | 25 | ### 寻找服务器 26 | 27 | 您可以选择加入一个公开的服务器, 也可以自行搭建服务器 28 | 29 | 但是请知悉, 服务器可以通过发送数据包在客户端进行任何操作, 所以请**不要尝试**加入任何不受信任的服务器 30 | 31 | ### 代理流量 32 | 33 | 需要通过代理工具, 将你本地 GS 客户端发往官方服务器的请求重定向至 GC 服务器 34 | 35 | ### 修改客户端 36 | 37 | 某动漫游戏公司 从 2.8 版本开始更换了新密钥, 无法破解, 所以我们需要先修改对应文件才能加入一个 GC 服务器 38 | 39 | ## 鸣谢{#thx} 40 | 41 | 本文档贡献者: 42 | 43 | - GenKit 成员 44 | 45 | - ... 46 | 47 | - [SimpleName](https://genkit.org) 48 | 49 | 50 | -------------------------------------------------------------------------------- /docs/other/ssl.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 🔒 SSL 配置 3 | sidebar_label: 🔒 SSL 配置 4 | 5 | --- 6 | 7 | ## 概览 {#overview} 8 | 9 | 本教程提供 Grasscutter 服务器的 SSL 配置方法,使在通过浏览器访问时不出现警告。 10 | 11 | ## 实现方式 12 | 13 | 有两种方法实现正常的 SSL 配置。 14 | 15 | - 反代 16 | 17 | - 替换服务端证书 `keystore.p12` 为有效证书 18 | 19 | 网上有很多关于如何配置反代的教程。这里不赘述。 20 | 21 | ### 替换证书 22 | 23 | #### 使用 IP 证书 24 | 25 | ZeroSSL 已经开放 IP 证书的申请(一个账号仅限同时拥有三个未过期证书,但是账号不验证邮箱真实性),我们也可以使用 IP 证书 26 | 27 | 你可以使用诸如 `https://github.com/tinkernels/zerossl-ip-cert` 等工具来进行申请,也可以直接登录 ZeroSSL 网页进行申请(在 `Enter Domains` 处直接输入 IP 即可) 28 | 29 | 也可以参考[这篇教程](https://hikami.moe/webmaster/domain/4241.html) 30 | 31 | #### 使用域名证书 32 | 33 | 由于 IP 证书申请相对会繁琐一点点,所以也可以考虑获取域名。 34 | 35 | 比如 `.xyz` 后缀第一年只需要 10 块甚至 9 块.可以找个国外注册商比如 NameSilo 注册一个,而且国外注册商无需备案 36 | 37 | 如果实在没钱,可以用 [Freenom](https://www.freenom.com/zh/index.html?lang=zh) .不过 Freenom 由于滥用严重,有些服务商可能会限制这些域名可使用的服务 38 | 39 | 至于 DNS 解析,可以使用免费版的 Cloudflare.如何配置一样请自行搜索. 40 | 41 | :::caution 42 | 43 | 有些国内 VPS 提供商会阻断未备案域名的连接,还请注意。 44 | 45 | ::: 46 | 47 | #### 获取证书 48 | 49 | 证书无非就是使用耳熟能详的 Let's Encrypt 免费证书。关于如何申请,请自行搜索"申请letsencrypt证书" 50 | 51 | #### 转换证书 52 | 53 | 从 CA 申请到证书后,我们会获得 `.pem` 后缀的证书和 `.key` 后缀的证书私钥。Grasscutter 不能使用这种格式的证书。所以我们要进行转换。 54 | 55 | 转换也相当简单,只要这一条命令: 56 | 57 | ```bash 58 | openssl pkcs12 -export -in cert.pem -inkey private.key -out server.p12 59 | ``` 60 | 61 | `cert.pem` 换成你的证书文件名,私钥同理。转换出来的证书会在当前目录下,名称为 `server.p12` 62 | 63 | 命令会要求你设置证书密码,一定记住。 64 | 65 | Windows 默认没有这个工具,可以在[这里](https://slproweb.com/download/Win64OpenSSL_Light-3_0_3.exe)下载.Linux 则不用担心。 66 | 67 | #### 更换证书 68 | 69 | 转换完成后,将 `server.p12` 拷到服务器目录下。 70 | 71 | 修改 `config.json` 中的以下两项为如下内容 72 | 73 | ```json 74 | { 75 | "KeystorePath": "./server.p12", 76 | "KeystorePassword": "123456", 77 | } 78 | ``` 79 | 80 | `KeystorePassword` 项要修改为你自己刚刚设置的密码。 81 | 82 | ## 结束 83 | 84 | 重启服务器,然后大功告成。此时你的浏览器应该不会显示警告了。 85 | 86 | :::info 87 | 88 | 🔗 本文作者 [@feb_6th](https://t.me/feb_6th) 。 89 | 90 | 使用 [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/) 协议共享 91 | 92 | ::: 93 | -------------------------------------------------------------------------------- /docs/server/create/deploy/android/linux-deploy-root.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "🐧 在  Linux Deploy 上部署 (需要 root)" 3 | sidebar_label: 🔔 有 root 4 | --- 5 | 6 | :::caution 7 | 8 | 看前须知:此教程必须有 root,没 root 痛快衮。别来问没 root 怎么办,打钱也不行。 9 | 此教程也需要你有一定的 Linux 基础。 10 | 11 | ::: 12 | 13 | ## 📥 下载软件 14 | 15 | 下载并安装 Linux Deploy。 16 | 17 | https://github.com/meefik/linuxdeploy 18 | 19 | ## 🐧 配置 Linux Deploy 20 | 21 | 进入 Linux Deploy, 点击右下角配置按钮,修改选项为如下内容 22 | 23 | 发行版改为 arch 24 | 25 | 架构改为 aarch64 26 | 27 | 源地址改为 `http://mirrors.ustc.edu.cn/archlinuxarm` 28 | 29 | 安装类型改为 目录 30 | 31 | 安装路径改为 `/data/linux` 32 | 33 | 用户名和密码随意 34 | 35 | 本地化改为 `zh_CN.UTF-8` 36 | 37 | 继续往下翻,找到 ssh ,勾选"启用" 38 | 39 | ## ⚒️ 部署 40 | 41 | 点开右上角菜单,点击部署,然后等待。 42 | 43 | 出现 `<> ~/.bashrc << EOF 111 | export JHOME=~/jdk-17.0.1 112 | export PATH=\$JHOME/bin:\$PATH 113 | EOF 114 | ``` 115 | 116 | ::: 117 | 118 | 最后,输入 119 | 120 | ```bash 121 | source ~/.bashrc;java -version 122 | ``` 123 | 124 | 如果产生了如下输出,Java 配置即完成. 125 | 126 | ``` 127 | java version "17.0.1" 2021-10-19 LTS 128 | Java(TM) SE Runtime Environment (build 17.0.1+12-LTS-39) 129 | Java HotSpot(TM) 64-Bit Server VM (build 17.0.1+12-LTS-39, mixed mode, sharing) 130 | ``` 131 | 132 | ## 🧰 搭建服务器 133 | 134 | 搭建服务器的操作其实大同小异,可以参考[此教程](https://blog.tomys.top/2022-04/GenshinTJ/). 135 | 136 | 本教程只阐述不同的部分。 137 | 138 | 在服务器文件放好后,进入目录,输入 139 | 140 | ```bash 141 | sudo java -jar 142 | ``` 143 | 144 | 来开启服务器。 145 | 146 | :::note 147 | 148 | 主文件名因人而异,按需修改。 149 | 150 | 例如现在我的文件结构是这样 151 | 152 | ![文件结构](https://imgsrc.baidu.com/super/pic/item/faf2b2119313b07eece79ede49d7912396dd8c8a.jpg) 153 | 154 | 主文件名是 `grasscutterZH-dev-775f4cb.jar` 155 | 156 | 则应该运行: 157 | 158 | ```bash 159 | sudo java -jar grasscutterZH-dev-775f4cb.jar 160 | ``` 161 | 162 | ::: 163 | 164 | 再开另一个终端,进入目录,输入 165 | 166 | ```bash 167 | mitmproxy -k -s proxy.py 168 | ``` 169 | 170 | 来开启 mitmproxy。 171 | 172 | :::tip 173 | 174 | 若有公网连接需求,可以在运行参数中添加 `--set block_global=false` 175 | 176 | ::: 177 | 178 | 如何连接服务器请同样参考上面的教程。 179 | 180 | ## 🔧 特殊需求 181 | 182 | > 我想自己编译 grasscutter,可是 archlinuxarm 源里似乎没有合适的 gradle,怎么办? 183 | 184 | 有两种方法可以供您选择。 185 | 186 | 1.手动安装 gradle 187 | 输入以下命令,全部选项默认。 188 | 189 | ```bash 190 | pacman -U --overwrite \* https://mirrors.ustc.edu.cn/archlinux/community/os/x86_64/gradle-7.4.2-1-any.pkg.tar.zst;pacman -Rdd jdk-openjdk 191 | ``` 192 | 193 | 输入 `gradle -v` 出现以下输出即成功。当然,不一定非要和下面的完全一样。 194 | 195 | ``` 196 | ------------------------------------------------------------ 197 | Gradle 7.4.2 198 | ------------------------------------------------------------ 199 | 200 | Build time: 2022-03-31 16:40:07 UTC 201 | Revision: 202 | 203 | Groovy: 3.0.9 204 | Ant: Apache Ant(TM) version 1.10.11 compiled on July 10 2021 205 | JVM: 17.0.1 (Oracle Corporation 17.0.1+12-LTS-39) 206 | OS: Linux 4.19.226-IllusionX+ aarch64 207 | ``` 208 | 209 | 2.使用 gradlew 脚本 210 | 211 | :::tip 212 | 213 | 推荐使用此方法 214 | 215 | ::: 216 | 217 | 在 Grasscutter 项目目录下直接执行 `./gradlew jar` 即可完成自动获取 gradle 跟编译。 218 | 219 | :::info 220 | 221 | 🔗 原文由 [@feb_6th](https://t.me/feb_6th) 与 [@chitang233](https://t.me/chitang233) 发布在 [Chi_Tang's Blog](https://www.chitang.tech/posts/grasscutter-android.md) 222 | 223 | 使用 [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) 协议共享 224 | 225 | ::: 226 | -------------------------------------------------------------------------------- /docs/server/create/deploy/android/termux-non-root.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "📟 在 Termux 上部署 (无需 root)" 3 | sidebar_label: 🔕 无 root 4 | --- 5 | 6 | ## 📥 下载软件 7 | 8 | Github Releases 9 | > https://github.com/termux/termux-app/releases 10 | 11 | F-Droid 12 | > https://f-droid.org/en/packages/com.termux/ 13 | 14 | ⚠ Google Play 上的版本[已被官方弃用](https://github.com/termux/termux-app#google-play-store-deprecated),本文不提供支持 15 | 16 | ## 📦 环境准备 17 | 18 | ### 🐧更新内置软件 19 | 20 | 下载安装后打开 Termux,首先更新一下内置软件源,在终端中输入 21 | 22 | ```bash 23 | pkg upgrade -y 24 | ``` 25 | 26 | 中间可能会遇到程序询问是否覆盖一些软件包的配置文件,由于是全新安装,我们可以输入 `Y` 然后回车确认 27 | 28 | :::tip 29 | 30 | 中国大陆的用户可能会受限于网络环境的影响导致软件包下载缓慢,推荐先运行 `termux-change-repo` 更换为 USTC、Alibaba 等中国大陆内软件源镜像(终端中使用空格键选定,回车键确认) 31 | 32 | ::: 33 | 34 | ### 🗃️ MongoDB 数据库 35 | 36 | :::tip 37 | 38 | 由于 Termux 上的 MongoDB 很久无人维护,需要额外配置一些依赖环境,懒人可以使用一键脚本 39 | 40 | 本小节安装方法只支持 aarch64(arm64) 的设备,X86 以及其他 CPU 架构的用户请自行研究。 41 | 42 | ::: 43 | 44 | 安装 wget 和 OpenSSL 1.1 45 | 46 | ```bash 47 | pkg install -y wget openssl-1.1 48 | ln -sf /data/data/com.termux/files/usr/lib/openssl-1.1/libcrypto.so.1.1 /data/data/com.termux/files/usr/lib/libcrypto.so.1.1 49 | ln -sf /data/data/com.termux/files/usr/lib/openssl-1.1/libssl.so.1.1 /data/data/com.termux/files/usr/lib/libssl.so.1.1 50 | ``` 51 | 52 | 添加安装第三方软件源 53 | 54 | ```bash 55 | bash -c "$(wget -qO- https://its-pointless.github.io/setup-pointless-repo.sh)" 56 | ``` 57 | 58 | :::tip 替换为 USTC 镜像源(可选) 59 | 60 | ```bash 61 | echo "deb https://mirrors.ustc.edu.cn/termux-its-pointless/24 termux extras" > $PREFIX/etc/apt/sources.list.d/pointless.list 62 | ``` 63 | 64 | ::: 65 | 66 | 安装旧版本 libicu 并标记为保留软件 67 | 68 | ```bash 69 | wget https://raw.githubusercontent.com/Slowhy/scripts/main/libicu_69.1-2_aarch64.deb 70 | dpkg -i libicu_69.1-2_aarch64.deb && rm -rf libicu_69.1-2_aarch64.deb 71 | apt-mark hold libicu 72 | ``` 73 | 74 | 安装 MongoDB 软件包 75 | 76 | ```bash 77 | pkg update -y && pkg install -y mongodb 78 | ``` 79 | 80 | ### ☕ OpenJDK 17 81 | 82 | 这里使用 Termux 默认软件源提供的安装包 83 | 84 | ```bash 85 | pkg install -y openjdk-17 86 | ``` 87 | 88 | ### ⛓️ mitmproxy 89 | 90 | mitmproxy 官方没有提供 aarch(arm64) 架构可用的二进制文件,这里使用pip来安装 91 | 92 | ```bash 93 | pkg install -y python rust 94 | export CARGO_BUILD_TARGET=aarch64-linux-android 95 | pip install mitmproxy 96 | ``` 97 | 98 | ## 🚜 运行服务器 99 | 100 | ### 服务端资源获取请参考[获取服务端](https://genkit.mhysb.xyz/docs/quick-start/get-server),下文仅作必要补充 101 | 102 | 首先确保当前工作目录是服务端资源所在目录,然后运行 MongoDB 103 | 104 | ```bash 105 | mongod --dbpath=数据库存储路径 --logpath=日志文件存储路径 --fork 106 | ``` 107 | 108 | 然后运行服务端(主文件名因人而异,按需修改) 109 | 110 | ```bash 111 | java -jar 112 | ``` 113 | 114 | 由于非 root 用户没有权限,此时服务端并没有正常运行,但会自动生成我们需要的的配置文件 115 | 116 | 现在停止服务端,然后修改 `config.json`,将文件内默认的 443 端口改成 1024 以上的端口,比如 4443,同时修改`proxy_config.py` 内 `REMOTE_PORT` 所对应的端口 117 | 118 | 重新运行服务端 119 | 120 | ```bash 121 | java -jar 122 | ``` 123 | 124 | 再开另一个终端,进入目录,运行mitmproxy 125 | 126 | ```bash 127 | mitmproxy -k -s proxy.py 128 | ``` 129 | 130 | 现在就可以尝试打开客户端连接了 131 | 132 | :::info 133 | 134 | 使用 [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) 协议共享 135 | 136 | ::: 137 | -------------------------------------------------------------------------------- /docs/server/create/deploy/click-to-run.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "🧰 使用一键包或脚本" 3 | sidebar_label: "🧰 一键包/脚本" 4 | --- 5 | 6 | > **前置** 7 | > - MongoDB 8 | > - MitmProxy 9 | -------------------------------------------------------------------------------- /docs/server/create/deploy/fastrun-debian-ios.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "👨‍💻 Debian + iOS 部署使用速通" 3 | sidebar_label: "👨‍💻 Debian + iOS 速通" 4 | --- 5 | 6 | :::info 7 | 本文作者 [@𝐖𝐨𝐰. ](https://daydayday.day/) 8 | 9 | 使用 CC BY-SA 4.0 协议共享 10 | ::: 11 | 12 | ## 📦 条件 13 | 14 | 1. 运行 Debian 11 的远程服务器,且 80 / 443 端口可用 15 | 2. 一个域名,若服务器 / 域名在中国大陆内则需要备案,域名解析到上述远程服务器的公网 IPv4 地址 16 | 3. iOS/iPadOS 设备,运行 Shadowrocket 或 Surge 17 | 4. 一双能看清楚教程的眼睛 18 | 19 | ## 🏷️ 总结 20 | 在 Debian 上部署 Grasscutter,在 iOS 端处理 MitM 并重定向流量。 21 | 22 | ---- 23 | 24 | ## ⚒️ 部署服务端 25 | 26 | #### 👤 以root用户连接 SSH 登录服务器 27 | 28 | #### ♻️ 更新系统依赖及部署常见软件包 29 | ```bash 30 | apt update -y && apt upgrade -y && apt-get install -y gnupg sudo net-tools vim nano tar zip unzip p7zip-full wget curl git screen htop nload lsof telnet debian-keyring debian-archive-keyring apt-transport-https ufw 31 | ``` 32 | _\* 有些软件包可能用不上,但是为了防止某一步报错还是都给装上好点。_ 33 | 34 | #### ☕ 安装 Java 17 35 | ```bash 36 | apt install openjdk-17-jre openjdk-17-jdk 37 | ``` 38 | 39 | ### 🗃️ 安装 MongoDB 40 | 41 | ```bash 42 | # 获取公钥 43 | wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add - 44 | 45 | # 添加下载源 46 | echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/5.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list 47 | 48 | # 安装MongoDB 49 | apt install -y mongodb-org 50 | 51 | # 启用MongoDB 52 | systemctl enable mongod && systemctl start mongod 53 | ``` 54 | 55 | #### 🌐 安装 Caddy 56 | ```bash 57 | # 获取公钥 58 | curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo tee /etc/apt/trusted.gpg.d/caddy-stable.asc 59 | 60 | # 添加下载源 61 | curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list 62 | 63 | # 更新源并安装Caddy 64 | apt update && apt install -y caddy 65 | ``` 66 | 67 | #### 🚜 获取 Grasscutter 68 | ```bash 69 | cd ~ 70 | 71 | # 克隆源到本地 (以development分支为例) 72 | git clone https://github.com/Grasscutters/Grasscutter --branch development && cd Grasscutter 73 | 74 | # 克隆 resources 75 | git clone https://github.com/Dimbreath/GenshinData resources 76 | 77 | # 前往 https://github.com/Grasscutters/Grasscutter/actions 下载最新 jar 到本地文件夹 78 | ``` 79 | 80 | #### ✒️ 编辑 config.json 81 | ```bash 82 | # 生成 config.json 83 | # 将 grasscutter.jar 替换为实际值 84 | # 在服务器运行后输入 stop 停止 85 | java -jar grasscutter.jar 86 | 87 | # 编辑config.json 88 | > 将 GameServer, DispatchServer 中 PublicIp 的值设置为域名 89 | > 将 GameServer 中 PublicPort 的值设置为 22102 90 | > 将 DispatchServer 中 Port 的值设置为 65530 (可替换为其他的合理的值) 91 | > 将 DispatchServer 中 PublicPort 的值设置为 443 92 | > 将 DispatchServer 中 UseSSL 的值设置为 false 93 | ``` 94 | 95 | #### 🚜 启动 Grasscutter 96 | ```bash 97 | # 创建新窗口 98 | # 将 a, ~/Grasscutter/grasscutter.jar 替换为实际值 99 | screen -dmS a 100 | screen -S a -p 0 -X stuff "java -jar ~/Grasscutter/grasscutter.jar ^M" 101 | 102 | # 若需打开控制台 103 | screen -DR a 104 | # 若需离开控制台 105 | > CTRL+A + CTRL+D 106 | ``` 107 | 108 | #### 🌐 配置 Caddy 109 | ```bash 110 | # 编辑Caddyfile 111 | # 文件位于 /etc/caddy/Caddyfile 112 | # 将 genshin.your.domain 替换为实际值 113 | # 将 http://localhost:1000 中 1000 替换为 DispatchServer 中 Port 的值 114 | mv /etc/caddyCaddyfile /etc/caddyCaddyfile.1 115 | cat >/etc/caddy/Caddyfile< 配置 \> 模块 \> 新建模块,写入以下内容。 146 | ```bash 147 | #!name=Genshin Impact Routing Module MitM 148 | #!desc=A module to use Grasscutter, with MITM handled via Surge, moudle written by 𝐖𝐨𝐰. 149 | 150 | [URL Rewrite] 151 | # Handle MITM via Surge, discarding mitmdump. 152 | hk4e-api-os-static.mihoyo.com genshin.exzork.me header 153 | hk4e-sdk-os.mihoyo.com genshin.exzork.me header 154 | dispatchosglobal.yuanshen.com genshin.exzork.me header 155 | osusadispatch.yuanshen.com genshin.exzork.me header 156 | account.mihoyo.com genshin.exzork.me header 157 | log-upload-os.mihoyo.com genshin.exzork.me header 158 | dispatchcntest.yuanshen.com genshin.exzork.me header 159 | devlog-upload.mihoyo.com genshin.exzork.me header 160 | webstatic.mihoyo.com genshin.exzork.me header 161 | log-upload.mihoyo.com genshin.exzork.me header 162 | hk4e-sdk.mihoyo.com genshin.exzork.me header 163 | api-beta-sdk.mihoyo.com genshin.exzork.me header 164 | api-beta-sdk-os.mihoyo.com genshin.exzork.me header 165 | cnbeta01dispatch.yuanshen.com genshin.exzork.me header 166 | dispatchcnglobal.yuanshen.com genshin.exzork.me header 167 | cnbeta02dispatch.yuanshen.com genshin.exzork.me header 168 | sdk-os-static.mihoyo.com genshin.exzork.me header 169 | webstatic-sea.mihoyo.com genshin.exzork.me header 170 | hk4e-sdk-os-static.hoyoverse.com genshin.exzork.me header 171 | webstatic-sea.hoyoverse.com genshin.exzork.me header 172 | sdk-os-static.hoyoverse.com genshin.exzork.me header 173 | api-account-os.hoyoverse.com genshin.exzork.me header 174 | hk4e-sdk-os.hoyoverse.com genshin.exzork.me header 175 | overseauspider.yuanshen.com genshin.exzork.me header 176 | gameapi-account.mihoyo.com genshin.exzork.me header 177 | minor-api.mihoyo.com genshin.exzork.me header 178 | hk4e-sdk-os.hoyoverse.com genshin.exzork.me header 179 | uspider.yuanshen.com genshin.exzork.me header 180 | sdk-static.mihoyo.com genshin.exzork.me header 181 | 182 | [MITM] 183 | hostname = %APPEND% api-os-takumi.mihoyo.com,hk4e-api-os-static.mihoyo.com,hk4e-sdk-os.mihoyo.com,dispatchosglobal.yuanshen.com,osusadispatch.yuanshen.com,account.mihoyo.com,log-upload-os.mihoyo.com,dispatchcntest.yuanshen.com,devlog-upload.mihoyo.com,webstatic.mihoyo.com,log-upload.mihoyo.com,hk4e-sdk.mihoyo.com,api-beta-sdk.mihoyo.com,api-beta-sdk-os.mihoyo.com,cnbeta01dispatch.yuanshen.com,dispatchcnglobal.yuanshen.com,cnbeta02dispatch.yuanshen.com,sdk-os-static.mihoyo.com,webstatic-sea.mihoyo.com,hk4e-sdk-os-static.hoyoverse.com,webstatic-sea.hoyoverse.com,sdk-os-static.hoyoverse.com,api-account-os.hoyoverse.com,hk4e-sdk-os.hoyoverse.com,overseauspider.yuanshen.com,gameapi-account.mihoyo.com,minor-api.mihoyo.com,public-data-api.mihoyo.com,uspider.yuanshen.com,sdk-static.mihoyo.com, genshin.exzork.me 184 | ``` 185 | 2. 将 `genshin.exzork.me` 替换为实际值 186 | 187 | #### ⛓️ 开启并配置 MitM 188 | Shadowrocket \> 配置 \> 本地文件 \> 选中活跃配置右侧的 i \> HTTPS解密,启用、生成并信任证书。别忘了到 设置 \> 通用 \> 关于最下方信任根证书。 189 | 190 | #### 🚀 启动 Shadowrocket 191 | Enjoy! 192 | 193 | 194 | ### 🌊 Surge 195 | 196 | #### ✒️ 编写模块 197 | 1. Surge \> 模块 \> 新建本地模块,写入以下内容。 198 | ```bash 199 | #!name=Genshin Impact Routing Module MitM 200 | #!desc=A module to use Grasscutter, with MITM handled via Surge, moudle written by 𝐖𝐨𝐰. 201 | 202 | [URL Rewrite] 203 | # Handle MITM via Surge, discarding mitmdump. 204 | hk4e-api-os-static.mihoyo.com genshin.exzork.me header 205 | hk4e-sdk-os.mihoyo.com genshin.exzork.me header 206 | dispatchosglobal.yuanshen.com genshin.exzork.me header 207 | osusadispatch.yuanshen.com genshin.exzork.me header 208 | account.mihoyo.com genshin.exzork.me header 209 | log-upload-os.mihoyo.com genshin.exzork.me header 210 | dispatchcntest.yuanshen.com genshin.exzork.me header 211 | devlog-upload.mihoyo.com genshin.exzork.me header 212 | webstatic.mihoyo.com genshin.exzork.me header 213 | log-upload.mihoyo.com genshin.exzork.me header 214 | hk4e-sdk.mihoyo.com genshin.exzork.me header 215 | api-beta-sdk.mihoyo.com genshin.exzork.me header 216 | api-beta-sdk-os.mihoyo.com genshin.exzork.me header 217 | cnbeta01dispatch.yuanshen.com genshin.exzork.me header 218 | dispatchcnglobal.yuanshen.com genshin.exzork.me header 219 | cnbeta02dispatch.yuanshen.com genshin.exzork.me header 220 | sdk-os-static.mihoyo.com genshin.exzork.me header 221 | webstatic-sea.mihoyo.com genshin.exzork.me header 222 | hk4e-sdk-os-static.hoyoverse.com genshin.exzork.me header 223 | webstatic-sea.hoyoverse.com genshin.exzork.me header 224 | sdk-os-static.hoyoverse.com genshin.exzork.me header 225 | api-account-os.hoyoverse.com genshin.exzork.me header 226 | hk4e-sdk-os.hoyoverse.com genshin.exzork.me header 227 | overseauspider.yuanshen.com genshin.exzork.me header 228 | gameapi-account.mihoyo.com genshin.exzork.me header 229 | minor-api.mihoyo.com genshin.exzork.me header 230 | hk4e-sdk-os.hoyoverse.com genshin.exzork.me header 231 | uspider.yuanshen.com genshin.exzork.me header 232 | sdk-static.mihoyo.com genshin.exzork.me header 233 | 234 | [MITM] 235 | hostname = %APPEND% api-os-takumi.mihoyo.com,hk4e-api-os-static.mihoyo.com,hk4e-sdk-os.mihoyo.com,dispatchosglobal.yuanshen.com,osusadispatch.yuanshen.com,account.mihoyo.com,log-upload-os.mihoyo.com,dispatchcntest.yuanshen.com,devlog-upload.mihoyo.com,webstatic.mihoyo.com,log-upload.mihoyo.com,hk4e-sdk.mihoyo.com,api-beta-sdk.mihoyo.com,api-beta-sdk-os.mihoyo.com,cnbeta01dispatch.yuanshen.com,dispatchcnglobal.yuanshen.com,cnbeta02dispatch.yuanshen.com,sdk-os-static.mihoyo.com,webstatic-sea.mihoyo.com,hk4e-sdk-os-static.hoyoverse.com,webstatic-sea.hoyoverse.com,sdk-os-static.hoyoverse.com,api-account-os.hoyoverse.com,hk4e-sdk-os.hoyoverse.com,overseauspider.yuanshen.com,gameapi-account.mihoyo.com,minor-api.mihoyo.com,public-data-api.mihoyo.com,uspider.yuanshen.com,sdk-static.mihoyo.com, genshin.exzork.me 236 | ``` 237 | 2. 将 `genshin.exzork.me` 替换为实际值 238 | 239 | #### ⛓️ 开启并配置 MitM 240 | Surge \> MitM(启用) \> 配置根证书,生成、安装并信任证书。别忘了到 设置 \> 通用 \> 关于最下方信任根证书。 241 | 242 | #### 🌊 启动 Surge 243 | Enjoy! 244 | 245 | ---- 246 | 247 | :::note 常见问题 248 | **Q: 进入游戏后会显示「与服务器的连接已断开」!** 249 | 250 | A: 开门后断开 Shadowrocket / Surge 继续游玩即可。 251 | 252 | --- 253 | 254 | **Q: 在部署过程中提示 `xxxx: command not found.`!** 255 | 256 | A: 在搜索引擎中搜索 `Debian 11 xxxx 安装`。 257 | 258 | --- 259 | 260 | **Q: 我在使用 Cloudflare 管理域名,且我无法连接!** 261 | 262 | A: Cloudflare DNS解析中将这个域名的云朵关闭,不需要 Cloudflare 代理流量。 263 | 264 | --- 265 | 266 | **Q: 只有这两个软件可以吗?Loon / Quantumult X 呢!** 267 | 268 | A: 理论可以,未经测试,自行研究。 269 | ::: -------------------------------------------------------------------------------- /docs/server/create/deploy/ios.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/docs/server/create/deploy/ios.md -------------------------------------------------------------------------------- /docs/server/create/deploy/linux.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 🐧 在 Linux 上部署 3 | sidebar_label: 🐧 Linux 4 | --- 5 | 6 | ## 📦 环境配置 7 | 8 | import Tabs from '@theme/Tabs'; 9 | import TabItem from '@theme/TabItem'; 10 | 11 | 12 | 13 | 14 | 15 | ## 🛍️ 安装一个 AUR 工具 (如果没有) 16 | 17 | ```bash 18 | sudo pacman -S git base-devel 19 | git clone https://aur.archlinux.org/paru.git 20 | cd paru 21 | makepkg -si 22 | ``` 23 | 24 | ## 🗃️ MongoDB 数据库 25 | 26 | ```bash 27 | paru -S mongodb-bin 28 | sudo systemctl enable --now mongodb 29 | ``` 30 | 31 | 如果 `systemctl status mongodb` 的状态为 "active" 则表示安装成功 32 | 33 | ## ☕ OpenJDK 17 34 | 35 | ```bash 36 | sudo pacman -S jdk17-openjdk 37 | sudo archlinux-java set java-17-openjdk 38 | ``` 39 | 40 | 如果 `java -version` 有输出类似 `openjdk version "17.0.3" 2022-04-19` 的内容则表示安装成功 41 | 42 | ## ⛓️ mitmproxy 代理 43 | 44 | ```bash 45 | sudo pacman -S mitmproxy python 46 | ``` 47 | 48 | 49 | 50 | 51 | 52 | ## 🗃️ MongoDB 数据库 53 | 54 | ```bash title="导入密钥" 55 | sudo apt install gnupg 56 | wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add - 57 | ``` 58 | 59 | 60 | 61 | 62 | 63 | ```bash title="添加 MongoDB 软件源" 64 | echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list 65 | ``` 66 | 67 | 68 | 69 | 70 | 71 | ```bash title="添加 MongoDB 软件源" 72 | echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list 73 | ``` 74 | 75 | 76 | 77 | 78 | 79 | ```bash title="添加 MongoDB 软件源" 80 | echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list 81 | ``` 82 | 83 | 84 | 85 | 86 | 87 | 88 | ```bash title="安装 MongoDB" 89 | sudo apt update 90 | sudo apt install mongodb-org 91 | sudo systemctl enable --now mongod 92 | ``` 93 | 94 | ## ☕ OpenJDK 17 95 | 96 | ```bash 97 | sudo apt install openjdk-17-jdk openjdk-17-jre 98 | ``` 99 | 100 | 如果 `java -version` 有输出类似 `openjdk version "17.0.3" 2022-04-19` 的内容则表示安装成功 101 | 102 | ## ⛓️ mitmproxy 代理 103 | 104 | ```bash 105 | sudo apt install mitmproxy 106 | ``` 107 | 108 | 109 | 110 | 111 | 112 | :::danger 警告 113 | 114 | Fedora 全系 (包括 CentOS) 在本文中均无法得到任何支持 115 | 116 | ::: 117 | 118 | 119 | 120 | 121 | 122 | ## 🚜 运行服务器 123 | 124 | ### 🎚️ 测试 125 | 126 | ```bash 127 | cd /path/to/grasscutter # 进入 Grasscutter 目录 128 | mitmdump -s proxy.py -k --set block_global=false & # 运行 mitmdump 代理 129 | sudo java -jar grasscutter.jar # 运行服务器主文件 130 | ``` 131 | 132 | ### ✒️ 编写脚本 133 | 134 | 如果测试起来没问题的话可以制作一个 Shell 脚本方便下次运行,内容如下 135 | 136 | ```bash 137 | #!/bin/bash 138 | cd /path/to/grasscutter 139 | mitmdump -s proxy.py -k --set block_global=false & 140 | sudo java -jar grasscutter.jar 141 | ``` 142 | 143 | ### 🎞️ 保持后台 144 | 145 | 推荐使用 `screen` 实现保持后台 146 | 147 | #### 📥 安装 148 | 149 | 150 | 151 | 152 | 153 | ```bash 154 | sudo pacman -S screen 155 | ``` 156 | 157 | 158 | 159 | 160 | 161 | ```bash 162 | sudo apt install screen 163 | ``` 164 | 165 | 166 | 167 | 168 | 169 | #### 🛠️ 使用 170 | 171 | 简单介绍一下 screen 的使用方法 172 | 173 | ```bash title="创建会话" 174 | screen -S name 175 | ``` 176 | 177 | 此时便进入了一个新的会话,与普通的终端无异,在运行需要保持的命令后,可使用 `Ctrl` + `A`, `D` 离开当前会话 178 | 179 | ```bash title="查看现有会话" 180 | screen -ls 181 | ``` 182 | 183 | 该命令会列出现有的所有会话 184 | 185 | ```bash title="回到会话" 186 | screen -r name 187 | ``` 188 | 189 | 此时便回到了之前创建的会话,可继续对其中运行的程序进行操作 190 | 191 | 使用 screen 创建的会话在 ssh 断连时也会保持运行 192 | 193 | #### 可选步骤:使用 systemd 使其开机自启 194 | 195 | ```bash title="创建进程守护文件" 196 | cat << 'TEXT' > /etc/systemd/system/grasscutter.service 197 | [Unit] 198 | Description=Grasscutter Daemon 199 | After=network.target 200 | 201 | [Service] 202 | Type=simple 203 | User=root 204 | Restart=on-failure 205 | RestartSec=5s 206 | WorkingDirectory=/path/to/grasscutter # 替换 /path/to/grasscutter 为正确路径 207 | ExecStart=/usr/bin/screen -dm -S grasscutter bash -c 'cd /path/to/grasscutter;java -jar ./grasscutter.jar;exec bash' # 替换 /path/to/grasscutter 为正确路径 208 | RemainAfterExit=yes 209 | 210 | [Install] 211 | WantedBy=multi-user.target 212 | TEXT 213 | ``` 214 | 215 | ```bash title="设置开机自启" 216 | sudo systemctl enable --now grasscutter.service 217 | ``` 218 | 219 | 注意使用`root`用户管理screen进程。 220 | 221 | :::info 222 | 223 | By [Chi_Tang](https://www.chitang.tech) 224 | 225 | 运行服务器部分是 [@chitang233](https://t.me/chitang233) 基于 [@YidaozhanYa](https://t.me/YidaozhanYa) 的[文章](https://blog.yidaozhan.ga/2022/05/01/grasscutter-on-archlinux/)进行修改 226 | 227 | systemd部分由 [@qwerzl](https://github.com/qwerzl) 贡献 228 | 229 | 使用 [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/) 协议共享 230 | 231 | ::: 232 | -------------------------------------------------------------------------------- /docs/server/create/deploy/macos.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 🍎 在  macOS  上部署 3 | sidebar_label: 🍎 macOS 4 | --- 5 | 6 | > **前置** 7 | > - MongoDB 8 | > - MitmProxy 9 | -------------------------------------------------------------------------------- /docs/server/create/deploy/windows.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 💠 在 Windows 上部署 3 | sidebar_label: 💠 Windows 4 | --- 5 | 6 | ## 📦 配置环境 7 | 8 | ### 🗃️ MongoDB 数据库 9 | 10 | 前往 [MongoDB 官网](https://www.mongodb.com/try/download/community),在右侧下载 5.x 版本的 MongoDB,推荐使用 msi 安装 11 | 12 | ### ☕ OpenJDK 17 13 | 14 | 前往 [Java 官网](https://jdk.java.net/archive/),下载 zip 文件,解压到一个平时不会动的位置(比如 `C:\Program Files\Java`) 15 | 16 | 右键`计算机` -> `属性` -> `高级系统设置` -> `高级` -> `环境变量` 17 | 18 | 点击`系统变量`中的`新建`,建立一个名为 `JAVA_HOME` 的变量,并设置为解压的路径,比如 `C:\Program Files\Java\jdk-17.0.2` 19 | 20 | 在`系统变量`中找到 `Path`,点击`编辑`,在弹出的窗口中添加 `$JAVA_HOME\bin` 21 | 22 | 在任意位置打开一个 cmd 窗口,如果 `java -version` 有输出类似 `openjdk version "17.0.3" 2022-04-19` 的内容则表示安装成功 23 | 24 | ### ⛓️ mitmproxy 25 | 26 | #### 🐍 Python 3(如果没有) 27 | 28 | 前往 [Python 官网](https://www.python.org/downloads/windows/),在 Stable Releases 中下载 Windows Installer (64-bit) 29 | 30 | :::caution 31 | 32 | 在进行安装时,请一定确保 `Add Python 3.x.x to PATH` 复选框已经勾选 33 | 34 | ::: 35 | 36 | 安装完成后,在任意位置打开一个 cmd 窗口,如果 `python -V` 有输出类似 `Python 3.10.4` 的内容则表示安装成功 37 | 38 | #### ⛓️ mitmproxy 本体 39 | 40 | 前往 [mitmproxy 官网](https://mitmproxy.org/),下载 Windows Installer 并安装 41 | 42 | ## 📟 运行服务器 43 | 44 | 在资源管理器中打开 Grasscutter 所在文件夹,将上方地址栏中的内容改为 `cmd`,回车即可在当前目录打开命令提示符 45 | 46 | 在确保 MongoDB 在正常运行的情况下,输入 `run.bat` 即可启动服务端 47 | 48 | 然后运行 `proxy.bat`,启动 mitmproxy 代理 49 | 50 | :::info 51 | 52 | By [Chi_Tang](https://www.chitang.tech) 53 | 54 | 使用 [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/) 协议共享 55 | 56 | ::: 57 | -------------------------------------------------------------------------------- /docs/server/create/get.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 📥 获取服务端 3 | sidebar_label: 📥 获取服务端 4 | --- 5 | 6 | :::info 7 | 8 | 在进行本文中的步骤前,请先安装 [Git](https://git-scm.com/downloads) 9 | 10 | ::: 11 | 12 | ## 📥 获取服务端主文件 13 | 14 | import Tabs from '@theme/Tabs'; 15 | import TabItem from '@theme/TabItem'; 16 | 17 | 18 | 19 | 20 | :::info 21 | 22 | Github构建段落作者 [@Lance](https://github.com/cnlancehu/) 23 | 24 | 使用 CC BY-SA 4.0 协议共享 25 | 26 | ::: 27 | 28 | 进入[Grasscutter官方仓库](https://github.com/Grasscutters/Grasscutter) 29 | 30 | 点击左上角Fork,在自己账户中创建一个分支 31 | 32 | 进入你创建的仓库,按如图所示顺序点击 33 | 34 | ![image](https://user-images.githubusercontent.com/106385654/180453600-387a43d7-70d0-4d7b-8065-a6cd410ba81b.png) 35 | ![image](https://user-images.githubusercontent.com/106385654/180454602-015f6c11-f9e9-4f8a-8186-d13c6662c2fb.png) 36 | 37 | 一段时间后,如无意外,提示点便会由黄变绿 38 | 39 | 此时,点击下图所框选的"Build" 40 | 41 | ![image](https://user-images.githubusercontent.com/106385654/180461838-cc86c95b-8c70-4023-9045-3194f5eee53a.png) 42 | 43 | 点击后,可见构建总览,下方出现了所构建文件的打包,即我们所需要的服务端文件 44 | 45 | ![image](https://user-images.githubusercontent.com/106385654/180462513-80107202-4b8c-4696-b3b5-4d0539ef6b1b.png) 46 | 47 | 点击框选处,下载获得一个压缩包,服务端就在其中 48 | 49 | 50 | 51 | 52 | 前往 [Telegram 频道](https://t.me/genkitCN) 53 | 54 | 频道已经不单独发布核心了,但是有一键包,图省事的可以用。 55 | 56 | 57 | 58 | 59 | :::note 60 | 61 | 手动编译需要安装 JDK 62 | 63 | 建议前往文档对应操作系统的`环境配置`部分配置 64 | 65 | ::: 66 | 67 | ```bash title="获取服务端源码" 68 | # 稳定分支 69 | git clone https://github.com/Grasscutters/Grasscutter 70 | # 开发分支 71 | git clone -b development https://github.com/Grasscutters/Grasscutter 72 | ``` 73 | 74 | ```bash title="进入源码目录" 75 | cd Grasscutter 76 | ``` 77 | 78 | ```bash title="编译服务端" 79 | # Windows 80 | gradlew.bat build 81 | # Linux 82 | ./gradlew build 83 | ``` 84 | 85 | 86 | 87 | 88 | ## 🧰 补全资源 89 | 90 | 91 | 92 | 93 | 94 | #### 📮 resources 95 | 96 | ```bash 97 | git clone https://github.com/Koko-boya/Grasscutter_Resources.git resources 98 | ``` 99 | 100 | 101 | 102 | 103 | :::tip 104 | 105 | 请将 `` 替换为您下载/编译的文件名 106 | 107 | ::: 108 | 109 | ### 🪤 生成资源文件夹 110 | 111 | ```bash 112 | java -jar .jar 113 | ``` 114 | 115 | ### 📥 获取资源文件 116 | 117 | #### 📮 Grasscutter_Resources 118 | 119 | 下载 [Grasscutter_Resources 仓库](https://github.com/Koko-boya/Grasscutter_Resources) 120 | 121 | 将 `Resources` 中除 `BinOutput` 的所有部分放入 Grasscutter 文件夹中的 `resources` 中 122 | 123 | #### 📮 gi-bin-output 124 | 125 | 下载 [gi-bin-output 仓库](https://github.com/spencerbonilla/gi-bin-output) 126 | 127 | 将 `2.5.52/Data/_BinOutput` 文件夹重命名为 `BinOutput` 并放入 Grasscutter 文件夹中的 `resources` 中 128 | 129 | 130 | 131 | 132 | 133 | #### 🔑 Keys, Data, Keystore 134 | 135 | :::tip 136 | 137 | 该步骤仅需要从频道获取的服务端进行 138 | 139 | ::: 140 | 141 | 下载 [Grasscutter 仓库开发分支](https://github.com/Grasscutters/Grasscutter/tree/development) 142 | 143 | 将其中的 `data`, `keys` 文件夹放入 Grasscutter 文件夹中 144 | 145 | 将 `keystore.p12` 文件放入 Grasscutter 文件夹中 146 | 147 | :::info 148 | 149 | By [Chi_Tang](https://www.chitang.tech) 150 | 151 | [补全资源](#补全资源)部分参考 [Grasscutter 官方 Wiki](https://github.com/Grasscutters/Grasscutter/wiki/Running#starting-the-server) 152 | 153 | 使用 [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/) 协议共享 154 | 155 | ::: 156 | -------------------------------------------------------------------------------- /docs/server/join.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: ✅ 直接加入 3 | sidebar_label: "✅ 直接加入" 4 | --- 5 | 6 | :::info 7 | 8 | 请知悉, 服务器可以通过发送数据包在客户端进行任何操作, 所以请**不要尝试**加入任何不受信任的服务器 9 | 10 | ::: 11 | 12 | 您可以选择寻找并加入一个公开的服务器以便快速体验 13 | 14 | 相比自行部署服务器, 公共服务器一般会限制您的某些权限以维护服务器稳定运行 15 | 16 | 您可选择 [GenKit 公共服务器](https://s.amoe.cc) 加入 17 | 18 | 19 | -------------------------------------------------------------------------------- /docusaurus.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | // Note: type annotations allow type checking and IDEs autocompletion 3 | 4 | const lightCodeTheme = require('prism-react-renderer/themes/github'); 5 | const darkCodeTheme = require('prism-react-renderer/themes/dracula'); 6 | 7 | /** @type {import('@docusaurus/types').Config} */ 8 | const config = { 9 | title: 'GenKit Wiki', 10 | tagline: '一个 Grasscutter 的非官方中文百科', 11 | url: 'https://wiki.genkit.org', 12 | baseUrl: '/', 13 | onBrokenLinks: 'throw', 14 | onBrokenMarkdownLinks: 'warn', 15 | favicon: 'img/logo.svg', 16 | 17 | // GitHub pages deployment config. 18 | // If you aren't using GitHub pages, you don't need these. 19 | organizationName: 'GenKit', // Usually your GitHub org/user name. 20 | projectName: 'gcdoc', // Usually your repo name. 21 | 22 | // Even if you don't use internalization, you can use this field to set useful 23 | // metadata like html lang. For example, if your site is Chinese, you may want 24 | // to replace "en" with "zh-Hans". 25 | i18n: { 26 | defaultLocale: 'zh', 27 | locales: ['zh', 'en'], 28 | localeConfigs: { 29 | zh: { 30 | htmlLang: 'zh-CN', 31 | }, 32 | // You can omit a locale (e.g. fr) if you don't need to override the defaults 33 | en: { 34 | htmlLang: 'en-US', 35 | }, 36 | }, 37 | }, 38 | 39 | presets: [ 40 | [ 41 | 'classic', 42 | /** @type {import('@docusaurus/preset-classic').Options} */ 43 | ({ 44 | sitemap: { 45 | changefreq: 'weekly', 46 | priority: 0.5, 47 | ignorePatterns: ['/tags/**'], 48 | filename: 'sitemap.xml', 49 | }, 50 | docs: { 51 | sidebarPath: require.resolve('./sidebars.js'), 52 | // Please change this to your repo. 53 | // Remove this to remove the "edit this page" links. 54 | editUrl: 55 | 'https://github.com/GenKitCN/gcdoc/tree/main/', 56 | }, 57 | blog: { 58 | showReadingTime: true, 59 | // Please change this to your repo. 60 | // Remove this to remove the "edit this page" links. 61 | editUrl: 62 | 'https://github.com/GenKitCN/gcdoc/tree/main/blog', 63 | }, 64 | theme: { 65 | customCss: require.resolve('./src/css/custom.css') 66 | }, 67 | }), 68 | ], 69 | ], 70 | 71 | themeConfig: 72 | /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ 73 | ({ 74 | docs: 75 | { 76 | sidebar: 77 | { 78 | hideable: true, 79 | } 80 | }, 81 | navbar: { 82 | title: 'GenKit', 83 | logo: { 84 | alt: 'Grasscutter Logo', 85 | src: 'img/logo.svg', 86 | }, 87 | items: [ 88 | { 89 | type: 'doc', 90 | docId: 'intro', 91 | position: 'left', 92 | label: '文档', 93 | }, 94 | {to: '/artifact', label: '圣遗物在线生成', position: 'left'}, 95 | //{to: '/auth', label: '🔑 GCAuth', position: 'left'}, 96 | //{to: 'https://blog.genkit.org', label: '博客', position: 'left'}, 97 | {to: '/awesome', label: '资源索引', position: 'left'}, 98 | {to: 'https://file.genkit.org', label: '资源站', position: 'left'}, 99 | { 100 | href: 'https://genkitCN.t.me', 101 | label: 'Telegram', 102 | position: 'right', 103 | }, 104 | ], 105 | hideOnScroll: true, 106 | }, 107 | footer: { 108 | style: 'dark', 109 | links: [ 110 | { 111 | title: '文档', 112 | items: [ 113 | { 114 | label: '🚜‍ 快速开始', 115 | to: '/docs', 116 | }, 117 | { 118 | label: '🏷️ 关于', 119 | to: '/docs/about', 120 | }, 121 | { 122 | label: '❓ FAQ', 123 | to: '/docs/faq/index', 124 | }, 125 | ], 126 | }, 127 | { 128 | title: '交流', 129 | items: [ 130 | { 131 | label: '✈️ Telegram 频道', 132 | href: 'https://t.me/genkitCN', 133 | }, 134 | { 135 | label: '👥 Telegram 讨论组', 136 | href: 'https://t.me/genkitCN_chat', 137 | }, 138 | { 139 | label: '👥 E Mail', 140 | href: 'mailto:i@genkit.org', 141 | } 142 | ], 143 | }, 144 | { 145 | title: '更多', 146 | items: [ 147 | { 148 | label: 'Grasscutter GitHub', 149 | href: 'https://github.com/Grasscutters/Grasscutter', 150 | }, 151 | { 152 | label: 'GenKit GitHub', 153 | href: 'https://github.com/GenKitCN', 154 | }, 155 | { 156 | label: 'GenKit 资源站', 157 | to: 'https://file.genkit.org', 158 | } 159 | ], 160 | }, 161 | ], 162 | copyright: `Powered by Docusaurus | © 2022-${new Date().getFullYear()} GenKit`, 163 | }, 164 | prism: { 165 | theme: lightCodeTheme, 166 | darkTheme: darkCodeTheme, 167 | }, 168 | }), 169 | themes: [ 170 | // ... Your other themes. 171 | [ 172 | require.resolve("@easyops-cn/docusaurus-search-local"), 173 | { 174 | // ... Your options. 175 | // `hashed` is recommended as long-term-cache of index file is possible. 176 | hashed: true, 177 | // For Docs using Chinese, The `language` is recommended to set to: 178 | // ``` 179 | language: ["en", "zh"], 180 | // ``` 181 | }, 182 | ], 183 | ], 184 | plugins: [ 185 | async function myPlugin(context, options) { 186 | // ... 187 | return { 188 | name: 'GenKit-Trace', 189 | injectHtmlTags({content}) { 190 | return { 191 | headTags: [ 192 | { 193 | tagName: 'script', 194 | attributes: { 195 | async: true, 196 | "data-website-id": "1fce29b9-3ad3-4783-a8da-ac3096c4fc0e", 197 | src: "https://umami.chitang.dev/umami.js", 198 | }, 199 | }, 200 | ] 201 | }; 202 | }, 203 | }; 204 | }, 205 | ], 206 | }; 207 | 208 | module.exports = config; 209 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gcdoc", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "docusaurus": "docusaurus", 7 | "start": "docusaurus start", 8 | "build": "docusaurus build", 9 | "swizzle": "docusaurus swizzle", 10 | "deploy": "docusaurus deploy", 11 | "clear": "docusaurus clear", 12 | "serve": "docusaurus serve", 13 | "write-translations": "docusaurus write-translations", 14 | "write-heading-ids": "docusaurus write-heading-ids", 15 | "typecheck": "tsc" 16 | }, 17 | "dependencies": { 18 | "@babel/traverse": "7.17.9", 19 | "@docusaurus/core": "^2.0.0-beta.21", 20 | "@docusaurus/plugin-sitemap": "^2.0.0-rc.1", 21 | "@docusaurus/preset-classic": "^2.0.0-beta.21", 22 | "@easyops-cn/docusaurus-search-local": "^0.23.3", 23 | "@emotion/react": "^11.9.0", 24 | "@emotion/styled": "^11.8.1", 25 | "@mdx-js/react": "^1.6.22", 26 | "@mui/icons-material": "^5.8.2", 27 | "@mui/lab": "^5.0.0-alpha.84", 28 | "@mui/material": "^5.6.4", 29 | "clsx": "^1.1.1", 30 | "nth-check": "^2.1.1", 31 | "prism-react-renderer": "^1.3.1", 32 | "react": "^17.0.0", 33 | "react-dom": "^17.0.0", 34 | "remark-mdx": "^2.1.1", 35 | "sweetalert2": "^11.4.10", 36 | "trim": "^1.0.1" 37 | }, 38 | "devDependencies": { 39 | "@docusaurus/module-type-aliases": "^2.0.0-beta.21", 40 | "@tsconfig/docusaurus": "^1.0.5", 41 | "autoprefixer": "^9.8.8", 42 | "postcss": "^8.4.13", 43 | "typescript": "^4.6.4" 44 | }, 45 | "browserslist": { 46 | "production": [ 47 | ">0.5%", 48 | "not dead", 49 | "not op_mini all" 50 | ], 51 | "development": [ 52 | "last 1 chrome version", 53 | "last 1 firefox version", 54 | "last 1 safari version" 55 | ] 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /sidebars.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ 4 | const sidebars = { 5 | genKitSidebar: [ 6 | 'intro', 7 | { 8 | type: 'category', 9 | label: '👜 获取服务器', 10 | items: [ 11 | 'server/join', 12 | { 13 | type: 'category', 14 | label: '🚜 自行搭建', 15 | items: [ 16 | 'server/create/get', 17 | { 18 | type: 'category', 19 | label: '⚒️ 部署服务端', 20 | items: [ 21 | 'server/create/deploy/windows', 22 | 'server/create/deploy/linux', 23 | 'server/create/deploy/macos', 24 | { 25 | type: 'category', 26 | label: '🤖 安卓', 27 | items: [ 28 | { 29 | type: 'autogenerated', 30 | dirName: 'server/create/deploy/android' 31 | } 32 | ], 33 | }, 34 | 'server/create/deploy/click-to-run', 35 | 'server/create/deploy/fastrun-debian-ios' 36 | ], 37 | }, 38 | ] 39 | }, 40 | ], 41 | }, 42 | { 43 | type: 'category', 44 | label: '🔗 加入服务器', 45 | items: [ 46 | 'client/oneclick', 47 | 'client/proxy', 48 | 'client/patch', 49 | ] 50 | }, 51 | { 52 | type: 'category', 53 | label: '📃 文件释义', 54 | items: [ 55 | { 56 | type: 'autogenerated', 57 | dirName: 'file-interpretation', 58 | } 59 | ], 60 | }, 61 | { 62 | type: 'category', 63 | label: '❓ FAQ', 64 | items: [ 65 | { 66 | type: 'autogenerated', 67 | dirName: 'faq', 68 | } 69 | ], 70 | }, 71 | { 72 | type: 'category', 73 | label: '📌 其他', 74 | items: [ 75 | { 76 | type: 'autogenerated', 77 | dirName: 'other', 78 | } 79 | ], 80 | }, 81 | 'about' 82 | ] 83 | }; 84 | 85 | module.exports = sidebars; 86 | -------------------------------------------------------------------------------- /src/components/HomepageFeatures/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import clsx from 'clsx'; 3 | import styles from './styles.module.css'; 4 | 5 | type FeatureItem = { 6 | title: string; 7 | Svg: React.ComponentType>; 8 | description: JSX.Element; 9 | }; 10 | 11 | const FeatureList: FeatureItem[] = [ 12 | { 13 | title: '简单易用', 14 | Svg: require('@site/static/img/click-svgrepo-com.svg').default, 15 | description: ( 16 | <> 17 | 提供多平台的一键安装方案 18 | 19 | ), 20 | }, 21 | { 22 | title: '清晰易读', 23 | Svg: require('@site/static/img/translate-language-svgrepo-com.svg').default, 24 | description: ( 25 | <> 26 | 汉化大部分控制台内容 27 | 28 | ), 29 | }, 30 | { 31 | title: '无微不至', 32 | Svg: require('@site/static/img/comment-discussion-svgrepo-com.svg').default, 33 | description: ( 34 | <> 35 | 全天候答疑解惑 弱智问题除外 36 | 37 | ), 38 | }, 39 | ]; 40 | 41 | function Feature({title, Svg, description}: FeatureItem) { 42 | return ( 43 |
44 |
45 | 46 |
47 |
48 |

{title}

49 |

{description}

50 |
51 |
52 | ); 53 | } 54 | 55 | export default function HomepageFeatures(): JSX.Element { 56 | return ( 57 |
58 |
59 |
60 | {FeatureList.map((props, idx) => ( 61 | 62 | ))} 63 |
64 |
65 |
66 | ); 67 | } 68 | -------------------------------------------------------------------------------- /src/components/HomepageFeatures/styles.module.css: -------------------------------------------------------------------------------- 1 | .features { 2 | display: flex; 3 | align-items: center; 4 | padding: 2rem 0; 5 | width: 100%; 6 | } 7 | 8 | .featureSvg { 9 | height: 200px; 10 | width: 200px; 11 | } 12 | -------------------------------------------------------------------------------- /src/components/providers/Artifacts.ts: -------------------------------------------------------------------------------- 1 | export interface IReliquaryMain { 2 | id: number; 3 | propDepotId: number; 4 | propType:string; 5 | affixName:string; 6 | } 7 | export interface IReliquaryAffixItem { 8 | id: number; 9 | index: number; 10 | depotId: number; 11 | groupId: number; 12 | propType:string; 13 | propValue:number; 14 | } 15 | export interface IReliquaryAffix { 16 | [propType: string]: IReliquaryAffixItem[] 17 | } 18 | export interface IReliquary { 19 | equipType: string; 20 | showPic: string; 21 | rankLevel: number; 22 | mainPropDepotId: number; 23 | appendPropDepotId: number; 24 | addPropLevels: Array; 25 | baseConvExp: number; 26 | maxLevel: number; 27 | destroyReturnMaterial: Array; 28 | destroyReturnMaterialCount: Array; 29 | id: number; 30 | nameTextMapHash: number; 31 | descTextMapHash: number; 32 | icon: string; 33 | itemType: string; 34 | weight: number; 35 | rank: number; 36 | gadgetId: number 37 | } 38 | 39 | export default class ReliquaryDataProvider { 40 | private static reliquaryMains:IReliquaryMain[] = []; 41 | private static reliquaryAffixes:IReliquaryAffix = {}; 42 | private static reliquaries:IReliquary[] = []; 43 | 44 | 45 | public static async init(){ 46 | await this.loadReliquaries(); 47 | await this.loadReliquaryMain(); 48 | await this.loadReliquaryAffixes(); 49 | } 50 | 51 | private static async loadReliquaryMain(){ 52 | let data = await fetch("https://cdn.jsdelivr.net/gh/Dimbreath/GenshinData@master/ExcelBinOutput/ReliquaryMainPropExcelConfigData.json"); 53 | let json:IReliquaryMain[] = await data.json(); 54 | this.reliquaryMains = []; 55 | json.forEach(element => { 56 | if (this.reliquaryMains.filter(x => x.propType === element.propType).length === 0) 57 | this.reliquaryMains.push(element) 58 | }); 59 | } 60 | 61 | private static async loadReliquaryAffixes(){ 62 | let data = await fetch("https://cdn.jsdelivr.net/gh/Dimbreath/GenshinData@master/ExcelBinOutput/ReliquaryAffixExcelConfigData.json"); 63 | let json:IReliquaryAffixItem[] = await data.json(); 64 | this.reliquaryAffixes = {}; 65 | json.map((item, index) => { 66 | if (item.propType in this.reliquaryAffixes) { 67 | this.reliquaryAffixes[item.propType].push(item) 68 | item["index"] = index 69 | } else { 70 | this.reliquaryAffixes[item.propType] = [] 71 | item["index"] = index 72 | this.reliquaryAffixes[item.propType].push(item) 73 | } 74 | }) 75 | } 76 | 77 | private static async loadReliquaries(){ 78 | let data = await fetch("https://cdn.jsdelivr.net/gh/Dimbreath/GenshinData@master/ExcelBinOutput/ReliquaryExcelConfigData.json"); 79 | this.reliquaries = await data.json(); 80 | } 81 | 82 | 83 | public static getReliquaryMains():IReliquaryMain[]{ 84 | return this.reliquaryMains; 85 | } 86 | 87 | public static getReliquaryAffixes():IReliquaryAffix{ 88 | return this.reliquaryAffixes; 89 | } 90 | 91 | public static getReliquary():IReliquary[]{ 92 | return this.reliquaries; 93 | } 94 | } -------------------------------------------------------------------------------- /src/css/custom.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Any CSS included here will be global. The classic template 3 | * bundles Infima by default. Infima is a CSS framework designed to 4 | * work well for content-centric websites. 5 | */ 6 | 7 | /* You can override the default Infima variables here. */ 8 | :root { 9 | --ifm-color-primary: #2e8555; 10 | --ifm-color-primary-dark: #29784c; 11 | --ifm-color-primary-darker: #277148; 12 | --ifm-color-primary-darkest: #205d3b; 13 | --ifm-color-primary-light: #33925d; 14 | --ifm-color-primary-lighter: #359962; 15 | --ifm-color-primary-lightest: #3cad6e; 16 | --ifm-code-font-size: 95%; 17 | --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); 18 | } 19 | 20 | /* For readability concerns, you should choose a lighter palette in dark mode. */ 21 | [data-theme='dark'] { 22 | --ifm-color-primary: #25c2a0; 23 | --ifm-color-primary-dark: #21af90; 24 | --ifm-color-primary-darker: #1fa588; 25 | --ifm-color-primary-darkest: #1a8870; 26 | --ifm-color-primary-light: #29d5b0; 27 | --ifm-color-primary-lighter: #32d8b4; 28 | --ifm-color-primary-lightest: #4fddbf; 29 | --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); 30 | } 31 | -------------------------------------------------------------------------------- /src/pages/artifact.tsx: -------------------------------------------------------------------------------- 1 | import {useCallback, useEffect, useState} from "react"; 2 | import ReliquaryDataProvider, {IReliquary, IReliquaryAffixItem, IReliquaryAffix, IReliquaryMain} from "../components/providers/Artifacts"; 3 | import { 4 | Autocomplete, 5 | Checkbox, 6 | Container, 7 | FormControlLabel, 8 | Grid, 9 | Input, 10 | TextField, 11 | Paper, 12 | ListSubheader, List, ListItemButton 13 | } from "@mui/material"; 14 | //@ts-ignore 15 | import _ from "lodash"; 16 | import * as React from "react"; 17 | import Layout from "@theme/Layout"; 18 | 19 | interface IOption { 20 | id: number; 21 | name: string; 22 | } 23 | 24 | interface IAffixOpt { 25 | id: number; 26 | name: string; 27 | index: number; 28 | value: number; 29 | displayValue: string | number; 30 | } 31 | 32 | export default function Artifacts() { 33 | const [uid, setUid] = useState(10001); 34 | const [selectedArtifact, setSelectedArtifact] = useState(0); 35 | const [selectedMainStat, setSelectedMainStat] = useState(0); 36 | const [selectedAffixes, setSelectedAffixes] = useState([]); 37 | const [selectedAffixesAmount, setSelectedAffixesAmount] = useState>({}); 38 | const [artifactEnhancements, setArtifactEnhancements] = useState(0); 39 | 40 | const [artifactData, setArtifactData] = useState([]); 41 | const [artifactMains, setArtifactMains] = useState([]); 42 | const [artifactAffixes, setArtifactAffixes] = useState<{[key:string]:IAffixOpt[]}>({}); 43 | const [generatedArtifact, setGeneratedArtifact] = useState("/giveart "); 44 | 45 | 46 | useEffect(() => { 47 | const dataArtifact: IOption[] = []; 48 | const dataMainAttrs: IOption[] = []; 49 | const dataAffixes: {[key:string]:IAffixOpt[]} = {} 50 | fetch("/FightProp.json") 51 | .then(resp => resp.json()) 52 | .then(fightProp => { 53 | let ReliquaryAffixes = ReliquaryDataProvider.getReliquaryAffixes(); 54 | ReliquaryDataProvider.getReliquaryMains().forEach(mainAttr => { 55 | const id = mainAttr.id; 56 | const name = fightProp[`cmdGen.Artifact.${mainAttr.propType}`]; 57 | dataMainAttrs.push({id: id, name: name}); 58 | }); 59 | Object.keys(ReliquaryAffixes).map((key, index) => { 60 | ReliquaryAffixes[key].map((affix, rIndex) => { 61 | const id = affix.id; 62 | const name = fightProp[`cmdGen.Artifact.${affix.propType}`]; 63 | const index = affix.index; 64 | const value = affix.propValue; 65 | const displayValue = getPercent(affix); 66 | if (Object.keys(dataAffixes).indexOf(name) == -1) { 67 | dataAffixes[name] = []; 68 | } 69 | dataAffixes[name].push({id: id, name: name, index: index, value: value, displayValue: displayValue}) 70 | }); 71 | }); 72 | setArtifactMains(dataMainAttrs); 73 | setArtifactAffixes(dataAffixes); 74 | } 75 | ); 76 | fetch("/SimpleTextMap.json") 77 | .then(resp => resp.json()) 78 | .then(textMap => { 79 | ReliquaryDataProvider.getReliquary().forEach(reliquary => { 80 | console.log(reliquary) 81 | const id = reliquary.id; 82 | const name = textMap[`cmdGen.TextMap.${reliquary.nameTextMapHash}`]; 83 | if (dataArtifact.filter((x) => x.name === name).length === 0) { 84 | dataArtifact.push({id: id, name: name}); 85 | } 86 | }); 87 | setArtifactData(dataArtifact); 88 | }); 89 | },[]); 90 | useEffect(() => { 91 | handleGeneratedArtifact() 92 | }, [uid, selectedArtifact, selectedMainStat, selectedAffixes, selectedAffixesAmount, artifactEnhancements]); 93 | 94 | const handleArtifactChange = (event: any, value: any) => { 95 | if (value !== null) { 96 | setSelectedArtifact(value.id); 97 | } 98 | }; 99 | 100 | const handleMainStatChange = (event: any, value: any) => { 101 | if (value !== null) { 102 | setSelectedMainStat(value.id); 103 | } 104 | }; 105 | 106 | const handleAffixSelected = (event: React.ChangeEvent, amount = false, affixId = 0) => { 107 | let newSelectedAffixes = [...selectedAffixes]; 108 | let newSelectedAffixesAmount = {...selectedAffixesAmount}; 109 | if (amount) { 110 | newSelectedAffixesAmount[affixId] = Number(event.target.value); 111 | } else { 112 | if (newSelectedAffixes.indexOf(Number(event.currentTarget.value)) === -1) { 113 | newSelectedAffixes.push(Number(event.currentTarget.value)); 114 | newSelectedAffixesAmount[Number(event.currentTarget.value)] = 1; 115 | } else { 116 | newSelectedAffixes.splice(newSelectedAffixes.indexOf(Number(event.currentTarget.value)), 1); 117 | newSelectedAffixesAmount[Number(event.currentTarget.value)] = 0; 118 | } 119 | } 120 | setSelectedAffixes(newSelectedAffixes); 121 | setSelectedAffixesAmount(newSelectedAffixesAmount); 122 | }; 123 | 124 | const getPercent = (affix: IReliquaryAffixItem) => { 125 | if ( 126 | affix.propType.indexOf("PERCENT") !== -1 || 127 | affix.propType.indexOf("CRITICAL") !== -1 || 128 | affix.propType.indexOf("EFFICIENCY") !== -1 || 129 | affix.propType.indexOf("EFFICIENCY") !== -1 || 130 | affix.propType.indexOf("HURT") !== -1 131 | ) { 132 | return parseFloat(String(affix.propValue * 100)).toPrecision(3) + "%"; 133 | } 134 | return parseInt(String(affix.propValue)); 135 | }; 136 | 137 | const handleGeneratedArtifact = () => { 138 | let selectedAffixesCombine: (string | number)[] = []; 139 | if (selectedAffixes.length > 0) { 140 | selectedAffixesCombine = selectedAffixes.map(x => { 141 | if (selectedAffixesAmount[x] > 1) { 142 | return x + "," + selectedAffixesAmount[x]; 143 | } 144 | return x; 145 | }); 146 | } 147 | const generated = "/giveart @" + uid + " " + selectedArtifact + " " + selectedMainStat + " " + selectedAffixesCombine.join(" ") + " " + Number(artifactEnhancements + 1); 148 | setGeneratedArtifact(generated); 149 | }; 150 | return ( 151 | 152 | 158 | 167 | 171 | 172 | 173 | 174 | setUid(parseInt(event.target.value))} 180 | /> 181 | 182 | 183 | setArtifactEnhancements(Number(e.currentTarget.value))}/> 194 | 195 | 196 | 197 | option.name} 204 | onChange={handleArtifactChange} 205 | renderInput={(params) => } 206 | /> 207 | 208 | 209 | option.name} 216 | onChange={handleMainStatChange} 217 | renderInput={(params) => } 219 | /> 220 | 221 | 222 | 223 | } 233 | > 234 | {Object.keys(artifactAffixes).map((key, index) => ( 235 |
  • 236 |
      237 | {key} 238 | { 239 | artifactAffixes[key].map((affix, rIndex) => ( 240 | 241 | handleAffixSelected(e,false,0)} 246 | />} 247 | label={`${affix.name} - ${affix.displayValue}`} /> 248 | handleAffixSelected(e,true, affix.id)} 252 | inputProps={{ 253 | step: 1, 254 | min: 1, 255 | max: 100, 256 | type: 'number', 257 | 'aria-labelledby': 'input-slider', 258 | }} 259 | /> 260 | 261 | ) 262 | ) 263 | } 264 |
    265 |
  • 266 | ))} 267 |
    268 |
    269 | 270 | 271 | 272 |
    273 |
    274 |
    275 |
    276 | ); 277 | } -------------------------------------------------------------------------------- /src/pages/auth.tsx: -------------------------------------------------------------------------------- 1 | import {FormEvent, useEffect, useState} from "react"; 2 | import Swal from "sweetalert2"; 3 | 4 | import Layout from "@theme/Layout"; 5 | import * as React from "react"; 6 | import { 7 | Alert, 8 | AlertTitle, 9 | Switch, 10 | Card, 11 | CardActions, 12 | CardContent, 13 | Container, 14 | FormControlLabel, 15 | Grid, 16 | TextField, 17 | Typography, 18 | Paper, 19 | Button, 20 | Input, Box, ButtonGroup, FormControl, IconButton, InputLabel, InputAdornment 21 | } from "@mui/material"; 22 | import {AccountCircle, Visibility, VisibilityOff} from "@mui/icons-material"; 23 | import PasswordIcon from '@mui/icons-material/Password'; 24 | import BrowserOnly from "@docusaurus/BrowserOnly"; 25 | import useIsBrowser from '@docusaurus/useIsBrowser'; 26 | 27 | interface IGCAuthResponse { 28 | status: string; 29 | message: string; 30 | jwt: string; 31 | } 32 | 33 | interface IJWTPayload { 34 | token: string; 35 | username: string; 36 | uid: string; 37 | } 38 | 39 | interface IGCAuthLogin { 40 | username: string; 41 | password: string; 42 | } 43 | 44 | interface IGCAuthRegister { 45 | username: string; 46 | password: string; 47 | password_confirmation: string; 48 | } 49 | 50 | interface IGCAuthChangePassword { 51 | username: string; 52 | new_password: string; 53 | new_password_confirmation: string; 54 | old_password: string; 55 | } 56 | 57 | export default function GCAuth() { 58 | const isBrowser = useIsBrowser(); 59 | 60 | const [jwt, setJwt] = useState(""); 61 | const [dispatchServer, setDispatchServer] = useState(isBrowser ? localStorage.getItem("dispatchServer") ?? localStorage.getItem("dispatchServer") : "localhost"); 62 | const [useSSl, setUseSSl] = useState(isBrowser ? localStorage.getItem("useSSl") === "true" ?? true : false); 63 | const [baseUrl, setBaseUrl] = useState(""); 64 | 65 | const [loginUsername, setLoginUsername] = useState(""); 66 | const [loginPassword, setLoginPassword] = useState(""); 67 | const [token, setToken] = useState(""); 68 | 69 | const [registerUsername, setRegisterUsername] = useState(""); 70 | const [registerPassword, setRegisterPassword] = useState(""); 71 | const [registerPasswordConfirmation, setRegisterPasswordConfirmation] = useState(""); 72 | 73 | const [changePasswordUsername, setChangePasswordUsername] = useState(""); 74 | const [changePasswordNewPassword, setChangePasswordNewPassword] = useState(""); 75 | const [changePasswordNewPasswordConfirmation, setChangePasswordNewPasswordConfirmation] = useState(""); 76 | const [changePasswordOldPassword, setChangePasswordOldPassword] = useState(""); 77 | 78 | const [showPassword, setShowPwd] = useState(false); 79 | 80 | const checkGCAuth = async () => { 81 | fetch(baseUrl + "/authentication/type") 82 | .then(res => res.text()) 83 | .then(res => { 84 | if (res === "me.exzork.gcauth.handler.GCAuthAuthenticationHandler") { 85 | Swal.fire({ 86 | toast: true, 87 | position: "top-end", 88 | showConfirmButton: false, 89 | timer: 3000, 90 | timerProgressBar: true, 91 | title: "GCAuth已安装", 92 | icon: "success" 93 | }); 94 | } else { 95 | Swal.fire({ 96 | toast: true, 97 | position: "top-end", 98 | showConfirmButton: false, 99 | timer: 3000, 100 | timerProgressBar: true, 101 | title: "GCAuth未安装", 102 | icon: "error" 103 | }); 104 | } 105 | }) 106 | .catch(err => { 107 | console.log(err); 108 | }); 109 | } 110 | 111 | useEffect(() => { 112 | setBaseUrl(`http${useSSl ? "s" : ""}://${dispatchServer}`); 113 | localStorage.setItem("dispatchServer", dispatchServer); 114 | localStorage.setItem("useSSl", (useSSl !== false ? useSSl.toString() : 'false')); 115 | }, [useSSl, dispatchServer]); 116 | 117 | const handleLogin = async (e: FormEvent) => { 118 | e.preventDefault(); 119 | const data: IGCAuthLogin = { 120 | username: loginUsername, 121 | password: loginPassword 122 | } 123 | fetch(baseUrl + "/authentication/login", {method: "POST", body: JSON.stringify(data)}) 124 | .then(async (res) => { 125 | const resText = await res.text(); 126 | try { 127 | let resJson = JSON.parse(resText); 128 | if (resJson.success) { 129 | setJwt(resJson.jwt); 130 | const splitToken = resJson.jwt.split("."); 131 | const payload = JSON.parse(atob(splitToken[1])); 132 | setToken(payload.token); 133 | await Swal.fire({ 134 | toast: true, 135 | position: "top-end", 136 | showConfirmButton: false, 137 | timer: 3000, 138 | timerProgressBar: true, 139 | title: "登录成功", 140 | icon: "success" 141 | }); 142 | } else { 143 | await Swal.fire({ 144 | title: "登录失败", 145 | text: resJson.message ?? resJson, 146 | icon: "error" 147 | }); 148 | } 149 | } catch (e) { 150 | await Swal.fire({ 151 | title: "登录失败", 152 | text: resText, 153 | icon: "error" 154 | }); 155 | } 156 | }).catch((err) => { 157 | console.log(err); 158 | Swal.fire({ 159 | title: "登录失败", 160 | text: err, 161 | icon: "error" 162 | }); 163 | }); 164 | } 165 | 166 | const handleRegister = async (e: FormEvent) => { 167 | e.preventDefault(); 168 | const data: IGCAuthRegister = { 169 | username: registerUsername, 170 | password: registerPassword, 171 | password_confirmation: registerPasswordConfirmation 172 | } 173 | fetch(baseUrl + "/authentication/register", {method: "POST", body: JSON.stringify(data)}) 174 | .then(async (res) => { 175 | const resText = await res.text(); 176 | try { 177 | let resJson = JSON.parse(resText); 178 | if (resJson.success) { 179 | await Swal.fire({ 180 | toast: true, 181 | position: "top-end", 182 | showConfirmButton: false, 183 | timer: 3000, 184 | timerProgressBar: true, 185 | title: "注册成功", 186 | icon: "success" 187 | }); 188 | setJwt(resJson.jwt); 189 | } else { 190 | await Swal.fire({ 191 | title: "注册失败", 192 | text: resJson.message ?? resJson, 193 | icon: "error" 194 | }); 195 | } 196 | } catch (e) { 197 | await Swal.fire({ 198 | title: "注册失败", 199 | text: resText, 200 | icon: "error" 201 | }); 202 | } 203 | }).catch((err) => { 204 | console.log(err); 205 | Swal.fire({ 206 | title: "注册失败", 207 | text: err, 208 | icon: "error" 209 | }); 210 | }); 211 | } 212 | 213 | const handleChangePassword = async (e: FormEvent) => { 214 | e.preventDefault(); 215 | const data: IGCAuthChangePassword = { 216 | username: changePasswordUsername, 217 | new_password: changePasswordNewPassword, 218 | new_password_confirmation: changePasswordNewPasswordConfirmation, 219 | old_password: changePasswordOldPassword 220 | } 221 | 222 | fetch(baseUrl + "/authentication/change_password", {method: "POST", body: JSON.stringify(data)}) 223 | .then(async (res) => { 224 | const resText = await res.text(); 225 | try { 226 | let resJson = JSON.parse(resText); 227 | if (resJson.success) { 228 | await Swal.fire({ 229 | toast: true, 230 | position: "top-end", 231 | showConfirmButton: false, 232 | timer: 3000, 233 | timerProgressBar: true, 234 | title: "修改密码成功", 235 | icon: "success" 236 | }); 237 | } else { 238 | await Swal.fire({ 239 | title: "修改密码失败", 240 | text: resJson.message ?? resJson, 241 | icon: "error" 242 | }); 243 | } 244 | } catch (e) { 245 | await Swal.fire({ 246 | title: "修改密码失败", 247 | text: resText, 248 | icon: "error" 249 | }); 250 | } 251 | }).catch((err) => { 252 | console.log(err); 253 | Swal.fire({ 254 | title: "修改密码失败", 255 | text: err, 256 | icon: "error" 257 | }); 258 | }); 259 | } 260 | 261 | const handleClickShowPassword = () => { 262 | setShowPwd(!showPassword); 263 | } 264 | 265 | const handleMouseDownPassword = (event: React.MouseEvent) => { 266 | event.preventDefault(); 267 | }; 268 | 269 | const handleCopyToken = (e: FormEvent) => { 270 | e.preventDefault(); 271 | if (token !== "") { 272 | navigator.clipboard.writeText(token); 273 | Swal.fire({ 274 | toast: true, 275 | position: "top-end", 276 | showConfirmButton: false, 277 | timer: 3000, 278 | timerProgressBar: true, 279 | title: "已复制登录Token", 280 | icon: "success" 281 | }); 282 | } else { 283 | Swal.fire({title: "无Token", text: "你需要先登录", icon: "error"}); 284 | } 285 | } 286 | 287 | return ( 288 | 289 | 295 | 304 | 305 | 306 | 307 | 注意 308 |

    使用此网页需要在配置中允许跨域请求(CORS)

    309 | 同时,您可能需要为您的服务器DispatchServer准备一张来自受信任的证书颁发机构 310 | 的证书或者禁用SSL以使用此网页; 311 |
    312 |
    313 | 314 | 315 | setDispatchServer(e.currentTarget.value)} 318 | /> 319 | setUseSSl(e.currentTarget.checked)}/>} label={"使用SSL"}/> 323 | 324 | 325 | 329 | 330 | 331 | 332 | 333 | 336 | 337 | 登录 340 | 341 | 342 | setLoginUsername(e.currentTarget.value)}/> 344 | 345 | 346 | 347 | 348 | 密码 349 | setLoginPassword(e.currentTarget.value)} 353 | endAdornment={ 354 | 355 | 360 | {showPassword ? : } 361 | 362 | 363 | } 364 | /> 365 | 366 | 367 | 368 | 369 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 381 | 382 | 注册 385 | 386 | 387 | setRegisterUsername(e.currentTarget.value)}/> 389 | 390 | 391 | 392 | 393 | 密码 394 | setRegisterPassword(e.currentTarget.value)} 398 | endAdornment={ 399 | 400 | 405 | {showPassword ? : } 406 | 407 | 408 | } 409 | /> 410 | 411 | 412 | 413 | 414 | 415 | 确认密码 416 | setRegisterPasswordConfirmation(e.currentTarget.value)} 420 | endAdornment={ 421 | 422 | 427 | {showPassword ? : } 428 | 429 | 430 | } 431 | /> 432 | 433 | 434 | 435 | 436 | 438 | 439 | 440 | 441 | 442 | 445 | 446 | 修改密码 449 | 450 | 451 | setChangePasswordUsername(e.currentTarget.value)}/> 453 | 454 | 455 | 456 | 457 | 新密码 458 | setChangePasswordNewPassword(e.currentTarget.value)} 462 | endAdornment={ 463 | 464 | 469 | {showPassword ? : } 470 | 471 | 472 | } 473 | /> 474 | 475 | 476 | 477 | 478 | 479 | 确认密码 480 | setChangePasswordNewPasswordConfirmation(e.currentTarget.value)} 484 | endAdornment={ 485 | 486 | 491 | {showPassword ? : } 492 | 493 | 494 | } 495 | /> 496 | 497 | 498 | 499 | 500 | 501 | 旧密码 502 | setChangePasswordOldPassword(e.currentTarget.value)} 506 | endAdornment={ 507 | 508 | 513 | {showPassword ? : } 514 | 515 | 516 | } 517 | /> 518 | 519 | 520 | 521 | 522 | 524 | 525 | 526 | 527 | 528 |
    529 |
    530 |
    531 |
    532 | ) 533 | } -------------------------------------------------------------------------------- /src/pages/awesome.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 割草机插件仓库 3 | --- 4 | 5 | # 插件仓库索引 6 | 7 | [![非官方 - GenKitCN Telegram](https://img.shields.io/badge/Unofficial_Telegram-GenKit-blue?style=for-the-badge&logo=telegram)](https://t.me/genkitCN_chat) [![Grasscutter - Discord](https://img.shields.io/discord/965284035985305680?label=Official_Discord&logo=discord&style=for-the-badge)](https://discord.gg/T5vZU6UyeG) 8 | 9 | ## 按照类别索引 10 | 11 | - [资源](#资源) 12 | - [插件](#插件) 13 | - [其它](#其它) 14 | 15 | ------- 16 | 17 | ### 资源 & 衍生软件 18 | 19 | | 名称 | 作者 | 描述 | 支持平台 | 最近更新 | 标签 | 20 | |--------------------------------------------------------------------|-------------------------------------------------|-----------------|-----------------------------------------------------------------------------------------------------------------|------------|-------------| 21 | | [Grasscutter_Resources](https://github.com/Koko-boya/Grasscutter_Resources) | [Koks](https://github.com/Koko-boya) | 必备资源🤫 | ![架构 - 任意平台](https://img.shields.io/badge/Any-gray?style=for-the-badge) | 2022/06/08 | `资源` | 22 | | [GrasscutterCommandGenerator](https://github.com/jie65535/GrasscutterCommandGenerator) | [筱傑](https://github.com/jie65535) | 功能强大的命令生成器 | ![架构 - 仅 Windows](https://img.shields.io/badge/Windows-0078D6?style=for-the-badge&logo=windows&logoColor=white) | 2022/06/11 | `资源` `命令生成` | 23 | | [grasscutterTools](https://github.com/wmn1525/grasscutterTools) | [wmn](https://github.com/wmn1525) | 也是一个网页版命令生成器 | ![架构 - 任意平台](https://img.shields.io/badge/Any-gray?style=for-the-badge) | 2022/06/06 | `资源` `命令生成` | 24 | | [DockerGC](https://github.com/akbaryahya/DockerGC) | [Akbar Yahya](https://github.com/akbaryahya) | 容器版服务端,不用为环境发愁辣 | ![架构 - 任意平台](https://img.shields.io/badge/Any-gray?style=for-the-badge) | 2022/06/18 | `资源` `服务端` | 25 | | [GrassClipper](https://github.com/Grasscutters/GrassClipper) | [Grasscutters](https://github.com/Grasscutters) | GC 官方启动器 | ![架构 - 仅 Windows](https://img.shields.io/badge/Windows-0078D6?style=for-the-badge&logo=windows&logoColor=white) | 2022/05/26 | `资源` `启动器` | 26 | | [GrassClipper](https://github.com/Grasscutters/GrassClipper-X) | [Grasscutters](https://github.com/Grasscutters) | 或许是下一代 GC 官方启动器 | ![架构 - 仅 Windows](https://img.shields.io/badge/Windows-0078D6?style=for-the-badge&logo=windows&logoColor=white) | 2022/05/26 | `资源` `启动器` | 27 | | [CelestiaLauncher](https://github.com/KL-kirito/CelestiaLauncher) | [KL-kirito](https://github.com/KL-kirito) | 基于 Vue 的启动器 | ![架构 - 仅 Windows](https://img.shields.io/badge/Windows-0078D6?style=for-the-badge&logo=windows&logoColor=white) | 2022/05/26 | `资源` `启动器` | 28 | | [GenshinProxy](https://github.com/577fkj/GenshinProxy) | [方块君](https://github.com/577fkj) | 安卓版服务器转向 | ![架构 - 仅 Android](https://img.shields.io/badge/Android-3DDC84?style=for-the-badge&logo=android&logoColor=white) | 2022/06/13 | `资源` `启动器` | 29 | 30 | ### 插件 31 | 32 | ![已收录的插件数量](https://img.shields.io/badge/%E6%8F%92%E4%BB%B6%E6%95%B0%E9%87%8F-1-teal?style=for-the-badge) 33 | 34 | | 插件名 | 作者 | 描述 | 最近更新 | 标签 | 35 | | ------------------------------------------ | ----------------------------------- | -------- | ---------- | ----------------------------- | 36 | | [GCAuth](https://github.com/exzork/GCAuth) | [ExZork](https://github.com/exzork) | 登录插件 | 2022/05/21 | [`插件`](#插件) [`API`](#API) | 37 | -------------------------------------------------------------------------------- /src/pages/index.module.css: -------------------------------------------------------------------------------- 1 | /** 2 | * CSS files with the .module.css suffix will be treated as CSS modules 3 | * and scoped locally. 4 | */ 5 | 6 | .heroBanner { 7 | padding: 4rem 0; 8 | text-align: center; 9 | position: relative; 10 | overflow: hidden; 11 | } 12 | 13 | @media screen and (max-width: 996px) { 14 | .heroBanner { 15 | padding: 2rem; 16 | } 17 | } 18 | 19 | .buttons { 20 | display: flex; 21 | align-items: center; 22 | justify-content: center; 23 | } 24 | -------------------------------------------------------------------------------- /src/pages/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import clsx from 'clsx'; 3 | import Layout from '@theme/Layout'; 4 | import Link from '@docusaurus/Link'; 5 | import styles from './index.module.css'; 6 | import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; 7 | import HomepageFeatures from '@site/src/components/HomepageFeatures'; 8 | import Translate, {translate} from '@docusaurus/Translate'; 9 | 10 | function HomepageHeader() { 11 | const {siteConfig} = useDocusaurusContext(); 12 | return ( 13 |
    14 |
    15 |

    {siteConfig.title}

    16 |

    {siteConfig.tagline}

    17 |
    18 | 21 | 🛩️ 搞快点! 22 | 23 |
    24 |
    25 |
    26 | ); 27 | } 28 | 29 | export default function Home(): JSX.Element { 30 | const {siteConfig} = useDocusaurusContext(); 31 | return ( 32 | 35 | 36 |
    37 | 38 |
    39 |
    40 | ); 41 | } 42 | -------------------------------------------------------------------------------- /static/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/.nojekyll -------------------------------------------------------------------------------- /static/FightProp.json: -------------------------------------------------------------------------------- 1 | { 2 | "cmdGen.Artifact.FIGHT_PROP_HP": "生命值", 3 | "cmdGen.Artifact.FIGHT_PROP_HP_PERCENT": "生命值", 4 | "cmdGen.Artifact.FIGHT_PROP_ATTACK": "攻击力", 5 | "cmdGen.Artifact.FIGHT_PROP_ATTACK_PERCENT": "攻击力", 6 | "cmdGen.Artifact.FIGHT_PROP_DEFENSE": "防御力", 7 | "cmdGen.Artifact.FIGHT_PROP_DEFENSE_PERCENT": "防御力", 8 | "cmdGen.Artifact.FIGHT_PROP_CHARGE_EFFICIENCY": "元素充能效率", 9 | "cmdGen.Artifact.FIGHT_PROP_ELEMENT_MASTERY": "元素精通", 10 | "cmdGen.Artifact.FIGHT_PROP_FIRE_SUB_HURT": "火元素抗性", 11 | "cmdGen.Artifact.FIGHT_PROP_ELEC_SUB_HURT": "雷元素抗性", 12 | "cmdGen.Artifact.FIGHT_PROP_ICE_SUB_HURT": "冰元素抗性", 13 | "cmdGen.Artifact.FIGHT_PROP_WATER_SUB_HURT": "水元素抗性", 14 | "cmdGen.Artifact.FIGHT_PROP_WIND_SUB_HURT": "风元素抗性", 15 | "cmdGen.Artifact.FIGHT_PROP_ROCK_SUB_HURT": "岩元素抗性", 16 | "cmdGen.Artifact.FIGHT_PROP_GRASS_SUB_HURT": "草元素抗性", 17 | "cmdGen.Artifact.FIGHT_PROP_CRITICAL": "暴击率", 18 | "cmdGen.Artifact.FIGHT_PROP_CRITICAL_HURT": "暴击伤害", 19 | "cmdGen.Artifact.FIGHT_PROP_HEAL_ADD": "治疗加成", 20 | "cmdGen.Artifact.FIGHT_PROP_FIRE_ADD_HURT": "火元素伤害加成", 21 | "cmdGen.Artifact.FIGHT_PROP_ELEC_ADD_HURT": "雷元素伤害加成", 22 | "cmdGen.Artifact.FIGHT_PROP_ICE_ADD_HURT": "冰元素伤害加成", 23 | "cmdGen.Artifact.FIGHT_PROP_WATER_ADD_HURT": "水元素伤害加成", 24 | "cmdGen.Artifact.FIGHT_PROP_WIND_ADD_HURT": "风元素伤害加成", 25 | "cmdGen.Artifact.FIGHT_PROP_ROCK_ADD_HURT": "岩元素伤害加成", 26 | "cmdGen.Artifact.FIGHT_PROP_GRASS_ADD_HURT": "草元素伤害加成", 27 | "cmdGen.Artifact.FIGHT_PROP_PHYSICAL_ADD_HURT": "物理伤害加成" 28 | } -------------------------------------------------------------------------------- /static/Mobs.json: -------------------------------------------------------------------------------- 1 | { 2 | "cmdGen.Mobs.Hili_None_01": "丘丘人", 3 | "cmdGen.Mobs.Brute_None_Shield": "木盾丘丘暴徒", 4 | "cmdGen.Mobs.Brute_None_Axe": "火斧丘丘暴徒", 5 | "cmdGen.Mobs.Brute_None_Axe_AttackEnhance": "火斧丘丘暴徒", 6 | "cmdGen.Mobs.Brute_None_RockShield": "岩盾丘丘暴徒", 7 | "cmdGen.Mobs.Brute_Ice_None": "丘丘霜铠王", 8 | "cmdGen.Mobs.Brute_Rock_None": "丘丘岩盔王", 9 | "cmdGen.Mobs.Brute_Ice_Shield": "冰盾丘丘暴徒", 10 | "cmdGen.Mobs.Brute_Electric_Axe": "雷斧丘丘暴徒", 11 | "cmdGen.Mobs.Brute_Electric_Axe_AttackEnhance": "雷斧丘丘暴徒", 12 | "cmdGen.Mobs.Brute_Electric_None": "丘丘雷兜王", 13 | "cmdGen.Mobs.Slime_Grass_02": "草史莱姆", 14 | "cmdGen.Mobs.Slime_Grass_03": "大型草史莱姆", 15 | "cmdGen.Mobs.Slime_Grass_03_AttackEnhance": "大型草史莱姆", 16 | "cmdGen.Mobs.Slime_Wind_02": "风史莱姆", 17 | "cmdGen.Mobs.Slime_Wind_03": "大型风史莱姆", 18 | "cmdGen.Mobs.Slime_Wind_03_AttackEnhance": "大型风史莱姆", 19 | "cmdGen.Mobs.Monster_Dragon_Dvalin_S01": "裂空的魔龙", 20 | "cmdGen.Mobs.Monster_Dragon_Dvalin_S04": "裂空的魔龙", 21 | "cmdGen.Mobs.Monster_Dragon_Dvalin_S00": "裂空的魔龙", 22 | "cmdGen.Mobs.Monster_Wolf_LupiBoreas": "北风的王狼,奔狼的领主", 23 | "cmdGen.Mobs.Monster_Tartaglia_Harbinger": "「公子」", 24 | "cmdGen.Mobs.Monster_Dahaka": "若陀龙王", 25 | "cmdGen.Mobs.Monster_LaSignora_Harbinger": "「女士」", 26 | "cmdGen.Mobs.Monster_Shougun_Mitakenarukami": "祸津御建鸣神命", 27 | "cmdGen.Mobs.Elemental_Wind_01": "狂风之核", 28 | "cmdGen.Mobs.Effigy_Electric_01": "无相之雷", 29 | "cmdGen.Mobs.Effigy_Electric_02": "无相之雷", 30 | "cmdGen.Mobs.Effigy_Wind_01": "无相之风", 31 | "cmdGen.Mobs.Effigy_Wind_02": "无相之风", 32 | "cmdGen.Mobs.Effigy_Rock_01": "无相之岩", 33 | "cmdGen.Mobs.Effigy_Rock_02": "无相之岩", 34 | "cmdGen.Mobs.Effigy_Water_01": "无相之水", 35 | "cmdGen.Mobs.Effigy_Ice_01": "无相之冰", 36 | "cmdGen.Mobs.Effigy_Fire_01": "无相之火", 37 | "cmdGen.Mobs.Slime_Electric_02": "雷史莱姆", 38 | "cmdGen.Mobs.Slime_Electric_03": "大型雷史莱姆", 39 | "cmdGen.Mobs.Slime_Electric_03_AttackEnhance": "大型雷史莱姆", 40 | "cmdGen.Mobs.Slime_Electric_03_Positive": "变异雷史莱姆", 41 | "cmdGen.Mobs.Slime_Electric_03_Positive_AttackEnhance": "变异雷史莱姆", 42 | "cmdGen.Mobs.Slime_Ice_02": "冰史莱姆", 43 | "cmdGen.Mobs.Slime_Ice_02_Activity": "冰史莱姆", 44 | "cmdGen.Mobs.Slime_Ice_03": "大型冰史莱姆", 45 | "cmdGen.Mobs.Slime_Ice_03_Activity": "大型冰史莱姆", 46 | "cmdGen.Mobs.Slime_Ice_03_AttackEnhance": "大型冰史莱姆", 47 | "cmdGen.Mobs.Slime_Water_02": "水史莱姆", 48 | "cmdGen.Mobs.Slime_Water_03": "大型水史莱姆", 49 | "cmdGen.Mobs.Slime_Water_03_AttackEnhance": "大型水史莱姆", 50 | "cmdGen.Mobs.Effigy_Water_Underling_Ooze_01": "无相之水·召唤物", 51 | "cmdGen.Mobs.Effigy_Water_Underling_Ooze_02": "无相之水·召唤物", 52 | "cmdGen.Mobs.Effigy_Water_Underling_Ooze_03": "无相之水·召唤物", 53 | "cmdGen.Mobs.Effigy_Water_Underling_Ooze_04": "无相之水·召唤物", 54 | "cmdGen.Mobs.Monster_Oceanid": "纯水精灵", 55 | "cmdGen.Mobs.Monster_Oceanid_02": "纯水精灵", 56 | "cmdGen.Mobs.Monster_Oceanid_Boar": "幻形豕兽·水", 57 | "cmdGen.Mobs.Monster_Oceanid_Boar_02": "幻形豕兽·水", 58 | "cmdGen.Mobs.Monster_Oceanid_Crane": "幻形鹤·水", 59 | "cmdGen.Mobs.Monster_Oceanid_Crab": "幻形蟹·水", 60 | "cmdGen.Mobs.Monster_Oceanid_Crab_02": "幻形蟹·水", 61 | "cmdGen.Mobs.Monster_Oceanid_Tit": "幻形雀·水", 62 | "cmdGen.Mobs.Monster_Oceanid_Wigeon": "幻形游禽·水", 63 | "cmdGen.Mobs.Monster_Oceanid_Wigeon_02": "幻形游禽·水", 64 | "cmdGen.Mobs.Monster_Oceanid_Squirrel": "幻形花鼠·水", 65 | "cmdGen.Mobs.Monster_Oceanid_Squirrel_02": "幻形花鼠·水", 66 | "cmdGen.Mobs.Monster_Oceanid_Frog": "幻形蛙·水", 67 | "cmdGen.Mobs.Monster_Oceanid_Falcon": "幻形飞鸢·水", 68 | "cmdGen.Mobs.Monster_Raijin_01": "雷音权现", 69 | "cmdGen.Mobs.Hili_None_01_Club": "打手丘丘人", 70 | "cmdGen.Mobs.Hili_None_01_Shield": "木盾丘丘人", 71 | "cmdGen.Mobs.Hili_None_01_Range": "射手丘丘人", 72 | "cmdGen.Mobs.Hili_None_01_Range_Multi": "射手丘丘人", 73 | "cmdGen.Mobs.Hili_Fire_Range": "火箭丘丘人", 74 | "cmdGen.Mobs.Hili_Fire_Range_Multi": "火箭丘丘人", 75 | "cmdGen.Mobs.Hili_Fire_Bomb": "爆弹丘丘人", 76 | "cmdGen.Mobs.Hili_Fire_Bomb_AttackEnhance": "爆弹丘丘人", 77 | "cmdGen.Mobs.Hili_Fire_Rush": "冲锋丘丘人", 78 | "cmdGen.Mobs.Hili_Ice_Range": "冰箭丘丘人", 79 | "cmdGen.Mobs.Hili_Ice_Range_Multi": "冰箭丘丘人", 80 | "cmdGen.Mobs.Hili_Electric_Range": "雷箭丘丘人", 81 | "cmdGen.Mobs.Hili_Electric_Range_Multi": "雷箭丘丘人", 82 | "cmdGen.Mobs.Hili_None_01_RockShield": "岩盾丘丘人", 83 | "cmdGen.Mobs.Hili_Ice_Bomb": "冰弹丘丘人", 84 | "cmdGen.Mobs.Hili_Ice_Bomb_AttackEnhance": "冰弹丘丘人", 85 | "cmdGen.Mobs.Hili_Ice_IceShield": "冰盾丘丘人", 86 | "cmdGen.Mobs.Hili_Ice_IceShield_Activity": "冰盾丘丘人", 87 | "cmdGen.Mobs.Hili_Wei_NoWeapon_01": "奇怪的丘丘人", 88 | "cmdGen.Mobs.Hili_Electric_Bomb": "雷弹丘丘人", 89 | "cmdGen.Mobs.Hili_Electric_Bomb_AttackEnhance": "雷弹丘丘人", 90 | "cmdGen.Mobs.Slime_Fire_02": "火史莱姆", 91 | "cmdGen.Mobs.Slime_Fire_Tutorial": "火史莱姆", 92 | "cmdGen.Mobs.Slime_Fire_03": "大型火史莱姆", 93 | "cmdGen.Mobs.Slime_Fire_03_AttackEnhance": "大型火史莱姆", 94 | "cmdGen.Mobs.Slime_Rock_02": "岩史莱姆", 95 | "cmdGen.Mobs.Slime_Rock_03": "大型岩史莱姆", 96 | "cmdGen.Mobs.Slime_Rock_03_AttackEnhance": "大型岩史莱姆", 97 | "cmdGen.Mobs.Abyss_Fire_01": "火深渊法师", 98 | "cmdGen.Mobs.Abyss_Fire_01_ShieldEnhance": "火深渊法师", 99 | "cmdGen.Mobs.Abyss_Fire_01_BlinkEnhance": "火深渊法师", 100 | "cmdGen.Mobs.Abyss_Fire_01_AttackEnhance": "火深渊法师", 101 | "cmdGen.Mobs.Abyss_Ice_01": "冰深渊法师", 102 | "cmdGen.Mobs.Abyss_Ice_01_ShieldEnhance": "冰深渊法师", 103 | "cmdGen.Mobs.Abyss_Ice_01_BlinkEnhance": "冰深渊法师", 104 | "cmdGen.Mobs.Abyss_Ice_01_AttackEnhance": "冰深渊法师", 105 | "cmdGen.Mobs.Abyss_Water_01": "水深渊法师", 106 | "cmdGen.Mobs.Abyss_Water_01_ShieldEnhance": "水深渊法师", 107 | "cmdGen.Mobs.Abyss_Water_01_BlinkEnhance": "水深渊法师", 108 | "cmdGen.Mobs.Abyss_Water_01_AttackEnhance": "水深渊法师", 109 | "cmdGen.Mobs.Abyss_Electric_01": "雷深渊法师", 110 | "cmdGen.Mobs.Abyss_Electric_01_ShieldEnhance": "雷深渊法师", 111 | "cmdGen.Mobs.Abyss_Electric_01_AttackEnhance": "雷深渊法师", 112 | "cmdGen.Mobs.Invoker_Herald_Water_01": "深渊使徒·激流", 113 | "cmdGen.Mobs.Invoker_Deacon_Electric_01": "深渊咏者·紫电", 114 | "cmdGen.Mobs.Invoker_Deacon_Fire_01": "深渊咏者·渊火", 115 | "cmdGen.Mobs.Hound_Kanis_Rock_01": "嗜岩·兽境幼兽", 116 | "cmdGen.Mobs.Hound_Kanis_Electric_01": "嗜雷·兽境幼兽", 117 | "cmdGen.Mobs.Hound_Riftstalker_Rock_01": "嗜岩·兽境猎犬", 118 | "cmdGen.Mobs.Hound_Riftstalker_Electric_01": "嗜雷·兽境猎犬", 119 | "cmdGen.Mobs.Monster_Hound_Planelurker_01": "黄金王兽", 120 | "cmdGen.Mobs.ForlornVessel_Strong_Warbanner_Fire_01": "黯色空壳·旗令", 121 | "cmdGen.Mobs.ForlornVessel_Strong_Warbanner_Fire_02": "黯色空壳·旗令", 122 | "cmdGen.Mobs.ForlornVessel_Strong_Lance_Water_01": "黯色空壳·破阵", 123 | "cmdGen.Mobs.ForlornVessel_Strong_Lance_Water_02": "黯色空壳·破阵", 124 | "cmdGen.Mobs.ForlornVessel_Strong_Chargebow_Ice_01": "黯色空壳·近卫", 125 | "cmdGen.Mobs.ForlornVessel_Strong_Chargebow_Ice_02": "黯色空壳·近卫", 126 | "cmdGen.Mobs.Darkwraith_Strong_Wind_01": "黑蛇骑士·斩风之剑", 127 | "cmdGen.Mobs.Shaman_Water_01": "水丘丘萨满", 128 | "cmdGen.Mobs.Shaman_Water_01_HealEnhance": "水丘丘萨满", 129 | "cmdGen.Mobs.Shaman_Grass_01": "草丘丘萨满", 130 | "cmdGen.Mobs.Shaman_Grass_01_SupportEnhance": "草丘丘萨满", 131 | "cmdGen.Mobs.Shaman_Wind_01": "风丘丘萨满", 132 | "cmdGen.Mobs.Shaman_Wind_01_WindZoneEnhance": "风丘丘萨满", 133 | "cmdGen.Mobs.Shaman_Wind_01_AttackEnhance": "风丘丘萨满", 134 | "cmdGen.Mobs.Shaman_Rock_01": "岩丘丘萨满", 135 | "cmdGen.Mobs.Shaman_Rock_01_SupportEnhance": "岩丘丘萨满", 136 | "cmdGen.Mobs.Shaman_Ice_01": "冰丘丘萨满", 137 | "cmdGen.Mobs.Shaman_Electric_01": "雷丘丘萨满", 138 | "cmdGen.Mobs.Shaman_Electric_01_SupportEnhance": "雷丘丘萨满", 139 | "cmdGen.Mobs.Defender_None_01": "遗迹守卫", 140 | "cmdGen.Mobs.Defender_None_08": "遗迹守卫", 141 | "cmdGen.Mobs.Defender_None_09": "遗迹守卫", 142 | "cmdGen.Mobs.Formathr_None": "遗迹猎者", 143 | "cmdGen.Mobs.Konungmathr_None": "遗迹重机", 144 | "cmdGen.Mobs.Konungmathr_None_Dig": "遗迹重机", 145 | "cmdGen.Mobs.Nithhoggr_None": "遗迹巨蛇", 146 | "cmdGen.Mobs.Apparatus_Enigma_BionicDrone": "遗迹巡弋者", 147 | "cmdGen.Mobs.Apparatus_Enigma_BionicFlora": "遗迹歼击者", 148 | "cmdGen.Mobs.Apparatus_Enigma_BionicInsecta": "遗迹防卫者", 149 | "cmdGen.Mobs.Apparatus_Enigma_BionicNettler": "遗迹侦察者", 150 | "cmdGen.Mobs.Apparatus_Perpetual": "恒常机关阵列", 151 | "cmdGen.Mobs.Skirmisher_Male_Fat_SprayGun_Ice_01": "愚人众先遣队·冰铳重卫士", 152 | "cmdGen.Mobs.Skirmisher_Male_Fat_SprayGun_Water_01": "愚人众先遣队·水铳重卫士", 153 | "cmdGen.Mobs.Skirmisher_Male_Strong_GreatHammer_Electric_01": "愚人众先遣队·雷锤前锋军", 154 | "cmdGen.Mobs.Skirmisher_Male_Standard_Staff_Rock_01": "愚人众先遣队·岩使游击兵", 155 | "cmdGen.Mobs.Skirmisher_Male_Strong_Gloves_Wind_01": "愚人众先遣队·风拳前锋军", 156 | "cmdGen.Mobs.Skirmisher_Male_Standard_Rifle_Fire_01": "愚人众先遣队·火铳游击兵", 157 | "cmdGen.Mobs.Fatuus_Fire_01": "愚人众·火之债务处理人", 158 | "cmdGen.Mobs.Fatuus_Fire_01_AttackEnhance": "愚人众·火之债务处理人", 159 | "cmdGen.Mobs.Fatuus_Summoner_01": "愚人众·雷萤术士", 160 | "cmdGen.Mobs.Fatuus_Summoner_01_AttackEnhance": "愚人众·雷萤术士", 161 | "cmdGen.Mobs.Fatuus_Mage_Ice_01": "愚人众·冰萤术士", 162 | "cmdGen.Mobs.Fatuus_Mage_Ice_01_AttackEnhance": "愚人众·冰萤术士", 163 | "cmdGen.Mobs.Fatuus_Maiden_Water_01": "愚人众·藏镜仕女", 164 | "cmdGen.Mobs.Thoarder_Male_NoWeapon_01": "盗宝团·「溜溜」", 165 | "cmdGen.Mobs.Thoarder_Male_Standard_NoWeapon_01_02": "盗宝团·「溜溜」", 166 | "cmdGen.Mobs.Thoarder_Male_Standard_NoWeapon_01_03": "盗宝团·「溜溜」", 167 | "cmdGen.Mobs.Thoarder_Male_Standard_NoWeapon_01_04": "盗宝团·「溜溜」", 168 | "cmdGen.Mobs.Thoarder_Male_Slippie_01": "盗宝团·「溜溜」", 169 | "cmdGen.Mobs.Thoarder_Male_Standard_NoWeapon_02": "盗宝团·斥候", 170 | "cmdGen.Mobs.Thoarder_Male_Standard_NoWeapon_02_03": "盗宝团·斥候", 171 | "cmdGen.Mobs.Thoarder_Male_Standard_NoWeapon_02_04": "盗宝团·斥候", 172 | "cmdGen.Mobs.Thoarder_Male_Standard_NoWeapon_02_05": "盗宝团·斥候", 173 | "cmdGen.Mobs.Thoarder_Male_Standard_NoWeapon_02_06": "盗宝团·斥候", 174 | "cmdGen.Mobs.Thoarder_Male_Standard_NoWeapon_02_07": "盗宝团·斥候", 175 | "cmdGen.Mobs.Thoarder_Male_Standard_NoWeapon_02_08": "盗宝团·斥候", 176 | "cmdGen.Mobs.Thoarder_Male_Standard_NoWeapon_Fire_01": "盗宝团·火之药剂师", 177 | "cmdGen.Mobs.Thoarder_Male_Standard_NoWeapon_Water_01": "盗宝团·水之药剂师", 178 | "cmdGen.Mobs.Thoarder_Male_Standard_NoWeapon_Electric_01": "盗宝团·雷之药剂师", 179 | "cmdGen.Mobs.Thoarder_Male_Standard_NoWeapon_Ice_01": "盗宝团·冰之药剂师", 180 | "cmdGen.Mobs.Thoarder_Male_Fat_NoWeapon_01": "盗宝团·杂工", 181 | "cmdGen.Mobs.Thoarder_Male_Crossbow_01": "盗宝团·「怪鸟」", 182 | "cmdGen.Mobs.Thoarder_Male_Crossbow_01_02": "盗宝团·「怪鸟」", 183 | "cmdGen.Mobs.Thoarder_Male_Standard_Crossbow_02": "盗宝团·神射手", 184 | "cmdGen.Mobs.Thoarder_Male_Standard_Crossbow_02_03": "盗宝团·神射手", 185 | "cmdGen.Mobs.Thoarder_Male_Shovel_01": "盗宝团·「卡门」", 186 | "cmdGen.Mobs.Thoarder_Male_Fat_Shovel_01": "盗宝团·「卡门」", 187 | "cmdGen.Mobs.Thoarder_Male_Fat_Shovel_03": "盗宝团·掘墓者", 188 | "cmdGen.Mobs.Thoarder_Male_Fat_Shovel_02": "盗宝团·海上男儿", 189 | "cmdGen.Mobs.Thoarder_Female_Hatchet_01": "盗宝团·「大姐头」", 190 | "cmdGen.Mobs.Thoarder_Female_Hatchet_02": "盗宝团·「大姐头」", 191 | "cmdGen.Mobs.Millelith_Male_01": "千岩军士兵", 192 | "cmdGen.Mobs.Millelith_Male_02": "千岩军教头", 193 | "cmdGen.Mobs.Aahigaru_Male_01": "幕府足轻", 194 | "cmdGen.Mobs.AahigaruTaisho_Male_01": "幕府足轻头", 195 | "cmdGen.Mobs.AahigaruTaisho_Male_01_02": "幕府足轻头", 196 | "cmdGen.Mobs.Aahigaru_Male_02": "珊瑚宫众", 197 | "cmdGen.Mobs.Aahigaru_Male_02_02": "珊瑚宫众", 198 | "cmdGen.Mobs.Thoarder_MuscleMan_NoWeapon_01": "盗宝团·拳术家", 199 | "cmdGen.Mobs.Thoarder_MuscleMan_NoWeapon_01_02": "盗宝团·拳术家", 200 | "cmdGen.Mobs.Thoarder_MuscleMan_Hammer_01": "盗宝团·粉碎者", 201 | "cmdGen.Mobs.Thoarder_MuscleMan_Hammer_02": "盗宝团·「瓦伦斯坦」", 202 | "cmdGen.Mobs.Samurai_Ronin_01": "野伏·阵刀番", 203 | "cmdGen.Mobs.Samurai_Ronin_02": "野伏·火付番", 204 | "cmdGen.Mobs.Samurai_Ronin_04": "野伏·火付番", 205 | "cmdGen.Mobs.Samurai_Ronin_03": "野伏·机巧番", 206 | "cmdGen.Mobs.Samurai_Hatamoto_01": "寄骑武士", 207 | "cmdGen.Mobs.Samurai_Hatamoto_02": "寄骑武士", 208 | "cmdGen.Mobs.Samurai_Ningyo_01": "魔偶剑鬼", 209 | "cmdGen.Mobs.Samurai_Ningyo_02": "魔偶剑鬼·孤风", 210 | "cmdGen.Mobs.Samurai_Ningyo_03": "魔偶剑鬼·霜驰", 211 | "cmdGen.Mobs.Samurai_Ningyo_04": "魔偶剑鬼·凶面", 212 | "cmdGen.Mobs.Samurai_Kairagi_01": "海乱鬼·雷腾", 213 | "cmdGen.Mobs.Samurai_Kairagi_03": "落武者·咒雷", 214 | "cmdGen.Mobs.Samurai_Kairagi_02": "海乱鬼·炎威", 215 | "cmdGen.Mobs.Samurai_Kairagi_04": "落武者·祟炎", 216 | "cmdGen.Mobs.Samurai_Kairagi_05": "海乱鬼·雷腾", 217 | "cmdGen.Mobs.Samurai_Kairagi_06": "落武者·咒雷", 218 | "cmdGen.Mobs.Mimik_Ice": "冰霜骗骗花", 219 | "cmdGen.Mobs.Mimik_Ice_Activity": "冰霜骗骗花", 220 | "cmdGen.Mobs.Mimik_Fel": "冰霜骗骗花", 221 | "cmdGen.Mobs.Mimik_Fel_02": "冰霜骗骗花", 222 | "cmdGen.Mobs.Mimik_Fire": "炽热骗骗花", 223 | "cmdGen.Mobs.Mimik_Electric": "电气骗骗花", 224 | "cmdGen.Mobs.Regisvine_Ice": "急冻树", 225 | "cmdGen.Mobs.Regisvine_Ice_Activity": "急冻树", 226 | "cmdGen.Mobs.Regisvine_Fire": "爆炎树", 227 | "cmdGen.Mobs.Wyrm_Rock": "幼岩龙蜥", 228 | "cmdGen.Mobs.Drake_Rock_01_Water": "岩龙蜥", 229 | "cmdGen.Mobs.Drake_Rock_01_Fire": "岩龙蜥", 230 | "cmdGen.Mobs.Drake_Rock_01_Ice": "岩龙蜥", 231 | "cmdGen.Mobs.Drake_Rock_01_Elec": "岩龙蜥", 232 | "cmdGen.Mobs.Drake_Primo_Rock_01_Water": "古岩龙蜥", 233 | "cmdGen.Mobs.Drake_Primo_Rock_01_Fire": "古岩龙蜥", 234 | "cmdGen.Mobs.Drake_Primo_Rock_01_Ice": "古岩龙蜥", 235 | "cmdGen.Mobs.Drake_Primo_Rock_01_Elec": "古岩龙蜥", 236 | "cmdGen.Mobs.Drake_Primo_Rock_01_Activity": "古岩龙蜥", 237 | "cmdGen.Mobs.Drake_DeepSea_Water_01": "深海龙蜥·原种", 238 | "cmdGen.Mobs.Drake_DeepSea_Water_02": "深海龙蜥·原种", 239 | "cmdGen.Mobs.Drake_Deepsea_Ice_01": "深海龙蜥·啮冰", 240 | "cmdGen.Mobs.Drake_Deepsea_Ice_02": "深海龙蜥·啮冰", 241 | "cmdGen.Mobs.Drake_Deepsea_Ice_03": "深海龙蜥·啮冰", 242 | "cmdGen.Mobs.Drake_Deepsea_Electric_01": "深海龙蜥·吞雷", 243 | "cmdGen.Mobs.Drake_Deepsea_Electric_02": "深海龙蜥·吞雷", 244 | "cmdGen.Mobs.Drake_Deepsea_Electric_03": "深海龙蜥·吞雷", 245 | "cmdGen.Mobs.Cicin_Thunder_01": "雷萤", 246 | "cmdGen.Mobs.Cicin_Water_01": "水萤", 247 | "cmdGen.Mobs.Cicin_Ice_01": "冰萤", 248 | "cmdGen.Mobs.Eldritch_Minor": "跋掣", 249 | "cmdGen.Mobs.Fungus_Un_Gamma_Water_01": "浮游水蕈兽", 250 | "cmdGen.Mobs.Sylph_Water_01": "水飘浮灵", 251 | "cmdGen.Mobs.Sylph_Rock_01": "岩飘浮灵", 252 | "cmdGen.Mobs.Sylph_Wind_01": "风飘浮灵", 253 | "cmdGen.Mobs.Sylph_Ice_01": "冰飘浮灵", 254 | "cmdGen.Mobs.Sylph_Electric_01": "雷飘浮灵", 255 | "cmdGen.Mobs.Sylph_Fire_01": "火飘浮灵" 256 | } -------------------------------------------------------------------------------- /static/img/click-svgrepo-com.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 14 | 17 | 18 | 19 | 20 | 25 | 26 | 29 | 34 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /static/img/comment-discussion-svgrepo-com.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | comment-discussion 21 | 23 | 45 | 51 | 52 | 54 | 55 | 57 | image/svg+xml 58 | 60 | comment-discussion 61 | 62 | 63 | 64 | 69 | 74 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /static/img/docusaurus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/docusaurus.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon1.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon10.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon11.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon12.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon13.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon14.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon15.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon16.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon17.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon18.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon19.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon2.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon20.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon21.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon22.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon23.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon24.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon25.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon26.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon27.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon28.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon29.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon3.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon30.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon31.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon32.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon33.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon34.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon35.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon36.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon37.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon38.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon39.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon4.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon40.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon41.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon42.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon43.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon44.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon45.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon46.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon47.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon48.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon49.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon5.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon50.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon51.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon52.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon53.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon54.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon55.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon56.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon57.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon58.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon59.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon6.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon60.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon61.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon61.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon62.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon62.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon63.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon63.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon64.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon65.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon65.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon66.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon66.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon67.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon67.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon68.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon68.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon69.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon69.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon7.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon70.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon71.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon71.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon72.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon73.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon73.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon74.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon74.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon75.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon75.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon76.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon77.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon77.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon78.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon78.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon79.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon79.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon8.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon80.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon81.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon81.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon82.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon82.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon83.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon83.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon84.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon84.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon85.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon86.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon86.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon87.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon88.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon89.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon89.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon9.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon90.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon90.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon91.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon91.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon92.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon92.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon93.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon93.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon94.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon94.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon95.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon95.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionIcon96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionIcon96.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionTagIcon_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionTagIcon_00.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionTagIcon_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionTagIcon_01.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionTagIcon_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionTagIcon_02.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionTagIcon_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionTagIcon_03.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionTagIcon_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionTagIcon_04.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionTagIcon_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionTagIcon_05.png -------------------------------------------------------------------------------- /static/img/emotions/UI_EmotionTagIcon_06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/emotions/UI_EmotionTagIcon_06.png -------------------------------------------------------------------------------- /static/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GenKitCN/gcdoc/a9e53020dba723d475e43e1e5fb531b15c22f5d8/static/img/favicon.ico -------------------------------------------------------------------------------- /static/img/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | Created by potrace 1.15, written by Peter Selinger 2001-2017 9 | 10 | 12 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /static/img/translate-language-svgrepo-com.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 16 | 19 | 22 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /static/img/undraw_docusaurus_tree.svg: -------------------------------------------------------------------------------- 1 | 2 | Focus on What Matters 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | // This file is not used in compilation. It is here just for a nice editor experience. 3 | "extends": "@tsconfig/docusaurus/tsconfig.json", 4 | "compilerOptions": { 5 | "baseUrl": "." 6 | } 7 | } 8 | --------------------------------------------------------------------------------