Skip to content

Commit 9e5b57a

Browse files
KingRainbow44github-actions[bot]scooterbooTesutarinArikatsu
authored
Merge unstable into development (#2173)
* Remove more scene synchronized * Fix worktop options not appearing * Format code [skip actions] * Fix delay with server tasks * Format code [skip actions] * Fully fix fairy clock (#2146) * Fix scene transition * fully fix fairy clock * Re-add call to `Player#updatePlayerGameTime` * Format code [skip actions] * Initialize the script loader in `ResourceLoader#loadAll` * Fix region removal checking * Format code [skip actions] * Use Lombok's `EqualsAndHashCode` for comparing scene regions * Format code [skip actions] * Move 'invalid gather object' to `trace` * Add more information to the 'unknown condition handler' message * Move invalid ability action to trace * Make `KcpTunnel` public * Validate the NPC being talked to * Format code [skip actions] * NPCs are not spawned server side; change logic to handle it * Format code [skip actions] * unload scene when there are no players (#2147) * unload scene when there are no players * Update src/main/java/emu/grasscutter/game/world/Scene.java Co-authored-by: Magix <[email protected]> --------- Co-authored-by: Magix <[email protected]> * Check if a command should be copied or HTTP should be used * Lint Code [skip actions] * Fix character names rendering incorrectly * Add basic troubleshooting command * Implement handbook teleporting also a few formatting changes and sort data by logical sense * Fix listener `ConcurrentModificationException` issue * Add color change to `Join the Community!` * Lint Code [skip actions] * Make clickable buttons appear clickable * Remove 'Mechanicus' entities from the list of entities * Format code [skip actions] * Fix going back returning a blank screen * Implement entity spawning * Add setting level to entity card * Add support for 'plain text' mode * Make descriptions of objects scrollable * Lint Code [skip actions] * Format code [skip actions] * Change the way existing hooks work * Format code [skip actions] * Upgrade Javalin to 5.5.0 & Fix project warnings * Upgrade logging libraries * Fix gacha mappings static file issue * Add temporary backwards compatability for `ServerHelper` * Format code [skip actions] * Remove artifact signatures from VCS * Fix forge queue data protocol definition * Run `spotlessApply` * Format code [skip actions] * Download data required for building artifacts * Add call for Facebook logins * Add the wiki page as a submodule * Format code [skip actions] * Update translation (#2150) * Update translation * Update translation * Separate the dispatch and game servers (pt. 1) gacha is still broken, handbook still needs to be done * Format code [skip actions] * Separate the dispatch and game servers (pt. 2) this commit fixes the gacha page * Add description for '/troubleshoot' * Set default avatar talent level to 10 * Separate the dispatch and game servers (pt. 3) implement handbook across servers! * Format code [skip actions] * Update GitHub Actions to use 'download-file' over 'wget' * Gm handbook lmao (#2149) * Fix font issue * Fix avatars * Fix text overflow in commands * Fix virtualized lists and items page 😭😭 * magix why 💀 * use hover style in all minicards * button * remove console.log * lint * Add icons * magix asked * Fix overflow padding issue * Fix achievement text overflow * remove icons from repo * Change command icon * Add the wiki page as a submodule * total magix moment * fix text overflow in commands * Fix discord button * Make text scale on Minicard * import icons and font from another source * Add hover effects to siebar buttons * move font and readme to submodule repo * Make data folder a submodule * import icons and font from data submodule * Update README.md * total magix moment * magix moment v2 * submodule change * Import `.webp` files * Resize `HomeButton` * Fix 'Copy Command' reappearing after changing pages --------- Co-authored-by: KingRainbow44 <[email protected]> * Lint Code [skip actions] * Download data for the build, not for the lint * format imports this is really just to see if build handbook works kek * Implement proper handbook authentication (pt. 1) * Implement proper handbook authentication (pt. 2) * Format code [skip actions] * Add quest data dumping for the handbook * Change colors to fit _something suitable_ * Format code [skip actions] * Fix force pushing to branches after linting * Fix logic of `SetPlayerPropReq` * Move more group loading to `trace` * Add handbook IP authentication in hybrid mode * Fix player level up not displaying on the client properly * Format code [skip actions] * Fix game time locking * Format code [skip actions] * Update player properties * Format code [skip actions] * Move `warn`s for groups to `debug` * Fix player pausing * Move more logs to `trace` * Use `removeItemById` for deleting items via quests * Clean up logger more * Pause in-game time when the world is paused * Format code [skip actions] * More player property documentation * Multi-threaded resource loading * Format code [skip actions] * Add quest widgets * Add quests page (basic impl.) * Add/fix colors also fix tailwind * Remove banned packets client modifications already perform the job of blocking malicious packets from being executed, no point in having this if self-windy is wanted * Re-add `BeginCameraSceneLookNotify` * Fix being unable to attack (#2157) * Add `PlayerOpenChestEvent` * Add methods to get players from the server * Add static methods to register an event handler * Add `PlayerEnterDungeonEvent` * Remove legacy documentation from `PlayerMoveEvent` * Add `PlayerChatEvent` * Add defaults to `Position` * Clean up `.utils` * Revert `Multi-threaded resource loading` * Fix changing target UID when talking to the server * Lint Code [skip actions] * Format code [skip actions] * fix NPC talk triggering main quest in 46101 (#2158) Make it so that only talks where the param matches the talkId are checked. * Format code [skip actions] * Partially fix Chasing Shadows (#2159) * Partially fix Chasing Shadows * Go ahead and move it before the return before Magix tells me to. * Format code [skip actions] * Bring back period lol (#2160) * Disable SNI for the HTTPS server * Add `EntityCreationEvent` * Add initial startup message this is so the server appears like its preparing to start * Format code [skip actions] * Enable debug mode for plugin loggers if enabled for the primary logger * Add documentation about `WorldAreaConfigData` * Make more fields in excels accessible * Remove deprecated fields from `GetShopRsp` * Run `spotlessApply` on definitions * Add `PlayerEnterAreaEvent` * Optimize event calls * Fix event invokes * Format code [skip actions] * Remove manual autofinish for main quests. (#2162) * Add world areas to the textmap cache * Format code [skip actions] * Don't overdefine variables in extended classes (#2163) * Add dumper for world areas * Format code [skip actions] * instantiate personalLineList (#2165) * Fix protocol definitions thank you Nazrin! (+ hiro for raw definitions) * Fix the background color leaking from the character widget * Change HTML spacing to 2 spaces * Implement hiding widgets * Change scrollbar to a vibrant color * Add _some_ scaling to the home buttons and its text * Build the handbook with Gradle * Fix the 'finer details' with the handbook UI * Lint Code [skip actions] * Fix target destination for the Gradle-built handbook * Implement fetching a player across servers & Add a chainable JsonObject useful for plugins! might be used in grasscutter eventually * Fix GitHub actions * Fix event calling & canceling * Run `spotlessApply` * Rename fields (might be wrong) * Add/update all/more protocol definitions * Add/update all/more protocol definitions * Remove outdated packet * Fix protocol definitions * Format code [skip actions] * Implement some lua variables for less console spam (#2172) * Implement some lua variables for less console spam * Add GetHostQuestState This fixes some chapter 3 stuff. * Format code [skip actions] * Fix merge import * Format code [skip actions] * Fully fix fairy clock for real this time (#2167) * Fully fix fairy clock For real this time * Make it so relogging keeps the time lock state. * Refactor out questLockTime * Per Hartie, the client packet needs to be changed too * Update src/main/java/emu/grasscutter/game/world/World.java Co-authored-by: Magix <[email protected]> * Update src/main/java/emu/grasscutter/server/packet/recv/HandlerClientLockGameTimeNotify.java * Remove all code not needed to get clock working --------- Co-authored-by: Magix <[email protected]> * Implement a proper ability system (#2166) * Apply fix `21dec2fe` * Apply fix `89d01d5f` * Apply fix `d900f154` this one was already implemented; updated to use call from previous commit * Ability changing commit TODO: change info to debug * Remove use of deprecated methods/fields * Temp commit v2 (Adding LoseHP and some fixes) * Oopsie * Probably fix monster battle * Fix issue with reflecting into fields * Fix some things * Fix ability names for 3.6 resources * Improve logging --------- Co-authored-by: StartForKiller <[email protected]> * Format code [skip actions] * Add system for sending messages between servers * Format some code * Remove protocol definitions from Spotless * Default debug to false; enable with `-debug` * Implement completely useless global value copying * HACK: Return the avatar which holds the weapon when the weapon is referred to by ID * Add properties to `AbilityModifier` * Change the way HTML is served after authentication * Use thread executors to speed up the database loading process * Format code [skip actions] * Add system for setting handbook address and port * Lint Code [skip actions] * Format code [skip actions] * Fix game-related data not saving * Format code [skip actions] * Fix handbook server details * Lint Code [skip actions] * Format code [skip actions] * Use the headers provided by a context to get the IP address should acknowledge #1975 * Format code [skip actions] * Move more logs to `trace` * Format code [skip actions] * more trace * Fix something and implement weapon entities * Format code [skip actions] * Fix `EntityWeapon` * Remove deprecated API & Fix resource checking * Fix unnecessary warning for first-time setup * Implement handbook request limiting * Format code [skip actions] * Fix new avatar weapons being null * Format code [skip actions] * Fix issue with 35303 being un-completable & Try to fix fulfilled quest conditions being met * Load activity config on server startup * Require plugins to specify an API version and match with the server * Add default open state ignore list * Format code [skip actions] * Quick fix for questing, needs more investigation This would make the questing work again * Remove existing hack for 35303 * Fix ignored open states from being set * Format code [skip actions] * fix the stupidest bug ive ever seen * Optimize player kicking on server close * Format code [skip actions] * Re-add hack to fix 35303 * Update GitHub actions * Format code [skip actions] * Potentially fix issues with regions * Download additional handbook data * Revert "Potentially fix issues with regions" This reverts commit 84e3823. --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: scooterboo <[email protected]> Co-authored-by: Tesutarin <[email protected]> Co-authored-by: Scald <[email protected]> Co-authored-by: StartForKiller <[email protected]>
1 parent f46fd37 commit 9e5b57a

File tree

3,839 files changed

+1840317
-36302
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

3,839 files changed

+1840317
-36302
lines changed

.editorconfig

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ max_line_length = 120
1010
tab_width = 4
1111
trim_trailing_whitespace = true
1212

13-
[{*.json,*.xml}]
13+
[{*.json,*.xml,*.yml,*.html}]
1414
indent_size = 2

.gitattributes

+1-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1 @@
1-
*.java text=auto
2-
*.json text=auto
3-
*.md text=auto
4-
*.properties text=auto
5-
*.py text=auto
6-
*.sh text=auto
1+
* text=auto

.github/workflows/build.yml

+7-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ on:
77
branches:
88
- "stable"
99
- "development"
10+
- "unstable"
1011
pull_request:
1112
paths:
1213
- "**.java"
@@ -35,8 +36,13 @@ jobs:
3536
key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle', 'gradle.properties', '**/*.accesswidener') }}
3637
restore-keys: |
3738
${{ runner.os }}-gradle-
39+
- name: Download Handbook
40+
uses: suisei-cn/[email protected]
41+
with:
42+
url: https://api.grasscutter.io/static/handbook.html
43+
target: src/main/resources/html/
3844
- name: Run Gradle
39-
run: ./gradlew && ./gradlew jar
45+
run: ./gradlew -PskipHandbook=1 && ./gradlew jar -PskipHandbook=1
4046
- name: Upload build
4147
uses: actions/upload-artifact@v3
4248
with:

.github/workflows/check_code.yml

+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
name: "Lint & Format Code"
2+
3+
on:
4+
workflow_dispatch: ~
5+
push:
6+
paths:
7+
- "src/main/**.java"
8+
- "**.json"
9+
branches:
10+
- "development"
11+
- "unstable"
12+
13+
jobs:
14+
Format-Code:
15+
runs-on: ubuntu-latest
16+
steps:
17+
- name: Checkout
18+
uses: actions/checkout@v3
19+
with:
20+
fetch-depth: 0
21+
- name: Extract branch name
22+
shell: bash
23+
run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT
24+
id: extract_branch
25+
- name: Setup Java
26+
uses: actions/setup-java@v3
27+
with:
28+
distribution: temurin
29+
java-version: '17'
30+
- name: Cache gradle files
31+
uses: actions/cache@v2
32+
with:
33+
path: |
34+
~/.gradle/caches
35+
~/.gradle/wrapper
36+
./.gradle/loom-cache
37+
key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle', 'gradle.properties', '**/*.accesswidener') }}
38+
restore-keys: |
39+
${{ runner.os }}-gradle-
40+
- name: Format Code
41+
run: ./gradlew -PskipHandbook=1 && ./gradlew spotlessApply -PskipHandbook=1
42+
43+
- run: git config --global user.name "github-actions"
44+
- run: git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
45+
- run: git stash
46+
- run: git checkout ${{ steps.extract_branch.outputs.branch }} && git pull
47+
- run: git stash pop || true
48+
49+
- name: Commit Code Changes
50+
run: git add -u && git commit -m 'Format code [skip actions]' || true
51+
- name: Push Code Changes
52+
run: git push --set-upstream --force origin ${{ steps.extract_branch.outputs.branch }}
53+
54+
Update-Languages:
55+
runs-on: ubuntu-latest
56+
steps:
57+
- name: Checkout
58+
uses: actions/checkout@v3
59+
with:
60+
fetch-depth: 0
61+
- name: Extract branch name
62+
shell: bash
63+
run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT
64+
id: extract_branch
65+
66+
- name: Update Languages
67+
run: python scripts/manage_languages.py -u
68+
69+
- run: git config --global user.name "github-actions"
70+
- run: git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
71+
- run: git stash
72+
- run: git checkout ${{ steps.extract_branch.outputs.branch }} && git pull
73+
- run: git stash pop || true
74+
75+
- name: Commit any language changes
76+
run: git add -u && git commit -m 'Update languages [skip actions]' || true
77+
- name: Push language changes
78+
run: git push --set-upstream --force origin ${{ steps.extract_branch.outputs.branch }}

.github/workflows/handbook.yml

+126
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
name: "Handbook"
2+
3+
on:
4+
workflow_dispatch: ~
5+
push:
6+
paths:
7+
- "src/handbook/**.tsx"
8+
branches:
9+
- "development"
10+
- "unstable"
11+
pull_request:
12+
paths:
13+
- "src/handbook/**.tsx"
14+
types:
15+
- opened
16+
- synchronize
17+
- reopened
18+
19+
jobs:
20+
Lint-Code:
21+
runs-on: ubuntu-latest
22+
steps:
23+
- name: Checkout
24+
uses: actions/checkout@v3
25+
- name: Extract branch name
26+
shell: bash
27+
run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT
28+
id: extract_branch
29+
- name: Setup Node
30+
uses: actions/setup-node@v2
31+
with:
32+
node-version: '17'
33+
- name: Cache node modules
34+
uses: actions/cache@v2
35+
with:
36+
path: |
37+
~/.npm
38+
~/.cache
39+
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
40+
restore-keys: |
41+
${{ runner.os }}-node-
42+
- name: Install dependencies
43+
working-directory: src/handbook
44+
run: npm install --force
45+
- name: Run linter
46+
working-directory: src/handbook
47+
run: npm run lint
48+
49+
- run: git config --global user.name "github-actions"
50+
- run: git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
51+
- run: git stash
52+
- run: git checkout ${{ steps.extract_branch.outputs.branch }} && git pull
53+
- run: git stash pop || true
54+
- name: Commit changes
55+
if: ${{ github.event_name == 'push' }}
56+
run: git add -u && git commit -m "Lint Code [skip actions]" || true
57+
- name: Push changes
58+
if: ${{ github.event_name == 'push' }}
59+
run: git push --set-upstream --force origin ${{ steps.extract_branch.outputs.branch }}
60+
61+
Build-Handbook:
62+
runs-on: ubuntu-latest
63+
steps:
64+
- name: Checkout
65+
uses: actions/checkout@v3
66+
- name: Setup Node
67+
uses: actions/setup-node@v2
68+
with:
69+
node-version: '17'
70+
- name: Cache node modules
71+
uses: actions/cache@v2
72+
with:
73+
path: |
74+
~/.npm
75+
~/.cache
76+
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
77+
restore-keys: |
78+
${{ runner.os }}-node-
79+
- name: Install dependencies
80+
working-directory: src/handbook
81+
run: npm install --force
82+
83+
- name: Download Avatar Data
84+
uses: suisei-cn/[email protected]
85+
with:
86+
url: https://api.grasscutter.io/static/avatars.csv
87+
target: src/handbook/data/
88+
- name: Download Command Data
89+
uses: suisei-cn/[email protected]
90+
with:
91+
url: https://api.grasscutter.io/static/commands.json
92+
target: src/handbook/data/
93+
- name: Download Entity Data
94+
uses: suisei-cn/[email protected]
95+
with:
96+
url: https://api.grasscutter.io/static/entities.csv
97+
target: src/handbook/data/
98+
- name: Download Item Data
99+
uses: suisei-cn/[email protected]
100+
with:
101+
url: https://api.grasscutter.io/static/items.csv
102+
target: src/handbook/data/
103+
- name: Download Scene Data
104+
uses: suisei-cn/[email protected]
105+
with:
106+
url: https://api.grasscutter.io/static/scenes.csv
107+
target: src/handbook/data/
108+
- name: Download Quest Data
109+
uses: suisei-cn/[email protected]
110+
with:
111+
url: https://api.grasscutter.io/static/quests.csv
112+
target: src/handbook/data/
113+
- name: Download Main Quest Data
114+
uses: suisei-cn/[email protected]
115+
with:
116+
url: https://api.grasscutter.io/static/mainquests.csv
117+
target: src/handbook/data/
118+
119+
- name: Build handbook
120+
working-directory: src/handbook
121+
run: npm run build
122+
- name: Upload build
123+
uses: actions/upload-artifact@v3
124+
with:
125+
name: Handbook
126+
path: src/handbook/dist/*.html

.github/workflows/language_lint.yml

+4-3
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,17 @@ on:
66
- ".github/workflows/**"
77
- "src/main/**.java"
88
- "**.json"
9-
- "manage_languages.py"
9+
- "scripts/manage_languages.py"
1010
branches:
1111
- "stable"
1212
- "development"
13+
- "unstable"
1314
pull_request:
1415
paths:
1516
- ".github/workflows/**"
1617
- "src/main/**.java"
1718
- "**.json"
18-
- "manage_languages.py"
19+
- "scripts/manage_languages.py"
1920
types:
2021
- opened
2122
- synchronize
@@ -28,4 +29,4 @@ jobs:
2829
- uses: actions/setup-python@v4
2930
with:
3031
python-version: '3.10' # Version range or exact version of a Python version to use, using SemVer's version range syntax
31-
- run: python3 manage_languages.py -l
32+
- run: python3 scripts/manage_languages.py -l

.github/workflows/lint_commit.yml

-63
This file was deleted.

.gitignore

+12-1
Original file line numberDiff line numberDiff line change
@@ -66,18 +66,29 @@ tmp/
6666
/*.sh
6767

6868
GM Handbook*.txt
69+
handbook.html
70+
6971
config.json
7072
mitmdump.exe
7173
mongod.exe
7274

7375
gacha-mapping.js
7476
mappings.js
7577
BuildConfig.java
78+
data/hk4e/announcement/
7679

7780
# lombok
7881
/.apt_generated/
7982

8083
# macOS
8184
.DS_Store
8285
.directory
83-
data/hk4e/announcement/
86+
87+
# Hotswap Agent
88+
hotswap-agent.properties
89+
90+
# Debug patches
91+
patches/*.patch
92+
93+
# Artifact Signatures
94+
*.asc

.gitmodules

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[submodule "docs/wiki"]
2+
path = docs/wiki
3+
url = https://github.com/Grasscutters/Grasscutter.wiki.git
4+
[submodule "src/handbook/data/assets"]
5+
path = src/handbook/data/assets
6+
url = https://github.com/genshitters/gm-handbook-assets.git

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ Grasscutter uses Gradle to handle dependencies & building.
8080
##### Windows
8181

8282
```shell
83-
git clone https://github.com/Grasscutters/Grasscutter.git
83+
git clone --recurse-submodules -b unstable https://github.com/Grasscutters/Grasscutter.git
8484
cd Grasscutter
8585
.\gradlew.bat # Setting up environments
8686
.\gradlew jar # Compile
@@ -89,7 +89,7 @@ cd Grasscutter
8989
##### Linux (GNU)
9090

9191
```bash
92-
git clone https://github.com/Grasscutters/Grasscutter.git
92+
git clone --recurse-submodules -b unstable https://github.com/Grasscutters/Grasscutter.git
9393
cd Grasscutter
9494
chmod +x gradlew
9595
./gradlew jar # Compile

0 commit comments

Comments
 (0)