67 Commits

Author SHA1 Message Date
5c4c62c1ed Version 1.4.3
Update languages [skip actions]
Fix whitespace [skip actions]
Refactor Entity data
Clean up excels
Make PlayerBuffManager::removeBuff actually remove buff
Remove LinkedList usage https://twitter.com/joshbloch/status/583813919019573248
Add FIGHT_PROP_CUR_DEFENSE alias to setstats (closes #1929)
Update gradle wrapper (closes #1076)
Add warnings to ancient deprecated Banners.json fields Will probably turn these into runtime errors in 1.5.0, people need to stop sharing configs with dead fields and especially stop making PRs with them.
3.2 First Half Banners (closes #1932)
Reimplement namecard claiming (fixes #1882)
Kill console on IOError
Refactor command kwarg parsing
Update roomSceneId obfuscated names (#1926)
Add the new keys (3.2 Support) (#1923)
Update README_ja-JP.md (#1922)
Fix Mail SendToAll Freeze (#1913)
Remove deprecated constructor call
Debug system (#1894)
[Security][Bugfix] Fix directory traversal exploit (#1907)
Updated spanish translations (#1911)
Don't override en-us gacha strings with vietnamese
Fix gacha history internal server error
Fix CONTIBUTING typo in protect_files.yml
Remove compilation warning on Language.java
Version 1.4.3-dev [skip actions]
2022-11-05 12:49:35 +00:00
e2b59fbd8d Update languages [skip actions] 2022-11-05 12:49:35 +00:00
84bf783243 Fix whitespace [skip actions] 2022-11-05 12:49:35 +00:00
4d8caf5a8c Refactor Entity data 2022-11-05 23:18:33 +10:30
a30f16b0e1 Clean up excels 2022-11-05 23:12:03 +10:30
65915b7666 Make PlayerBuffManager::removeBuff actually remove buff 2022-11-05 17:26:20 +10:30
1ceda2a455 Remove LinkedList usage
https://twitter.com/joshbloch/status/583813919019573248
2022-11-05 17:04:15 +10:30
09f392bb5b Add FIGHT_PROP_CUR_DEFENSE alias to setstats (closes #1929) 2022-11-05 15:36:52 +10:30
944bfb76f3 Update gradle wrapper (closes #1076) 2022-11-05 15:03:00 +10:30
dc7b8d8ca6 Add warnings to ancient deprecated Banners.json fields
Will probably turn these into runtime errors in 1.5.0, people need to stop sharing configs with dead fields and especially stop making PRs with them.
2022-11-05 14:22:17 +10:30
9f00ea3573 3.2 First Half Banners
(closes #1932)
2022-11-05 13:56:27 +10:30
12316b36b1 Reimplement namecard claiming (fixes #1882) 2022-11-04 15:05:51 +10:30
0fb7d50acd Kill console on IOError 2022-11-04 13:55:39 +10:30
c926fe326c Refactor command kwarg parsing 2022-11-04 13:55:39 +10:30
e8930e92e1 Update roomSceneId obfuscated names (#1926) 2022-11-02 18:03:41 +10:30
4ed0b90c27 Add the new keys (3.2 Support) (#1923)
* Add the new keys

* Some improvements to the key loading system & Bump the game version
2022-11-01 23:28:04 +01:00
7bfb35ac39 Update README_ja-JP.md (#1922)
* Translate README.md into Japanese

Update README_ja-JP.md

* Update README_ja-JP.md

Update command link for account creation to take the reader closer to the actual command description.

Co-authored-by: GanyusLeftHorn <1244229+GanyusLeftHorn@users.noreply.github.com>
2022-11-01 03:43:19 +01:00
47911aa16e Fix Mail SendToAll Freeze (#1913)
* Avoid iterating over every offline player

* getAllPlayers by stream

* Use the new method without changing the old signature

* Annotate deprecated `getAllPlayers`
2022-10-30 20:03:30 +10:30
855d3182ab Remove deprecated constructor call 2022-10-30 00:40:00 +10:30
43b7d7a383 Debug system (#1894)
* Add build (compile) script: gradlew jar

* Move server and services log levels to ConfigContainer, ability to enable/disable show packet payload and loop packets

* Add some loop packets to known list
2022-10-29 23:31:28 +10:30
55928d9154 [Security][Bugfix] Fix directory traversal exploit (#1907)
* [Security][Bugfix] Fix directory traversal exploit

1.The first slash will act as root path when resolving local path, so directory traversal is possible
2.Filter the illegal payload to prevent directory traversal
3.This also fix the bug about not loading the files in data folder when querying  `/hk4e/announcement/`

* Fix formatting

* Update src/main/java/emu/grasscutter/server/http/handlers/AnnouncementsHandler.java
2022-10-29 23:19:46 +10:30
6219902e0f Updated spanish translations (#1911) 2022-10-29 23:06:44 +10:30
d7af52f94b Don't override en-us gacha strings with vietnamese 2022-10-29 00:11:44 +10:30
c21d216d8d Fix gacha history internal server error 2022-10-29 00:05:29 +10:30
60657b3b98 Fix CONTIBUTING typo in protect_files.yml 2022-10-28 22:23:13 +10:30
f07ce48b24 Remove compilation warning on Language.java 2022-10-28 22:13:13 +10:30
2dd644f28b Version 1.4.3-dev [skip actions] 2022-10-26 12:31:30 +00:00
229303f934 Version 1.4.2
Update languages [skip actions]
Fix whitespace [skip actions]
Update README and fil-PH (#1901)
Remove references to old repo
Make Player lazyload correct Account (should fix #1900)
Lombokify Grasscutter.java some more
Update ru-RU.json (#1895)
Extend setConstCommand "all" (#1884)
add Quest command alias (#1891)
Added zh-CN translaton for non-translated strings (#1890)
Updated Polish Translation (#1889)
Added "s" alias to SpawnCommand (closes #1840)
fix: unlocking home bgm doesn't work. (#1886)
Fix edge case on FileUtils::getFilenameWithoutPath
Medicine revival&Login white screen (#1883)
Save avatar in forceConstellationLevel (closes #1881)
Fix IllegalStateException when execute toMap (#1879)
Fix StackOverFlow when execute /give all (#1878)
Version 1.4.2-dev [skip actions]
2022-10-26 12:31:30 +00:00
a9148e1b66 Update languages [skip actions] 2022-10-26 12:31:30 +00:00
d99a50b80f Fix whitespace [skip actions] 2022-10-26 12:31:30 +00:00
877f747d01 Update README and fil-PH (#1901)
* made it more  c l e a r e r

* add .

* Update README.md

* Capitalised HTTPS

* update actions to build

* fixed typo

Fixed the bullet point spacing, removed http://mitm.it as the download page don't exist anymore, added `mitmproxy-ca-cert.cer` and save script into the instruction.

* added additional info about mitmproxy

* minor fixes

* Update README_fil-PH

Synced with the README
Removed bad words, insults like saying the user has skill issues
Added some professionally

* grammar fix
2022-10-26 12:15:08 +10:30
18360a6231 Remove references to old repo 2022-10-26 12:08:51 +10:30
a2c4895c16 Make Player lazyload correct Account (should fix #1900) 2022-10-25 18:31:55 +10:30
a5579368bb Lombokify Grasscutter.java some more 2022-10-25 15:49:14 +10:30
ae51f4c046 Update ru-RU.json (#1895) 2022-10-25 10:54:22 +10:30
5b6698f583 Extend setConstCommand "all" (#1884)
* Extend give command "talent"

* Update src/main/java/emu/grasscutter/data/excels/AvatarSkillDepotData.java

Shorten IntStream for getCombatSkills

Co-authored-by: Luke H-W <Birdulon@users.noreply.github.com>

* Fix setSkillLevel to work during avatar construction
Shortening getCombatSkills

* changeSkillLevel now acts as intermediate operation to fetch skillIds

* setSkillLevel changes to allow out of range levels to be normalized

* Update src/main/java/emu/grasscutter/command/commands/GiveCommand.java

Removing recalcStats since it's redundant

Co-authored-by: Luke H-W <Birdulon@users.noreply.github.com>

* Major changes and cleanup:
- AvatarSkillDepotData: removed getCombatSkills since it's unused
- TalentCommand: shortened /talent all using getSkillsAndEnergySkill
- GiveCommand: changed changeSkillLevel to setSkillLevel
- Avatar: delete changeSkillLevel and moved the operation inside setSkillLevel,updated skillId to Integer to catch special cases from GiveCommand

* Small cleanup:
Removed the special case from Avatar to be handled inside of GiveCommand

* Added "all" parameter to SetConst

* Changed all to [all] int SetConstCommand usage

Co-authored-by: Luke H-W <Birdulon@users.noreply.github.com>

Co-authored-by: Luke H-W <Birdulon@users.noreply.github.com>
2022-10-24 14:28:39 +10:30
496cd671da add Quest command alias (#1891) 2022-10-24 12:32:35 +10:30
fd6ed2f15f Added zh-CN translaton for non-translated strings (#1890)
Added zh-CN translation for non-translated strings
2022-10-24 10:34:51 +10:30
ceed05cd15 Updated Polish Translation (#1889) 2022-10-24 10:33:15 +10:30
7d1a7b501b Added "s" alias to SpawnCommand (closes #1840) 2022-10-24 10:32:10 +10:30
8b520b3883 fix: unlocking home bgm doesn't work. (#1886)
* fix: unlocking home bgm doesn't work.

* Update src/main/java/emu/grasscutter/game/home/GameHome.java

Co-authored-by: Luke H-W <Birdulon@users.noreply.github.com>

Co-authored-by: Luke H-W <Birdulon@users.noreply.github.com>
2022-10-23 15:08:17 +10:30
54ad108a14 Fix edge case on FileUtils::getFilenameWithoutPath 2022-10-22 17:15:43 +10:30
ccf182d692 Medicine revival&Login white screen (#1883)
* Update InventorySystem.java

-:[fix] Medicine revival

* Update GameMainQuest.java

-:[fix] Login white screen
2022-10-22 16:51:33 +10:30
c51f7610b2 Save avatar in forceConstellationLevel (closes #1881) 2022-10-22 12:45:27 +10:30
c331a7f288 Fix IllegalStateException when execute toMap (#1879) 2022-10-21 21:49:48 +10:30
be8fbcbc02 Fix StackOverFlow when execute /give all (#1878)
* Fix StackOverFlow when execute /give all

* Use more proper code
2022-10-20 20:22:10 +10:30
c5d30c44eb Version 1.4.2-dev [skip actions] 2022-10-18 14:56:27 +00:00
6146d14dc1 Version 1.4.1
Fix whitespace [skip actions]
Restore ability to run without jar (#1875)
Avoid NPE on CookingCompoundManager init
Extend give command "skill level" & shortening /talent all (#1865)
Remove stale item handling code
Fix gacha avatars (fixes #1870)
Refactor out some EntrySets
send CompoundDataNotify on Login;fix spelling mistakes. (#1869)
Change logging level on item use from info to debug
feat:cooking food ingredient(aka:compound) implementation (#1858)
Remove constellation charge and talent level bonuses from db
Fix ambiguous command regexes
feat: set emoji collection in chat screen (#1864)
feat: set friend enter home option (#1860)
Add a dictionary for Encryption public keys (#1862)
Refactor handbook generation to not use naked textmap getter
Accept resource enums of form "1"
Update ru-RU.json (#1855)
Version 1.4.1-dev [skip actions]
2022-10-18 14:56:27 +00:00
96da4b6117 Fix whitespace [skip actions] 2022-10-18 14:56:26 +00:00
026ef9c51b Restore ability to run without jar (#1875)
* Change JAR_FILE_SYSTEM to allow running from IDE without jar

* Just grab /defaults/data

* Restore FileUtils.getPathsFromResource
2022-10-19 01:26:11 +10:30
577772831c Avoid NPE on CookingCompoundManager init 2022-10-18 19:47:21 +10:30
2b08738043 Extend give command "skill level" & shortening /talent all (#1865)
* Extend give command "talent"

* Update src/main/java/emu/grasscutter/data/excels/AvatarSkillDepotData.java

Shorten IntStream for getCombatSkills

Co-authored-by: Luke H-W <Birdulon@users.noreply.github.com>

* Fix setSkillLevel to work during avatar construction
Shortening getCombatSkills

* changeSkillLevel now acts as intermediate operation to fetch skillIds

* setSkillLevel changes to allow out of range levels to be normalized

* Update src/main/java/emu/grasscutter/command/commands/GiveCommand.java

Removing recalcStats since it's redundant

Co-authored-by: Luke H-W <Birdulon@users.noreply.github.com>

* Major changes and cleanup:
- AvatarSkillDepotData: removed getCombatSkills since it's unused
- TalentCommand: shortened /talent all using getSkillsAndEnergySkill
- GiveCommand: changed changeSkillLevel to setSkillLevel
- Avatar: delete changeSkillLevel and moved the operation inside setSkillLevel,updated skillId to Integer to catch special cases from GiveCommand

* Small cleanup:
Removed the special case from Avatar to be handled inside of GiveCommand

Co-authored-by: Luke H-W <Birdulon@users.noreply.github.com>
2022-10-18 19:45:24 +10:30
b5940da36b Remove stale item handling code 2022-10-18 17:57:49 +10:30
aacf013c06 Fix gacha avatars (fixes #1870) 2022-10-18 15:11:33 +10:30
85f44ebdf3 Refactor out some EntrySets 2022-10-17 20:47:52 +10:30
b5f356ce4f send CompoundDataNotify on Login;fix spelling mistakes. (#1869) 2022-10-17 20:44:06 +10:30
84d02370df Change logging level on item use from info to debug 2022-10-17 19:21:14 +10:30
cf67c44f22 feat:cooking food ingredient(aka:compound) implementation (#1858)
* feat:cooking food ingredient(aka:compound) implementation

Implement food ingredient(compound) feature.Need a thorough test and still has some work to do.

* small bug fix;implement fish processing

* Update src/main/java/emu/grasscutter/server/packet/send/PacketItemAddHintNotify.java

Co-authored-by: Luke H-W <Birdulon@users.noreply.github.com>

* Update Inventory.java

* Update Inventory.java

Co-authored-by: Luke H-W <Birdulon@users.noreply.github.com>
2022-10-17 19:18:05 +10:30
1ecc3f4390 Remove constellation charge and talent level bonuses from db 2022-10-17 16:13:28 +10:30
cbd66a7437 Fix ambiguous command regexes 2022-10-17 13:53:53 +10:30
01e37cce39 feat: set emoji collection in chat screen (#1864) 2022-10-16 22:23:00 +10:30
610a364b9a feat: set friend enter home option (#1860) 2022-10-15 11:58:45 -04:00
a4747abfc9 Add a dictionary for Encryption public keys (#1862) 2022-10-16 00:36:37 +10:30
f3a5bc16a8 Refactor handbook generation to not use naked textmap getter 2022-10-15 23:58:33 +10:30
4a5a7bd6bd Accept resource enums of form "1" 2022-10-15 22:18:54 +10:30
130a01faa4 Update ru-RU.json (#1855) 2022-10-14 03:08:05 +10:30
06fe05bcf7 Version 1.4.1-dev [skip actions] 2022-10-13 13:32:11 +00:00
184 changed files with 13669 additions and 2734 deletions

View File

@ -20,4 +20,4 @@ jobs:
steps: steps:
- uses: superbrothers/close-pull-request@v3 - uses: superbrothers/close-pull-request@v3
with: with:
comment: "This PR has been closed for modifying protected files. See `CONTIBUTING.md` for more information." comment: "This PR has been closed for modifying protected files. See `CONTRIBUTING.md` for more information."

View File

@ -37,13 +37,13 @@
**Note:** If you updated from an older version, delete `config.json` to regenerate it. **Note:** If you updated from an older version, delete `config.json` to regenerate it.
1. Get `grasscutter.jar` 1. Get `grasscutter.jar`
- Download from [actions](https://github.com/Grasscutters/Grasscutter/actions/workflows/build.yml) or [build the server by yourself](#building). - Download from [releases](https://github.com/Grasscutters/Grasscutter/releases/latest) or [actions](https://github.com/Grasscutters/Grasscutter/actions/workflows/build.yml) or [build the server by yourself](#building).
2. Create a `resources` folder in the directory where grasscutter.jar is located and move your `BinOutput, ExcelBinOutput, Readables, Scripts, Subtitle, TextMap` folders there *(Check the [wiki](https://github.com/Grasscutters/Grasscutter/wiki) for more details how to get those.)* 2. Create a `resources` folder in the directory where grasscutter.jar is located and move your `BinOutput, ExcelBinOutput, Readables, Scripts, Subtitle, TextMap` folders there *(Check the [wiki](https://github.com/Grasscutters/Grasscutter/wiki) for more details how to get those.)*
3. Run Grasscutter with `java -jar grasscutter.jar`. **Make sure mongodb service is running as well.** 3. Run Grasscutter with `java -jar grasscutter.jar`. **Make sure mongodb service is running as well.**
### Connecting with the client ### Connecting with the client
½. Create an account using [server console command](https://github.com/Grasscutters/Grasscutter/wiki/Commands#targeting). ½. Create an account in the server console using this [command](https://github.com/Grasscutters/Grasscutter/wiki/Commands#:~:text=account%20%3Ccreate|delete%3E%20%3Cusername%3E%20[UID]).
1. Redirect traffic: (choose one only) 1. Redirect traffic: (choose one only)
- mitmdump: `mitmdump -s proxy.py -k` - mitmdump: `mitmdump -s proxy.py -k`
@ -58,7 +58,6 @@
certutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer certutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
``` ```
- Fiddler Classic: Run Fiddler Classic, turn on `Decrypt HTTPS traffic` in (Tools -> Options -> HTTPS) and change the default port in (Tools -> Options -> Connections) to anything other than `8888`, load [this script](https://github.com/Grasscutters/Grasscutter/wiki/Resources#fiddler-classic-jscript) (copy and paste the script in the `FiddlerScript` tab) and click the `Save Script` button. - Fiddler Classic: Run Fiddler Classic, turn on `Decrypt HTTPS traffic` in (Tools -> Options -> HTTPS) and change the default port in (Tools -> Options -> Connections) to anything other than `8888`, load [this script](https://github.com/Grasscutters/Grasscutter/wiki/Resources#fiddler-classic-jscript) (copy and paste the script in the `FiddlerScript` tab) and click the `Save Script` button.
- [Hosts file](https://github.com/Grasscutters/Grasscutter/wiki/Resources#hosts-file) - [Hosts file](https://github.com/Grasscutters/Grasscutter/wiki/Resources#hosts-file)
@ -67,7 +66,7 @@
- For mitmproxy: After setting up the network proxy and installing the certificate, check http://mitm.it/ if traffic is passing through mitmproxy. - For mitmproxy: After setting up the network proxy and installing the certificate, check http://mitm.it/ if traffic is passing through mitmproxy.
**You can also use `start.cmd` to start servers and proxy daemons automatically, but you have to set up `JAVA_HOME` enviroment and configure the `start_config.cmd` file.** **You can also use `start.cmd` to start servers and proxy daemons automatically, but you have to set up `JAVA_HOME` environment and configure the `start_config.cmd` file.**
### Building ### Building
@ -102,7 +101,6 @@ You can find the output jar in the root of the project folder.
# Quick Troubleshooting # Quick Troubleshooting
* If compiling wasn't successful, please check your JDK installation (Make sure its JDK 17 or higher and validated JDK's bin PATH variable) * If compiling wasn't successful, please check your JDK installation (Make sure its JDK 17 or higher and validated JDK's bin PATH variable).
* My client doesn't connect, doesn't login, 4206, etc... - Mostly your proxy daemon setup is *the issue*, if using * My client doesn't connect, doesn't login, 4206, etc... - Mostly your proxy daemon setup is *the issue*. If you're using Fiddler, change the default port to anything other than 8888.
Fiddler make sure it running on another port except 8888
* Startup sequence: MongoDB > Grasscutter > Proxy Daemon (mitmdump, fiddler, etc.) > Game * Startup sequence: MongoDB > Grasscutter > Proxy Daemon (mitmdump, fiddler, etc.) > Game

View File

@ -66,7 +66,7 @@ certutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
-עריכת [קובץ הHosts](https://github.com/Melledy/Grasscutter/wiki/Running#traffic-route-map) -עריכת [קובץ הHosts](https://github.com/Grasscutters/Grasscutter/wiki/Running#traffic-route-map)
2. תשנו את שרת בproxy שלכם ל`127.0.0.1:8080` 2. תשנו את שרת בproxy שלכם ל`127.0.0.1:8080`

View File

@ -63,7 +63,7 @@
- Fiddler Classic: Ejecuta Fiddler Classic, activa `Decrypt https traffic` en las opciones y cambia el puerto por defecto ahí (Herramientas -> Opciones -> Conexiones) a alguno que no sea `8888`, y carga [este script](https://github.lunatic.moe/fiddlerscript). - Fiddler Classic: Ejecuta Fiddler Classic, activa `Decrypt https traffic` en las opciones y cambia el puerto por defecto ahí (Herramientas -> Opciones -> Conexiones) a alguno que no sea `8888`, y carga [este script](https://github.lunatic.moe/fiddlerscript).
- [Archivo Hosts](https://github.com/Melledy/Grasscutter/wiki/Running#traffic-route-map) - [Archivo Hosts](https://github.com/Grasscutters/Grasscutter/wiki/Running#traffic-route-map)
2. Establece el proxy de red a `127.0.0.1:8080` o el puerto de proxy que pusiste. 2. Establece el proxy de red a `127.0.0.1:8080` o el puerto de proxy que pusiste.

View File

@ -7,11 +7,9 @@
**Atensyon:** Ang mga kontributor ay laging welcome sa proyektong ito. Bago mag-bigay ng kontribusyon, basahin muna ng mabuti ang [Code of Conduct](https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md). **Atensyon:** Ang mga kontributor ay laging welcome sa proyektong ito. Bago mag-bigay ng kontribusyon, basahin muna ng mabuti ang [Code of Conduct](https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md).
<b>(Basahin ha, hindi titingin lang)</b> ## Ang mga kasalukuyang features
## Ang mga current features * Logging in
* Login system
* Combat * Combat
* Friends list * Friends list
* Teleportation * Teleportation
@ -22,62 +20,61 @@
## Quick setup guide ## Quick setup guide
**Atensyon:** Kung di mo talaga kaya o hindi mo maintindihan ang wiki, maaari kang sumali sa aming server [Discord](https://discord.gg/T5vZU6UyeG). **Atensyon:** Para sa mga nangangailangan ng suporta, maaari kang sumali sa aming server [Discord](https://discord.gg/T5vZU6UyeG).
### Ang mga kailangan ### Ang mga kailangan
* Java SE - 17 ([link](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)) * [Java SE - 17](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) or higher
**Atensyon:** Kung gusto mo lang **paganahin** ang server, then **jre** is pwede naman. **Atensyon:** Kung gusto mo lang **paganahin** ang server, pwede naman ang **jre**.
* [MongoDB](https://www.mongodb.com/try/download/community) (recommended 4.0+) * [MongoDB](https://www.mongodb.com/try/download/community) (recommended 4.0+)
* Proxy daemon: mitmproxy (mitmdump, recommended), Fiddler Classic, etc. * Proxy Daemon: [mitmproxy](https://mitmproxy.org/) (mitmdump, recommended), [Fiddler Classic](https://telerik-fiddler.s3.amazonaws.com/fiddler/FiddlerSetup.exe), etc.
### Running ### Running
**Atensyon:** Kung nag-update ka galing sa old version, paki-delete ang `config.json` para mag-regenerate ulit. **Atensyon:** Kung nag-update ka galing sa lumang version, paki-delete ang `config.json` para mag-regenerate ulit.
1. Get `grasscutter.jar` 1. Get `grasscutter.jar`
- Download ka from [actions](https://github.com/Grasscutters/Grasscutter/suites/6895963598/artifacts/267483297) - I-download mo sa [releases](https://github.com/Grasscutters/Grasscutter/releases/latest) o sa [actions](https://github.com/Grasscutters/Grasscutter/actions/workflows/build.yml) o [bumuo ng iyong sariling server](#building).
- [Build mo ung jar by yourself](#Building) 2. Gawa ka ng `resources` folder sa directory kung nasaan ang grasscutter.jar at ilagay ang `BinOutput, ExcelBinOutput, Readables, Scripts, Subtitle, TextMap` folders sa loob ng resources folder *(Tingnan mo ang [wiki](https://github.com/Grasscutters/Grasscutter/wiki) para malaman mo kung saan mo makukuha yan)*
2. Gawa ka ng `resources` folder sa directory kung nasaan ang grasscutter.jar at ilagay ang `BinOutput` at `ExcelBinOutput` sa loob ng resources folder *(Check mo ang [wiki](https://github.com/Grasscutters/Grasscutter/wiki) para malaman mo san mo makukuha yan)* 3. Paandarin ang Grasscutter gamit ang command na `java -jar grasscutter.jar`. **Siguraduhin mo na ang mongodb service ay naka-open din.**
3. Paandarin ang Grasscutter gamit ang command na `java -jar grasscutter.jar`. **Make sure na gumagana ang mongodb (Google mo nalang kung pano mo malalaman)**
### Connecting with the client ### Connecting with the client
½. Create ka ng account gamit ang [server console command](https://github.com/Grasscutters/Grasscutter/wiki/Commands#targeting). ½. Gumawa ng account sa server console gamit ang [command](https://github.com/Grasscutters/Grasscutter/wiki/Commands#:~:text=account%20%3Ccreate|delete%3E%20%3Cusername%3E%20[UID]) na ito.
1. Redirect traffic: (choose one) 1. Redirect traffic: (pumili lang dapat ng isa)
- mitmdump: `mitmdump -s proxy.py -k` - mitmdump: `mitmdump -s proxy.py -k`
Trust CA certificate: - Trust CA certificate:
**Note:** Usually ang CA certificate ay nakalagay sa `%USERPROFILE%\ .mitmproxy`, o pwede mo naman i-download from `http://mitm.it` - Ang CA certificate ay nasa `%USERPROFILE%\.mitmproxy`, i-double click ang `mitmproxy-ca-cert.cer` para ma-[install](https://docs.microsoft.com/en-us/skype-sdk/sdn/articles/installing-the-trusted-root-certificate#installing-a-trusted-root-certificate) o...
Double click para ma-[install](https://docs.microsoft.com/en-us/skype-sdk/sdn/articles/installing-the-trusted-root-certificate#installing-a-trusted-root-certificate) or ... - Via command line *(kailangan ng administration privileges)*
- Gamit ang command line (cmd.exe) ```shell
certutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
```
```shell - Fiddler Classic: Paadarin ang Fiddler Classic, turn on mo yung `Decrypt https traffic` sa (Tools -> Options -> HTTPS) at baguhin mo ang default port na nakalagay (Tools -> Options -> Connections) sa anumang numero maliban sa `8888`, i-load ang [script](https://github.com/Grasscutters/Grasscutter/wiki/Resources#fiddler-classic-jscript) na ito (copy and paste ang script sa `FiddlerScript` tab) at i-click ang `Save Script` button.
certutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
```
- Fiddler Classic: Paadarin ang Fiddler Classic, tsaka turn on mo yung `Decrypt https traffic` sa settings at baguhin mo yung default port na nakalagay (Tools -> Options -> Connections) to anything other than `8888`, at saka mo i-load [itong script](https://github.lunatic.moe/fiddlerscript). - [Hosts file](https://github.com/Grasscutters/Grasscutter/wiki/Resources#hosts-file)
- [Hosts file](https://github.com/Melledy/Grasscutter/wiki/Running#traffic-route-map)
2. Set mo ung proxy sa `127.0.0.1:8080` or dun sa proxy port na iyong inilagay. 2. Set mo ung proxy sa `127.0.0.1:8080` or dun sa proxy port na iyong inilagay.
**pwede mo rin gamitin ang `start.cmd` to start the servers and proxy daemons automatically, pero kailagan mong i-setup ang JAVA_HOME enviroment** - Para sa mitmproxy: Pagkatapos mong i-setup ang network proxy at sa pag-install ng certificate, tingnan mo sa http://mitm.it/ kung ang traffic ay dumadaan sa mitmproxy.
**Pwede mo rin gamitin ang `start.cmd` to start the servers and proxy daemons automatically, pero kailagan mong i-setup ang JAVA_HOME environment at i-configure ang `start_config.cmd` file.**
### Building ### Building
Ang Grasscutter ay gumagamit ng gradle for depedencies at building. Ang Grasscutter ay gumagamit ng Gradle para sa depedencies at building.
**Mga kailangan:** **Mga kailangan:**
- [Java SE Development Kits - 17](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) - [Java SE Development Kits - 17](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) or higher
- [Git](https://git-scm.com/downloads) - [Git](https://git-scm.com/downloads)
##### Windows ##### Windows
@ -98,17 +95,12 @@ chmod +x gradlew
./gradlew jar # Compile jar ./gradlew jar # Compile jar
``` ```
Pag-katapos mong i-compile, check mo yung [project](https://github.com/grasscutters/grasscutter) directory at saka makikita mo ung jar na kinompile mo. Usually pag-dev version, ang dapat nakalagay jan ay `grasscutter-<version>-dev.jar`. Bulag ka pag-hindi mo pa yan nakita. Pag-katapos mong i-compile, check mo yung project directory at makikita mo yung jar na kinompile mo. Usually pag-dev version, ang dapat nakalagay diyan ay `grasscutter-<version>-dev.jar`.
### Atensyon: ang mga server commands ay nasa [wiki](https://github.com/Grasscutters/Grasscutter/wiki/Commands)! ### Ang mga server commands ay nasa [wiki](https://github.com/Grasscutters/Grasscutter/wiki/Commands) na!
# Quick Troubleshooting # Quick Troubleshooting
* Kung hindi nag-compile, paki-check ung JDK installation mo (JDK 17 at JDK's bin PATH variable). Pag-hindi mo pa rin na-compile o hindi mo ma-gets, isa lang masasabi ko sayo, may skill issue+reading issue ka. * Kung hindi nag-compile, paki-check ung JDK installation mo (JDK 17 at JDK's bin PATH variable).
* Hindi ako maka-connect, ayaw mag-login, 4206, etc... - `Usually proxy may kasalanan nyan`, ito ung pinaka-malalang skill issue na pwede mong makuha, sa lahat ng problems sa gc. Kung ayaw mo nyan, basahin mo ito. * Hindi ako maka-connect, ayaw mag-login, 4206, etc... - Mostly ang proxy setup mo ang may kasalanan niyan, kung gamit mo ay Fiddler, paki-sigurado na naka-set ung port sa kahit ano except sa 8888.
* Ang pagkakasunud-sunod: MongoDB > Grasscutter > Proxy Daemon (mitmdump, fiddler, etc.) > Game
Kung <b>Fiddler user</b> ka, paki-sigurado na naka-set ung port sa kahit ano except sa `8888`. (8888 port is for hoyoverse spider logs, in case na hindi mo alam)
* Startup sequence: MongoDB > Grasscutter > Proxy daemon o Proxy service (mitmdump, fiddler, etc.)
<b> KUNG HINDI MO TALAGA MAINTINDIHAN, LUMAYAS KA NA DITO.........
PUTANG INA MO, TAGLISH NA NGA YAN. TAS HINDI MO PA MA-GETS LMAO</b>

View File

@ -63,7 +63,7 @@
- Fiddler Classic: Exécutez Fiddler Classic, Activez `Decrypt https traffic` dans les paramètres et changez le port par défaut ici (Tools -> Options -> Connections) à autre chose que `8888`, et chargez [ce script](https://github.lunatic.moe/fiddlerscript). - Fiddler Classic: Exécutez Fiddler Classic, Activez `Decrypt https traffic` dans les paramètres et changez le port par défaut ici (Tools -> Options -> Connections) à autre chose que `8888`, et chargez [ce script](https://github.lunatic.moe/fiddlerscript).
- [Fichier hosts](https://github.com/Melledy/Grasscutter/wiki/Running#traffic-route-map) - [Fichier hosts](https://github.com/Grasscutters/Grasscutter/wiki/Running#traffic-route-map)
2. Définissez le proxy du réseau comme `127.0.0.1:8080` ou le port du proxy que vous avez spécifié. 2. Définissez le proxy du réseau comme `127.0.0.1:8080` ou le port du proxy que vous avez spécifié.

View File

@ -63,7 +63,7 @@
- Fiddler Classic: Jalankan Fiddler Classic, nyalakan `Decrypt https traffic` dalam setting dan ubah port default di sana (Tools -> Options -> Connections) ke apa pun selain `8888`, dan muat [skrip ini](https://github.lunatic.moe/fiddlerscript). - Fiddler Classic: Jalankan Fiddler Classic, nyalakan `Decrypt https traffic` dalam setting dan ubah port default di sana (Tools -> Options -> Connections) ke apa pun selain `8888`, dan muat [skrip ini](https://github.lunatic.moe/fiddlerscript).
- [File host](https://github.com/Melledy/Grasscutter/wiki/Running#traffic-route-map) - [File host](https://github.com/Grasscutters/Grasscutter/wiki/Running#traffic-route-map)
2. Atur proxy jaringan ke `127.0.0.1:8080` atau port proxy yang anda tentukan. 2. Atur proxy jaringan ke `127.0.0.1:8080` atau port proxy yang anda tentukan.

View File

@ -6,7 +6,7 @@
[EN](README.md) | [简中](README_zh-CN.md) | [繁中](README_zh-TW.md) | [FR](README_fr-FR.md) | [ES](README_es-ES.md) | [HE](README_HE.md) | [RU](README_ru-RU.md) | [PL](README_pl-PL.md) | [ID](README_id-ID.md) | [KR](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_ja-JP.md) [EN](README.md) | [简中](README_zh-CN.md) | [繁中](README_zh-TW.md) | [FR](README_fr-FR.md) | [ES](README_es-ES.md) | [HE](README_HE.md) | [RU](README_ru-RU.md) | [PL](README_pl-PL.md) | [ID](README_id-ID.md) | [KR](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_ja-JP.md)
**:** 私たちはプロジェクトへの貢献者をいつでも歓迎します。 貢献を追加する前に我々の [行動規範](https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md)をよくお読みください. **:** 私たちはプロジェクトへの貢献者をいつでも歓迎します。貢献を追加する前に我々の [行動規範](https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md)をよくお読みください
## 現在機能している物 ## 現在機能している物
@ -21,53 +21,52 @@
## クイックセットアップガイド ## クイックセットアップガイド
**:** サポートが必要な場合はGrasscutterの[Discord](https://discord.gg/T5vZU6UyeG)に参加してください. **:** サポートが必要な場合はGrasscutterの[Discord](https://discord.gg/T5vZU6UyeG)に参加してください
### 動作環境 ### 動作環境
* [JAVAのバージョン17以降](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) * [JAVAのバージョン17以降](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)
**:** サーバーを動作させるだけならjreのみで十分です。 開発をしたい場合JDKが必要になるかもしれません **:** サーバーを動作させるだけならjreのみで十分です。 開発をしたい場合JDKが必要になるかもしれません
* [MongoDB](https://www.mongodb.com/try/download/community) (バージョン4.0以降を推奨) * [MongoDB](https://www.mongodb.com/try/download/community) (バージョン4.0以降を推奨)
* プロキシツール: [mitmproxy](https://mitmproxy.org/) (mitmdump, 推奨)[Fiddler Classic](https://telerik-fiddler.s3.amazonaws.com/fiddler/FiddlerSetup.exe)その他。 * プロキシツール: [mitmproxy](https://mitmproxy.org/) (mitmdump, 推奨)[Fiddler Classic](https://telerik-fiddler.s3.amazonaws.com/fiddler/FiddlerSetup.exe)その他。
### 起動方法 ### 起動方法
**:** もしサーバーをアップデートしたい場合は`config.json`を削除してから再生成してください **:** もしサーバーをアップデートしたい場合は`config.json`を削除してから再生成してください
1. `grasscutter.jar`を入手する 1. `grasscutter.jar`を入手する
- [action](https://github.com/Grasscutters/Grasscutter/actions) からダウンロードするか [自分でビルド](https://github.com/Grasscutters/Grasscutter#building)してください。 - [releases](https://github.com/Grasscutters/Grasscutter/releases/latest) か [action](https://github.com/Grasscutters/Grasscutter/actions) からダウンロードするか[自分でビルド](https://github.com/Grasscutters/Grasscutter#building)してください。
2. `grasscutter.jar` があるディレクトリに `resources` フォルダーを作成しそこに `BinOutput, ExcelBinOutput, Readables, Scripts, Subtitle, TextMap` を移動してください *(`resources` フォルダの中身の入手方法については [wiki](https://github.com/Grasscutters/Grasscutter/wiki) を参照してください.)* 2. `grasscutter.jar` があるディレクトリに `resources` フォルダーを作成しそこに `BinOutput, ExcelBinOutput, Readables, Scripts, Subtitle, TextMap` を移動してください *(`resources` フォルダの中身の入手方法については [wiki](https://github.com/Grasscutters/Grasscutter/wiki) を参照してください.)*
3. コマンドプロンプトに`java -jar grasscutter.jar`を入力しGrasscutterを起動してください**このときMongoDBも実行する必要があります** 3. コマンドプロンプトに`java -jar grasscutter.jar`を入力しGrasscutterを起動してください**このときMongoDBも実行する必要があります**
### クライアントとの接続 ### クライアントとの接続
½. [サーバーコンソールコマンド](https://github.com/Grasscutters/Grasscutter/wiki/Commands#targeting)を使用してアカウントを作成してください。 ½. [このコマンド](https://github.com/Grasscutters/Grasscutter/wiki/Commands#commands-for-server-admins)をサーバーコンソールから使用してアカウントを作成してください。
1. 通信内容をリダイレクトする: (どちらか一つを選択してください) 1. 通信内容をリダイレクトする: (どちらか一つを選択してください)
- mitmdump: `mitmdump -s proxy.py -k` - mitmdump: `mitmdump -s proxy.py -k`
CA証明書を信頼する: - CA証明書を信頼する:
**:** CA証明書は`%USERPROFILE%\.mitmproxy`に保存されているか、`http://mitm.it`からダウンロードできます。 - **:** CA証明書は`%USERPROFILE%\.mitmproxy`に保存されています。ダブルクリックして[インストール](https://docs.microsoft.com/en-us/skype-sdk/sdn/articles/installing-the-trusted-root-certificate#installing-a-trusted-root-certificate)するか...
ダブルクリックして[インストール](https://docs.microsoft.com/en-us/skype-sdk/sdn/articles/installing-the-trusted-root-certificate#installing-a-trusted-root-certificate)するか... - コマンドライン経由でインストールします
- コマンドライン経由でインストールします
```shell ```shell
certutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer certutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
``` ```
- Fiddler Classic: Fiddler Classicを起動し設定から`Decrypt https traffic`をオンにしてください。 (Tools -> Options -> Connections) に有るポート番号の設定を`8888`以外に設定してくださいその後この[スクリプト](https://github.com/Grasscutters/Grasscutter/wiki/Resources#fiddler-classic-jscript)をロードします - Fiddler Classic: Fiddler Classicを起動し(Tools -> Options -> HTTPS)から`Decrypt https traffic`をオンにしてください。 (Tools -> Options -> Connections) に有るポート番号の設定を`8888`以外に設定してくださいその後この[スクリプト](https://github.com/Grasscutters/Grasscutter/wiki/Resources#fiddler-classic-jscript)をFiddlerScriptタブにコピペしてロードします
- [ホストファイル](https://github.com/Grasscutters/Grasscutter/wiki/Resources#hosts-file) - [ホストファイル](https://github.com/Grasscutters/Grasscutter/wiki/Resources#hosts-file)
2. ネットワークプロキシを `127.0.0.1:(自分で設定したポート番号)` に設定してください。 2. ネットワークプロキシを `127.0.0.1:(自分で設定したポート番号)` に設定してください。
- mitmproxyを使用した場合プロキシの設定と証明書のインストールが終わった後、http://mitm.it/ でトラフィックがmitmproxyを通過しているか確認しましょう。
**`start_config.cmd`でJAVAのパスを指定している必要があります。 `start.cmd`でmitmdumpとサーバーをまとめて起動することが出来ます。** **`start.cmd`でmitmdumpとサーバーをまとめて起動することが出来ます。ただ、事前に`start_config.cmd`でJAVAのパスを指定している必要があります。**
### ビルド ### ビルド
@ -75,7 +74,7 @@ GrasscutterはGradleを使用して依存関係とビルドを処理していま
**要件:** **要件:**
- [Java SE 開発キット - 17以降](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) - [Java SE Development Kits - 17以降](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)
- [Git](https://git-scm.com/downloads) - [Git](https://git-scm.com/downloads)
##### Windows ##### Windows
@ -96,13 +95,13 @@ chmod +x gradlew
./gradlew jar # コンパイル ./gradlew jar # コンパイル
``` ```
コンパイルされたjarファイルはプロクトフォルダのルートに有ります 生成されたjarファイルはプロジェクトフォルダのルートに有ります
### コマンドリストは[wiki](https://github.com/Grasscutters/Grasscutter/wiki/Commands)へ移動しました。 ### コマンドリストは[wiki](https://github.com/Grasscutters/Grasscutter/wiki/Commands)へ移動しました。
# トラブルシューティング # トラブルシューティング
* コンパイルが失敗した場合JDKがインストールされているか確認してください (JDKの17以降と環境変数でJAVAのパスが設定されている必要があります) * コンパイルが失敗した場合JDKがインストールされているか確認してください(JDKのバージョンが17以降であることと、環境変数でJDKのパスが設定されている必要があります)
* クライアントが接続できないログインできないエラーコード4206、 その他... - ほとんどの場合、プロキシ デーモンの設定が問題です。 * クライアントが接続できないログインできないエラーコード4206・またその他場合、ほとんど、プロキシデーモンの設定が問題です。Fiddlerを使っている場合はデフォルトポートを8888以外の別のポートに変更してみてください。
Fiddlerを使用している場合はポートが8888以外に設定されていることを確認してください Fiddlerを使用している場合はポートが8888以外に設定されていることを確認してください
* 起動シーケンス(順番): MongoDB > Grasscutter > プロキシツール (mitmdumpかfiddlerその他) > ゲーム * 起動シーケンス(順番): MongoDB > Grasscutter > プロキシツール (mitmdumpかfiddlerその他) > ゲーム

View File

@ -63,7 +63,7 @@
- Fiddler Classic : Fiddler Classic을 실행한 후, Setting에서 `Decrypt https traffic` 옵션을 켜고, Tools -> Options -> Connections에 있는 기본 포트를 `8888`을 제외한 다른 포트로 지정합니다. 그리고 [이 스크립트](https://github.lunatic.moe/fiddlerscript)를 불러옵니다. - Fiddler Classic : Fiddler Classic을 실행한 후, Setting에서 `Decrypt https traffic` 옵션을 켜고, Tools -> Options -> Connections에 있는 기본 포트를 `8888`을 제외한 다른 포트로 지정합니다. 그리고 [이 스크립트](https://github.lunatic.moe/fiddlerscript)를 불러옵니다.
- [호스트 파일](https://github.com/Melledy/Grasscutter/wiki/Running#traffic-route-map) - [호스트 파일](https://github.com/Grasscutters/Grasscutter/wiki/Running#traffic-route-map)
2. 네트워크 프록시를 `127.0.0.1:8080` 로 설정하거나 지정한 프록시 포트로 설정합니다. 2. 네트워크 프록시를 `127.0.0.1:8080` 로 설정하거나 지정한 프록시 포트로 설정합니다.

View File

@ -63,7 +63,7 @@
- Fiddler Classic: Uruchom Fiddler Classic, włącz `Decrypt https traffic` w ustawieniach oraz zmień domyślny port (Tools -> Options -> Connections) na dowolny inny niż `8888`, i wczytaj [ten skrypt](https://github.lunatic.moe/fiddlerscript) (w polu FiddlerScript). - Fiddler Classic: Uruchom Fiddler Classic, włącz `Decrypt https traffic` w ustawieniach oraz zmień domyślny port (Tools -> Options -> Connections) na dowolny inny niż `8888`, i wczytaj [ten skrypt](https://github.lunatic.moe/fiddlerscript) (w polu FiddlerScript).
- [Plik hosts](https://github.com/Melledy/Grasscutter/wiki/Running#traffic-route-map) - [Plik hosts](https://github.com/Grasscutters/Grasscutter/wiki/Running#traffic-route-map)
2. Ustaw serwer proxy na `127.0.0.1:8080` albo inny wybrany przez ciebie port. 2. Ustaw serwer proxy na `127.0.0.1:8080` albo inny wybrany przez ciebie port.

View File

@ -63,7 +63,7 @@
- Fiddler Classic: Запустите Fiddler Classic, включите настройку `Decrypt https traffic` в опциях и измените порт по умолчанию (Меню -> Tools -> Options -> Connections) на что-то не равное `8888`, после чего запустите [этот скрипт](https://github.lunatic.moe/fiddlerscript) во вкладке FiddlerSrcipt. - Fiddler Classic: Запустите Fiddler Classic, включите настройку `Decrypt https traffic` в опциях и измените порт по умолчанию (Меню -> Tools -> Options -> Connections) на что-то не равное `8888`, после чего запустите [этот скрипт](https://github.lunatic.moe/fiddlerscript) во вкладке FiddlerSrcipt.
- [Файл hosts](https://github.com/Melledy/Grasscutter/wiki/Running#traffic-route-map) - [Файл hosts](https://github.com/Grasscutters/Grasscutter/wiki/Running#traffic-route-map)
2. Установите прокси сети в `127.0.0.1:8080`, либо в тот порт прокси, который вы задали. 2. Установите прокси сети в `127.0.0.1:8080`, либо в тот порт прокси, который вы задали.

View File

@ -43,7 +43,7 @@ sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17
group = 'xyz.grasscutters' group = 'xyz.grasscutters'
version = '1.4.0' version = '1.4.3'
sourceCompatibility = 17 sourceCompatibility = 17
targetCompatibility = 17 targetCompatibility = 17

Binary file not shown.

270
gradlew vendored
View File

@ -1,7 +1,7 @@
#!/usr/bin/env sh #!/bin/sh
# #
# Copyright 2015 the original author or authors. # Copyright © 2015-2021 the original authors.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -17,78 +17,113 @@
# #
############################################################################## ##############################################################################
## #
## Gradle start up script for UN*X # Gradle start up script for POSIX generated by Gradle.
## #
# Important for running:
#
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
# noncompliant, but you have some other compliant shell such as ksh or
# bash, then to run this script, type that shell name before the whole
# command line, like:
#
# ksh Gradle
#
# Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features:
# * functions;
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
# * compound commands having a testable exit status, especially «case»;
# * various built-in commands including «command», «set», and «ulimit».
#
# Important for patching:
#
# (2) This script targets any POSIX shell, so it avoids extensions provided
# by Bash, Ksh, etc; in particular arrays are avoided.
#
# The "traditional" practice of packing multiple parameters into a
# space-separated string is a well documented source of bugs and security
# problems, so this is (mostly) avoided, by progressively accumulating
# options in "$@", and eventually passing that to Java.
#
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
# see the in-line comments for details.
#
# There are tweaks for specific operating systems such as AIX, CygWin,
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
#
############################################################################## ##############################################################################
# Attempt to set APP_HOME # Attempt to set APP_HOME
# Resolve links: $0 may be a link # Resolve links: $0 may be a link
PRG="$0" app_path=$0
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do # Need this for daisy-chained symlinks.
ls=`ls -ld "$PRG"` while
link=`expr "$ls" : '.*-> \(.*\)$'` APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
if expr "$link" : '/.*' > /dev/null; then [ -h "$app_path" ]
PRG="$link" do
else ls=$( ls -ld "$app_path" )
PRG=`dirname "$PRG"`"/$link" link=${ls#*' -> '}
fi case $link in #(
/*) app_path=$link ;; #(
*) app_path=$APP_HOME$link ;;
esac
done done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle" APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"` APP_BASE_NAME=${0##*/}
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value. # Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum" MAX_FD=maximum
warn () { warn () {
echo "$*" echo "$*"
} } >&2
die () { die () {
echo echo
echo "$*" echo "$*"
echo echo
exit 1 exit 1
} } >&2
# OS specific support (must be 'true' or 'false'). # OS specific support (must be 'true' or 'false').
cygwin=false cygwin=false
msys=false msys=false
darwin=false darwin=false
nonstop=false nonstop=false
case "`uname`" in case "$( uname )" in #(
CYGWIN* ) CYGWIN* ) cygwin=true ;; #(
cygwin=true Darwin* ) darwin=true ;; #(
;; MSYS* | MINGW* ) msys=true ;; #(
Darwin* ) NONSTOP* ) nonstop=true ;;
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM. # Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables # IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java" JAVACMD=$JAVA_HOME/jre/sh/java
else else
JAVACMD="$JAVA_HOME/bin/java" JAVACMD=$JAVA_HOME/bin/java
fi fi
if [ ! -x "$JAVACMD" ] ; then if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
@ -97,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the
location of your Java installation." location of your Java installation."
fi fi
else else
JAVACMD="java" JAVACMD=java
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the Please set the JAVA_HOME variable in your environment to match the
@ -105,84 +140,95 @@ location of your Java installation."
fi fi
# Increase the maximum file descriptors if we can. # Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
MAX_FD_LIMIT=`ulimit -H -n` case $MAX_FD in #(
if [ $? -eq 0 ] ; then max*)
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then MAX_FD=$( ulimit -H -n ) ||
MAX_FD="$MAX_FD_LIMIT" warn "Could not query maximum file descriptor limit"
fi esac
ulimit -n $MAX_FD case $MAX_FD in #(
if [ $? -ne 0 ] ; then '' | soft) :;; #(
warn "Could not set maximum file descriptor limit: $MAX_FD" *)
fi ulimit -n "$MAX_FD" ||
else warn "Could not set maximum file descriptor limit to $MAX_FD"
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin or MSYS, switch paths to Windows format before running java
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac esac
fi fi
# Escape application args # Collect all arguments for the java command, stacking in reverse order:
save () { # * args from the command line
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done # * the main class name
echo " " # * -classpath
} # * -D...appname settings
APP_ARGS=$(save "$@") # * --module-path (only if needed)
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
# Collect all arguments for the java command, following the shell quoting and substitution rules # For Cygwin or MSYS, switch paths to Windows format before running java
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong JAVACMD=$( cygpath --unix "$JAVACMD" )
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
cd "$(dirname "$0")" # Now convert the arguments - kludge to limit ourselves to /bin/sh
for arg do
if
case $arg in #(
-*) false ;; # don't mess with options #(
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
[ -e "$t" ] ;; #(
*) false ;;
esac
then
arg=$( cygpath --path --ignore --mixed "$arg" )
fi
# Roll the args list around exactly as many times as the number of
# args, so each arg winds up back in the position where it started, but
# possibly modified.
#
# NB: a `for` loop captures its iteration list before it begins, so
# changing the positional parameters here affects neither the number of
# iterations, nor the values presented in `arg`.
shift # remove old arg
set -- "$@" "$arg" # push replacement arg
done
fi fi
# Collect all arguments for the java command;
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
# shell script including quotes and variable substitutions, so put them in
# double quotes to make sure that they get re-expanded; and
# * put everything else in single quotes, so that it's not re-expanded.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
org.gradle.wrapper.GradleWrapperMain \
"$@"
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
#
# In Bash we could simply go:
#
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
# set -- "${ARGS[@]}" "$@"
#
# but POSIX shell has neither arrays nor command substitution, so instead we
# post-process each arg (as a line of input to sed) to backslash-escape any
# character that might be a shell metacharacter, then use eval to reverse
# that process (while maintaining the separation between arguments), and wrap
# the whole thing up as a single "set" statement.
#
# This will of course break if any of these variables contains a newline or
# an unmatched quote.
#
eval "set -- $(
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
xargs -n1 |
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
tr '\n' ' '
)" '"$@"'
exec "$JAVACMD" "$@" exec "$JAVACMD" "$@"

2
gradlew-jar.bat Normal file
View File

@ -0,0 +1,2 @@
call .\gradlew jar
pause

25
gradlew.bat vendored
View File

@ -29,6 +29,9 @@ if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0 set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME% set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@ -37,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1 %JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init if "%ERRORLEVEL%" == "0" goto execute
echo. echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@ -51,7 +54,7 @@ goto fail
set JAVA_HOME=%JAVA_HOME:"=% set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init if exist "%JAVA_EXE%" goto execute
echo. echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
@ -61,28 +64,14 @@ echo location of your Java installation.
goto fail goto fail
:init
@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
:execute :execute
@rem Setup the command line @rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle @rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end :end
@rem End local scope for the variables with windows NT shell @rem End local scope for the variables with windows NT shell

View File

@ -0,0 +1,663 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: ChatEmojiCollectionData.proto
package emu.grasscutter.net.proto;
public final class ChatEmojiCollectionDataOuterClass {
private ChatEmojiCollectionDataOuterClass() {}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistryLite registry) {
}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistry registry) {
registerAllExtensions(
(com.google.protobuf.ExtensionRegistryLite) registry);
}
public interface ChatEmojiCollectionDataOrBuilder extends
// @@protoc_insertion_point(interface_extends:ChatEmojiCollectionData)
com.google.protobuf.MessageOrBuilder {
/**
* <code>repeated uint32 emoji_id_list = 1;</code>
* @return A list containing the emojiIdList.
*/
java.util.List<java.lang.Integer> getEmojiIdListList();
/**
* <code>repeated uint32 emoji_id_list = 1;</code>
* @return The count of emojiIdList.
*/
int getEmojiIdListCount();
/**
* <code>repeated uint32 emoji_id_list = 1;</code>
* @param index The index of the element to return.
* @return The emojiIdList at the given index.
*/
int getEmojiIdList(int index);
}
/**
* Protobuf type {@code ChatEmojiCollectionData}
*/
public static final class ChatEmojiCollectionData extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:ChatEmojiCollectionData)
ChatEmojiCollectionDataOrBuilder {
private static final long serialVersionUID = 0L;
// Use ChatEmojiCollectionData.newBuilder() to construct.
private ChatEmojiCollectionData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
super(builder);
}
private ChatEmojiCollectionData() {
emojiIdList_ = emptyIntList();
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new ChatEmojiCollectionData();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private ChatEmojiCollectionData(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
int mutable_bitField0_ = 0;
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 8: {
if (!((mutable_bitField0_ & 0x00000001) != 0)) {
emojiIdList_ = newIntList();
mutable_bitField0_ |= 0x00000001;
}
emojiIdList_.addInt(input.readUInt32());
break;
}
case 10: {
int length = input.readRawVarint32();
int limit = input.pushLimit(length);
if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
emojiIdList_ = newIntList();
mutable_bitField0_ |= 0x00000001;
}
while (input.getBytesUntilLimit() > 0) {
emojiIdList_.addInt(input.readUInt32());
}
input.popLimit(limit);
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
if (((mutable_bitField0_ & 0x00000001) != 0)) {
emojiIdList_.makeImmutable(); // C
}
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.internal_static_ChatEmojiCollectionData_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.internal_static_ChatEmojiCollectionData_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.class, emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.Builder.class);
}
public static final int EMOJI_ID_LIST_FIELD_NUMBER = 1;
private com.google.protobuf.Internal.IntList emojiIdList_;
/**
* <code>repeated uint32 emoji_id_list = 1;</code>
* @return A list containing the emojiIdList.
*/
@java.lang.Override
public java.util.List<java.lang.Integer>
getEmojiIdListList() {
return emojiIdList_;
}
/**
* <code>repeated uint32 emoji_id_list = 1;</code>
* @return The count of emojiIdList.
*/
public int getEmojiIdListCount() {
return emojiIdList_.size();
}
/**
* <code>repeated uint32 emoji_id_list = 1;</code>
* @param index The index of the element to return.
* @return The emojiIdList at the given index.
*/
public int getEmojiIdList(int index) {
return emojiIdList_.getInt(index);
}
private int emojiIdListMemoizedSerializedSize = -1;
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
if (getEmojiIdListList().size() > 0) {
output.writeUInt32NoTag(10);
output.writeUInt32NoTag(emojiIdListMemoizedSerializedSize);
}
for (int i = 0; i < emojiIdList_.size(); i++) {
output.writeUInt32NoTag(emojiIdList_.getInt(i));
}
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
{
int dataSize = 0;
for (int i = 0; i < emojiIdList_.size(); i++) {
dataSize += com.google.protobuf.CodedOutputStream
.computeUInt32SizeNoTag(emojiIdList_.getInt(i));
}
size += dataSize;
if (!getEmojiIdListList().isEmpty()) {
size += 1;
size += com.google.protobuf.CodedOutputStream
.computeInt32SizeNoTag(dataSize);
}
emojiIdListMemoizedSerializedSize = dataSize;
}
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData)) {
return super.equals(obj);
}
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData other = (emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData) obj;
if (!getEmojiIdListList()
.equals(other.getEmojiIdListList())) return false;
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
}
int hash = 41;
hash = (19 * hash) + getDescriptor().hashCode();
if (getEmojiIdListCount() > 0) {
hash = (37 * hash) + EMOJI_ID_LIST_FIELD_NUMBER;
hash = (53 * hash) + getEmojiIdListList().hashCode();
}
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
* Protobuf type {@code ChatEmojiCollectionData}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
// @@protoc_insertion_point(builder_implements:ChatEmojiCollectionData)
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionDataOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.internal_static_ChatEmojiCollectionData_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.internal_static_ChatEmojiCollectionData_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.class, emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.Builder.class);
}
// Construct using emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessageV3
.alwaysUseFieldBuilders) {
}
}
@java.lang.Override
public Builder clear() {
super.clear();
emojiIdList_ = emptyIntList();
bitField0_ = (bitField0_ & ~0x00000001);
return this;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.internal_static_ChatEmojiCollectionData_descriptor;
}
@java.lang.Override
public emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData getDefaultInstanceForType() {
return emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.getDefaultInstance();
}
@java.lang.Override
public emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData build() {
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
@java.lang.Override
public emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData buildPartial() {
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData result = new emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData(this);
int from_bitField0_ = bitField0_;
if (((bitField0_ & 0x00000001) != 0)) {
emojiIdList_.makeImmutable();
bitField0_ = (bitField0_ & ~0x00000001);
}
result.emojiIdList_ = emojiIdList_;
onBuilt();
return result;
}
@java.lang.Override
public Builder clone() {
return super.clone();
}
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.setField(field, value);
}
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData) {
return mergeFrom((emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData other) {
if (other == emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.getDefaultInstance()) return this;
if (!other.emojiIdList_.isEmpty()) {
if (emojiIdList_.isEmpty()) {
emojiIdList_ = other.emojiIdList_;
bitField0_ = (bitField0_ & ~0x00000001);
} else {
ensureEmojiIdListIsMutable();
emojiIdList_.addAll(other.emojiIdList_);
}
onChanged();
}
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
private int bitField0_;
private com.google.protobuf.Internal.IntList emojiIdList_ = emptyIntList();
private void ensureEmojiIdListIsMutable() {
if (!((bitField0_ & 0x00000001) != 0)) {
emojiIdList_ = mutableCopy(emojiIdList_);
bitField0_ |= 0x00000001;
}
}
/**
* <code>repeated uint32 emoji_id_list = 1;</code>
* @return A list containing the emojiIdList.
*/
public java.util.List<java.lang.Integer>
getEmojiIdListList() {
return ((bitField0_ & 0x00000001) != 0) ?
java.util.Collections.unmodifiableList(emojiIdList_) : emojiIdList_;
}
/**
* <code>repeated uint32 emoji_id_list = 1;</code>
* @return The count of emojiIdList.
*/
public int getEmojiIdListCount() {
return emojiIdList_.size();
}
/**
* <code>repeated uint32 emoji_id_list = 1;</code>
* @param index The index of the element to return.
* @return The emojiIdList at the given index.
*/
public int getEmojiIdList(int index) {
return emojiIdList_.getInt(index);
}
/**
* <code>repeated uint32 emoji_id_list = 1;</code>
* @param index The index to set the value at.
* @param value The emojiIdList to set.
* @return This builder for chaining.
*/
public Builder setEmojiIdList(
int index, int value) {
ensureEmojiIdListIsMutable();
emojiIdList_.setInt(index, value);
onChanged();
return this;
}
/**
* <code>repeated uint32 emoji_id_list = 1;</code>
* @param value The emojiIdList to add.
* @return This builder for chaining.
*/
public Builder addEmojiIdList(int value) {
ensureEmojiIdListIsMutable();
emojiIdList_.addInt(value);
onChanged();
return this;
}
/**
* <code>repeated uint32 emoji_id_list = 1;</code>
* @param values The emojiIdList to add.
* @return This builder for chaining.
*/
public Builder addAllEmojiIdList(
java.lang.Iterable<? extends java.lang.Integer> values) {
ensureEmojiIdListIsMutable();
com.google.protobuf.AbstractMessageLite.Builder.addAll(
values, emojiIdList_);
onChanged();
return this;
}
/**
* <code>repeated uint32 emoji_id_list = 1;</code>
* @return This builder for chaining.
*/
public Builder clearEmojiIdList() {
emojiIdList_ = emptyIntList();
bitField0_ = (bitField0_ & ~0x00000001);
onChanged();
return this;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:ChatEmojiCollectionData)
}
// @@protoc_insertion_point(class_scope:ChatEmojiCollectionData)
private static final emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData();
}
public static emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser<ChatEmojiCollectionData>
PARSER = new com.google.protobuf.AbstractParser<ChatEmojiCollectionData>() {
@java.lang.Override
public ChatEmojiCollectionData parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new ChatEmojiCollectionData(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser<ChatEmojiCollectionData> parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser<ChatEmojiCollectionData> getParserForType() {
return PARSER;
}
@java.lang.Override
public emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
private static final com.google.protobuf.Descriptors.Descriptor
internal_static_ChatEmojiCollectionData_descriptor;
private static final
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internal_static_ChatEmojiCollectionData_fieldAccessorTable;
public static com.google.protobuf.Descriptors.FileDescriptor
getDescriptor() {
return descriptor;
}
private static com.google.protobuf.Descriptors.FileDescriptor
descriptor;
static {
java.lang.String[] descriptorData = {
"\n\035ChatEmojiCollectionData.proto\"0\n\027ChatE" +
"mojiCollectionData\022\025\n\remoji_id_list\030\001 \003(" +
"\rB\033\n\031emu.grasscutter.net.protob\006proto3"
};
descriptor = com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
new com.google.protobuf.Descriptors.FileDescriptor[] {
});
internal_static_ChatEmojiCollectionData_descriptor =
getDescriptor().getMessageTypes().get(0);
internal_static_ChatEmojiCollectionData_fieldAccessorTable = new
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_ChatEmojiCollectionData_descriptor,
new java.lang.String[] { "EmojiIdList", });
}
// @@protoc_insertion_point(outer_class_scope)
}

View File

@ -0,0 +1,748 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: CompoundQueueData.proto
package emu.grasscutter.net.proto;
public final class CompoundQueueDataOuterClass {
private CompoundQueueDataOuterClass() {}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistryLite registry) {
}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistry registry) {
registerAllExtensions(
(com.google.protobuf.ExtensionRegistryLite) registry);
}
public interface CompoundQueueDataOrBuilder extends
// @@protoc_insertion_point(interface_extends:CompoundQueueData)
com.google.protobuf.MessageOrBuilder {
/**
* <code>uint32 output_count = 1;</code>
* @return The outputCount.
*/
int getOutputCount();
/**
* <code>uint32 compound_id = 4;</code>
* @return The compoundId.
*/
int getCompoundId();
/**
* <code>uint32 output_time = 14;</code>
* @return The outputTime.
*/
int getOutputTime();
/**
* <code>uint32 wait_count = 8;</code>
* @return The waitCount.
*/
int getWaitCount();
}
/**
* Protobuf type {@code CompoundQueueData}
*/
public static final class CompoundQueueData extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:CompoundQueueData)
CompoundQueueDataOrBuilder {
private static final long serialVersionUID = 0L;
// Use CompoundQueueData.newBuilder() to construct.
private CompoundQueueData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
super(builder);
}
private CompoundQueueData() {
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new CompoundQueueData();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private CompoundQueueData(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 8: {
outputCount_ = input.readUInt32();
break;
}
case 32: {
compoundId_ = input.readUInt32();
break;
}
case 64: {
waitCount_ = input.readUInt32();
break;
}
case 112: {
outputTime_ = input.readUInt32();
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.CompoundQueueDataOuterClass.internal_static_CompoundQueueData_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.CompoundQueueDataOuterClass.internal_static_CompoundQueueData_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData.class, emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData.Builder.class);
}
public static final int OUTPUT_COUNT_FIELD_NUMBER = 1;
private int outputCount_;
/**
* <code>uint32 output_count = 1;</code>
* @return The outputCount.
*/
@java.lang.Override
public int getOutputCount() {
return outputCount_;
}
public static final int COMPOUND_ID_FIELD_NUMBER = 4;
private int compoundId_;
/**
* <code>uint32 compound_id = 4;</code>
* @return The compoundId.
*/
@java.lang.Override
public int getCompoundId() {
return compoundId_;
}
public static final int OUTPUT_TIME_FIELD_NUMBER = 14;
private int outputTime_;
/**
* <code>uint32 output_time = 14;</code>
* @return The outputTime.
*/
@java.lang.Override
public int getOutputTime() {
return outputTime_;
}
public static final int WAIT_COUNT_FIELD_NUMBER = 8;
private int waitCount_;
/**
* <code>uint32 wait_count = 8;</code>
* @return The waitCount.
*/
@java.lang.Override
public int getWaitCount() {
return waitCount_;
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
if (outputCount_ != 0) {
output.writeUInt32(1, outputCount_);
}
if (compoundId_ != 0) {
output.writeUInt32(4, compoundId_);
}
if (waitCount_ != 0) {
output.writeUInt32(8, waitCount_);
}
if (outputTime_ != 0) {
output.writeUInt32(14, outputTime_);
}
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
if (outputCount_ != 0) {
size += com.google.protobuf.CodedOutputStream
.computeUInt32Size(1, outputCount_);
}
if (compoundId_ != 0) {
size += com.google.protobuf.CodedOutputStream
.computeUInt32Size(4, compoundId_);
}
if (waitCount_ != 0) {
size += com.google.protobuf.CodedOutputStream
.computeUInt32Size(8, waitCount_);
}
if (outputTime_ != 0) {
size += com.google.protobuf.CodedOutputStream
.computeUInt32Size(14, outputTime_);
}
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData)) {
return super.equals(obj);
}
emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData other = (emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData) obj;
if (getOutputCount()
!= other.getOutputCount()) return false;
if (getCompoundId()
!= other.getCompoundId()) return false;
if (getOutputTime()
!= other.getOutputTime()) return false;
if (getWaitCount()
!= other.getWaitCount()) return false;
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
}
int hash = 41;
hash = (19 * hash) + getDescriptor().hashCode();
hash = (37 * hash) + OUTPUT_COUNT_FIELD_NUMBER;
hash = (53 * hash) + getOutputCount();
hash = (37 * hash) + COMPOUND_ID_FIELD_NUMBER;
hash = (53 * hash) + getCompoundId();
hash = (37 * hash) + OUTPUT_TIME_FIELD_NUMBER;
hash = (53 * hash) + getOutputTime();
hash = (37 * hash) + WAIT_COUNT_FIELD_NUMBER;
hash = (53 * hash) + getWaitCount();
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
* Protobuf type {@code CompoundQueueData}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
// @@protoc_insertion_point(builder_implements:CompoundQueueData)
emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueDataOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.CompoundQueueDataOuterClass.internal_static_CompoundQueueData_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.CompoundQueueDataOuterClass.internal_static_CompoundQueueData_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData.class, emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData.Builder.class);
}
// Construct using emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessageV3
.alwaysUseFieldBuilders) {
}
}
@java.lang.Override
public Builder clear() {
super.clear();
outputCount_ = 0;
compoundId_ = 0;
outputTime_ = 0;
waitCount_ = 0;
return this;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return emu.grasscutter.net.proto.CompoundQueueDataOuterClass.internal_static_CompoundQueueData_descriptor;
}
@java.lang.Override
public emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData getDefaultInstanceForType() {
return emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData.getDefaultInstance();
}
@java.lang.Override
public emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData build() {
emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
@java.lang.Override
public emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData buildPartial() {
emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData result = new emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData(this);
result.outputCount_ = outputCount_;
result.compoundId_ = compoundId_;
result.outputTime_ = outputTime_;
result.waitCount_ = waitCount_;
onBuilt();
return result;
}
@java.lang.Override
public Builder clone() {
return super.clone();
}
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.setField(field, value);
}
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData) {
return mergeFrom((emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData other) {
if (other == emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData.getDefaultInstance()) return this;
if (other.getOutputCount() != 0) {
setOutputCount(other.getOutputCount());
}
if (other.getCompoundId() != 0) {
setCompoundId(other.getCompoundId());
}
if (other.getOutputTime() != 0) {
setOutputTime(other.getOutputTime());
}
if (other.getWaitCount() != 0) {
setWaitCount(other.getWaitCount());
}
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
private int outputCount_ ;
/**
* <code>uint32 output_count = 1;</code>
* @return The outputCount.
*/
@java.lang.Override
public int getOutputCount() {
return outputCount_;
}
/**
* <code>uint32 output_count = 1;</code>
* @param value The outputCount to set.
* @return This builder for chaining.
*/
public Builder setOutputCount(int value) {
outputCount_ = value;
onChanged();
return this;
}
/**
* <code>uint32 output_count = 1;</code>
* @return This builder for chaining.
*/
public Builder clearOutputCount() {
outputCount_ = 0;
onChanged();
return this;
}
private int compoundId_ ;
/**
* <code>uint32 compound_id = 4;</code>
* @return The compoundId.
*/
@java.lang.Override
public int getCompoundId() {
return compoundId_;
}
/**
* <code>uint32 compound_id = 4;</code>
* @param value The compoundId to set.
* @return This builder for chaining.
*/
public Builder setCompoundId(int value) {
compoundId_ = value;
onChanged();
return this;
}
/**
* <code>uint32 compound_id = 4;</code>
* @return This builder for chaining.
*/
public Builder clearCompoundId() {
compoundId_ = 0;
onChanged();
return this;
}
private int outputTime_ ;
/**
* <code>uint32 output_time = 14;</code>
* @return The outputTime.
*/
@java.lang.Override
public int getOutputTime() {
return outputTime_;
}
/**
* <code>uint32 output_time = 14;</code>
* @param value The outputTime to set.
* @return This builder for chaining.
*/
public Builder setOutputTime(int value) {
outputTime_ = value;
onChanged();
return this;
}
/**
* <code>uint32 output_time = 14;</code>
* @return This builder for chaining.
*/
public Builder clearOutputTime() {
outputTime_ = 0;
onChanged();
return this;
}
private int waitCount_ ;
/**
* <code>uint32 wait_count = 8;</code>
* @return The waitCount.
*/
@java.lang.Override
public int getWaitCount() {
return waitCount_;
}
/**
* <code>uint32 wait_count = 8;</code>
* @param value The waitCount to set.
* @return This builder for chaining.
*/
public Builder setWaitCount(int value) {
waitCount_ = value;
onChanged();
return this;
}
/**
* <code>uint32 wait_count = 8;</code>
* @return This builder for chaining.
*/
public Builder clearWaitCount() {
waitCount_ = 0;
onChanged();
return this;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:CompoundQueueData)
}
// @@protoc_insertion_point(class_scope:CompoundQueueData)
private static final emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData();
}
public static emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser<CompoundQueueData>
PARSER = new com.google.protobuf.AbstractParser<CompoundQueueData>() {
@java.lang.Override
public CompoundQueueData parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new CompoundQueueData(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser<CompoundQueueData> parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser<CompoundQueueData> getParserForType() {
return PARSER;
}
@java.lang.Override
public emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
private static final com.google.protobuf.Descriptors.Descriptor
internal_static_CompoundQueueData_descriptor;
private static final
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internal_static_CompoundQueueData_fieldAccessorTable;
public static com.google.protobuf.Descriptors.FileDescriptor
getDescriptor() {
return descriptor;
}
private static com.google.protobuf.Descriptors.FileDescriptor
descriptor;
static {
java.lang.String[] descriptorData = {
"\n\027CompoundQueueData.proto\"g\n\021CompoundQue" +
"ueData\022\024\n\014output_count\030\001 \001(\r\022\023\n\013compound" +
"_id\030\004 \001(\r\022\023\n\013output_time\030\016 \001(\r\022\022\n\nwait_c" +
"ount\030\010 \001(\rB\033\n\031emu.grasscutter.net.protob" +
"\006proto3"
};
descriptor = com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
new com.google.protobuf.Descriptors.FileDescriptor[] {
});
internal_static_CompoundQueueData_descriptor =
getDescriptor().getMessageTypes().get(0);
internal_static_CompoundQueueData_fieldAccessorTable = new
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_CompoundQueueData_descriptor,
new java.lang.String[] { "OutputCount", "CompoundId", "OutputTime", "WaitCount", });
}
// @@protoc_insertion_point(outer_class_scope)
}

View File

@ -0,0 +1,548 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: CompoundUnlockNotify.proto
package emu.grasscutter.net.proto;
public final class CompoundUnlockNotifyOuterClass {
private CompoundUnlockNotifyOuterClass() {}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistryLite registry) {
}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistry registry) {
registerAllExtensions(
(com.google.protobuf.ExtensionRegistryLite) registry);
}
public interface CompoundUnlockNotifyOrBuilder extends
// @@protoc_insertion_point(interface_extends:CompoundUnlockNotify)
com.google.protobuf.MessageOrBuilder {
/**
* <code>uint32 compound_id = 3;</code>
* @return The compoundId.
*/
int getCompoundId();
}
/**
* <pre>
* CmdId: 128
* EnetChannelId: 0
* EnetIsReliable: true
* </pre>
*
* Protobuf type {@code CompoundUnlockNotify}
*/
public static final class CompoundUnlockNotify extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:CompoundUnlockNotify)
CompoundUnlockNotifyOrBuilder {
private static final long serialVersionUID = 0L;
// Use CompoundUnlockNotify.newBuilder() to construct.
private CompoundUnlockNotify(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
super(builder);
}
private CompoundUnlockNotify() {
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new CompoundUnlockNotify();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private CompoundUnlockNotify(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 24: {
compoundId_ = input.readUInt32();
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.internal_static_CompoundUnlockNotify_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.internal_static_CompoundUnlockNotify_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify.class, emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify.Builder.class);
}
public static final int COMPOUND_ID_FIELD_NUMBER = 3;
private int compoundId_;
/**
* <code>uint32 compound_id = 3;</code>
* @return The compoundId.
*/
@java.lang.Override
public int getCompoundId() {
return compoundId_;
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
if (compoundId_ != 0) {
output.writeUInt32(3, compoundId_);
}
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
if (compoundId_ != 0) {
size += com.google.protobuf.CodedOutputStream
.computeUInt32Size(3, compoundId_);
}
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify)) {
return super.equals(obj);
}
emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify other = (emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify) obj;
if (getCompoundId()
!= other.getCompoundId()) return false;
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
}
int hash = 41;
hash = (19 * hash) + getDescriptor().hashCode();
hash = (37 * hash) + COMPOUND_ID_FIELD_NUMBER;
hash = (53 * hash) + getCompoundId();
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
* <pre>
* CmdId: 128
* EnetChannelId: 0
* EnetIsReliable: true
* </pre>
*
* Protobuf type {@code CompoundUnlockNotify}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
// @@protoc_insertion_point(builder_implements:CompoundUnlockNotify)
emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotifyOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.internal_static_CompoundUnlockNotify_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.internal_static_CompoundUnlockNotify_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify.class, emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify.Builder.class);
}
// Construct using emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessageV3
.alwaysUseFieldBuilders) {
}
}
@java.lang.Override
public Builder clear() {
super.clear();
compoundId_ = 0;
return this;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.internal_static_CompoundUnlockNotify_descriptor;
}
@java.lang.Override
public emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify getDefaultInstanceForType() {
return emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify.getDefaultInstance();
}
@java.lang.Override
public emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify build() {
emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
@java.lang.Override
public emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify buildPartial() {
emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify result = new emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify(this);
result.compoundId_ = compoundId_;
onBuilt();
return result;
}
@java.lang.Override
public Builder clone() {
return super.clone();
}
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.setField(field, value);
}
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify) {
return mergeFrom((emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify other) {
if (other == emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify.getDefaultInstance()) return this;
if (other.getCompoundId() != 0) {
setCompoundId(other.getCompoundId());
}
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
private int compoundId_ ;
/**
* <code>uint32 compound_id = 3;</code>
* @return The compoundId.
*/
@java.lang.Override
public int getCompoundId() {
return compoundId_;
}
/**
* <code>uint32 compound_id = 3;</code>
* @param value The compoundId to set.
* @return This builder for chaining.
*/
public Builder setCompoundId(int value) {
compoundId_ = value;
onChanged();
return this;
}
/**
* <code>uint32 compound_id = 3;</code>
* @return This builder for chaining.
*/
public Builder clearCompoundId() {
compoundId_ = 0;
onChanged();
return this;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:CompoundUnlockNotify)
}
// @@protoc_insertion_point(class_scope:CompoundUnlockNotify)
private static final emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify();
}
public static emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser<CompoundUnlockNotify>
PARSER = new com.google.protobuf.AbstractParser<CompoundUnlockNotify>() {
@java.lang.Override
public CompoundUnlockNotify parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new CompoundUnlockNotify(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser<CompoundUnlockNotify> parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser<CompoundUnlockNotify> getParserForType() {
return PARSER;
}
@java.lang.Override
public emu.grasscutter.net.proto.CompoundUnlockNotifyOuterClass.CompoundUnlockNotify getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
private static final com.google.protobuf.Descriptors.Descriptor
internal_static_CompoundUnlockNotify_descriptor;
private static final
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internal_static_CompoundUnlockNotify_fieldAccessorTable;
public static com.google.protobuf.Descriptors.FileDescriptor
getDescriptor() {
return descriptor;
}
private static com.google.protobuf.Descriptors.FileDescriptor
descriptor;
static {
java.lang.String[] descriptorData = {
"\n\032CompoundUnlockNotify.proto\"+\n\024Compound" +
"UnlockNotify\022\023\n\013compound_id\030\003 \001(\rB\033\n\031emu" +
".grasscutter.net.protob\006proto3"
};
descriptor = com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
new com.google.protobuf.Descriptors.FileDescriptor[] {
});
internal_static_CompoundUnlockNotify_descriptor =
getDescriptor().getMessageTypes().get(0);
internal_static_CompoundUnlockNotify_fieldAccessorTable = new
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_CompoundUnlockNotify_descriptor,
new java.lang.String[] { "CompoundId", });
}
// @@protoc_insertion_point(outer_class_scope)
}

View File

@ -0,0 +1,480 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: GetChatEmojiCollectionReq.proto
package emu.grasscutter.net.proto;
public final class GetChatEmojiCollectionReqOuterClass {
private GetChatEmojiCollectionReqOuterClass() {}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistryLite registry) {
}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistry registry) {
registerAllExtensions(
(com.google.protobuf.ExtensionRegistryLite) registry);
}
public interface GetChatEmojiCollectionReqOrBuilder extends
// @@protoc_insertion_point(interface_extends:GetChatEmojiCollectionReq)
com.google.protobuf.MessageOrBuilder {
}
/**
* <pre>
* CmdId: 4068
* EnetChannelId: 0
* EnetIsReliable: true
* IsAllowClient: true
* </pre>
*
* Protobuf type {@code GetChatEmojiCollectionReq}
*/
public static final class GetChatEmojiCollectionReq extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:GetChatEmojiCollectionReq)
GetChatEmojiCollectionReqOrBuilder {
private static final long serialVersionUID = 0L;
// Use GetChatEmojiCollectionReq.newBuilder() to construct.
private GetChatEmojiCollectionReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
super(builder);
}
private GetChatEmojiCollectionReq() {
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new GetChatEmojiCollectionReq();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private GetChatEmojiCollectionReq(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.internal_static_GetChatEmojiCollectionReq_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.internal_static_GetChatEmojiCollectionReq_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq.class, emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq.Builder.class);
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq)) {
return super.equals(obj);
}
emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq other = (emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq) obj;
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
}
int hash = 41;
hash = (19 * hash) + getDescriptor().hashCode();
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
* <pre>
* CmdId: 4068
* EnetChannelId: 0
* EnetIsReliable: true
* IsAllowClient: true
* </pre>
*
* Protobuf type {@code GetChatEmojiCollectionReq}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
// @@protoc_insertion_point(builder_implements:GetChatEmojiCollectionReq)
emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReqOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.internal_static_GetChatEmojiCollectionReq_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.internal_static_GetChatEmojiCollectionReq_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq.class, emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq.Builder.class);
}
// Construct using emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessageV3
.alwaysUseFieldBuilders) {
}
}
@java.lang.Override
public Builder clear() {
super.clear();
return this;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.internal_static_GetChatEmojiCollectionReq_descriptor;
}
@java.lang.Override
public emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq getDefaultInstanceForType() {
return emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq.getDefaultInstance();
}
@java.lang.Override
public emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq build() {
emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
@java.lang.Override
public emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq buildPartial() {
emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq result = new emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq(this);
onBuilt();
return result;
}
@java.lang.Override
public Builder clone() {
return super.clone();
}
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.setField(field, value);
}
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq) {
return mergeFrom((emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq other) {
if (other == emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq.getDefaultInstance()) return this;
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:GetChatEmojiCollectionReq)
}
// @@protoc_insertion_point(class_scope:GetChatEmojiCollectionReq)
private static final emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq();
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser<GetChatEmojiCollectionReq>
PARSER = new com.google.protobuf.AbstractParser<GetChatEmojiCollectionReq>() {
@java.lang.Override
public GetChatEmojiCollectionReq parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new GetChatEmojiCollectionReq(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser<GetChatEmojiCollectionReq> parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser<GetChatEmojiCollectionReq> getParserForType() {
return PARSER;
}
@java.lang.Override
public emu.grasscutter.net.proto.GetChatEmojiCollectionReqOuterClass.GetChatEmojiCollectionReq getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
private static final com.google.protobuf.Descriptors.Descriptor
internal_static_GetChatEmojiCollectionReq_descriptor;
private static final
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internal_static_GetChatEmojiCollectionReq_fieldAccessorTable;
public static com.google.protobuf.Descriptors.FileDescriptor
getDescriptor() {
return descriptor;
}
private static com.google.protobuf.Descriptors.FileDescriptor
descriptor;
static {
java.lang.String[] descriptorData = {
"\n\037GetChatEmojiCollectionReq.proto\"\033\n\031Get" +
"ChatEmojiCollectionReqB\033\n\031emu.grasscutte" +
"r.net.protob\006proto3"
};
descriptor = com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
new com.google.protobuf.Descriptors.FileDescriptor[] {
});
internal_static_GetChatEmojiCollectionReq_descriptor =
getDescriptor().getMessageTypes().get(0);
internal_static_GetChatEmojiCollectionReq_fieldAccessorTable = new
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_GetChatEmojiCollectionReq_descriptor,
new java.lang.String[] { });
}
// @@protoc_insertion_point(outer_class_scope)
}

View File

@ -0,0 +1,756 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: GetChatEmojiCollectionRsp.proto
package emu.grasscutter.net.proto;
public final class GetChatEmojiCollectionRspOuterClass {
private GetChatEmojiCollectionRspOuterClass() {}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistryLite registry) {
}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistry registry) {
registerAllExtensions(
(com.google.protobuf.ExtensionRegistryLite) registry);
}
public interface GetChatEmojiCollectionRspOrBuilder extends
// @@protoc_insertion_point(interface_extends:GetChatEmojiCollectionRsp)
com.google.protobuf.MessageOrBuilder {
/**
* <code>int32 retcode = 15;</code>
* @return The retcode.
*/
int getRetcode();
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 8;</code>
* @return Whether the chatEmojiCollectionData field is set.
*/
boolean hasChatEmojiCollectionData();
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 8;</code>
* @return The chatEmojiCollectionData.
*/
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData getChatEmojiCollectionData();
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 8;</code>
*/
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionDataOrBuilder getChatEmojiCollectionDataOrBuilder();
}
/**
* <pre>
* CmdId: 4033
* EnetChannelId: 0
* EnetIsReliable: true
* </pre>
*
* Protobuf type {@code GetChatEmojiCollectionRsp}
*/
public static final class GetChatEmojiCollectionRsp extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:GetChatEmojiCollectionRsp)
GetChatEmojiCollectionRspOrBuilder {
private static final long serialVersionUID = 0L;
// Use GetChatEmojiCollectionRsp.newBuilder() to construct.
private GetChatEmojiCollectionRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
super(builder);
}
private GetChatEmojiCollectionRsp() {
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new GetChatEmojiCollectionRsp();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private GetChatEmojiCollectionRsp(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 66: {
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.Builder subBuilder = null;
if (chatEmojiCollectionData_ != null) {
subBuilder = chatEmojiCollectionData_.toBuilder();
}
chatEmojiCollectionData_ = input.readMessage(emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(chatEmojiCollectionData_);
chatEmojiCollectionData_ = subBuilder.buildPartial();
}
break;
}
case 120: {
retcode_ = input.readInt32();
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.internal_static_GetChatEmojiCollectionRsp_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.internal_static_GetChatEmojiCollectionRsp_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp.class, emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp.Builder.class);
}
public static final int RETCODE_FIELD_NUMBER = 15;
private int retcode_;
/**
* <code>int32 retcode = 15;</code>
* @return The retcode.
*/
@java.lang.Override
public int getRetcode() {
return retcode_;
}
public static final int CHAT_EMOJI_COLLECTION_DATA_FIELD_NUMBER = 8;
private emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData chatEmojiCollectionData_;
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 8;</code>
* @return Whether the chatEmojiCollectionData field is set.
*/
@java.lang.Override
public boolean hasChatEmojiCollectionData() {
return chatEmojiCollectionData_ != null;
}
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 8;</code>
* @return The chatEmojiCollectionData.
*/
@java.lang.Override
public emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData getChatEmojiCollectionData() {
return chatEmojiCollectionData_ == null ? emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.getDefaultInstance() : chatEmojiCollectionData_;
}
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 8;</code>
*/
@java.lang.Override
public emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionDataOrBuilder getChatEmojiCollectionDataOrBuilder() {
return getChatEmojiCollectionData();
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
if (chatEmojiCollectionData_ != null) {
output.writeMessage(8, getChatEmojiCollectionData());
}
if (retcode_ != 0) {
output.writeInt32(15, retcode_);
}
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
if (chatEmojiCollectionData_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(8, getChatEmojiCollectionData());
}
if (retcode_ != 0) {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(15, retcode_);
}
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp)) {
return super.equals(obj);
}
emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp other = (emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp) obj;
if (getRetcode()
!= other.getRetcode()) return false;
if (hasChatEmojiCollectionData() != other.hasChatEmojiCollectionData()) return false;
if (hasChatEmojiCollectionData()) {
if (!getChatEmojiCollectionData()
.equals(other.getChatEmojiCollectionData())) return false;
}
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
}
int hash = 41;
hash = (19 * hash) + getDescriptor().hashCode();
hash = (37 * hash) + RETCODE_FIELD_NUMBER;
hash = (53 * hash) + getRetcode();
if (hasChatEmojiCollectionData()) {
hash = (37 * hash) + CHAT_EMOJI_COLLECTION_DATA_FIELD_NUMBER;
hash = (53 * hash) + getChatEmojiCollectionData().hashCode();
}
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
* <pre>
* CmdId: 4033
* EnetChannelId: 0
* EnetIsReliable: true
* </pre>
*
* Protobuf type {@code GetChatEmojiCollectionRsp}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
// @@protoc_insertion_point(builder_implements:GetChatEmojiCollectionRsp)
emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRspOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.internal_static_GetChatEmojiCollectionRsp_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.internal_static_GetChatEmojiCollectionRsp_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp.class, emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp.Builder.class);
}
// Construct using emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessageV3
.alwaysUseFieldBuilders) {
}
}
@java.lang.Override
public Builder clear() {
super.clear();
retcode_ = 0;
if (chatEmojiCollectionDataBuilder_ == null) {
chatEmojiCollectionData_ = null;
} else {
chatEmojiCollectionData_ = null;
chatEmojiCollectionDataBuilder_ = null;
}
return this;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.internal_static_GetChatEmojiCollectionRsp_descriptor;
}
@java.lang.Override
public emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp getDefaultInstanceForType() {
return emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp.getDefaultInstance();
}
@java.lang.Override
public emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp build() {
emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
@java.lang.Override
public emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp buildPartial() {
emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp result = new emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp(this);
result.retcode_ = retcode_;
if (chatEmojiCollectionDataBuilder_ == null) {
result.chatEmojiCollectionData_ = chatEmojiCollectionData_;
} else {
result.chatEmojiCollectionData_ = chatEmojiCollectionDataBuilder_.build();
}
onBuilt();
return result;
}
@java.lang.Override
public Builder clone() {
return super.clone();
}
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.setField(field, value);
}
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp) {
return mergeFrom((emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp other) {
if (other == emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp.getDefaultInstance()) return this;
if (other.getRetcode() != 0) {
setRetcode(other.getRetcode());
}
if (other.hasChatEmojiCollectionData()) {
mergeChatEmojiCollectionData(other.getChatEmojiCollectionData());
}
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
private int retcode_ ;
/**
* <code>int32 retcode = 15;</code>
* @return The retcode.
*/
@java.lang.Override
public int getRetcode() {
return retcode_;
}
/**
* <code>int32 retcode = 15;</code>
* @param value The retcode to set.
* @return This builder for chaining.
*/
public Builder setRetcode(int value) {
retcode_ = value;
onChanged();
return this;
}
/**
* <code>int32 retcode = 15;</code>
* @return This builder for chaining.
*/
public Builder clearRetcode() {
retcode_ = 0;
onChanged();
return this;
}
private emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData chatEmojiCollectionData_;
private com.google.protobuf.SingleFieldBuilderV3<
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData, emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.Builder, emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionDataOrBuilder> chatEmojiCollectionDataBuilder_;
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 8;</code>
* @return Whether the chatEmojiCollectionData field is set.
*/
public boolean hasChatEmojiCollectionData() {
return chatEmojiCollectionDataBuilder_ != null || chatEmojiCollectionData_ != null;
}
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 8;</code>
* @return The chatEmojiCollectionData.
*/
public emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData getChatEmojiCollectionData() {
if (chatEmojiCollectionDataBuilder_ == null) {
return chatEmojiCollectionData_ == null ? emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.getDefaultInstance() : chatEmojiCollectionData_;
} else {
return chatEmojiCollectionDataBuilder_.getMessage();
}
}
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 8;</code>
*/
public Builder setChatEmojiCollectionData(emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData value) {
if (chatEmojiCollectionDataBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
chatEmojiCollectionData_ = value;
onChanged();
} else {
chatEmojiCollectionDataBuilder_.setMessage(value);
}
return this;
}
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 8;</code>
*/
public Builder setChatEmojiCollectionData(
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.Builder builderForValue) {
if (chatEmojiCollectionDataBuilder_ == null) {
chatEmojiCollectionData_ = builderForValue.build();
onChanged();
} else {
chatEmojiCollectionDataBuilder_.setMessage(builderForValue.build());
}
return this;
}
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 8;</code>
*/
public Builder mergeChatEmojiCollectionData(emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData value) {
if (chatEmojiCollectionDataBuilder_ == null) {
if (chatEmojiCollectionData_ != null) {
chatEmojiCollectionData_ =
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.newBuilder(chatEmojiCollectionData_).mergeFrom(value).buildPartial();
} else {
chatEmojiCollectionData_ = value;
}
onChanged();
} else {
chatEmojiCollectionDataBuilder_.mergeFrom(value);
}
return this;
}
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 8;</code>
*/
public Builder clearChatEmojiCollectionData() {
if (chatEmojiCollectionDataBuilder_ == null) {
chatEmojiCollectionData_ = null;
onChanged();
} else {
chatEmojiCollectionData_ = null;
chatEmojiCollectionDataBuilder_ = null;
}
return this;
}
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 8;</code>
*/
public emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.Builder getChatEmojiCollectionDataBuilder() {
onChanged();
return getChatEmojiCollectionDataFieldBuilder().getBuilder();
}
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 8;</code>
*/
public emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionDataOrBuilder getChatEmojiCollectionDataOrBuilder() {
if (chatEmojiCollectionDataBuilder_ != null) {
return chatEmojiCollectionDataBuilder_.getMessageOrBuilder();
} else {
return chatEmojiCollectionData_ == null ?
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.getDefaultInstance() : chatEmojiCollectionData_;
}
}
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 8;</code>
*/
private com.google.protobuf.SingleFieldBuilderV3<
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData, emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.Builder, emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionDataOrBuilder>
getChatEmojiCollectionDataFieldBuilder() {
if (chatEmojiCollectionDataBuilder_ == null) {
chatEmojiCollectionDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData, emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.Builder, emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionDataOrBuilder>(
getChatEmojiCollectionData(),
getParentForChildren(),
isClean());
chatEmojiCollectionData_ = null;
}
return chatEmojiCollectionDataBuilder_;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:GetChatEmojiCollectionRsp)
}
// @@protoc_insertion_point(class_scope:GetChatEmojiCollectionRsp)
private static final emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp();
}
public static emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser<GetChatEmojiCollectionRsp>
PARSER = new com.google.protobuf.AbstractParser<GetChatEmojiCollectionRsp>() {
@java.lang.Override
public GetChatEmojiCollectionRsp parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new GetChatEmojiCollectionRsp(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser<GetChatEmojiCollectionRsp> parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser<GetChatEmojiCollectionRsp> getParserForType() {
return PARSER;
}
@java.lang.Override
public emu.grasscutter.net.proto.GetChatEmojiCollectionRspOuterClass.GetChatEmojiCollectionRsp getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
private static final com.google.protobuf.Descriptors.Descriptor
internal_static_GetChatEmojiCollectionRsp_descriptor;
private static final
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internal_static_GetChatEmojiCollectionRsp_fieldAccessorTable;
public static com.google.protobuf.Descriptors.FileDescriptor
getDescriptor() {
return descriptor;
}
private static com.google.protobuf.Descriptors.FileDescriptor
descriptor;
static {
java.lang.String[] descriptorData = {
"\n\037GetChatEmojiCollectionRsp.proto\032\035ChatE" +
"mojiCollectionData.proto\"j\n\031GetChatEmoji" +
"CollectionRsp\022\017\n\007retcode\030\017 \001(\005\022<\n\032chat_e" +
"moji_collection_data\030\010 \001(\0132\030.ChatEmojiCo" +
"llectionDataB\033\n\031emu.grasscutter.net.prot" +
"ob\006proto3"
};
descriptor = com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
new com.google.protobuf.Descriptors.FileDescriptor[] {
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.getDescriptor(),
});
internal_static_GetChatEmojiCollectionRsp_descriptor =
getDescriptor().getMessageTypes().get(0);
internal_static_GetChatEmojiCollectionRsp_fieldAccessorTable = new
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_GetChatEmojiCollectionRsp_descriptor,
new java.lang.String[] { "Retcode", "ChatEmojiCollectionData", });
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.getDescriptor();
}
// @@protoc_insertion_point(outer_class_scope)
}

View File

@ -0,0 +1,480 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: GetCompoundDataReq.proto
package emu.grasscutter.net.proto;
public final class GetCompoundDataReqOuterClass {
private GetCompoundDataReqOuterClass() {}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistryLite registry) {
}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistry registry) {
registerAllExtensions(
(com.google.protobuf.ExtensionRegistryLite) registry);
}
public interface GetCompoundDataReqOrBuilder extends
// @@protoc_insertion_point(interface_extends:GetCompoundDataReq)
com.google.protobuf.MessageOrBuilder {
}
/**
* <pre>
* CmdId: 141
* EnetChannelId: 0
* EnetIsReliable: true
* IsAllowClient: true
* </pre>
*
* Protobuf type {@code GetCompoundDataReq}
*/
public static final class GetCompoundDataReq extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:GetCompoundDataReq)
GetCompoundDataReqOrBuilder {
private static final long serialVersionUID = 0L;
// Use GetCompoundDataReq.newBuilder() to construct.
private GetCompoundDataReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
super(builder);
}
private GetCompoundDataReq() {
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new GetCompoundDataReq();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private GetCompoundDataReq(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.internal_static_GetCompoundDataReq_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.internal_static_GetCompoundDataReq_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq.class, emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq.Builder.class);
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq)) {
return super.equals(obj);
}
emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq other = (emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq) obj;
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
}
int hash = 41;
hash = (19 * hash) + getDescriptor().hashCode();
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
* <pre>
* CmdId: 141
* EnetChannelId: 0
* EnetIsReliable: true
* IsAllowClient: true
* </pre>
*
* Protobuf type {@code GetCompoundDataReq}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
// @@protoc_insertion_point(builder_implements:GetCompoundDataReq)
emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReqOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.internal_static_GetCompoundDataReq_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.internal_static_GetCompoundDataReq_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq.class, emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq.Builder.class);
}
// Construct using emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessageV3
.alwaysUseFieldBuilders) {
}
}
@java.lang.Override
public Builder clear() {
super.clear();
return this;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.internal_static_GetCompoundDataReq_descriptor;
}
@java.lang.Override
public emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq getDefaultInstanceForType() {
return emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq.getDefaultInstance();
}
@java.lang.Override
public emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq build() {
emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
@java.lang.Override
public emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq buildPartial() {
emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq result = new emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq(this);
onBuilt();
return result;
}
@java.lang.Override
public Builder clone() {
return super.clone();
}
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.setField(field, value);
}
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq) {
return mergeFrom((emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq other) {
if (other == emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq.getDefaultInstance()) return this;
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:GetCompoundDataReq)
}
// @@protoc_insertion_point(class_scope:GetCompoundDataReq)
private static final emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq();
}
public static emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser<GetCompoundDataReq>
PARSER = new com.google.protobuf.AbstractParser<GetCompoundDataReq>() {
@java.lang.Override
public GetCompoundDataReq parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new GetCompoundDataReq(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser<GetCompoundDataReq> parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser<GetCompoundDataReq> getParserForType() {
return PARSER;
}
@java.lang.Override
public emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
private static final com.google.protobuf.Descriptors.Descriptor
internal_static_GetCompoundDataReq_descriptor;
private static final
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internal_static_GetCompoundDataReq_fieldAccessorTable;
public static com.google.protobuf.Descriptors.FileDescriptor
getDescriptor() {
return descriptor;
}
private static com.google.protobuf.Descriptors.FileDescriptor
descriptor;
static {
java.lang.String[] descriptorData = {
"\n\030GetCompoundDataReq.proto\"\024\n\022GetCompoun" +
"dDataReqB\033\n\031emu.grasscutter.net.protob\006p" +
"roto3"
};
descriptor = com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
new com.google.protobuf.Descriptors.FileDescriptor[] {
});
internal_static_GetCompoundDataReq_descriptor =
getDescriptor().getMessageTypes().get(0);
internal_static_GetCompoundDataReq_fieldAccessorTable = new
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_GetCompoundDataReq_descriptor,
new java.lang.String[] { });
}
// @@protoc_insertion_point(outer_class_scope)
}

View File

@ -0,0 +1,621 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: PlayerCompoundMaterialReq.proto
package emu.grasscutter.net.proto;
public final class PlayerCompoundMaterialReqOuterClass {
private PlayerCompoundMaterialReqOuterClass() {}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistryLite registry) {
}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistry registry) {
registerAllExtensions(
(com.google.protobuf.ExtensionRegistryLite) registry);
}
public interface PlayerCompoundMaterialReqOrBuilder extends
// @@protoc_insertion_point(interface_extends:PlayerCompoundMaterialReq)
com.google.protobuf.MessageOrBuilder {
/**
* <code>uint32 count = 11;</code>
* @return The count.
*/
int getCount();
/**
* <code>uint32 compound_id = 3;</code>
* @return The compoundId.
*/
int getCompoundId();
}
/**
* <pre>
* CmdId: 150
* EnetChannelId: 0
* EnetIsReliable: true
* IsAllowClient: true
* </pre>
*
* Protobuf type {@code PlayerCompoundMaterialReq}
*/
public static final class PlayerCompoundMaterialReq extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:PlayerCompoundMaterialReq)
PlayerCompoundMaterialReqOrBuilder {
private static final long serialVersionUID = 0L;
// Use PlayerCompoundMaterialReq.newBuilder() to construct.
private PlayerCompoundMaterialReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
super(builder);
}
private PlayerCompoundMaterialReq() {
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new PlayerCompoundMaterialReq();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private PlayerCompoundMaterialReq(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 24: {
compoundId_ = input.readUInt32();
break;
}
case 88: {
count_ = input.readUInt32();
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.internal_static_PlayerCompoundMaterialReq_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.internal_static_PlayerCompoundMaterialReq_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq.class, emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq.Builder.class);
}
public static final int COUNT_FIELD_NUMBER = 11;
private int count_;
/**
* <code>uint32 count = 11;</code>
* @return The count.
*/
@java.lang.Override
public int getCount() {
return count_;
}
public static final int COMPOUND_ID_FIELD_NUMBER = 3;
private int compoundId_;
/**
* <code>uint32 compound_id = 3;</code>
* @return The compoundId.
*/
@java.lang.Override
public int getCompoundId() {
return compoundId_;
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
if (compoundId_ != 0) {
output.writeUInt32(3, compoundId_);
}
if (count_ != 0) {
output.writeUInt32(11, count_);
}
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
if (compoundId_ != 0) {
size += com.google.protobuf.CodedOutputStream
.computeUInt32Size(3, compoundId_);
}
if (count_ != 0) {
size += com.google.protobuf.CodedOutputStream
.computeUInt32Size(11, count_);
}
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq)) {
return super.equals(obj);
}
emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq other = (emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq) obj;
if (getCount()
!= other.getCount()) return false;
if (getCompoundId()
!= other.getCompoundId()) return false;
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
}
int hash = 41;
hash = (19 * hash) + getDescriptor().hashCode();
hash = (37 * hash) + COUNT_FIELD_NUMBER;
hash = (53 * hash) + getCount();
hash = (37 * hash) + COMPOUND_ID_FIELD_NUMBER;
hash = (53 * hash) + getCompoundId();
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
* <pre>
* CmdId: 150
* EnetChannelId: 0
* EnetIsReliable: true
* IsAllowClient: true
* </pre>
*
* Protobuf type {@code PlayerCompoundMaterialReq}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
// @@protoc_insertion_point(builder_implements:PlayerCompoundMaterialReq)
emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReqOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.internal_static_PlayerCompoundMaterialReq_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.internal_static_PlayerCompoundMaterialReq_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq.class, emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq.Builder.class);
}
// Construct using emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessageV3
.alwaysUseFieldBuilders) {
}
}
@java.lang.Override
public Builder clear() {
super.clear();
count_ = 0;
compoundId_ = 0;
return this;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.internal_static_PlayerCompoundMaterialReq_descriptor;
}
@java.lang.Override
public emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq getDefaultInstanceForType() {
return emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq.getDefaultInstance();
}
@java.lang.Override
public emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq build() {
emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
@java.lang.Override
public emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq buildPartial() {
emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq result = new emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq(this);
result.count_ = count_;
result.compoundId_ = compoundId_;
onBuilt();
return result;
}
@java.lang.Override
public Builder clone() {
return super.clone();
}
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.setField(field, value);
}
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq) {
return mergeFrom((emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq other) {
if (other == emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq.getDefaultInstance()) return this;
if (other.getCount() != 0) {
setCount(other.getCount());
}
if (other.getCompoundId() != 0) {
setCompoundId(other.getCompoundId());
}
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
private int count_ ;
/**
* <code>uint32 count = 11;</code>
* @return The count.
*/
@java.lang.Override
public int getCount() {
return count_;
}
/**
* <code>uint32 count = 11;</code>
* @param value The count to set.
* @return This builder for chaining.
*/
public Builder setCount(int value) {
count_ = value;
onChanged();
return this;
}
/**
* <code>uint32 count = 11;</code>
* @return This builder for chaining.
*/
public Builder clearCount() {
count_ = 0;
onChanged();
return this;
}
private int compoundId_ ;
/**
* <code>uint32 compound_id = 3;</code>
* @return The compoundId.
*/
@java.lang.Override
public int getCompoundId() {
return compoundId_;
}
/**
* <code>uint32 compound_id = 3;</code>
* @param value The compoundId to set.
* @return This builder for chaining.
*/
public Builder setCompoundId(int value) {
compoundId_ = value;
onChanged();
return this;
}
/**
* <code>uint32 compound_id = 3;</code>
* @return This builder for chaining.
*/
public Builder clearCompoundId() {
compoundId_ = 0;
onChanged();
return this;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:PlayerCompoundMaterialReq)
}
// @@protoc_insertion_point(class_scope:PlayerCompoundMaterialReq)
private static final emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq();
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser<PlayerCompoundMaterialReq>
PARSER = new com.google.protobuf.AbstractParser<PlayerCompoundMaterialReq>() {
@java.lang.Override
public PlayerCompoundMaterialReq parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new PlayerCompoundMaterialReq(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser<PlayerCompoundMaterialReq> parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser<PlayerCompoundMaterialReq> getParserForType() {
return PARSER;
}
@java.lang.Override
public emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
private static final com.google.protobuf.Descriptors.Descriptor
internal_static_PlayerCompoundMaterialReq_descriptor;
private static final
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internal_static_PlayerCompoundMaterialReq_fieldAccessorTable;
public static com.google.protobuf.Descriptors.FileDescriptor
getDescriptor() {
return descriptor;
}
private static com.google.protobuf.Descriptors.FileDescriptor
descriptor;
static {
java.lang.String[] descriptorData = {
"\n\037PlayerCompoundMaterialReq.proto\"?\n\031Pla" +
"yerCompoundMaterialReq\022\r\n\005count\030\013 \001(\r\022\023\n" +
"\013compound_id\030\003 \001(\rB\033\n\031emu.grasscutter.ne" +
"t.protob\006proto3"
};
descriptor = com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
new com.google.protobuf.Descriptors.FileDescriptor[] {
});
internal_static_PlayerCompoundMaterialReq_descriptor =
getDescriptor().getMessageTypes().get(0);
internal_static_PlayerCompoundMaterialReq_fieldAccessorTable = new
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_PlayerCompoundMaterialReq_descriptor,
new java.lang.String[] { "Count", "CompoundId", });
}
// @@protoc_insertion_point(outer_class_scope)
}

View File

@ -0,0 +1,755 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: PlayerCompoundMaterialRsp.proto
package emu.grasscutter.net.proto;
public final class PlayerCompoundMaterialRspOuterClass {
private PlayerCompoundMaterialRspOuterClass() {}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistryLite registry) {
}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistry registry) {
registerAllExtensions(
(com.google.protobuf.ExtensionRegistryLite) registry);
}
public interface PlayerCompoundMaterialRspOrBuilder extends
// @@protoc_insertion_point(interface_extends:PlayerCompoundMaterialRsp)
com.google.protobuf.MessageOrBuilder {
/**
* <code>.CompoundQueueData compound_que_data = 5;</code>
* @return Whether the compoundQueData field is set.
*/
boolean hasCompoundQueData();
/**
* <code>.CompoundQueueData compound_que_data = 5;</code>
* @return The compoundQueData.
*/
emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData getCompoundQueData();
/**
* <code>.CompoundQueueData compound_que_data = 5;</code>
*/
emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueDataOrBuilder getCompoundQueDataOrBuilder();
/**
* <code>int32 retcode = 12;</code>
* @return The retcode.
*/
int getRetcode();
}
/**
* <pre>
* CmdId: 143
* EnetChannelId: 0
* EnetIsReliable: true
* </pre>
*
* Protobuf type {@code PlayerCompoundMaterialRsp}
*/
public static final class PlayerCompoundMaterialRsp extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:PlayerCompoundMaterialRsp)
PlayerCompoundMaterialRspOrBuilder {
private static final long serialVersionUID = 0L;
// Use PlayerCompoundMaterialRsp.newBuilder() to construct.
private PlayerCompoundMaterialRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
super(builder);
}
private PlayerCompoundMaterialRsp() {
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new PlayerCompoundMaterialRsp();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private PlayerCompoundMaterialRsp(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 42: {
emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData.Builder subBuilder = null;
if (compoundQueData_ != null) {
subBuilder = compoundQueData_.toBuilder();
}
compoundQueData_ = input.readMessage(emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(compoundQueData_);
compoundQueData_ = subBuilder.buildPartial();
}
break;
}
case 96: {
retcode_ = input.readInt32();
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.internal_static_PlayerCompoundMaterialRsp_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.internal_static_PlayerCompoundMaterialRsp_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp.class, emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp.Builder.class);
}
public static final int COMPOUND_QUE_DATA_FIELD_NUMBER = 5;
private emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData compoundQueData_;
/**
* <code>.CompoundQueueData compound_que_data = 5;</code>
* @return Whether the compoundQueData field is set.
*/
@java.lang.Override
public boolean hasCompoundQueData() {
return compoundQueData_ != null;
}
/**
* <code>.CompoundQueueData compound_que_data = 5;</code>
* @return The compoundQueData.
*/
@java.lang.Override
public emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData getCompoundQueData() {
return compoundQueData_ == null ? emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData.getDefaultInstance() : compoundQueData_;
}
/**
* <code>.CompoundQueueData compound_que_data = 5;</code>
*/
@java.lang.Override
public emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueDataOrBuilder getCompoundQueDataOrBuilder() {
return getCompoundQueData();
}
public static final int RETCODE_FIELD_NUMBER = 12;
private int retcode_;
/**
* <code>int32 retcode = 12;</code>
* @return The retcode.
*/
@java.lang.Override
public int getRetcode() {
return retcode_;
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
if (compoundQueData_ != null) {
output.writeMessage(5, getCompoundQueData());
}
if (retcode_ != 0) {
output.writeInt32(12, retcode_);
}
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
if (compoundQueData_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(5, getCompoundQueData());
}
if (retcode_ != 0) {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(12, retcode_);
}
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp)) {
return super.equals(obj);
}
emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp other = (emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp) obj;
if (hasCompoundQueData() != other.hasCompoundQueData()) return false;
if (hasCompoundQueData()) {
if (!getCompoundQueData()
.equals(other.getCompoundQueData())) return false;
}
if (getRetcode()
!= other.getRetcode()) return false;
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
}
int hash = 41;
hash = (19 * hash) + getDescriptor().hashCode();
if (hasCompoundQueData()) {
hash = (37 * hash) + COMPOUND_QUE_DATA_FIELD_NUMBER;
hash = (53 * hash) + getCompoundQueData().hashCode();
}
hash = (37 * hash) + RETCODE_FIELD_NUMBER;
hash = (53 * hash) + getRetcode();
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
* <pre>
* CmdId: 143
* EnetChannelId: 0
* EnetIsReliable: true
* </pre>
*
* Protobuf type {@code PlayerCompoundMaterialRsp}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
// @@protoc_insertion_point(builder_implements:PlayerCompoundMaterialRsp)
emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRspOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.internal_static_PlayerCompoundMaterialRsp_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.internal_static_PlayerCompoundMaterialRsp_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp.class, emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp.Builder.class);
}
// Construct using emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessageV3
.alwaysUseFieldBuilders) {
}
}
@java.lang.Override
public Builder clear() {
super.clear();
if (compoundQueDataBuilder_ == null) {
compoundQueData_ = null;
} else {
compoundQueData_ = null;
compoundQueDataBuilder_ = null;
}
retcode_ = 0;
return this;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.internal_static_PlayerCompoundMaterialRsp_descriptor;
}
@java.lang.Override
public emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp getDefaultInstanceForType() {
return emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp.getDefaultInstance();
}
@java.lang.Override
public emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp build() {
emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
@java.lang.Override
public emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp buildPartial() {
emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp result = new emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp(this);
if (compoundQueDataBuilder_ == null) {
result.compoundQueData_ = compoundQueData_;
} else {
result.compoundQueData_ = compoundQueDataBuilder_.build();
}
result.retcode_ = retcode_;
onBuilt();
return result;
}
@java.lang.Override
public Builder clone() {
return super.clone();
}
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.setField(field, value);
}
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp) {
return mergeFrom((emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp other) {
if (other == emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp.getDefaultInstance()) return this;
if (other.hasCompoundQueData()) {
mergeCompoundQueData(other.getCompoundQueData());
}
if (other.getRetcode() != 0) {
setRetcode(other.getRetcode());
}
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
private emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData compoundQueData_;
private com.google.protobuf.SingleFieldBuilderV3<
emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData, emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData.Builder, emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueDataOrBuilder> compoundQueDataBuilder_;
/**
* <code>.CompoundQueueData compound_que_data = 5;</code>
* @return Whether the compoundQueData field is set.
*/
public boolean hasCompoundQueData() {
return compoundQueDataBuilder_ != null || compoundQueData_ != null;
}
/**
* <code>.CompoundQueueData compound_que_data = 5;</code>
* @return The compoundQueData.
*/
public emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData getCompoundQueData() {
if (compoundQueDataBuilder_ == null) {
return compoundQueData_ == null ? emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData.getDefaultInstance() : compoundQueData_;
} else {
return compoundQueDataBuilder_.getMessage();
}
}
/**
* <code>.CompoundQueueData compound_que_data = 5;</code>
*/
public Builder setCompoundQueData(emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData value) {
if (compoundQueDataBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
compoundQueData_ = value;
onChanged();
} else {
compoundQueDataBuilder_.setMessage(value);
}
return this;
}
/**
* <code>.CompoundQueueData compound_que_data = 5;</code>
*/
public Builder setCompoundQueData(
emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData.Builder builderForValue) {
if (compoundQueDataBuilder_ == null) {
compoundQueData_ = builderForValue.build();
onChanged();
} else {
compoundQueDataBuilder_.setMessage(builderForValue.build());
}
return this;
}
/**
* <code>.CompoundQueueData compound_que_data = 5;</code>
*/
public Builder mergeCompoundQueData(emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData value) {
if (compoundQueDataBuilder_ == null) {
if (compoundQueData_ != null) {
compoundQueData_ =
emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData.newBuilder(compoundQueData_).mergeFrom(value).buildPartial();
} else {
compoundQueData_ = value;
}
onChanged();
} else {
compoundQueDataBuilder_.mergeFrom(value);
}
return this;
}
/**
* <code>.CompoundQueueData compound_que_data = 5;</code>
*/
public Builder clearCompoundQueData() {
if (compoundQueDataBuilder_ == null) {
compoundQueData_ = null;
onChanged();
} else {
compoundQueData_ = null;
compoundQueDataBuilder_ = null;
}
return this;
}
/**
* <code>.CompoundQueueData compound_que_data = 5;</code>
*/
public emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData.Builder getCompoundQueDataBuilder() {
onChanged();
return getCompoundQueDataFieldBuilder().getBuilder();
}
/**
* <code>.CompoundQueueData compound_que_data = 5;</code>
*/
public emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueDataOrBuilder getCompoundQueDataOrBuilder() {
if (compoundQueDataBuilder_ != null) {
return compoundQueDataBuilder_.getMessageOrBuilder();
} else {
return compoundQueData_ == null ?
emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData.getDefaultInstance() : compoundQueData_;
}
}
/**
* <code>.CompoundQueueData compound_que_data = 5;</code>
*/
private com.google.protobuf.SingleFieldBuilderV3<
emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData, emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData.Builder, emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueDataOrBuilder>
getCompoundQueDataFieldBuilder() {
if (compoundQueDataBuilder_ == null) {
compoundQueDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData, emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData.Builder, emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueDataOrBuilder>(
getCompoundQueData(),
getParentForChildren(),
isClean());
compoundQueData_ = null;
}
return compoundQueDataBuilder_;
}
private int retcode_ ;
/**
* <code>int32 retcode = 12;</code>
* @return The retcode.
*/
@java.lang.Override
public int getRetcode() {
return retcode_;
}
/**
* <code>int32 retcode = 12;</code>
* @param value The retcode to set.
* @return This builder for chaining.
*/
public Builder setRetcode(int value) {
retcode_ = value;
onChanged();
return this;
}
/**
* <code>int32 retcode = 12;</code>
* @return This builder for chaining.
*/
public Builder clearRetcode() {
retcode_ = 0;
onChanged();
return this;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:PlayerCompoundMaterialRsp)
}
// @@protoc_insertion_point(class_scope:PlayerCompoundMaterialRsp)
private static final emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp();
}
public static emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser<PlayerCompoundMaterialRsp>
PARSER = new com.google.protobuf.AbstractParser<PlayerCompoundMaterialRsp>() {
@java.lang.Override
public PlayerCompoundMaterialRsp parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new PlayerCompoundMaterialRsp(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser<PlayerCompoundMaterialRsp> parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser<PlayerCompoundMaterialRsp> getParserForType() {
return PARSER;
}
@java.lang.Override
public emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
private static final com.google.protobuf.Descriptors.Descriptor
internal_static_PlayerCompoundMaterialRsp_descriptor;
private static final
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internal_static_PlayerCompoundMaterialRsp_fieldAccessorTable;
public static com.google.protobuf.Descriptors.FileDescriptor
getDescriptor() {
return descriptor;
}
private static com.google.protobuf.Descriptors.FileDescriptor
descriptor;
static {
java.lang.String[] descriptorData = {
"\n\037PlayerCompoundMaterialRsp.proto\032\027Compo" +
"undQueueData.proto\"[\n\031PlayerCompoundMate" +
"rialRsp\022-\n\021compound_que_data\030\005 \001(\0132\022.Com" +
"poundQueueData\022\017\n\007retcode\030\014 \001(\005B\033\n\031emu.g" +
"rasscutter.net.protob\006proto3"
};
descriptor = com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
new com.google.protobuf.Descriptors.FileDescriptor[] {
emu.grasscutter.net.proto.CompoundQueueDataOuterClass.getDescriptor(),
});
internal_static_PlayerCompoundMaterialRsp_descriptor =
getDescriptor().getMessageTypes().get(0);
internal_static_PlayerCompoundMaterialRsp_fieldAccessorTable = new
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_PlayerCompoundMaterialRsp_descriptor,
new java.lang.String[] { "CompoundQueData", "Retcode", });
emu.grasscutter.net.proto.CompoundQueueDataOuterClass.getDescriptor();
}
// @@protoc_insertion_point(outer_class_scope)
}

View File

@ -0,0 +1,687 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: SetChatEmojiCollectionReq.proto
package emu.grasscutter.net.proto;
public final class SetChatEmojiCollectionReqOuterClass {
private SetChatEmojiCollectionReqOuterClass() {}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistryLite registry) {
}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistry registry) {
registerAllExtensions(
(com.google.protobuf.ExtensionRegistryLite) registry);
}
public interface SetChatEmojiCollectionReqOrBuilder extends
// @@protoc_insertion_point(interface_extends:SetChatEmojiCollectionReq)
com.google.protobuf.MessageOrBuilder {
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 12;</code>
* @return Whether the chatEmojiCollectionData field is set.
*/
boolean hasChatEmojiCollectionData();
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 12;</code>
* @return The chatEmojiCollectionData.
*/
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData getChatEmojiCollectionData();
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 12;</code>
*/
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionDataOrBuilder getChatEmojiCollectionDataOrBuilder();
}
/**
* <pre>
* CmdId: 4084
* EnetChannelId: 0
* EnetIsReliable: true
* IsAllowClient: true
* </pre>
*
* Protobuf type {@code SetChatEmojiCollectionReq}
*/
public static final class SetChatEmojiCollectionReq extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:SetChatEmojiCollectionReq)
SetChatEmojiCollectionReqOrBuilder {
private static final long serialVersionUID = 0L;
// Use SetChatEmojiCollectionReq.newBuilder() to construct.
private SetChatEmojiCollectionReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
super(builder);
}
private SetChatEmojiCollectionReq() {
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new SetChatEmojiCollectionReq();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private SetChatEmojiCollectionReq(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 98: {
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.Builder subBuilder = null;
if (chatEmojiCollectionData_ != null) {
subBuilder = chatEmojiCollectionData_.toBuilder();
}
chatEmojiCollectionData_ = input.readMessage(emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(chatEmojiCollectionData_);
chatEmojiCollectionData_ = subBuilder.buildPartial();
}
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.internal_static_SetChatEmojiCollectionReq_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.internal_static_SetChatEmojiCollectionReq_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq.class, emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq.Builder.class);
}
public static final int CHAT_EMOJI_COLLECTION_DATA_FIELD_NUMBER = 12;
private emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData chatEmojiCollectionData_;
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 12;</code>
* @return Whether the chatEmojiCollectionData field is set.
*/
@java.lang.Override
public boolean hasChatEmojiCollectionData() {
return chatEmojiCollectionData_ != null;
}
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 12;</code>
* @return The chatEmojiCollectionData.
*/
@java.lang.Override
public emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData getChatEmojiCollectionData() {
return chatEmojiCollectionData_ == null ? emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.getDefaultInstance() : chatEmojiCollectionData_;
}
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 12;</code>
*/
@java.lang.Override
public emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionDataOrBuilder getChatEmojiCollectionDataOrBuilder() {
return getChatEmojiCollectionData();
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
if (chatEmojiCollectionData_ != null) {
output.writeMessage(12, getChatEmojiCollectionData());
}
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
if (chatEmojiCollectionData_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(12, getChatEmojiCollectionData());
}
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq)) {
return super.equals(obj);
}
emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq other = (emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq) obj;
if (hasChatEmojiCollectionData() != other.hasChatEmojiCollectionData()) return false;
if (hasChatEmojiCollectionData()) {
if (!getChatEmojiCollectionData()
.equals(other.getChatEmojiCollectionData())) return false;
}
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
}
int hash = 41;
hash = (19 * hash) + getDescriptor().hashCode();
if (hasChatEmojiCollectionData()) {
hash = (37 * hash) + CHAT_EMOJI_COLLECTION_DATA_FIELD_NUMBER;
hash = (53 * hash) + getChatEmojiCollectionData().hashCode();
}
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
* <pre>
* CmdId: 4084
* EnetChannelId: 0
* EnetIsReliable: true
* IsAllowClient: true
* </pre>
*
* Protobuf type {@code SetChatEmojiCollectionReq}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
// @@protoc_insertion_point(builder_implements:SetChatEmojiCollectionReq)
emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReqOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.internal_static_SetChatEmojiCollectionReq_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.internal_static_SetChatEmojiCollectionReq_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq.class, emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq.Builder.class);
}
// Construct using emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessageV3
.alwaysUseFieldBuilders) {
}
}
@java.lang.Override
public Builder clear() {
super.clear();
if (chatEmojiCollectionDataBuilder_ == null) {
chatEmojiCollectionData_ = null;
} else {
chatEmojiCollectionData_ = null;
chatEmojiCollectionDataBuilder_ = null;
}
return this;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.internal_static_SetChatEmojiCollectionReq_descriptor;
}
@java.lang.Override
public emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq getDefaultInstanceForType() {
return emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq.getDefaultInstance();
}
@java.lang.Override
public emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq build() {
emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
@java.lang.Override
public emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq buildPartial() {
emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq result = new emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq(this);
if (chatEmojiCollectionDataBuilder_ == null) {
result.chatEmojiCollectionData_ = chatEmojiCollectionData_;
} else {
result.chatEmojiCollectionData_ = chatEmojiCollectionDataBuilder_.build();
}
onBuilt();
return result;
}
@java.lang.Override
public Builder clone() {
return super.clone();
}
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.setField(field, value);
}
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq) {
return mergeFrom((emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq other) {
if (other == emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq.getDefaultInstance()) return this;
if (other.hasChatEmojiCollectionData()) {
mergeChatEmojiCollectionData(other.getChatEmojiCollectionData());
}
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
private emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData chatEmojiCollectionData_;
private com.google.protobuf.SingleFieldBuilderV3<
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData, emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.Builder, emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionDataOrBuilder> chatEmojiCollectionDataBuilder_;
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 12;</code>
* @return Whether the chatEmojiCollectionData field is set.
*/
public boolean hasChatEmojiCollectionData() {
return chatEmojiCollectionDataBuilder_ != null || chatEmojiCollectionData_ != null;
}
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 12;</code>
* @return The chatEmojiCollectionData.
*/
public emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData getChatEmojiCollectionData() {
if (chatEmojiCollectionDataBuilder_ == null) {
return chatEmojiCollectionData_ == null ? emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.getDefaultInstance() : chatEmojiCollectionData_;
} else {
return chatEmojiCollectionDataBuilder_.getMessage();
}
}
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 12;</code>
*/
public Builder setChatEmojiCollectionData(emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData value) {
if (chatEmojiCollectionDataBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
chatEmojiCollectionData_ = value;
onChanged();
} else {
chatEmojiCollectionDataBuilder_.setMessage(value);
}
return this;
}
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 12;</code>
*/
public Builder setChatEmojiCollectionData(
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.Builder builderForValue) {
if (chatEmojiCollectionDataBuilder_ == null) {
chatEmojiCollectionData_ = builderForValue.build();
onChanged();
} else {
chatEmojiCollectionDataBuilder_.setMessage(builderForValue.build());
}
return this;
}
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 12;</code>
*/
public Builder mergeChatEmojiCollectionData(emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData value) {
if (chatEmojiCollectionDataBuilder_ == null) {
if (chatEmojiCollectionData_ != null) {
chatEmojiCollectionData_ =
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.newBuilder(chatEmojiCollectionData_).mergeFrom(value).buildPartial();
} else {
chatEmojiCollectionData_ = value;
}
onChanged();
} else {
chatEmojiCollectionDataBuilder_.mergeFrom(value);
}
return this;
}
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 12;</code>
*/
public Builder clearChatEmojiCollectionData() {
if (chatEmojiCollectionDataBuilder_ == null) {
chatEmojiCollectionData_ = null;
onChanged();
} else {
chatEmojiCollectionData_ = null;
chatEmojiCollectionDataBuilder_ = null;
}
return this;
}
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 12;</code>
*/
public emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.Builder getChatEmojiCollectionDataBuilder() {
onChanged();
return getChatEmojiCollectionDataFieldBuilder().getBuilder();
}
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 12;</code>
*/
public emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionDataOrBuilder getChatEmojiCollectionDataOrBuilder() {
if (chatEmojiCollectionDataBuilder_ != null) {
return chatEmojiCollectionDataBuilder_.getMessageOrBuilder();
} else {
return chatEmojiCollectionData_ == null ?
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.getDefaultInstance() : chatEmojiCollectionData_;
}
}
/**
* <code>.ChatEmojiCollectionData chat_emoji_collection_data = 12;</code>
*/
private com.google.protobuf.SingleFieldBuilderV3<
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData, emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.Builder, emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionDataOrBuilder>
getChatEmojiCollectionDataFieldBuilder() {
if (chatEmojiCollectionDataBuilder_ == null) {
chatEmojiCollectionDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData, emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionData.Builder, emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.ChatEmojiCollectionDataOrBuilder>(
getChatEmojiCollectionData(),
getParentForChildren(),
isClean());
chatEmojiCollectionData_ = null;
}
return chatEmojiCollectionDataBuilder_;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:SetChatEmojiCollectionReq)
}
// @@protoc_insertion_point(class_scope:SetChatEmojiCollectionReq)
private static final emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq();
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser<SetChatEmojiCollectionReq>
PARSER = new com.google.protobuf.AbstractParser<SetChatEmojiCollectionReq>() {
@java.lang.Override
public SetChatEmojiCollectionReq parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new SetChatEmojiCollectionReq(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser<SetChatEmojiCollectionReq> parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser<SetChatEmojiCollectionReq> getParserForType() {
return PARSER;
}
@java.lang.Override
public emu.grasscutter.net.proto.SetChatEmojiCollectionReqOuterClass.SetChatEmojiCollectionReq getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
private static final com.google.protobuf.Descriptors.Descriptor
internal_static_SetChatEmojiCollectionReq_descriptor;
private static final
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internal_static_SetChatEmojiCollectionReq_fieldAccessorTable;
public static com.google.protobuf.Descriptors.FileDescriptor
getDescriptor() {
return descriptor;
}
private static com.google.protobuf.Descriptors.FileDescriptor
descriptor;
static {
java.lang.String[] descriptorData = {
"\n\037SetChatEmojiCollectionReq.proto\032\035ChatE" +
"mojiCollectionData.proto\"Y\n\031SetChatEmoji" +
"CollectionReq\022<\n\032chat_emoji_collection_d" +
"ata\030\014 \001(\0132\030.ChatEmojiCollectionDataB\033\n\031e" +
"mu.grasscutter.net.protob\006proto3"
};
descriptor = com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
new com.google.protobuf.Descriptors.FileDescriptor[] {
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.getDescriptor(),
});
internal_static_SetChatEmojiCollectionReq_descriptor =
getDescriptor().getMessageTypes().get(0);
internal_static_SetChatEmojiCollectionReq_fieldAccessorTable = new
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_SetChatEmojiCollectionReq_descriptor,
new java.lang.String[] { "ChatEmojiCollectionData", });
emu.grasscutter.net.proto.ChatEmojiCollectionDataOuterClass.getDescriptor();
}
// @@protoc_insertion_point(outer_class_scope)
}

View File

@ -0,0 +1,548 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: SetChatEmojiCollectionRsp.proto
package emu.grasscutter.net.proto;
public final class SetChatEmojiCollectionRspOuterClass {
private SetChatEmojiCollectionRspOuterClass() {}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistryLite registry) {
}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistry registry) {
registerAllExtensions(
(com.google.protobuf.ExtensionRegistryLite) registry);
}
public interface SetChatEmojiCollectionRspOrBuilder extends
// @@protoc_insertion_point(interface_extends:SetChatEmojiCollectionRsp)
com.google.protobuf.MessageOrBuilder {
/**
* <code>int32 retcode = 12;</code>
* @return The retcode.
*/
int getRetcode();
}
/**
* <pre>
* CmdId: 4080
* EnetChannelId: 0
* EnetIsReliable: true
* </pre>
*
* Protobuf type {@code SetChatEmojiCollectionRsp}
*/
public static final class SetChatEmojiCollectionRsp extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:SetChatEmojiCollectionRsp)
SetChatEmojiCollectionRspOrBuilder {
private static final long serialVersionUID = 0L;
// Use SetChatEmojiCollectionRsp.newBuilder() to construct.
private SetChatEmojiCollectionRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
super(builder);
}
private SetChatEmojiCollectionRsp() {
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new SetChatEmojiCollectionRsp();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private SetChatEmojiCollectionRsp(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 96: {
retcode_ = input.readInt32();
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.internal_static_SetChatEmojiCollectionRsp_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.internal_static_SetChatEmojiCollectionRsp_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp.class, emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp.Builder.class);
}
public static final int RETCODE_FIELD_NUMBER = 12;
private int retcode_;
/**
* <code>int32 retcode = 12;</code>
* @return The retcode.
*/
@java.lang.Override
public int getRetcode() {
return retcode_;
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
if (retcode_ != 0) {
output.writeInt32(12, retcode_);
}
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
if (retcode_ != 0) {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(12, retcode_);
}
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp)) {
return super.equals(obj);
}
emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp other = (emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp) obj;
if (getRetcode()
!= other.getRetcode()) return false;
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
}
int hash = 41;
hash = (19 * hash) + getDescriptor().hashCode();
hash = (37 * hash) + RETCODE_FIELD_NUMBER;
hash = (53 * hash) + getRetcode();
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
* <pre>
* CmdId: 4080
* EnetChannelId: 0
* EnetIsReliable: true
* </pre>
*
* Protobuf type {@code SetChatEmojiCollectionRsp}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
// @@protoc_insertion_point(builder_implements:SetChatEmojiCollectionRsp)
emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRspOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.internal_static_SetChatEmojiCollectionRsp_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.internal_static_SetChatEmojiCollectionRsp_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp.class, emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp.Builder.class);
}
// Construct using emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessageV3
.alwaysUseFieldBuilders) {
}
}
@java.lang.Override
public Builder clear() {
super.clear();
retcode_ = 0;
return this;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.internal_static_SetChatEmojiCollectionRsp_descriptor;
}
@java.lang.Override
public emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp getDefaultInstanceForType() {
return emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp.getDefaultInstance();
}
@java.lang.Override
public emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp build() {
emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
@java.lang.Override
public emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp buildPartial() {
emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp result = new emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp(this);
result.retcode_ = retcode_;
onBuilt();
return result;
}
@java.lang.Override
public Builder clone() {
return super.clone();
}
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.setField(field, value);
}
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp) {
return mergeFrom((emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp other) {
if (other == emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp.getDefaultInstance()) return this;
if (other.getRetcode() != 0) {
setRetcode(other.getRetcode());
}
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
private int retcode_ ;
/**
* <code>int32 retcode = 12;</code>
* @return The retcode.
*/
@java.lang.Override
public int getRetcode() {
return retcode_;
}
/**
* <code>int32 retcode = 12;</code>
* @param value The retcode to set.
* @return This builder for chaining.
*/
public Builder setRetcode(int value) {
retcode_ = value;
onChanged();
return this;
}
/**
* <code>int32 retcode = 12;</code>
* @return This builder for chaining.
*/
public Builder clearRetcode() {
retcode_ = 0;
onChanged();
return this;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:SetChatEmojiCollectionRsp)
}
// @@protoc_insertion_point(class_scope:SetChatEmojiCollectionRsp)
private static final emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp();
}
public static emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser<SetChatEmojiCollectionRsp>
PARSER = new com.google.protobuf.AbstractParser<SetChatEmojiCollectionRsp>() {
@java.lang.Override
public SetChatEmojiCollectionRsp parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new SetChatEmojiCollectionRsp(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser<SetChatEmojiCollectionRsp> parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser<SetChatEmojiCollectionRsp> getParserForType() {
return PARSER;
}
@java.lang.Override
public emu.grasscutter.net.proto.SetChatEmojiCollectionRspOuterClass.SetChatEmojiCollectionRsp getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
private static final com.google.protobuf.Descriptors.Descriptor
internal_static_SetChatEmojiCollectionRsp_descriptor;
private static final
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internal_static_SetChatEmojiCollectionRsp_fieldAccessorTable;
public static com.google.protobuf.Descriptors.FileDescriptor
getDescriptor() {
return descriptor;
}
private static com.google.protobuf.Descriptors.FileDescriptor
descriptor;
static {
java.lang.String[] descriptorData = {
"\n\037SetChatEmojiCollectionRsp.proto\",\n\031Set" +
"ChatEmojiCollectionRsp\022\017\n\007retcode\030\014 \001(\005B" +
"\033\n\031emu.grasscutter.net.protob\006proto3"
};
descriptor = com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
new com.google.protobuf.Descriptors.FileDescriptor[] {
});
internal_static_SetChatEmojiCollectionRsp_descriptor =
getDescriptor().getMessageTypes().get(0);
internal_static_SetChatEmojiCollectionRsp_fieldAccessorTable = new
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_SetChatEmojiCollectionRsp_descriptor,
new java.lang.String[] { "Retcode", });
}
// @@protoc_insertion_point(outer_class_scope)
}

View File

@ -0,0 +1,591 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: SetFriendEnterHomeOptionReq.proto
package emu.grasscutter.net.proto;
public final class SetFriendEnterHomeOptionReqOuterClass {
private SetFriendEnterHomeOptionReqOuterClass() {}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistryLite registry) {
}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistry registry) {
registerAllExtensions(
(com.google.protobuf.ExtensionRegistryLite) registry);
}
public interface SetFriendEnterHomeOptionReqOrBuilder extends
// @@protoc_insertion_point(interface_extends:SetFriendEnterHomeOptionReq)
com.google.protobuf.MessageOrBuilder {
/**
* <code>.FriendEnterHomeOption option = 7;</code>
* @return The enum numeric value on the wire for option.
*/
int getOptionValue();
/**
* <code>.FriendEnterHomeOption option = 7;</code>
* @return The option.
*/
emu.grasscutter.net.proto.FriendEnterHomeOptionOuterClass.FriendEnterHomeOption getOption();
}
/**
* <pre>
* CmdId: 4494
* EnetChannelId: 0
* EnetIsReliable: true
* IsAllowClient: true
* </pre>
*
* Protobuf type {@code SetFriendEnterHomeOptionReq}
*/
public static final class SetFriendEnterHomeOptionReq extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:SetFriendEnterHomeOptionReq)
SetFriendEnterHomeOptionReqOrBuilder {
private static final long serialVersionUID = 0L;
// Use SetFriendEnterHomeOptionReq.newBuilder() to construct.
private SetFriendEnterHomeOptionReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
super(builder);
}
private SetFriendEnterHomeOptionReq() {
option_ = 0;
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new SetFriendEnterHomeOptionReq();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private SetFriendEnterHomeOptionReq(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 56: {
int rawValue = input.readEnum();
option_ = rawValue;
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.internal_static_SetFriendEnterHomeOptionReq_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.internal_static_SetFriendEnterHomeOptionReq_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq.class, emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq.Builder.class);
}
public static final int OPTION_FIELD_NUMBER = 7;
private int option_;
/**
* <code>.FriendEnterHomeOption option = 7;</code>
* @return The enum numeric value on the wire for option.
*/
@java.lang.Override public int getOptionValue() {
return option_;
}
/**
* <code>.FriendEnterHomeOption option = 7;</code>
* @return The option.
*/
@java.lang.Override public emu.grasscutter.net.proto.FriendEnterHomeOptionOuterClass.FriendEnterHomeOption getOption() {
@SuppressWarnings("deprecation")
emu.grasscutter.net.proto.FriendEnterHomeOptionOuterClass.FriendEnterHomeOption result = emu.grasscutter.net.proto.FriendEnterHomeOptionOuterClass.FriendEnterHomeOption.valueOf(option_);
return result == null ? emu.grasscutter.net.proto.FriendEnterHomeOptionOuterClass.FriendEnterHomeOption.UNRECOGNIZED : result;
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
if (option_ != emu.grasscutter.net.proto.FriendEnterHomeOptionOuterClass.FriendEnterHomeOption.FRIEND_ENTER_HOME_OPTION_NEED_CONFIRM.getNumber()) {
output.writeEnum(7, option_);
}
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
if (option_ != emu.grasscutter.net.proto.FriendEnterHomeOptionOuterClass.FriendEnterHomeOption.FRIEND_ENTER_HOME_OPTION_NEED_CONFIRM.getNumber()) {
size += com.google.protobuf.CodedOutputStream
.computeEnumSize(7, option_);
}
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq)) {
return super.equals(obj);
}
emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq other = (emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq) obj;
if (option_ != other.option_) return false;
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
}
int hash = 41;
hash = (19 * hash) + getDescriptor().hashCode();
hash = (37 * hash) + OPTION_FIELD_NUMBER;
hash = (53 * hash) + option_;
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
* <pre>
* CmdId: 4494
* EnetChannelId: 0
* EnetIsReliable: true
* IsAllowClient: true
* </pre>
*
* Protobuf type {@code SetFriendEnterHomeOptionReq}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
// @@protoc_insertion_point(builder_implements:SetFriendEnterHomeOptionReq)
emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReqOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.internal_static_SetFriendEnterHomeOptionReq_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.internal_static_SetFriendEnterHomeOptionReq_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq.class, emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq.Builder.class);
}
// Construct using emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessageV3
.alwaysUseFieldBuilders) {
}
}
@java.lang.Override
public Builder clear() {
super.clear();
option_ = 0;
return this;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.internal_static_SetFriendEnterHomeOptionReq_descriptor;
}
@java.lang.Override
public emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq getDefaultInstanceForType() {
return emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq.getDefaultInstance();
}
@java.lang.Override
public emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq build() {
emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
@java.lang.Override
public emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq buildPartial() {
emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq result = new emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq(this);
result.option_ = option_;
onBuilt();
return result;
}
@java.lang.Override
public Builder clone() {
return super.clone();
}
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.setField(field, value);
}
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq) {
return mergeFrom((emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq other) {
if (other == emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq.getDefaultInstance()) return this;
if (other.option_ != 0) {
setOptionValue(other.getOptionValue());
}
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
private int option_ = 0;
/**
* <code>.FriendEnterHomeOption option = 7;</code>
* @return The enum numeric value on the wire for option.
*/
@java.lang.Override public int getOptionValue() {
return option_;
}
/**
* <code>.FriendEnterHomeOption option = 7;</code>
* @param value The enum numeric value on the wire for option to set.
* @return This builder for chaining.
*/
public Builder setOptionValue(int value) {
option_ = value;
onChanged();
return this;
}
/**
* <code>.FriendEnterHomeOption option = 7;</code>
* @return The option.
*/
@java.lang.Override
public emu.grasscutter.net.proto.FriendEnterHomeOptionOuterClass.FriendEnterHomeOption getOption() {
@SuppressWarnings("deprecation")
emu.grasscutter.net.proto.FriendEnterHomeOptionOuterClass.FriendEnterHomeOption result = emu.grasscutter.net.proto.FriendEnterHomeOptionOuterClass.FriendEnterHomeOption.valueOf(option_);
return result == null ? emu.grasscutter.net.proto.FriendEnterHomeOptionOuterClass.FriendEnterHomeOption.UNRECOGNIZED : result;
}
/**
* <code>.FriendEnterHomeOption option = 7;</code>
* @param value The option to set.
* @return This builder for chaining.
*/
public Builder setOption(emu.grasscutter.net.proto.FriendEnterHomeOptionOuterClass.FriendEnterHomeOption value) {
if (value == null) {
throw new NullPointerException();
}
option_ = value.getNumber();
onChanged();
return this;
}
/**
* <code>.FriendEnterHomeOption option = 7;</code>
* @return This builder for chaining.
*/
public Builder clearOption() {
option_ = 0;
onChanged();
return this;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:SetFriendEnterHomeOptionReq)
}
// @@protoc_insertion_point(class_scope:SetFriendEnterHomeOptionReq)
private static final emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq();
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser<SetFriendEnterHomeOptionReq>
PARSER = new com.google.protobuf.AbstractParser<SetFriendEnterHomeOptionReq>() {
@java.lang.Override
public SetFriendEnterHomeOptionReq parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new SetFriendEnterHomeOptionReq(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser<SetFriendEnterHomeOptionReq> parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser<SetFriendEnterHomeOptionReq> getParserForType() {
return PARSER;
}
@java.lang.Override
public emu.grasscutter.net.proto.SetFriendEnterHomeOptionReqOuterClass.SetFriendEnterHomeOptionReq getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
private static final com.google.protobuf.Descriptors.Descriptor
internal_static_SetFriendEnterHomeOptionReq_descriptor;
private static final
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internal_static_SetFriendEnterHomeOptionReq_fieldAccessorTable;
public static com.google.protobuf.Descriptors.FileDescriptor
getDescriptor() {
return descriptor;
}
private static com.google.protobuf.Descriptors.FileDescriptor
descriptor;
static {
java.lang.String[] descriptorData = {
"\n!SetFriendEnterHomeOptionReq.proto\032\033Fri" +
"endEnterHomeOption.proto\"E\n\033SetFriendEnt" +
"erHomeOptionReq\022&\n\006option\030\007 \001(\0162\026.Friend" +
"EnterHomeOptionB\033\n\031emu.grasscutter.net.p" +
"rotob\006proto3"
};
descriptor = com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
new com.google.protobuf.Descriptors.FileDescriptor[] {
emu.grasscutter.net.proto.FriendEnterHomeOptionOuterClass.getDescriptor(),
});
internal_static_SetFriendEnterHomeOptionReq_descriptor =
getDescriptor().getMessageTypes().get(0);
internal_static_SetFriendEnterHomeOptionReq_fieldAccessorTable = new
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_SetFriendEnterHomeOptionReq_descriptor,
new java.lang.String[] { "Option", });
emu.grasscutter.net.proto.FriendEnterHomeOptionOuterClass.getDescriptor();
}
// @@protoc_insertion_point(outer_class_scope)
}

View File

@ -0,0 +1,548 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: SetFriendEnterHomeOptionRsp.proto
package emu.grasscutter.net.proto;
public final class SetFriendEnterHomeOptionRspOuterClass {
private SetFriendEnterHomeOptionRspOuterClass() {}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistryLite registry) {
}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistry registry) {
registerAllExtensions(
(com.google.protobuf.ExtensionRegistryLite) registry);
}
public interface SetFriendEnterHomeOptionRspOrBuilder extends
// @@protoc_insertion_point(interface_extends:SetFriendEnterHomeOptionRsp)
com.google.protobuf.MessageOrBuilder {
/**
* <code>int32 retcode = 1;</code>
* @return The retcode.
*/
int getRetcode();
}
/**
* <pre>
* CmdId: 4743
* EnetChannelId: 0
* EnetIsReliable: true
* </pre>
*
* Protobuf type {@code SetFriendEnterHomeOptionRsp}
*/
public static final class SetFriendEnterHomeOptionRsp extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:SetFriendEnterHomeOptionRsp)
SetFriendEnterHomeOptionRspOrBuilder {
private static final long serialVersionUID = 0L;
// Use SetFriendEnterHomeOptionRsp.newBuilder() to construct.
private SetFriendEnterHomeOptionRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
super(builder);
}
private SetFriendEnterHomeOptionRsp() {
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new SetFriendEnterHomeOptionRsp();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private SetFriendEnterHomeOptionRsp(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 8: {
retcode_ = input.readInt32();
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.internal_static_SetFriendEnterHomeOptionRsp_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.internal_static_SetFriendEnterHomeOptionRsp_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp.class, emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp.Builder.class);
}
public static final int RETCODE_FIELD_NUMBER = 1;
private int retcode_;
/**
* <code>int32 retcode = 1;</code>
* @return The retcode.
*/
@java.lang.Override
public int getRetcode() {
return retcode_;
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
if (retcode_ != 0) {
output.writeInt32(1, retcode_);
}
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
if (retcode_ != 0) {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(1, retcode_);
}
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp)) {
return super.equals(obj);
}
emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp other = (emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp) obj;
if (getRetcode()
!= other.getRetcode()) return false;
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
}
int hash = 41;
hash = (19 * hash) + getDescriptor().hashCode();
hash = (37 * hash) + RETCODE_FIELD_NUMBER;
hash = (53 * hash) + getRetcode();
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
* <pre>
* CmdId: 4743
* EnetChannelId: 0
* EnetIsReliable: true
* </pre>
*
* Protobuf type {@code SetFriendEnterHomeOptionRsp}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
// @@protoc_insertion_point(builder_implements:SetFriendEnterHomeOptionRsp)
emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRspOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.internal_static_SetFriendEnterHomeOptionRsp_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.internal_static_SetFriendEnterHomeOptionRsp_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp.class, emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp.Builder.class);
}
// Construct using emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessageV3
.alwaysUseFieldBuilders) {
}
}
@java.lang.Override
public Builder clear() {
super.clear();
retcode_ = 0;
return this;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.internal_static_SetFriendEnterHomeOptionRsp_descriptor;
}
@java.lang.Override
public emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp getDefaultInstanceForType() {
return emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp.getDefaultInstance();
}
@java.lang.Override
public emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp build() {
emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
@java.lang.Override
public emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp buildPartial() {
emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp result = new emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp(this);
result.retcode_ = retcode_;
onBuilt();
return result;
}
@java.lang.Override
public Builder clone() {
return super.clone();
}
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.setField(field, value);
}
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp) {
return mergeFrom((emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp other) {
if (other == emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp.getDefaultInstance()) return this;
if (other.getRetcode() != 0) {
setRetcode(other.getRetcode());
}
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
private int retcode_ ;
/**
* <code>int32 retcode = 1;</code>
* @return The retcode.
*/
@java.lang.Override
public int getRetcode() {
return retcode_;
}
/**
* <code>int32 retcode = 1;</code>
* @param value The retcode to set.
* @return This builder for chaining.
*/
public Builder setRetcode(int value) {
retcode_ = value;
onChanged();
return this;
}
/**
* <code>int32 retcode = 1;</code>
* @return This builder for chaining.
*/
public Builder clearRetcode() {
retcode_ = 0;
onChanged();
return this;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:SetFriendEnterHomeOptionRsp)
}
// @@protoc_insertion_point(class_scope:SetFriendEnterHomeOptionRsp)
private static final emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp();
}
public static emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser<SetFriendEnterHomeOptionRsp>
PARSER = new com.google.protobuf.AbstractParser<SetFriendEnterHomeOptionRsp>() {
@java.lang.Override
public SetFriendEnterHomeOptionRsp parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new SetFriendEnterHomeOptionRsp(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser<SetFriendEnterHomeOptionRsp> parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser<SetFriendEnterHomeOptionRsp> getParserForType() {
return PARSER;
}
@java.lang.Override
public emu.grasscutter.net.proto.SetFriendEnterHomeOptionRspOuterClass.SetFriendEnterHomeOptionRsp getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
private static final com.google.protobuf.Descriptors.Descriptor
internal_static_SetFriendEnterHomeOptionRsp_descriptor;
private static final
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internal_static_SetFriendEnterHomeOptionRsp_fieldAccessorTable;
public static com.google.protobuf.Descriptors.FileDescriptor
getDescriptor() {
return descriptor;
}
private static com.google.protobuf.Descriptors.FileDescriptor
descriptor;
static {
java.lang.String[] descriptorData = {
"\n!SetFriendEnterHomeOptionRsp.proto\".\n\033S" +
"etFriendEnterHomeOptionRsp\022\017\n\007retcode\030\001 " +
"\001(\005B\033\n\031emu.grasscutter.net.protob\006proto3"
};
descriptor = com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
new com.google.protobuf.Descriptors.FileDescriptor[] {
});
internal_static_SetFriendEnterHomeOptionRsp_descriptor =
getDescriptor().getMessageTypes().get(0);
internal_static_SetFriendEnterHomeOptionRsp_fieldAccessorTable = new
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_SetFriendEnterHomeOptionRsp_descriptor,
new java.lang.String[] { "Retcode", });
}
// @@protoc_insertion_point(outer_class_scope)
}

View File

@ -0,0 +1,621 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: TakeCompoundOutputReq.proto
package emu.grasscutter.net.proto;
public final class TakeCompoundOutputReqOuterClass {
private TakeCompoundOutputReqOuterClass() {}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistryLite registry) {
}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistry registry) {
registerAllExtensions(
(com.google.protobuf.ExtensionRegistryLite) registry);
}
public interface TakeCompoundOutputReqOrBuilder extends
// @@protoc_insertion_point(interface_extends:TakeCompoundOutputReq)
com.google.protobuf.MessageOrBuilder {
/**
* <code>uint32 compound_group_id = 3;</code>
* @return The compoundGroupId.
*/
int getCompoundGroupId();
/**
* <code>uint32 compound_id = 10;</code>
* @return The compoundId.
*/
int getCompoundId();
}
/**
* <pre>
* CmdId: 174
* EnetChannelId: 0
* EnetIsReliable: true
* IsAllowClient: true
* </pre>
*
* Protobuf type {@code TakeCompoundOutputReq}
*/
public static final class TakeCompoundOutputReq extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:TakeCompoundOutputReq)
TakeCompoundOutputReqOrBuilder {
private static final long serialVersionUID = 0L;
// Use TakeCompoundOutputReq.newBuilder() to construct.
private TakeCompoundOutputReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
super(builder);
}
private TakeCompoundOutputReq() {
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new TakeCompoundOutputReq();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private TakeCompoundOutputReq(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 24: {
compoundGroupId_ = input.readUInt32();
break;
}
case 80: {
compoundId_ = input.readUInt32();
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.internal_static_TakeCompoundOutputReq_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.internal_static_TakeCompoundOutputReq_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq.class, emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq.Builder.class);
}
public static final int COMPOUND_GROUP_ID_FIELD_NUMBER = 3;
private int compoundGroupId_;
/**
* <code>uint32 compound_group_id = 3;</code>
* @return The compoundGroupId.
*/
@java.lang.Override
public int getCompoundGroupId() {
return compoundGroupId_;
}
public static final int COMPOUND_ID_FIELD_NUMBER = 10;
private int compoundId_;
/**
* <code>uint32 compound_id = 10;</code>
* @return The compoundId.
*/
@java.lang.Override
public int getCompoundId() {
return compoundId_;
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
if (compoundGroupId_ != 0) {
output.writeUInt32(3, compoundGroupId_);
}
if (compoundId_ != 0) {
output.writeUInt32(10, compoundId_);
}
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
if (compoundGroupId_ != 0) {
size += com.google.protobuf.CodedOutputStream
.computeUInt32Size(3, compoundGroupId_);
}
if (compoundId_ != 0) {
size += com.google.protobuf.CodedOutputStream
.computeUInt32Size(10, compoundId_);
}
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq)) {
return super.equals(obj);
}
emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq other = (emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq) obj;
if (getCompoundGroupId()
!= other.getCompoundGroupId()) return false;
if (getCompoundId()
!= other.getCompoundId()) return false;
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
}
int hash = 41;
hash = (19 * hash) + getDescriptor().hashCode();
hash = (37 * hash) + COMPOUND_GROUP_ID_FIELD_NUMBER;
hash = (53 * hash) + getCompoundGroupId();
hash = (37 * hash) + COMPOUND_ID_FIELD_NUMBER;
hash = (53 * hash) + getCompoundId();
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
* <pre>
* CmdId: 174
* EnetChannelId: 0
* EnetIsReliable: true
* IsAllowClient: true
* </pre>
*
* Protobuf type {@code TakeCompoundOutputReq}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
// @@protoc_insertion_point(builder_implements:TakeCompoundOutputReq)
emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReqOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.internal_static_TakeCompoundOutputReq_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.internal_static_TakeCompoundOutputReq_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq.class, emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq.Builder.class);
}
// Construct using emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessageV3
.alwaysUseFieldBuilders) {
}
}
@java.lang.Override
public Builder clear() {
super.clear();
compoundGroupId_ = 0;
compoundId_ = 0;
return this;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.internal_static_TakeCompoundOutputReq_descriptor;
}
@java.lang.Override
public emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq getDefaultInstanceForType() {
return emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq.getDefaultInstance();
}
@java.lang.Override
public emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq build() {
emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
@java.lang.Override
public emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq buildPartial() {
emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq result = new emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq(this);
result.compoundGroupId_ = compoundGroupId_;
result.compoundId_ = compoundId_;
onBuilt();
return result;
}
@java.lang.Override
public Builder clone() {
return super.clone();
}
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.setField(field, value);
}
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq) {
return mergeFrom((emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq other) {
if (other == emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq.getDefaultInstance()) return this;
if (other.getCompoundGroupId() != 0) {
setCompoundGroupId(other.getCompoundGroupId());
}
if (other.getCompoundId() != 0) {
setCompoundId(other.getCompoundId());
}
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
private int compoundGroupId_ ;
/**
* <code>uint32 compound_group_id = 3;</code>
* @return The compoundGroupId.
*/
@java.lang.Override
public int getCompoundGroupId() {
return compoundGroupId_;
}
/**
* <code>uint32 compound_group_id = 3;</code>
* @param value The compoundGroupId to set.
* @return This builder for chaining.
*/
public Builder setCompoundGroupId(int value) {
compoundGroupId_ = value;
onChanged();
return this;
}
/**
* <code>uint32 compound_group_id = 3;</code>
* @return This builder for chaining.
*/
public Builder clearCompoundGroupId() {
compoundGroupId_ = 0;
onChanged();
return this;
}
private int compoundId_ ;
/**
* <code>uint32 compound_id = 10;</code>
* @return The compoundId.
*/
@java.lang.Override
public int getCompoundId() {
return compoundId_;
}
/**
* <code>uint32 compound_id = 10;</code>
* @param value The compoundId to set.
* @return This builder for chaining.
*/
public Builder setCompoundId(int value) {
compoundId_ = value;
onChanged();
return this;
}
/**
* <code>uint32 compound_id = 10;</code>
* @return This builder for chaining.
*/
public Builder clearCompoundId() {
compoundId_ = 0;
onChanged();
return this;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:TakeCompoundOutputReq)
}
// @@protoc_insertion_point(class_scope:TakeCompoundOutputReq)
private static final emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq();
}
public static emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser<TakeCompoundOutputReq>
PARSER = new com.google.protobuf.AbstractParser<TakeCompoundOutputReq>() {
@java.lang.Override
public TakeCompoundOutputReq parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new TakeCompoundOutputReq(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser<TakeCompoundOutputReq> parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser<TakeCompoundOutputReq> getParserForType() {
return PARSER;
}
@java.lang.Override
public emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
private static final com.google.protobuf.Descriptors.Descriptor
internal_static_TakeCompoundOutputReq_descriptor;
private static final
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internal_static_TakeCompoundOutputReq_fieldAccessorTable;
public static com.google.protobuf.Descriptors.FileDescriptor
getDescriptor() {
return descriptor;
}
private static com.google.protobuf.Descriptors.FileDescriptor
descriptor;
static {
java.lang.String[] descriptorData = {
"\n\033TakeCompoundOutputReq.proto\"G\n\025TakeCom" +
"poundOutputReq\022\031\n\021compound_group_id\030\003 \001(" +
"\r\022\023\n\013compound_id\030\n \001(\rB\033\n\031emu.grasscutte" +
"r.net.protob\006proto3"
};
descriptor = com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
new com.google.protobuf.Descriptors.FileDescriptor[] {
});
internal_static_TakeCompoundOutputReq_descriptor =
getDescriptor().getMessageTypes().get(0);
internal_static_TakeCompoundOutputReq_fieldAccessorTable = new
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_TakeCompoundOutputReq_descriptor,
new java.lang.String[] { "CompoundGroupId", "CompoundId", });
}
// @@protoc_insertion_point(outer_class_scope)
}

View File

@ -0,0 +1,926 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: TakeCompoundOutputRsp.proto
package emu.grasscutter.net.proto;
public final class TakeCompoundOutputRspOuterClass {
private TakeCompoundOutputRspOuterClass() {}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistryLite registry) {
}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistry registry) {
registerAllExtensions(
(com.google.protobuf.ExtensionRegistryLite) registry);
}
public interface TakeCompoundOutputRspOrBuilder extends
// @@protoc_insertion_point(interface_extends:TakeCompoundOutputRsp)
com.google.protobuf.MessageOrBuilder {
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam>
getItemListList();
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getItemList(int index);
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
int getItemListCount();
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
java.util.List<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder>
getItemListOrBuilderList();
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getItemListOrBuilder(
int index);
/**
* <code>int32 retcode = 2;</code>
* @return The retcode.
*/
int getRetcode();
}
/**
* <pre>
* CmdId: 176
* EnetChannelId: 0
* EnetIsReliable: true
* </pre>
*
* Protobuf type {@code TakeCompoundOutputRsp}
*/
public static final class TakeCompoundOutputRsp extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:TakeCompoundOutputRsp)
TakeCompoundOutputRspOrBuilder {
private static final long serialVersionUID = 0L;
// Use TakeCompoundOutputRsp.newBuilder() to construct.
private TakeCompoundOutputRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
super(builder);
}
private TakeCompoundOutputRsp() {
itemList_ = java.util.Collections.emptyList();
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new TakeCompoundOutputRsp();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private TakeCompoundOutputRsp(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
int mutable_bitField0_ = 0;
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 16: {
retcode_ = input.readInt32();
break;
}
case 50: {
if (!((mutable_bitField0_ & 0x00000001) != 0)) {
itemList_ = new java.util.ArrayList<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam>();
mutable_bitField0_ |= 0x00000001;
}
itemList_.add(
input.readMessage(emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.parser(), extensionRegistry));
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
if (((mutable_bitField0_ & 0x00000001) != 0)) {
itemList_ = java.util.Collections.unmodifiableList(itemList_);
}
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.internal_static_TakeCompoundOutputRsp_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.internal_static_TakeCompoundOutputRsp_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp.class, emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp.Builder.class);
}
public static final int ITEM_LIST_FIELD_NUMBER = 6;
private java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> itemList_;
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
@java.lang.Override
public java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> getItemListList() {
return itemList_;
}
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
@java.lang.Override
public java.util.List<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder>
getItemListOrBuilderList() {
return itemList_;
}
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
@java.lang.Override
public int getItemListCount() {
return itemList_.size();
}
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
@java.lang.Override
public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getItemList(int index) {
return itemList_.get(index);
}
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
@java.lang.Override
public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getItemListOrBuilder(
int index) {
return itemList_.get(index);
}
public static final int RETCODE_FIELD_NUMBER = 2;
private int retcode_;
/**
* <code>int32 retcode = 2;</code>
* @return The retcode.
*/
@java.lang.Override
public int getRetcode() {
return retcode_;
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
if (retcode_ != 0) {
output.writeInt32(2, retcode_);
}
for (int i = 0; i < itemList_.size(); i++) {
output.writeMessage(6, itemList_.get(i));
}
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
if (retcode_ != 0) {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(2, retcode_);
}
for (int i = 0; i < itemList_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(6, itemList_.get(i));
}
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp)) {
return super.equals(obj);
}
emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp other = (emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp) obj;
if (!getItemListList()
.equals(other.getItemListList())) return false;
if (getRetcode()
!= other.getRetcode()) return false;
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
}
int hash = 41;
hash = (19 * hash) + getDescriptor().hashCode();
if (getItemListCount() > 0) {
hash = (37 * hash) + ITEM_LIST_FIELD_NUMBER;
hash = (53 * hash) + getItemListList().hashCode();
}
hash = (37 * hash) + RETCODE_FIELD_NUMBER;
hash = (53 * hash) + getRetcode();
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
* <pre>
* CmdId: 176
* EnetChannelId: 0
* EnetIsReliable: true
* </pre>
*
* Protobuf type {@code TakeCompoundOutputRsp}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
// @@protoc_insertion_point(builder_implements:TakeCompoundOutputRsp)
emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRspOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.internal_static_TakeCompoundOutputRsp_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.internal_static_TakeCompoundOutputRsp_fieldAccessorTable
.ensureFieldAccessorsInitialized(
emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp.class, emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp.Builder.class);
}
// Construct using emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessageV3
.alwaysUseFieldBuilders) {
getItemListFieldBuilder();
}
}
@java.lang.Override
public Builder clear() {
super.clear();
if (itemListBuilder_ == null) {
itemList_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000001);
} else {
itemListBuilder_.clear();
}
retcode_ = 0;
return this;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.internal_static_TakeCompoundOutputRsp_descriptor;
}
@java.lang.Override
public emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp getDefaultInstanceForType() {
return emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp.getDefaultInstance();
}
@java.lang.Override
public emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp build() {
emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
@java.lang.Override
public emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp buildPartial() {
emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp result = new emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp(this);
int from_bitField0_ = bitField0_;
if (itemListBuilder_ == null) {
if (((bitField0_ & 0x00000001) != 0)) {
itemList_ = java.util.Collections.unmodifiableList(itemList_);
bitField0_ = (bitField0_ & ~0x00000001);
}
result.itemList_ = itemList_;
} else {
result.itemList_ = itemListBuilder_.build();
}
result.retcode_ = retcode_;
onBuilt();
return result;
}
@java.lang.Override
public Builder clone() {
return super.clone();
}
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.setField(field, value);
}
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp) {
return mergeFrom((emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp other) {
if (other == emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp.getDefaultInstance()) return this;
if (itemListBuilder_ == null) {
if (!other.itemList_.isEmpty()) {
if (itemList_.isEmpty()) {
itemList_ = other.itemList_;
bitField0_ = (bitField0_ & ~0x00000001);
} else {
ensureItemListIsMutable();
itemList_.addAll(other.itemList_);
}
onChanged();
}
} else {
if (!other.itemList_.isEmpty()) {
if (itemListBuilder_.isEmpty()) {
itemListBuilder_.dispose();
itemListBuilder_ = null;
itemList_ = other.itemList_;
bitField0_ = (bitField0_ & ~0x00000001);
itemListBuilder_ =
com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
getItemListFieldBuilder() : null;
} else {
itemListBuilder_.addAllMessages(other.itemList_);
}
}
}
if (other.getRetcode() != 0) {
setRetcode(other.getRetcode());
}
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
private int bitField0_;
private java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> itemList_ =
java.util.Collections.emptyList();
private void ensureItemListIsMutable() {
if (!((bitField0_ & 0x00000001) != 0)) {
itemList_ = new java.util.ArrayList<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam>(itemList_);
bitField0_ |= 0x00000001;
}
}
private com.google.protobuf.RepeatedFieldBuilderV3<
emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> itemListBuilder_;
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
public java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> getItemListList() {
if (itemListBuilder_ == null) {
return java.util.Collections.unmodifiableList(itemList_);
} else {
return itemListBuilder_.getMessageList();
}
}
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
public int getItemListCount() {
if (itemListBuilder_ == null) {
return itemList_.size();
} else {
return itemListBuilder_.getCount();
}
}
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getItemList(int index) {
if (itemListBuilder_ == null) {
return itemList_.get(index);
} else {
return itemListBuilder_.getMessage(index);
}
}
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
public Builder setItemList(
int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) {
if (itemListBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureItemListIsMutable();
itemList_.set(index, value);
onChanged();
} else {
itemListBuilder_.setMessage(index, value);
}
return this;
}
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
public Builder setItemList(
int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder builderForValue) {
if (itemListBuilder_ == null) {
ensureItemListIsMutable();
itemList_.set(index, builderForValue.build());
onChanged();
} else {
itemListBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
public Builder addItemList(emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) {
if (itemListBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureItemListIsMutable();
itemList_.add(value);
onChanged();
} else {
itemListBuilder_.addMessage(value);
}
return this;
}
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
public Builder addItemList(
int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) {
if (itemListBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureItemListIsMutable();
itemList_.add(index, value);
onChanged();
} else {
itemListBuilder_.addMessage(index, value);
}
return this;
}
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
public Builder addItemList(
emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder builderForValue) {
if (itemListBuilder_ == null) {
ensureItemListIsMutable();
itemList_.add(builderForValue.build());
onChanged();
} else {
itemListBuilder_.addMessage(builderForValue.build());
}
return this;
}
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
public Builder addItemList(
int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder builderForValue) {
if (itemListBuilder_ == null) {
ensureItemListIsMutable();
itemList_.add(index, builderForValue.build());
onChanged();
} else {
itemListBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
public Builder addAllItemList(
java.lang.Iterable<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> values) {
if (itemListBuilder_ == null) {
ensureItemListIsMutable();
com.google.protobuf.AbstractMessageLite.Builder.addAll(
values, itemList_);
onChanged();
} else {
itemListBuilder_.addAllMessages(values);
}
return this;
}
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
public Builder clearItemList() {
if (itemListBuilder_ == null) {
itemList_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000001);
onChanged();
} else {
itemListBuilder_.clear();
}
return this;
}
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
public Builder removeItemList(int index) {
if (itemListBuilder_ == null) {
ensureItemListIsMutable();
itemList_.remove(index);
onChanged();
} else {
itemListBuilder_.remove(index);
}
return this;
}
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder getItemListBuilder(
int index) {
return getItemListFieldBuilder().getBuilder(index);
}
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getItemListOrBuilder(
int index) {
if (itemListBuilder_ == null) {
return itemList_.get(index); } else {
return itemListBuilder_.getMessageOrBuilder(index);
}
}
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
public java.util.List<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder>
getItemListOrBuilderList() {
if (itemListBuilder_ != null) {
return itemListBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(itemList_);
}
}
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder addItemListBuilder() {
return getItemListFieldBuilder().addBuilder(
emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.getDefaultInstance());
}
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder addItemListBuilder(
int index) {
return getItemListFieldBuilder().addBuilder(
index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.getDefaultInstance());
}
/**
* <code>repeated .ItemParam item_list = 6;</code>
*/
public java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder>
getItemListBuilderList() {
return getItemListFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilderV3<
emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder>
getItemListFieldBuilder() {
if (itemListBuilder_ == null) {
itemListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder>(
itemList_,
((bitField0_ & 0x00000001) != 0),
getParentForChildren(),
isClean());
itemList_ = null;
}
return itemListBuilder_;
}
private int retcode_ ;
/**
* <code>int32 retcode = 2;</code>
* @return The retcode.
*/
@java.lang.Override
public int getRetcode() {
return retcode_;
}
/**
* <code>int32 retcode = 2;</code>
* @param value The retcode to set.
* @return This builder for chaining.
*/
public Builder setRetcode(int value) {
retcode_ = value;
onChanged();
return this;
}
/**
* <code>int32 retcode = 2;</code>
* @return This builder for chaining.
*/
public Builder clearRetcode() {
retcode_ = 0;
onChanged();
return this;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:TakeCompoundOutputRsp)
}
// @@protoc_insertion_point(class_scope:TakeCompoundOutputRsp)
private static final emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp();
}
public static emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser<TakeCompoundOutputRsp>
PARSER = new com.google.protobuf.AbstractParser<TakeCompoundOutputRsp>() {
@java.lang.Override
public TakeCompoundOutputRsp parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new TakeCompoundOutputRsp(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser<TakeCompoundOutputRsp> parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser<TakeCompoundOutputRsp> getParserForType() {
return PARSER;
}
@java.lang.Override
public emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
private static final com.google.protobuf.Descriptors.Descriptor
internal_static_TakeCompoundOutputRsp_descriptor;
private static final
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internal_static_TakeCompoundOutputRsp_fieldAccessorTable;
public static com.google.protobuf.Descriptors.FileDescriptor
getDescriptor() {
return descriptor;
}
private static com.google.protobuf.Descriptors.FileDescriptor
descriptor;
static {
java.lang.String[] descriptorData = {
"\n\033TakeCompoundOutputRsp.proto\032\017ItemParam" +
".proto\"G\n\025TakeCompoundOutputRsp\022\035\n\titem_" +
"list\030\006 \003(\0132\n.ItemParam\022\017\n\007retcode\030\002 \001(\005B" +
"\033\n\031emu.grasscutter.net.protob\006proto3"
};
descriptor = com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
new com.google.protobuf.Descriptors.FileDescriptor[] {
emu.grasscutter.net.proto.ItemParamOuterClass.getDescriptor(),
});
internal_static_TakeCompoundOutputRsp_descriptor =
getDescriptor().getMessageTypes().get(0);
internal_static_TakeCompoundOutputRsp_fieldAccessorTable = new
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_TakeCompoundOutputRsp_descriptor,
new java.lang.String[] { "ItemList", "Retcode", });
emu.grasscutter.net.proto.ItemParamOuterClass.getDescriptor();
}
// @@protoc_insertion_point(outer_class_scope)
}

View File

@ -6,7 +6,7 @@ import emu.grasscutter.utils.Position;
import emu.grasscutter.utils.Utils; import emu.grasscutter.utils.Utils;
public final class GameConstants { public final class GameConstants {
public static String VERSION = "3.1.0"; public static String VERSION = "3.2.0";
public static final int DEFAULT_TEAMS = 4; public static final int DEFAULT_TEAMS = 4;
public static final int MAX_TEAMS = 10; public static final int MAX_TEAMS = 10;

View File

@ -2,7 +2,6 @@ package emu.grasscutter;
import ch.qos.logback.classic.Level; import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.Logger;
import com.google.gson.Gson;
import emu.grasscutter.auth.AuthenticationSystem; import emu.grasscutter.auth.AuthenticationSystem;
import emu.grasscutter.auth.DefaultAuthentication; import emu.grasscutter.auth.DefaultAuthentication;
@ -49,27 +48,27 @@ import static emu.grasscutter.config.Configuration.SERVER;
import static emu.grasscutter.utils.Language.translate; import static emu.grasscutter.utils.Language.translate;
public final class Grasscutter { public final class Grasscutter {
private static final Logger log = (Logger) LoggerFactory.getLogger(Grasscutter.class); @Getter private static final Logger logger = (Logger) LoggerFactory.getLogger(Grasscutter.class);
private static LineReader consoleLineReader = null; private static LineReader consoleLineReader = null;
private static Language language; @Getter @Setter private static Language language;
public static final File configFile = new File("./config.json"); public static final File configFile = new File("./config.json");
@Setter private static ServerRunMode runModeOverride = null; // Config override for run mode @Setter private static ServerRunMode runModeOverride = null; // Config override for run mode
private static int day; // Current day of week. @Getter private static int currentDayOfWeek;
@Getter @Setter private static String preferredLanguage; @Getter @Setter private static String preferredLanguage;
private static HttpServer httpServer; @Getter private static HttpServer httpServer;
private static GameServer gameServer; @Getter private static GameServer gameServer;
private static PluginManager pluginManager; @Getter private static PluginManager pluginManager;
@Getter private static CommandMap commandMap; @Getter private static CommandMap commandMap;
private static AuthenticationSystem authenticationSystem; @Getter @Setter private static AuthenticationSystem authenticationSystem;
private static PermissionHandler permissionHandler; @Getter @Setter private static PermissionHandler permissionHandler;
public static final Reflections reflector = new Reflections("emu.grasscutter"); public static final Reflections reflector = new Reflections("emu.grasscutter");
public static ConfigContainer config; @Getter public static ConfigContainer config;
static { static {
// Declare logback configuration. // Declare logback configuration.
@ -231,18 +230,6 @@ public final class Grasscutter {
* Getters for the various server components. * Getters for the various server components.
*/ */
public static ConfigContainer getConfig() {
return config;
}
public static Language getLanguage() {
return language;
}
public static void setLanguage(Language language) {
Grasscutter.language = language;
}
public static Language getLanguage(String langCode) { public static Language getLanguage(String langCode) {
return Language.getLanguage(langCode); return Language.getLanguage(langCode);
} }
@ -251,10 +238,6 @@ public final class Grasscutter {
return Grasscutter.runModeOverride != null ? Grasscutter.runModeOverride : SERVER.runMode; return Grasscutter.runModeOverride != null ? Grasscutter.runModeOverride : SERVER.runMode;
} }
public static Logger getLogger() {
return log;
}
public static LineReader getConsole() { public static LineReader getConsole() {
if (consoleLineReader == null) { if (consoleLineReader == null) {
Terminal terminal = null; Terminal terminal = null;
@ -275,38 +258,14 @@ public final class Grasscutter {
return consoleLineReader; return consoleLineReader;
} }
public static HttpServer getHttpServer() {
return httpServer;
}
public static GameServer getGameServer() {
return gameServer;
}
public static PluginManager getPluginManager() {
return pluginManager;
}
public static AuthenticationSystem getAuthenticationSystem() {
return authenticationSystem;
}
public static PermissionHandler getPermissionHandler() {
return permissionHandler;
}
public static int getCurrentDayOfWeek() {
return day;
}
/* /*
* Utility methods. * Utility methods.
*/ */
public static void updateDayOfWeek() { public static void updateDayOfWeek() {
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
day = calendar.get(Calendar.DAY_OF_WEEK); Grasscutter.currentDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
Grasscutter.getLogger().debug("Set day of week to "+day); Grasscutter.getLogger().debug("Set day of week to "+currentDayOfWeek);
} }
public static void startConsole() { public static void startConsole() {
@ -334,8 +293,8 @@ public final class Grasscutter {
Grasscutter.getLogger().info("EOF detected."); Grasscutter.getLogger().info("EOF detected.");
continue; continue;
} catch (IOError e) { } catch (IOError e) {
Grasscutter.getLogger().error("An IO error occurred.", e); Grasscutter.getLogger().error("An IO error occurred while trying to read from console.", e);
continue; return;
} }
isLastInterrupted = false; isLastInterrupted = false;
@ -347,24 +306,6 @@ public final class Grasscutter {
} }
} }
/**
* Sets the authentication system for the server.
*
* @param authenticationSystem The authentication system to use.
*/
public static void setAuthenticationSystem(AuthenticationSystem authenticationSystem) {
Grasscutter.authenticationSystem = authenticationSystem;
}
/**
* Sets the permission handler for the server.
*
* @param permissionHandler The permission handler to use.
*/
public static void setPermissionHandler(PermissionHandler permissionHandler) {
Grasscutter.permissionHandler = permissionHandler;
}
/* /*
* Enums for the configuration. * Enums for the configuration.
*/ */

View File

@ -8,16 +8,17 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
public class CommandHelpers { public class CommandHelpers {
public static final Pattern lvlRegex = Pattern.compile("l(?:vl?)?(\\d+)"); // Java doesn't have raw string literals :( public static final Pattern lvlRegex = Pattern.compile("(?<!\\w)l(?:vl?)?(\\d+)"); // Java doesn't have raw string literals :(
public static final Pattern amountRegex = Pattern.compile("((?<=x)\\d+|\\d+(?=x)(?!x\\d))"); public static final Pattern amountRegex = Pattern.compile("((?<=(?<!\\w)x)\\d+|\\d+(?=x)(?!x\\d))");
public static final Pattern refineRegex = Pattern.compile("r(\\d+)"); public static final Pattern refineRegex = Pattern.compile("(?<!\\w)r(\\d+)");
public static final Pattern rankRegex = Pattern.compile("(\\d+)\\*"); public static final Pattern rankRegex = Pattern.compile("(\\d+)\\*");
public static final Pattern constellationRegex = Pattern.compile("c(\\d+)"); public static final Pattern constellationRegex = Pattern.compile("(?<!\\w)c(\\d+)");
public static final Pattern skillLevelRegex = Pattern.compile("sl(\\d+)");
public static final Pattern stateRegex = Pattern.compile("state(\\d+)"); public static final Pattern stateRegex = Pattern.compile("state(\\d+)");
public static final Pattern blockRegex = Pattern.compile("blk(\\d+)"); public static final Pattern blockRegex = Pattern.compile("blk(\\d+)");
public static final Pattern groupRegex = Pattern.compile("grp(\\d+)"); public static final Pattern groupRegex = Pattern.compile("grp(\\d+)");
public static final Pattern configRegex = Pattern.compile("cfg(\\d+)"); public static final Pattern configRegex = Pattern.compile("cfg(\\d+)");
public static final Pattern hpRegex = Pattern.compile("hp(\\d+)"); public static final Pattern hpRegex = Pattern.compile("(?<!\\w)hp(\\d+)");
public static final Pattern maxHPRegex = Pattern.compile("maxhp(\\d+)"); public static final Pattern maxHPRegex = Pattern.compile("maxhp(\\d+)");
public static final Pattern atkRegex = Pattern.compile("atk(\\d+)"); public static final Pattern atkRegex = Pattern.compile("atk(\\d+)");
public static final Pattern defRegex = Pattern.compile("def(\\d+)"); public static final Pattern defRegex = Pattern.compile("def(\\d+)");
@ -32,21 +33,18 @@ public class CommandHelpers {
} }
public static <T> List<String> parseIntParameters(List<String> args, @Nonnull T params, Map<Pattern, BiConsumer<T, Integer>> map) { public static <T> List<String> parseIntParameters(List<String> args, @Nonnull T params, Map<Pattern, BiConsumer<T, Integer>> map) {
for (int i = args.size() - 1; i >= 0; i--) { args.removeIf(arg -> {
String arg = args.get(i).toLowerCase(); var argL = arg.toLowerCase();
boolean deleteArg = false; boolean deleteArg = false;
int argNum;
for (var entry : map.entrySet()) { for (var entry : map.entrySet()) {
if ((argNum = matchIntOrNeg(entry.getKey(), arg)) != -1) { int argNum = matchIntOrNeg(entry.getKey(), argL);
if (argNum != -1) {
entry.getValue().accept(params, argNum); entry.getValue().accept(params, argNum);
deleteArg = true; deleteArg = true;
break;
} }
} }
if (deleteArg) { return deleteArg;
args.remove(i); });
}
}
return args; return args;
} }
} }

View File

@ -89,7 +89,7 @@ public final class CommandMap {
} }
public List<Command> getAnnotationsAsList() { public List<Command> getAnnotationsAsList() {
return new LinkedList<>(this.annotations.values()); return new ArrayList<>(this.annotations.values());
} }
public Map<String, Command> getAnnotations() { public Map<String, Command> getAnnotations() {
@ -102,7 +102,7 @@ public final class CommandMap {
* @return All command handlers as a list. * @return All command handlers as a list.
*/ */
public List<CommandHandler> getHandlersAsList() { public List<CommandHandler> getHandlersAsList() {
return new LinkedList<>(this.commands.values()); return new ArrayList<>(this.commands.values());
} }
public Map<String, CommandHandler> getHandlers() { public Map<String, CommandHandler> getHandlers() {
@ -234,8 +234,8 @@ public final class CommandMap {
// Parse message. // Parse message.
String[] split = rawMessage.split(" "); String[] split = rawMessage.split(" ");
List<String> args = new LinkedList<>(Arrays.asList(split)); String label = split[0].toLowerCase();
String label = args.remove(0).toLowerCase(); List<String> args = new ArrayList<>(Arrays.asList(split).subList(1, split.length));
String playerId = (player == null) ? consoleId : player.getAccount().getId(); String playerId = (player == null) ? consoleId : player.getAccount().getId();
// Check for special cases - currently only target command. // Check for special cases - currently only target command.

View File

@ -5,6 +5,7 @@ import emu.grasscutter.command.CommandHandler;
import emu.grasscutter.data.GameData; import emu.grasscutter.data.GameData;
import emu.grasscutter.data.GameDepot; import emu.grasscutter.data.GameDepot;
import emu.grasscutter.data.excels.AvatarData; import emu.grasscutter.data.excels.AvatarData;
import emu.grasscutter.data.excels.AvatarSkillDepotData;
import emu.grasscutter.data.excels.ItemData; import emu.grasscutter.data.excels.ItemData;
import emu.grasscutter.data.excels.ReliquaryAffixData; import emu.grasscutter.data.excels.ReliquaryAffixData;
import emu.grasscutter.data.excels.ReliquaryMainPropData; import emu.grasscutter.data.excels.ReliquaryMainPropData;
@ -29,7 +30,7 @@ import static emu.grasscutter.command.CommandHelpers.*;
label = "give", label = "give",
aliases = {"g", "item", "giveitem"}, aliases = {"g", "item", "giveitem"},
usage = { usage = {
"(<itemId>|<avatarId>|all|weapons|mats|avatars) [lv<level>] [r<refinement>] [x<amount>] [c<constellation>]", "(<itemId>|<avatarId>|all|weapons|mats|avatars) [lv<level>] [r<refinement>] [x<amount>] [c<constellation>] [sl<skilllevel>]",
"<artifactId> [lv<level>] [x<amount>] [<mainPropId>] [<appendPropId>[,<times>]]..."}, "<artifactId> [lv<level>] [x<amount>] [<mainPropId>] [<appendPropId>[,<times>]]..."},
permission = "player.give", permission = "player.give",
permissionTargeted = "player.give.others", permissionTargeted = "player.give.others",
@ -47,7 +48,8 @@ public final class GiveCommand implements CommandHandler {
Map.entry(lvlRegex, GiveItemParameters::setLvl), Map.entry(lvlRegex, GiveItemParameters::setLvl),
Map.entry(refineRegex, GiveItemParameters::setRefinement), Map.entry(refineRegex, GiveItemParameters::setRefinement),
Map.entry(amountRegex, GiveItemParameters::setAmount), Map.entry(amountRegex, GiveItemParameters::setAmount),
Map.entry(constellationRegex, GiveItemParameters::setConstellation) Map.entry(constellationRegex, GiveItemParameters::setConstellation),
Map.entry(skillLevelRegex, GiveItemParameters::setSkillLevel)
); );
private static class GiveItemParameters { private static class GiveItemParameters {
@ -56,6 +58,7 @@ public final class GiveCommand implements CommandHandler {
@Setter public int amount = 1; @Setter public int amount = 1;
@Setter public int refinement = 1; @Setter public int refinement = 1;
@Setter public int constellation = -1; @Setter public int constellation = -1;
@Setter public int skillLevel = 1;
public int mainPropId = -1; public int mainPropId = -1;
public List<Integer> appendPropIdList; public List<Integer> appendPropIdList;
public ItemData data; public ItemData data;
@ -212,30 +215,28 @@ public final class GiveCommand implements CommandHandler {
} }
private static Avatar makeAvatar(GiveItemParameters param) { private static Avatar makeAvatar(GiveItemParameters param) {
return makeAvatar(param.avatarData, param.lvl, Avatar.getMinPromoteLevel(param.lvl), param.constellation); return makeAvatar(param.avatarData, param.lvl, Avatar.getMinPromoteLevel(param.lvl), param.constellation, param.skillLevel);
} }
private static Avatar makeAvatar(AvatarData avatarData, int level, int promoteLevel, int constellation) { private static Avatar makeAvatar(AvatarData avatarData, int level, int promoteLevel, int constellation, int skillLevel) {
Avatar avatar = new Avatar(avatarData); Avatar avatar = new Avatar(avatarData);
avatar.setLevel(level); avatar.setLevel(level);
avatar.setPromoteLevel(promoteLevel); avatar.setPromoteLevel(promoteLevel);
avatar.getSkillDepot().getSkillsAndEnergySkill().forEach(id -> avatar.setSkillLevel(id, skillLevel));
avatar.forceConstellationLevel(constellation); avatar.forceConstellationLevel(constellation);
avatar.recalcStats(); avatar.recalcStats(true);
avatar.save();
return avatar; return avatar;
} }
private static void giveAllAvatars(Player player, GiveItemParameters param) { private static void giveAllAvatars(Player player, GiveItemParameters param) {
int promoteLevel = Avatar.getMinPromoteLevel(param.lvl); int promoteLevel = Avatar.getMinPromoteLevel(param.lvl);
if (param.constellation < 0) { if (param.constellation < 0 || param.constellation > 6) param.constellation = 6; // constellation's default is -1 so if no parameters set for constellations it'll automatically be 6
param.constellation = 6;
}
for (AvatarData avatarData : GameData.getAvatarDataMap().values()) { for (AvatarData avatarData : GameData.getAvatarDataMap().values()) {
// Exclude test avatars
int id = avatarData.getId(); int id = avatarData.getId();
if (id < 10000002 || id >= 11000000) continue; if (id < 10000002 || id >= 11000000) continue; // Exclude test avatars
// Don't try to add each avatar to the current team // Don't try to add each avatar to the current team
player.addAvatar(makeAvatar(avatarData, param.lvl, promoteLevel, param.constellation), false); player.addAvatar(makeAvatar(avatarData, param.lvl, promoteLevel, param.constellation, param.skillLevel), false);
} }
} }
@ -372,7 +373,7 @@ public final class GiveCommand implements CommandHandler {
for (int i = 0; i < n; i++) { for (int i = 0; i < n; i++) {
param.appendPropIdList.add(appendPropId); param.appendPropIdList.add(appendPropId);
} }
}; }
} }
private static void addItemsChunked(Player player, List<GameItem> items, int packetSize) { private static void addItemsChunked(Player player, List<GameItem> items, int packetSize) {

View File

@ -9,7 +9,11 @@ import java.util.List;
import static emu.grasscutter.utils.Language.translate; import static emu.grasscutter.utils.Language.translate;
@Command(label = "quest", usage = {"(add|finish) [<questId>]"}, permission = "player.quest", permissionTargeted = "player.quest.others") @Command(label = "quest",
aliases = {"q"},
usage = {"(add|finish) [<questId>]"},
permission = "player.quest",
permissionTargeted = "player.quest.others")
public final class QuestCommand implements CommandHandler { public final class QuestCommand implements CommandHandler {
@Override @Override

View File

@ -9,6 +9,7 @@ import emu.grasscutter.game.player.Player;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Objects;
import static emu.grasscutter.utils.Language.translate; import static emu.grasscutter.utils.Language.translate;
@ -78,9 +79,10 @@ public final class SendMailCommand implements CommandHandler {
Grasscutter.getGameServer().getPlayerByUid(mailBuilder.recipient, true).sendMail(mailBuilder.mail); Grasscutter.getGameServer().getPlayerByUid(mailBuilder.recipient, true).sendMail(mailBuilder.mail);
CommandHandler.sendMessage(sender, translate(sender, "commands.sendMail.send_done", mailBuilder.recipient)); CommandHandler.sendMessage(sender, translate(sender, "commands.sendMail.send_done", mailBuilder.recipient));
} else { } else {
for (Player player : DatabaseHelper.getAllPlayers()) { DatabaseHelper.getByGameClass(Player.class).forEach(player -> {
Grasscutter.getGameServer().getPlayerByUid(player.getUid(), true).sendMail(mailBuilder.mail); var onlinePlayer = Grasscutter.getGameServer().getPlayerByUid(player.getUid(), false);
} Objects.requireNonNullElse(onlinePlayer, player).sendMail(mailBuilder.mail);
});
CommandHandler.sendMessage(sender, translate(sender, "commands.sendMail.send_all_done")); CommandHandler.sendMessage(sender, translate(sender, "commands.sendMail.send_all_done"));
} }
mailBeingConstructed.remove(senderId); mailBeingConstructed.remove(senderId);

View File

@ -1,10 +1,7 @@
package emu.grasscutter.command.commands; package emu.grasscutter.command.commands;
import emu.grasscutter.Grasscutter;
import emu.grasscutter.command.Command; import emu.grasscutter.command.Command;
import emu.grasscutter.command.CommandHandler; import emu.grasscutter.command.CommandHandler;
import emu.grasscutter.data.GameData;
import emu.grasscutter.data.excels.AvatarTalentData;
import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.avatar.Avatar;
import emu.grasscutter.game.entity.EntityAvatar; import emu.grasscutter.game.entity.EntityAvatar;
import emu.grasscutter.game.player.Player; import emu.grasscutter.game.player.Player;
@ -12,14 +9,13 @@ import emu.grasscutter.game.world.Scene;
import emu.grasscutter.game.world.World; import emu.grasscutter.game.world.World;
import emu.grasscutter.server.packet.send.*; import emu.grasscutter.server.packet.send.*;
import emu.grasscutter.utils.Position; import emu.grasscutter.utils.Position;
import it.unimi.dsi.fastutil.ints.IntArrayList;
import java.util.List; import java.util.List;
@Command( @Command(
label = "setConst", label = "setConst",
aliases = {"setconstellation"}, aliases = {"setconstellation"},
usage = {"<constellation level>"}, usage = {"<constellation level> [all]"},
permission = "player.setconstellation", permission = "player.setconstellation",
permissionTargeted = "player.setconstellation.others") permissionTargeted = "player.setconstellation.others")
public final class SetConstCommand implements CommandHandler { public final class SetConstCommand implements CommandHandler {
@ -29,21 +25,28 @@ public final class SetConstCommand implements CommandHandler {
sendUsageMessage(sender); sendUsageMessage(sender);
return; return;
} }
try { try {
int constLevel = Integer.parseInt(args.get(0)); int constLevel = Integer.parseInt(args.get(0));
// Check if level is out of range
if (constLevel < -1 || constLevel > 6) { if (constLevel < -1 || constLevel > 6) {
CommandHandler.sendTranslatedMessage(sender, "commands.setConst.range_error"); CommandHandler.sendTranslatedMessage(sender, "commands.setConst.range_error");
return; return;
} }
// If it's either empty or anything else other than "all" just do normal setConstellation
EntityAvatar entity = targetPlayer.getTeamManager().getCurrentAvatarEntity(); if (args.size() == 1) {
if (entity == null) return; EntityAvatar entity = targetPlayer.getTeamManager().getCurrentAvatarEntity();
Avatar avatar = entity.getAvatar(); if (entity == null) return;
Avatar avatar = entity.getAvatar();
this.setConstellation(targetPlayer, avatar, constLevel); this.setConstellation(targetPlayer, avatar, constLevel);
CommandHandler.sendTranslatedMessage(sender, "commands.setConst.success", avatar.getAvatarData().getName(), constLevel);
CommandHandler.sendTranslatedMessage(sender, "commands.setConst.success", avatar.getAvatarData().getName(), constLevel); return;
}
// Check if there's an additional argument which is "all", if it does then go setAllConstellation
if (args.size() > 1 && args.get(1).equalsIgnoreCase("all")) {
this.setAllConstellation(targetPlayer, constLevel);
CommandHandler.sendTranslatedMessage(sender, "commands.setConst.successall", constLevel);
}
else sendUsageMessage(sender);
} catch (NumberFormatException ignored) { } catch (NumberFormatException ignored) {
CommandHandler.sendTranslatedMessage(sender, "commands.setConst.level_error"); CommandHandler.sendTranslatedMessage(sender, "commands.setConst.level_error");
} }
@ -55,13 +58,7 @@ public final class SetConstCommand implements CommandHandler {
// force player to reload scene when necessary // force player to reload scene when necessary
if (constLevel < currentConstLevel) { if (constLevel < currentConstLevel) {
World world = player.getWorld(); this.reloadScene(player);
Scene scene = player.getScene();
Position pos = player.getPosition();
world.transferPlayerToScene(player, 1, pos);
world.transferPlayerToScene(player, scene.getId(), pos);
scene.broadcastPacket(new PacketSceneEntityAppearNotify(player));
} }
// ensure that all changes are visible to the player // ensure that all changes are visible to the player
@ -69,4 +66,24 @@ public final class SetConstCommand implements CommandHandler {
avatar.recalcStats(true); avatar.recalcStats(true);
avatar.save(); avatar.save();
} }
private void setAllConstellation(Player player, int constLevel) {
player.getAvatars().forEach(avatar -> {
avatar.forceConstellationLevel(constLevel);
avatar.recalcConstellations();
avatar.recalcStats(true);
avatar.save();
});
// Just reload scene once, shorter than having to check for each constLevel < currentConstLevel
this.reloadScene(player);
}
private void reloadScene(Player player) {
World world = player.getWorld();
Scene scene = player.getScene();
Position pos = player.getPosition();
world.transferPlayerToScene(player, 1, pos);
world.transferPlayerToScene(player, scene.getId(), pos);
scene.broadcastPacket(new PacketSceneEntityAppearNotify(player));
}
} }

View File

@ -67,9 +67,10 @@ public final class SetStatsCommand implements CommandHandler {
// Compatibility aliases // Compatibility aliases
this.stats.put("mhp", this.stats.get("maxhp")); this.stats.put("mhp", this.stats.get("maxhp"));
this.stats.put("hp", new Stat(FightProperty.FIGHT_PROP_CUR_HP)); // Overrides FIGHT_PROP_HP this.stats.put("hp", this.stats.get("_cur_hp")); // Overrides FIGHT_PROP_HP
this.stats.put("atk", new Stat(FightProperty.FIGHT_PROP_CUR_ATTACK)); // Overrides FIGHT_PROP_ATTACK this.stats.put("atk", this.stats.get("_cur_attack")); // Overrides FIGHT_PROP_ATTACK
this.stats.put("atkb", new Stat(FightProperty.FIGHT_PROP_BASE_ATTACK)); // This doesn't seem to get used to recalculate ATK, so it's only useful for stuff like Bennett's buff. this.stats.put("def", this.stats.get("_cur_defense")); // Overrides FIGHT_PROP_DEFENSE
this.stats.put("atkb", this.stats.get("_base_attack")); // This doesn't seem to get used to recalculate ATK, so it's only useful for stuff like Bennett's buff.
this.stats.put("eanemo", this.stats.get("anemo%")); this.stats.put("eanemo", this.stats.get("anemo%"));
this.stats.put("ecryo", this.stats.get("cryo%")); this.stats.put("ecryo", this.stats.get("cryo%"));
this.stats.put("edendro", this.stats.get("dendro%")); this.stats.put("edendro", this.stats.get("dendro%"));

View File

@ -25,7 +25,7 @@ import static emu.grasscutter.utils.Language.translate;
@Command( @Command(
label = "spawn", label = "spawn",
aliases = {"drop"}, aliases = {"drop", "s"},
usage = { usage = {
"<itemId> [x<amount>] [blk<blockId>] [grp<groupId>] [cfg<configId>] <x> <y> <z>", "<itemId> [x<amount>] [blk<blockId>] [grp<groupId>] [cfg<configId>] <x> <y> <z>",
"<gadgetId> [x<amount>] [state<state>] [maxhp<maxhp>] [hp<hp>(0 for infinite)] [atk<atk>] [def<def>] [blk<blockId>] [grp<groupId>] [cfg<configId>] <x> <y> <z>", "<gadgetId> [x<amount>] [state<state>] [maxhp<maxhp>] [hp<hp>(0 for infinite)] [atk<atk>] [def<def>] [blk<blockId>] [grp<groupId>] [cfg<configId>] <x> <y> <z>",

View File

@ -103,10 +103,8 @@ public final class TalentCommand implements CommandHandler {
CommandHandler.sendTranslatedMessage(sender, "commands.talent.out_of_range"); CommandHandler.sendTranslatedMessage(sender, "commands.talent.out_of_range");
return; return;
} }
// This is small so array is not needed imo int finalNewLevel = newLevel;
setTalentLevel(sender, avatar, skillDepot.getSkills().get(0), newLevel); skillDepot.getSkillsAndEnergySkill().forEach(id -> setTalentLevel(sender, avatar, id, finalNewLevel));
setTalentLevel(sender, avatar, skillDepot.getSkills().get(1), newLevel);
setTalentLevel(sender, avatar, skillDepot.getEnergySkill(), newLevel);
} }
case "getid" -> { case "getid" -> {
var map = GameData.getAvatarSkillDataMap(); var map = GameData.getAvatarSkillDataMap();

View File

@ -1,5 +1,6 @@
package emu.grasscutter.config; package emu.grasscutter.config;
import ch.qos.logback.classic.Level;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import emu.grasscutter.Grasscutter; import emu.grasscutter.Grasscutter;
import emu.grasscutter.Grasscutter.ServerDebugMode; import emu.grasscutter.Grasscutter.ServerDebugMode;
@ -101,6 +102,7 @@ public class ConfigContainer {
public Game game = new Game(); public Game game = new Game();
public Dispatch dispatch = new Dispatch(); public Dispatch dispatch = new Dispatch();
public DebugMode debugMode = new DebugMode();
} }
public static class Language { public static class Language {
@ -150,6 +152,10 @@ public class ConfigContainer {
public int kcpInterval = 20; public int kcpInterval = 20;
/* Controls whether packets should be logged in console or not */ /* Controls whether packets should be logged in console or not */
public ServerDebugMode logPackets = ServerDebugMode.NONE; public ServerDebugMode logPackets = ServerDebugMode.NONE;
/* Show packet payload in console or no (in any case the payload is shown in encrypted view) */
public Boolean isShowPacketPayload = false;
/* Show annoying loop packets or no */
public Boolean isShowLoopPackets = false;
public GameOptions gameOptions = new GameOptions(); public GameOptions gameOptions = new GameOptions();
public JoinOptions joinOptions = new JoinOptions(); public JoinOptions joinOptions = new JoinOptions();
@ -163,9 +169,33 @@ public class ConfigContainer {
public String defaultName = "Grasscutter"; public String defaultName = "Grasscutter";
/* Controls whether http requests should be logged in console or not */
public ServerDebugMode logRequests = ServerDebugMode.NONE; public ServerDebugMode logRequests = ServerDebugMode.NONE;
} }
/* Debug options container, used when jar launch argument is -debug | -debugall and override default values
* (see StartupArguments.enableDebug) */
public static class DebugMode {
/* Log level of the main server code (works only with -debug arg) */
public Level serverLoggerLevel = Level.DEBUG;
/* Log level of the third-party services (works only with -debug arg):
javalin, quartz, reflections, jetty, mongodb.driver*/
public Level servicesLoggersLevel = Level.INFO;
/* Controls whether packets should be logged in console or not */
public ServerDebugMode logPackets = ServerDebugMode.ALL;
/* Show packet payload in console or no (in any case the payload is shown in encrypted view) */
public Boolean isShowPacketPayload = false;
/* Show annoying loop packets or no */
public Boolean isShowLoopPackets = false;
/* Controls whether http requests should be logged in console or not */
public ServerDebugMode logRequests = ServerDebugMode.ALL;
}
public static class Encryption { public static class Encryption {
public boolean useEncryption = true; public boolean useEncryption = true;
/* Should 'https' be appended to URLs? */ /* Should 'https' be appended to URLs? */

View File

@ -38,6 +38,7 @@ public final class Configuration extends ConfigContainer {
public static final HTTP HTTP_INFO = config.server.http; public static final HTTP HTTP_INFO = config.server.http;
public static final Game GAME_INFO = config.server.game; public static final Game GAME_INFO = config.server.game;
public static final Dispatch DISPATCH_INFO = config.server.dispatch; public static final Dispatch DISPATCH_INFO = config.server.dispatch;
public static final DebugMode DEBUG_MODE_INFO = config.server.debugMode;
public static final Encryption HTTP_ENCRYPTION = config.server.http.encryption; public static final Encryption HTTP_ENCRYPTION = config.server.http.encryption;
public static final Policies HTTP_POLICIES = config.server.http.policies; public static final Policies HTTP_POLICIES = config.server.http.policies;

View File

@ -12,6 +12,8 @@ import emu.grasscutter.data.binout.*;
import emu.grasscutter.game.quest.QuestEncryptionKey; import emu.grasscutter.game.quest.QuestEncryptionKey;
import emu.grasscutter.utils.Utils; import emu.grasscutter.utils.Utils;
import emu.grasscutter.data.excels.*; import emu.grasscutter.data.excels.*;
import it.unimi.dsi.fastutil.ints.Int2IntMap;
import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectLinkedOpenHashMap; import it.unimi.dsi.fastutil.ints.Int2ObjectLinkedOpenHashMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
@ -66,6 +68,7 @@ public class GameData {
@Getter private static final Int2ObjectMap<CombineData> combineDataMap = new Int2ObjectOpenHashMap<>(); @Getter private static final Int2ObjectMap<CombineData> combineDataMap = new Int2ObjectOpenHashMap<>();
@Getter private static final Int2ObjectMap<CookBonusData> cookBonusDataMap = new Int2ObjectOpenHashMap<>(); @Getter private static final Int2ObjectMap<CookBonusData> cookBonusDataMap = new Int2ObjectOpenHashMap<>();
@Getter private static final Int2ObjectMap<CookRecipeData> cookRecipeDataMap = new Int2ObjectOpenHashMap<>(); @Getter private static final Int2ObjectMap<CookRecipeData> cookRecipeDataMap = new Int2ObjectOpenHashMap<>();
@Getter private static final Int2ObjectMap<CompoundData> compoundDataMap=new Int2ObjectOpenHashMap<>();
@Getter private static final Int2ObjectMap<DailyDungeonData> dailyDungeonDataMap = new Int2ObjectOpenHashMap<>(); @Getter private static final Int2ObjectMap<DailyDungeonData> dailyDungeonDataMap = new Int2ObjectOpenHashMap<>();
@Getter private static final Int2ObjectMap<DungeonData> dungeonDataMap = new Int2ObjectOpenHashMap<>(); @Getter private static final Int2ObjectMap<DungeonData> dungeonDataMap = new Int2ObjectOpenHashMap<>();
@Getter private static final Int2ObjectMap<DungeonEntryData> dungeonEntryDataMap = new Int2ObjectOpenHashMap<>(); @Getter private static final Int2ObjectMap<DungeonEntryData> dungeonEntryDataMap = new Int2ObjectOpenHashMap<>();
@ -124,6 +127,7 @@ public class GameData {
private static Map<Integer, List<Integer>> fetters = new HashMap<>(); private static Map<Integer, List<Integer>> fetters = new HashMap<>();
private static Map<Integer, List<ShopGoodsData>> shopGoods = new HashMap<>(); private static Map<Integer, List<ShopGoodsData>> shopGoods = new HashMap<>();
protected static Int2ObjectMap<IntSet> proudSkillGroupLevels = new Int2ObjectOpenHashMap<>(); protected static Int2ObjectMap<IntSet> proudSkillGroupLevels = new Int2ObjectOpenHashMap<>();
protected static Int2IntMap proudSkillGroupMaxLevels = new Int2IntOpenHashMap();
protected static Int2ObjectMap<IntSet> avatarSkillLevels = new Int2ObjectOpenHashMap<>(); protected static Int2ObjectMap<IntSet> avatarSkillLevels = new Int2ObjectOpenHashMap<>();
// Getters with wrong names, remove later // Getters with wrong names, remove later
@ -141,6 +145,7 @@ public class GameData {
public static AbilityData getAbilityData(String abilityName) {return abilityDataMap.get(abilityName);} public static AbilityData getAbilityData(String abilityName) {return abilityDataMap.get(abilityName);}
public static IntSet getAvatarSkillLevels(int avatarSkillId) {return avatarSkillLevels.get(avatarSkillId);} public static IntSet getAvatarSkillLevels(int avatarSkillId) {return avatarSkillLevels.get(avatarSkillId);}
public static IntSet getProudSkillGroupLevels(int proudSkillGroupId) {return proudSkillGroupLevels.get(proudSkillGroupId);} public static IntSet getProudSkillGroupLevels(int proudSkillGroupId) {return proudSkillGroupLevels.get(proudSkillGroupId);}
public static int getProudSkillGroupMaxLevel(int proudSkillGroupId) {return proudSkillGroupMaxLevels.getOrDefault(proudSkillGroupId, 0);}
// Multi-keyed getters // Multi-keyed getters
public static AvatarPromoteData getAvatarPromoteData(int promoteId, int promoteLevel) { public static AvatarPromoteData getAvatarPromoteData(int promoteId, int promoteLevel) {

View File

@ -172,12 +172,17 @@ public class ResourceLoader {
} }
private static void cacheTalentLevelSets() { private static void cacheTalentLevelSets() {
// All known levels, keyed by proudSkillGroupId
GameData.getProudSkillDataMap().forEach((id, data) -> GameData.getProudSkillDataMap().forEach((id, data) ->
GameData.proudSkillGroupLevels GameData.proudSkillGroupLevels
.computeIfAbsent(data.getProudSkillGroupId(), i -> new IntArraySet()) .computeIfAbsent(data.getProudSkillGroupId(), i -> new IntArraySet())
.add(data.getLevel())); .add(data.getLevel()));
// All known levels, keyed by avatarSkillId
GameData.getAvatarSkillDataMap().forEach((id, data) -> GameData.getAvatarSkillDataMap().forEach((id, data) ->
GameData.avatarSkillLevels.put((int) id, GameData.proudSkillGroupLevels.get(data.getProudSkillGroupId()))); GameData.avatarSkillLevels.put((int) id, GameData.proudSkillGroupLevels.get(data.getProudSkillGroupId())));
// Maximum known levels, keyed by proudSkillGroupId
GameData.proudSkillGroupLevels.forEach((id, set) ->
GameData.proudSkillGroupMaxLevels.put((int) id, set.intStream().max().getAsInt()));
} }
private static void loadAbilityEmbryos() { private static void loadAbilityEmbryos() {

View File

@ -13,15 +13,12 @@ import java.util.List;
@Getter @Getter
@FieldDefaults(level = AccessLevel.PRIVATE) @FieldDefaults(level = AccessLevel.PRIVATE)
public class ActivityWatcherData extends GameResource { public class ActivityWatcherData extends GameResource {
@Getter(onMethod = @__(@Override))
int id; int id;
int rewardID; int rewardID;
int progress; int progress;
WatcherTrigger triggerConfig; WatcherTrigger triggerConfig;
@Override
public int getId() {
return this.id;
}
@Override @Override
public void onLoad() { public void onLoad() {
triggerConfig.paramList = triggerConfig.paramList.stream().filter(x -> !x.isBlank()).toList(); triggerConfig.paramList = triggerConfig.paramList.stream().filter(x -> !x.isBlank()).toList();

View File

@ -44,6 +44,7 @@ public class AvatarData extends GameResource {
private float criticalHurt; private float criticalHurt;
private List<PropGrowCurve> propGrowCurves; private List<PropGrowCurve> propGrowCurves;
@Getter(onMethod = @__(@Override))
private int id; private int id;
// Transient // Transient
@ -60,11 +61,6 @@ public class AvatarData extends GameResource {
@Getter private int nameCardRewardId; @Getter private int nameCardRewardId;
@Getter private int nameCardId; @Getter private int nameCardId;
@Override
public int getId() {
return this.id;
}
public float getBaseHp(int level) { public float getBaseHp(int level) {
try { try {
return this.hpBase * this.hpGrowthCurve[level - 1]; return this.hpBase * this.hpGrowthCurve[level - 1];

View File

@ -7,26 +7,18 @@ import emu.grasscutter.game.props.ElementType;
import lombok.Getter; import lombok.Getter;
@ResourceType(name = "AvatarSkillExcelConfigData.json", loadPriority = LoadPriority.HIGHEST) @ResourceType(name = "AvatarSkillExcelConfigData.json", loadPriority = LoadPriority.HIGHEST)
@Getter
public class AvatarSkillData extends GameResource { public class AvatarSkillData extends GameResource {
@Getter(onMethod = @__(@Override))
private int id; private int id;
@Getter private float cdTime; private float cdTime;
@Getter private int costElemVal; private int costElemVal;
@Getter private int maxChargeNum; private int maxChargeNum;
@Getter private int triggerID; private int triggerID;
@Getter private boolean isAttackCameraLock; private boolean isAttackCameraLock;
@Getter private int proudSkillGroupId; private int proudSkillGroupId;
@Getter private ElementType costElemType; private ElementType costElemType;
@Getter private long nameTextMapHash; private long nameTextMapHash;
@Getter private long descTextMapHash; private long descTextMapHash;
@Getter private String abilityName; private String abilityName;
@Override
public int getId() {
return this.id;
}
@Override
public void onLoad() {
}
} }

View File

@ -1,6 +1,7 @@
package emu.grasscutter.data.excels; package emu.grasscutter.data.excels;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.stream.IntStream; import java.util.stream.IntStream;
import emu.grasscutter.data.GameData; import emu.grasscutter.data.GameData;
@ -17,30 +18,27 @@ import it.unimi.dsi.fastutil.ints.IntList;
import lombok.Getter; import lombok.Getter;
@ResourceType(name = "AvatarSkillDepotExcelConfigData.json", loadPriority = LoadPriority.HIGH) @ResourceType(name = "AvatarSkillDepotExcelConfigData.json", loadPriority = LoadPriority.HIGH)
@Getter
public class AvatarSkillDepotData extends GameResource { public class AvatarSkillDepotData extends GameResource {
@Getter(onMethod = @__(@Override))
private int id; private int id;
@Getter private int energySkill; private int energySkill;
@Getter private int attackModeSkill; private int attackModeSkill;
@Getter private List<Integer> skills; private List<Integer> skills;
@Getter private List<Integer> subSkills; private List<Integer> subSkills;
@Getter private List<String> extraAbilities; private List<String> extraAbilities;
@Getter private List<Integer> talents; private List<Integer> talents;
@Getter private List<InherentProudSkillOpens> inherentProudSkillOpens; private List<InherentProudSkillOpens> inherentProudSkillOpens;
@Getter private String talentStarName; private String talentStarName;
@Getter private String skillDepotAbilityGroup; private String skillDepotAbilityGroup;
// Transient // Transient
@Getter private AvatarSkillData energySkillData; private AvatarSkillData energySkillData;
@Getter private ElementType elementType; private ElementType elementType;
@Getter private IntList abilities; private IntList abilities;
private int talentCostItemId;
@Override
public int getId() {
return this.id;
}
public void setAbilities(AbilityEmbryoEntry info) { public void setAbilities(AbilityEmbryoEntry info) {
this.abilities = new IntArrayList(info.getAbilities().length); this.abilities = new IntArrayList(info.getAbilities().length);
@ -66,11 +64,19 @@ public class AvatarSkillDepotData extends GameResource {
this.setAbilities(new AbilityEmbryoEntry(getSkillDepotAbilityGroup(), config.abilities.stream().map(Object::toString).toArray(String[]::new))); this.setAbilities(new AbilityEmbryoEntry(getSkillDepotAbilityGroup(), config.abilities.stream().map(Object::toString).toArray(String[]::new)));
} }
} }
// Get constellation item from GameData
Optional.ofNullable(this.talents)
.map(talents -> talents.get(0))
.map(i -> GameData.getAvatarTalentDataMap().get((int) i))
.map(talentData -> talentData.getMainCostItemId())
.ifPresent(itemId -> this.talentCostItemId = itemId);
} }
@Getter
public static class InherentProudSkillOpens { public static class InherentProudSkillOpens {
@Getter private int proudSkillGroupId; private int proudSkillGroupId;
@Getter private int needAvatarPromoteLevel; private int needAvatarPromoteLevel;
} }
public IntStream getSkillsAndEnergySkill() { public IntStream getSkillsAndEnergySkill() {

View File

@ -9,16 +9,14 @@ import emu.grasscutter.data.ResourceType;
import emu.grasscutter.game.props.BattlePassMissionRefreshType; import emu.grasscutter.game.props.BattlePassMissionRefreshType;
import emu.grasscutter.game.props.WatcherTriggerType; import emu.grasscutter.game.props.WatcherTriggerType;
import emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.MissionStatus; import emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.MissionStatus;
import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import lombok.Setter;
import lombok.experimental.FieldDefaults;
@ResourceType(name = {"BattlePassMissionExcelConfigData.json"}) @ResourceType(name = {"BattlePassMissionExcelConfigData.json"})
@Getter @Getter
public class BattlePassMissionData extends GameResource { public class BattlePassMissionData extends GameResource {
private int addPoint; @Getter(onMethod = @__(@Override))
private int id; private int id;
private int addPoint;
private int scheduleId; private int scheduleId;
private int progress; private int progress;
private TriggerConfig triggerConfig; private TriggerConfig triggerConfig;
@ -26,48 +24,43 @@ public class BattlePassMissionData extends GameResource {
private transient Set<Integer> mainParams; private transient Set<Integer> mainParams;
@Override public WatcherTriggerType getTriggerType() {
public int getId() { return this.getTriggerConfig().getTriggerType();
return this.id;
} }
public WatcherTriggerType getTriggerType() { public boolean isCycleRefresh() {
return this.getTriggerConfig().getTriggerType(); return getRefreshType() == null || getRefreshType() == BattlePassMissionRefreshType.BATTLE_PASS_MISSION_REFRESH_CYCLE_CROSS_SCHEDULE;
} }
public boolean isCycleRefresh() {
return getRefreshType() == null || getRefreshType() == BattlePassMissionRefreshType.BATTLE_PASS_MISSION_REFRESH_CYCLE_CROSS_SCHEDULE;
}
public boolean isValidRefreshType() { public boolean isValidRefreshType() {
return getRefreshType() == null || return getRefreshType() == null ||
getRefreshType() == BattlePassMissionRefreshType.BATTLE_PASS_MISSION_REFRESH_CYCLE_CROSS_SCHEDULE || getRefreshType() == BattlePassMissionRefreshType.BATTLE_PASS_MISSION_REFRESH_CYCLE_CROSS_SCHEDULE ||
getScheduleId() == 2701; getScheduleId() == 2701;
} }
@Override @Override
public void onLoad() { public void onLoad() {
if (this.getTriggerConfig() != null && getTriggerConfig().getParamList()[0].length() > 0) { if (this.getTriggerConfig() != null && getTriggerConfig().getParamList()[0].length() > 0) {
this.mainParams = Arrays.stream(getTriggerConfig().getParamList()[0].split("[:;,]")).map(Integer::parseInt).collect(Collectors.toSet()); this.mainParams = Arrays.stream(getTriggerConfig().getParamList()[0].split("[:;,]")).map(Integer::parseInt).collect(Collectors.toSet());
} }
} }
@Getter @Getter
public static class TriggerConfig { public static class TriggerConfig {
private WatcherTriggerType triggerType; private WatcherTriggerType triggerType;
private String[] paramList; private String[] paramList;
} }
public emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission toProto() { public emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission toProto() {
var protoBuilder = emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.newBuilder(); var protoBuilder = emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.newBuilder();
protoBuilder protoBuilder
.setMissionId(getId()) .setMissionId(getId())
.setTotalProgress(this.getProgress()) .setTotalProgress(this.getProgress())
.setRewardBattlePassPoint(this.getAddPoint()) .setRewardBattlePassPoint(this.getAddPoint())
.setMissionStatus(MissionStatus.MISSION_STATUS_UNFINISHED) .setMissionStatus(MissionStatus.MISSION_STATUS_UNFINISHED)
.setMissionType(this.getRefreshType() == null ? 0 : this.getRefreshType().getValue()); .setMissionType(this.getRefreshType() == null ? 0 : this.getRefreshType().getValue());
return protoBuilder.build(); return protoBuilder.build();
} }
} }

View File

@ -7,40 +7,39 @@ import emu.grasscutter.data.ResourceType;
import lombok.Getter; import lombok.Getter;
@ResourceType(name = "BlossomRefreshExcelConfigData.json") @ResourceType(name = "BlossomRefreshExcelConfigData.json")
@Getter
public class BlossomRefreshExcelConfigData extends GameResource { public class BlossomRefreshExcelConfigData extends GameResource {
@Getter(onMethod = @__(@Override))
private int id; private int id;
// Map details // Map details
@Getter private long nameTextMapHash; private long nameTextMapHash;
@Getter private long descTextMapHash; private long descTextMapHash;
@Getter private String icon; private String icon;
@Getter private String clientShowType; // BLOSSOM_SHOWTYPE_CHALLENGE, BLOSSOM_SHOWTYPE_NPCTALK private String clientShowType; // BLOSSOM_SHOWTYPE_CHALLENGE, BLOSSOM_SHOWTYPE_NPCTALK
// Refresh details // Refresh details
@Getter private String refreshType; // Leyline blossoms, magical ore outcrops private String refreshType; // Leyline blossoms, magical ore outcrops
@Getter private int refreshCount; // Number of entries to spawn at refresh (1 for each leyline type for each city, 4 for magical ore for each city) private int refreshCount; // Number of entries to spawn at refresh (1 for each leyline type for each city, 4 for magical ore for each city)
@Getter private String refreshTime; // Server time-of-day to refresh at private String refreshTime; // Server time-of-day to refresh at
@Getter private RefreshCond[] refreshCondVec; // AR requirements etc. private RefreshCond[] refreshCondVec; // AR requirements etc.
@Getter private int cityId; private int cityId;
@Getter private int blossomChestId; // 1 for mora, 2 for exp private int blossomChestId; // 1 for mora, 2 for exp
@Getter private Drop[] dropVec; private Drop[] dropVec;
// Unknown details // Unknown details
// @Getter private int reviseLevel; // @Getter private int reviseLevel;
// @Getter private int campUpdateNeedCount; // Always 1 if specified // @Getter private int campUpdateNeedCount; // Always 1 if specified
@Override @Getter
public int getId() {
return id;
}
public static class Drop { public static class Drop {
@Getter int dropId; int dropId;
@Getter int previewReward; int previewReward;
} }
@Getter
public static class RefreshCond { public static class RefreshCond {
@Getter String type; String type;
@Getter List<Integer> param; List<Integer> param;
} }
} }

View File

@ -8,27 +8,23 @@ import lombok.Setter;
import lombok.experimental.FieldDefaults; import lombok.experimental.FieldDefaults;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
@ResourceType(name = "ChapterExcelConfigData.json") @ResourceType(name = "ChapterExcelConfigData.json")
@Getter @Getter
@Setter @Setter // TODO: remove on next API break
@FieldDefaults(level = AccessLevel.PRIVATE) @FieldDefaults(level = AccessLevel.PRIVATE)
public class ChapterData extends GameResource { public class ChapterData extends GameResource {
@Getter(onMethod = @__(@Override))
int id; int id;
int beginQuestId; int beginQuestId;
int endQuestId; int endQuestId;
int needPlayerLevel; int needPlayerLevel;
// Why public? TODO: privatise next API break
public static final Map<Integer, ChapterData> beginQuestChapterMap = new HashMap<>(); public static final Map<Integer, ChapterData> beginQuestChapterMap = new HashMap<>();
public static final Map<Integer, ChapterData> endQuestChapterMap = new HashMap<>(); public static final Map<Integer, ChapterData> endQuestChapterMap = new HashMap<>();
@Override
public int getId() {
return this.id;
}
@Override @Override
public void onLoad() { public void onLoad() {
beginQuestChapterMap.put(beginQuestId, this); beginQuestChapterMap.put(beginQuestId, this);

View File

@ -22,9 +22,4 @@ public class CityData extends GameResource {
public int getId() { public int getId() {
return this.cityId; return this.cityId;
} }
@Override
public void onLoad() {
super.onLoad();
}
} }

View File

@ -7,18 +7,15 @@ import emu.grasscutter.data.ResourceType;
import lombok.Getter; import lombok.Getter;
@ResourceType(name = {"AnimalCodexExcelConfigData.json"}) @ResourceType(name = {"AnimalCodexExcelConfigData.json"})
@Getter
public class CodexAnimalData extends GameResource { public class CodexAnimalData extends GameResource {
@Getter(onMethod = @__(@Override))
private int Id; private int Id;
@Getter private String type; private String type;
@Getter private int describeId; private int describeId;
@Getter private int sortOrder; private int sortOrder;
@SerializedName(value="countType", alternate={"OCCLHPBCDGL"}) @SerializedName(value="countType", alternate={"OCCLHPBCDGL"})
@Getter private CountType countType; private CountType countType;
@Override
public int getId() {
return Id;
}
public enum CountType { public enum CountType {
CODEX_COUNT_TYPE_KILL, CODEX_COUNT_TYPE_KILL,

View File

@ -0,0 +1,22 @@
package emu.grasscutter.data.excels;
import emu.grasscutter.data.GameResource;
import emu.grasscutter.data.ResourceType;
import emu.grasscutter.data.common.ItemParamData;
import lombok.Getter;
import java.util.List;
@ResourceType(name = {"CompoundExcelConfigData.json"},loadPriority = ResourceType.LoadPriority.LOW)
@Getter
public class CompoundData extends GameResource {
@Getter(onMethod = @__(@Override))
private int id;
private int groupId;
private int rankLevel;
private boolean isDefaultUnlocked;
private int costTime;
private int queueSize;
private List<ItemParamData> inputVec;
private List<ItemParamData> outputVec;
}

View File

@ -6,10 +6,12 @@ import emu.grasscutter.data.GameResource;
import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.ResourceType;
import emu.grasscutter.data.ResourceType.LoadPriority; import emu.grasscutter.data.ResourceType.LoadPriority;
import emu.grasscutter.data.common.ItemParamData; import emu.grasscutter.data.common.ItemParamData;
import emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam; import lombok.Getter;
@ResourceType(name = {"CookRecipeExcelConfigData.json"}, loadPriority = LoadPriority.LOW) @ResourceType(name = {"CookRecipeExcelConfigData.json"}, loadPriority = LoadPriority.LOW)
@Getter
public class CookRecipeData extends GameResource { public class CookRecipeData extends GameResource {
@Getter(onMethod = @__(@Override))
private int id; private int id;
private int rankLevel; private int rankLevel;
@ -18,33 +20,4 @@ public class CookRecipeData extends GameResource {
private List<ItemParamData> qualityOutputVec; private List<ItemParamData> qualityOutputVec;
private List<ItemParamData> inputVec; private List<ItemParamData> inputVec;
@Override
public int getId() {
return this.id;
}
public int getRankLevel() {
return this.rankLevel;
}
public boolean isDefaultUnlocked() {
return this.isDefaultUnlocked;
}
public int getMaxProficiency() {
return this.maxProficiency;
}
public List<ItemParamData> getQualityOutputVec() {
return this.qualityOutputVec;
}
public List<ItemParamData> getInputVec() {
return this.inputVec;
}
@Override
public void onLoad() {
}
} }

View File

@ -7,9 +7,11 @@ import emu.grasscutter.data.ResourceType;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import lombok.Getter;
@ResourceType(name = "DailyDungeonConfigData.json") @ResourceType(name = "DailyDungeonConfigData.json")
public class DailyDungeonData extends GameResource { public class DailyDungeonData extends GameResource {
@Getter(onMethod = @__(@Override))
private int id; private int id;
private int[] monday; private int[] monday;
private int[] tuesday; private int[] tuesday;
@ -26,11 +28,6 @@ public class DailyDungeonData extends GameResource {
this.map = new Int2ObjectOpenHashMap<>(); this.map = new Int2ObjectOpenHashMap<>();
} }
@Override
public int getId() {
return this.id;
}
public int[] getDungeonsByDay(int day) { public int[] getDungeonsByDay(int day) {
return map.getOrDefault(day, empty); return map.getOrDefault(day, empty);
} }

View File

@ -3,51 +3,28 @@ package emu.grasscutter.data.excels;
import emu.grasscutter.data.GameData; import emu.grasscutter.data.GameData;
import emu.grasscutter.data.GameResource; import emu.grasscutter.data.GameResource;
import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.ResourceType;
import lombok.Getter;
import emu.grasscutter.game.props.SceneType;
@ResourceType(name = "DungeonExcelConfigData.json") @ResourceType(name = "DungeonExcelConfigData.json")
public class DungeonData extends GameResource { public class DungeonData extends GameResource {
private int id; @Getter(onMethod = @__(@Override))
private int sceneId; private int id;
private int showLevel; @Getter private int sceneId;
private int passRewardPreviewID; @Getter private int showLevel;
private String involveType; // TODO enum private int passRewardPreviewID;
private String involveType; // TODO enum
private RewardPreviewData previewData; private RewardPreviewData previewData;
private int statueCostID; @Getter private int statueCostID;
private int statueCostCount; @Getter private int statueCostCount;
@Override public RewardPreviewData getRewardPreview() {return previewData;}
public int getId() {
return this.id;
}
public int getSceneId() { @Override
return sceneId; public void onLoad() {
} if (this.passRewardPreviewID > 0) {
this.previewData = GameData.getRewardPreviewDataMap().get(this.passRewardPreviewID);
public int getShowLevel() { }
return showLevel; }
}
public RewardPreviewData getRewardPreview() {
return previewData;
}
public int getStatueCostID() {
return statueCostID;
}
public int getStatueCostCount() {
return statueCostCount;
}
@Override
public void onLoad() {
if (this.passRewardPreviewID > 0) {
this.previewData = GameData.getRewardPreviewDataMap().get(this.passRewardPreviewID);
}
}
} }

View File

@ -7,19 +7,10 @@ import lombok.Setter;
@ResourceType(name = "DungeonEntryExcelConfigData.json") @ResourceType(name = "DungeonEntryExcelConfigData.json")
@Getter @Getter
@Setter @Setter // TODO: remove this next API break
public class DungeonEntryData extends GameResource { public class DungeonEntryData extends GameResource {
@Getter(onMethod = @__(@Override))
private int id;
private int dungeonEntryId; private int dungeonEntryId;
private int sceneId; private int sceneId;
private int id;
@Override
public int getId() {
return this.id;
}
@Override
public void onLoad() {
}
} }

View File

@ -6,9 +6,12 @@ import emu.grasscutter.data.GameResource;
import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.ResourceType;
import emu.grasscutter.data.ResourceType.LoadPriority; import emu.grasscutter.data.ResourceType.LoadPriority;
import emu.grasscutter.data.common.ItemParamData; import emu.grasscutter.data.common.ItemParamData;
import lombok.Getter;
@ResourceType(name = {"ForgeExcelConfigData.json"}, loadPriority = LoadPriority.HIGHEST) @ResourceType(name = {"ForgeExcelConfigData.json"}, loadPriority = LoadPriority.HIGHEST)
@Getter
public class ForgeData extends GameResource { public class ForgeData extends GameResource {
@Getter(onMethod = @__(@Override))
private int id; private int id;
private int playerLevel; private int playerLevel;
private int forgeType; private int forgeType;
@ -21,57 +24,4 @@ public class ForgeData extends GameResource {
private int priority; private int priority;
private int forgePoint; private int forgePoint;
private List<ItemParamData> materialItems; private List<ItemParamData> materialItems;
@Override
public int getId() {
return this.id;
}
public int getPlayerLevel() {
return playerLevel;
}
public int getForgeType() {
return forgeType;
}
public int getResultItemId() {
return resultItemId;
}
public int getResultItemCount() {
return resultItemCount;
}
public int getForgeTime() {
return forgeTime;
}
public int getQueueNum() {
return queueNum;
}
public int getScoinCost() {
return scoinCost;
}
public int getPriority() {
return priority;
}
public int getForgePoint() {
return forgePoint;
}
public List<ItemParamData> getMaterialItems() {
return materialItems;
}
public int getShowItemId() {
return showItemId;
}
@Override
public void onLoad() {
}
} }

View File

@ -3,9 +3,12 @@ package emu.grasscutter.data.excels;
import emu.grasscutter.data.GameResource; import emu.grasscutter.data.GameResource;
import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.ResourceType;
import emu.grasscutter.game.props.EntityType; import emu.grasscutter.game.props.EntityType;
import lombok.Getter;
@ResourceType(name = "GadgetExcelConfigData.json") @ResourceType(name = "GadgetExcelConfigData.json")
@Getter
public class GadgetData extends GameResource { public class GadgetData extends GameResource {
@Getter(onMethod = @__(@Override))
private int id; private int id;
private EntityType type; private EntityType type;
@ -15,42 +18,4 @@ public class GadgetData extends GameResource {
private String itemJsonName; private String itemJsonName;
private long nameTextMapHash; private long nameTextMapHash;
private int campID; private int campID;
@Override
public int getId() {
return this.id;
}
public EntityType getType() {
return type;
}
public String getJsonName() {
return jsonName;
}
public boolean isInteractive() {
return isInteractive;
}
public String[] getTags() {
return tags;
}
public String getItemJsonName() {
return itemJsonName;
}
public long getNameTextMapHash() {
return nameTextMapHash;
}
public int getCampID() {
return campID;
}
@Override
public void onLoad() {
}
} }

View File

@ -29,9 +29,4 @@ public class HomeWorldLevelData extends GameResource {
public int getId() { public int getId() {
return level; return level;
} }
@Override
public void onLoad() {
super.onLoad();
}
} }

View File

@ -4,7 +4,6 @@ import emu.grasscutter.data.GameData;
import emu.grasscutter.data.GameResource; import emu.grasscutter.data.GameResource;
import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.ResourceType;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.Data;
import lombok.Getter; import lombok.Getter;
import lombok.experimental.FieldDefaults; import lombok.experimental.FieldDefaults;
@ -14,6 +13,7 @@ import java.util.List;
@Getter @Getter
@FieldDefaults(level = AccessLevel.PRIVATE) @FieldDefaults(level = AccessLevel.PRIVATE)
public class InvestigationMonsterData extends GameResource { public class InvestigationMonsterData extends GameResource {
@Getter(onMethod = @__(@Override))
int id; int id;
int cityId; int cityId;
List<Integer> monsterIdList; List<Integer> monsterIdList;
@ -23,10 +23,6 @@ public class InvestigationMonsterData extends GameResource {
String monsterCategory; String monsterCategory;
CityData cityData; CityData cityData;
@Override
public int getId() {
return this.id;
}
@Override @Override
public void onLoad() { public void onLoad() {

View File

@ -2,6 +2,7 @@ package emu.grasscutter.data.excels;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
import emu.grasscutter.data.GameResource; import emu.grasscutter.data.GameResource;
@ -24,6 +25,7 @@ import lombok.Getter;
@Getter @Getter
public class ItemData extends GameResource { public class ItemData extends GameResource {
// Main // Main
@Getter(onMethod = @__(@Override))
private int id; private int id;
private int stackLimit = 1; private int stackLimit = 1;
private int maxUseCount; private int maxUseCount;
@ -80,17 +82,12 @@ public class ItemData extends GameResource {
private List<Integer> furnType; private List<Integer> furnType;
private List<Integer> furnitureGadgetID; private List<Integer> furnitureGadgetID;
@SerializedName(value="roomSceneId", alternate={"DANFGGLKLNO", "JFDLJGDFIGL", "OHIANNAEEAK"}) @SerializedName(value="roomSceneId", alternate={"BMEPAMCNABE", "DANFGGLKLNO", "JFDLJGDFIGL", "OHIANNAEEAK"})
private int roomSceneId; private int roomSceneId;
// Custom // Custom
private transient IntSet addPropLevelSet; private transient IntSet addPropLevelSet;
@Override
public int getId() {
return this.id;
}
public WeaponProperty[] getWeaponProperties() { public WeaponProperty[] getWeaponProperties() {
return this.weaponProp; return this.weaponProp;
} }
@ -133,6 +130,7 @@ public class ItemData extends GameResource {
this.itemUseActions = this.itemUse.stream() this.itemUseActions = this.itemUse.stream()
.filter(x -> x.getUseOp() != ItemUseOp.ITEM_USE_NONE) .filter(x -> x.getUseOp() != ItemUseOp.ITEM_USE_NONE)
.map(ItemUseAction::fromItemUseData) .map(ItemUseAction::fromItemUseData)
.filter(Objects::nonNull)
.toList(); .toList();
} }
} }

View File

@ -1,19 +1,28 @@
package emu.grasscutter.data.excels; package emu.grasscutter.data.excels;
import java.util.List; import java.util.List;
import java.util.Set;
import com.google.gson.annotations.SerializedName;
import emu.grasscutter.data.GameData; import emu.grasscutter.data.GameData;
import emu.grasscutter.data.GameResource; import emu.grasscutter.data.GameResource;
import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.ResourceType;
import emu.grasscutter.data.ResourceType.LoadPriority; import emu.grasscutter.data.ResourceType.LoadPriority;
import emu.grasscutter.data.common.PropGrowCurve; import emu.grasscutter.data.common.PropGrowCurve;
import emu.grasscutter.game.props.FightProperty;
import emu.grasscutter.game.props.MonsterType; import emu.grasscutter.game.props.MonsterType;
import lombok.Getter;
@ResourceType(name = "MonsterExcelConfigData.json", loadPriority = LoadPriority.LOW) @ResourceType(name = "MonsterExcelConfigData.json", loadPriority = LoadPriority.LOW)
@Getter
public class MonsterData extends GameResource { public class MonsterData extends GameResource {
private int id; static public Set<FightProperty> definedFightProperties = Set.of(FightProperty.FIGHT_PROP_BASE_HP, FightProperty.FIGHT_PROP_BASE_ATTACK, FightProperty.FIGHT_PROP_BASE_DEFENSE, FightProperty.FIGHT_PROP_PHYSICAL_SUB_HURT, FightProperty.FIGHT_PROP_FIRE_SUB_HURT, FightProperty.FIGHT_PROP_ELEC_SUB_HURT, FightProperty.FIGHT_PROP_WATER_SUB_HURT, FightProperty.FIGHT_PROP_GRASS_SUB_HURT, FightProperty.FIGHT_PROP_WIND_SUB_HURT, FightProperty.FIGHT_PROP_ROCK_SUB_HURT, FightProperty.FIGHT_PROP_ICE_SUB_HURT);
private String monsterName; @Getter(onMethod = @__(@Override))
private int id;
private String monsterName;
private MonsterType type; private MonsterType type;
private String serverScript; private String serverScript;
private List<Integer> affix; private List<Integer> affix;
@ -28,9 +37,14 @@ public class MonsterData extends GameResource {
private int describeId; private int describeId;
private int combatBGMLevel; private int combatBGMLevel;
private int entityBudgetLevel; private int entityBudgetLevel;
private float hpBase;
private float attackBase; @SerializedName("hpBase")
private float defenseBase; private float baseHp;
@SerializedName("attackBase")
private float baseAttack;
@SerializedName("defenseBase")
private float baseDefense;
private float fireSubHurt; private float fireSubHurt;
private float elecSubHurt; private float elecSubHurt;
private float grassSubHurt; private float grassSubHurt;
@ -47,154 +61,44 @@ public class MonsterData extends GameResource {
private int weaponId; private int weaponId;
private MonsterDescribeData describeData; private MonsterDescribeData describeData;
@Override public float getFightProperty(FightProperty prop) {
public int getId() { return switch (prop) {
return this.id; case FIGHT_PROP_BASE_HP -> this.baseHp;
} case FIGHT_PROP_BASE_ATTACK -> this.baseAttack;
case FIGHT_PROP_BASE_DEFENSE -> this.baseDefense;
case FIGHT_PROP_PHYSICAL_SUB_HURT -> this.physicalSubHurt;
case FIGHT_PROP_FIRE_SUB_HURT -> this.fireSubHurt;
case FIGHT_PROP_ELEC_SUB_HURT -> this.elecSubHurt;
case FIGHT_PROP_WATER_SUB_HURT -> this.waterSubHurt;
case FIGHT_PROP_GRASS_SUB_HURT -> this.grassSubHurt;
case FIGHT_PROP_WIND_SUB_HURT -> this.windSubHurt;
case FIGHT_PROP_ROCK_SUB_HURT -> this.rockSubHurt;
case FIGHT_PROP_ICE_SUB_HURT -> this.iceSubHurt;
default -> 0f;
};
}
public String getMonsterName() { @Override
return monsterName; public void onLoad() {
} this.describeData = GameData.getMonsterDescribeDataMap().get(this.getDescribeId());
public MonsterType getType() { for (int id : this.equips) {
return type; if (id == 0) {
} continue;
}
GadgetData gadget = GameData.getGadgetDataMap().get(id);
if (gadget == null) {
continue;
}
if (gadget.getItemJsonName().equals("Default_MonsterWeapon")) {
this.weaponId = id;
}
}
}
public String getServerScript() { @Getter
return serverScript; public class HpDrops {
} private int DropId;
private int HpPercent;
public List<Integer> getAffix() { }
return affix;
}
public String getAi() {
return ai;
}
public int[] getEquips() {
return equips;
}
public List<HpDrops> getHpDrops() {
return hpDrops;
}
public int getKillDropId() {
return killDropId;
}
public String getExcludeWeathers() {
return excludeWeathers;
}
public int getFeatureTagGroupID() {
return featureTagGroupID;
}
public int getMpPropID() {
return mpPropID;
}
public String getSkin() {
return skin;
}
public int getDescribeId() {
return describeId;
}
public int getCombatBGMLevel() {
return combatBGMLevel;
}
public int getEntityBudgetLevel() {
return entityBudgetLevel;
}
public float getBaseHp() {
return hpBase;
}
public float getBaseAttack() {
return attackBase;
}
public float getBaseDefense() {
return defenseBase;
}
public float getElecSubHurt() {
return elecSubHurt;
}
public float getGrassSubHurt() {
return grassSubHurt;
}
public float getWaterSubHurt() {
return waterSubHurt;
}
public float getWindSubHurt() {
return windSubHurt;
}
public float getIceSubHurt() {
return iceSubHurt;
}
public float getPhysicalSubHurt() {
return physicalSubHurt;
}
public List<PropGrowCurve> getPropGrowCurves() {
return propGrowCurves;
}
public long getNameTextMapHash() {
return nameTextMapHash;
}
public int getCampID() {
return campID;
}
public MonsterDescribeData getDescribeData() {
return describeData;
}
public int getWeaponId() {
return weaponId;
}
@Override
public void onLoad() {
this.describeData = GameData.getMonsterDescribeDataMap().get(this.getDescribeId());
for (int id : this.equips) {
if (id == 0) {
continue;
}
GadgetData gadget = GameData.getGadgetDataMap().get(id);
if (gadget == null) {
continue;
}
if (gadget.getItemJsonName().equals("Default_MonsterWeapon")) {
this.weaponId = id;
}
}
}
public class HpDrops {
private int DropId;
private int HpPercent;
public int getDropId(){
return this.DropId;
}
public int getHpPercent(){
return this.HpPercent;
}
}
} }

View File

@ -3,33 +3,14 @@ package emu.grasscutter.data.excels;
import emu.grasscutter.data.GameResource; import emu.grasscutter.data.GameResource;
import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.ResourceType;
import emu.grasscutter.data.ResourceType.LoadPriority; import emu.grasscutter.data.ResourceType.LoadPriority;
import lombok.Getter;
@ResourceType(name = "MonsterDescribeExcelConfigData.json", loadPriority = LoadPriority.HIGH) @ResourceType(name = "MonsterDescribeExcelConfigData.json", loadPriority = LoadPriority.HIGH)
@Getter
public class MonsterDescribeData extends GameResource { public class MonsterDescribeData extends GameResource {
@Getter(onMethod = @__(@Override))
private int id; private int id;
private long nameTextMapHash; private long nameTextMapHash;
private int titleID; private int titleID;
private int specialNameLabID; private int specialNameLabID;
@Override
public int getId() {
return id;
}
public long getNameTextMapHash() {
return nameTextMapHash;
}
public int getTitleID() {
return titleID;
}
public int getSpecialNameLabID() {
return specialNameLabID;
}
@Override
public void onLoad() {
}
} }

View File

@ -10,12 +10,8 @@ import lombok.experimental.FieldDefaults;
@Getter @Getter
@FieldDefaults(level = AccessLevel.PRIVATE) @FieldDefaults(level = AccessLevel.PRIVATE)
public class MusicGameBasicData extends GameResource { public class MusicGameBasicData extends GameResource {
@Getter(onMethod = @__(@Override))
int id; int id;
int musicID; int musicID;
int musicLevel; int musicLevel;
@Override
public int getId() {
return this.id;
}
} }

View File

@ -2,12 +2,15 @@ package emu.grasscutter.data.excels;
import emu.grasscutter.data.GameResource; import emu.grasscutter.data.GameResource;
import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.ResourceType;
import lombok.Getter;
@ResourceType(name = "NpcExcelConfigData.json") @ResourceType(name = "NpcExcelConfigData.json")
@Getter
public class NpcData extends GameResource { public class NpcData extends GameResource {
private int id; @Getter(onMethod = @__(@Override))
private int id;
private String jsonName; private String jsonName;
private String alias; private String alias;
private String scriptDataPath; private String scriptDataPath;
private String luaDataPath; private String luaDataPath;
@ -19,54 +22,4 @@ public class NpcData extends GameResource {
private long nameTextMapHash; private long nameTextMapHash;
private int campID; private int campID;
@Override
public int getId() {
return this.id;
}
public String getJsonName() {
return jsonName;
}
public String getAlias() {
return alias;
}
public String getScriptDataPath() {
return scriptDataPath;
}
public String getLuaDataPath() {
return luaDataPath;
}
public boolean isIsInteractive() {
return isInteractive;
}
public boolean isHasMove() {
return hasMove;
}
public String getDyePart() {
return dyePart;
}
public String getBillboardIcon() {
return billboardIcon;
}
public long getNameTextMapHash() {
return nameTextMapHash;
}
public int getCampID() {
return campID;
}
@Override
public void onLoad() {
}
} }

View File

@ -3,15 +3,14 @@ package emu.grasscutter.data.excels;
import emu.grasscutter.data.GameData; import emu.grasscutter.data.GameData;
import emu.grasscutter.data.GameResource; import emu.grasscutter.data.GameResource;
import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.ResourceType;
import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects;
@ResourceType(name = "OpenStateConfigData.json", loadPriority = ResourceType.LoadPriority.HIGHEST) @ResourceType(name = "OpenStateConfigData.json", loadPriority = ResourceType.LoadPriority.HIGHEST)
public class OpenStateData extends GameResource { public class OpenStateData extends GameResource {
@Getter(onMethod = @__(@Override))
private int id; private int id;
@Getter private boolean defaultState; @Getter private boolean defaultState;
@Getter private boolean allowClientOpen; @Getter private boolean allowClientOpen;
@ -32,11 +31,6 @@ public class OpenStateData extends GameResource {
OPEN_STATE_COND_PARENT_QUEST; OPEN_STATE_COND_PARENT_QUEST;
} }
@Override
public int getId() {
return this.id;
}
@Override @Override
public void onLoad() { public void onLoad() {
// Add this open state to the global list. // Add this open state to the global list.

View File

@ -11,18 +11,13 @@ import java.util.List;
@ResourceType(name = "PersonalLineExcelConfigData.json") @ResourceType(name = "PersonalLineExcelConfigData.json")
@Getter @Getter
@Setter @Setter // TODO: remove setters next API break
@FieldDefaults(level = AccessLevel.PRIVATE) @FieldDefaults(level = AccessLevel.PRIVATE)
public class PersonalLineData extends GameResource { public class PersonalLineData extends GameResource {
@Getter(onMethod = @__(@Override))
int id; int id;
int avatarID; int avatarID;
List<Integer> preQuestId; List<Integer> preQuestId;
int startQuestId; int startQuestId;
int chapterId; int chapterId;
@Override
public int getId() {
return this.id;
}
} }

View File

@ -1,46 +1,23 @@
package emu.grasscutter.data.excels; package emu.grasscutter.data.excels;
import com.google.gson.annotations.SerializedName;
import emu.grasscutter.data.GameResource; import emu.grasscutter.data.GameResource;
import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.ResourceType;
import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.game.props.FightProperty;
import lombok.Getter;
@ResourceType(name = "ReliquaryAffixExcelConfigData.json") @ResourceType(name = "ReliquaryAffixExcelConfigData.json")
@Getter
public class ReliquaryAffixData extends GameResource { public class ReliquaryAffixData extends GameResource {
private int id; @Getter(onMethod = @__(@Override))
private int id;
private int depotId; private int depotId;
private int groupId; private int groupId;
private FightProperty propType; @SerializedName("propType")
private float propValue; private FightProperty fightProp;
private int weight; private float propValue;
private int upgradeWeight; private int weight;
private int upgradeWeight;
@Override
public int getId() {
return id;
}
public int getDepotId() {
return depotId;
}
public int getGroupId() {
return groupId;
}
public float getPropValue() {
return propValue;
}
public int getWeight() {
return weight;
}
public int getUpgradeWeight() {
return upgradeWeight;
}
public FightProperty getFightProp() {
return propType;
}
} }

View File

@ -7,36 +7,19 @@ import emu.grasscutter.data.ResourceType;
import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.game.props.FightProperty;
import it.unimi.dsi.fastutil.ints.Int2FloatMap; import it.unimi.dsi.fastutil.ints.Int2FloatMap;
import it.unimi.dsi.fastutil.ints.Int2FloatOpenHashMap; import it.unimi.dsi.fastutil.ints.Int2FloatOpenHashMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import lombok.Getter;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
@ResourceType(name = "ReliquaryLevelExcelConfigData.json") @ResourceType(name = "ReliquaryLevelExcelConfigData.json")
public class ReliquaryLevelData extends GameResource { public class ReliquaryLevelData extends GameResource {
@Getter(onMethod = @__(@Override))
private int id; private int id;
private Int2FloatMap propMap; private Int2FloatMap propMap;
private int rank; @Getter private int rank;
private int level; @Getter private int level;
private int exp; @Getter private int exp;
private List<RelicLevelProperty> addProps; private List<RelicLevelProperty> addProps;
@Override
public int getId() {
return this.id;
}
public int getRank() {
return rank;
}
public int getLevel() {
return level;
}
public int getExp() {
return exp;
}
public float getPropValue(FightProperty prop) { public float getPropValue(FightProperty prop) {
return getPropValue(prop.getId()); return getPropValue(prop.getId());
} }
@ -54,16 +37,9 @@ public class ReliquaryLevelData extends GameResource {
} }
} }
@Getter
public class RelicLevelProperty { public class RelicLevelProperty {
private String propType; private String propType;
private float value; private float value;
public String getPropType() {
return propType;
}
public float getValue() {
return value;
}
} }
} }

View File

@ -1,31 +1,20 @@
package emu.grasscutter.data.excels; package emu.grasscutter.data.excels;
import com.google.gson.annotations.SerializedName;
import emu.grasscutter.data.GameResource; import emu.grasscutter.data.GameResource;
import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.ResourceType;
import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.game.props.FightProperty;
import lombok.Getter;
@ResourceType(name = "ReliquaryMainPropExcelConfigData.json") @ResourceType(name = "ReliquaryMainPropExcelConfigData.json")
@Getter
public class ReliquaryMainPropData extends GameResource { public class ReliquaryMainPropData extends GameResource {
private int id; @Getter(onMethod = @__(@Override))
private int id;
private int propDepotId; private int propDepotId;
private FightProperty propType; @SerializedName("propType")
private int weight; private FightProperty fightProp;
private int weight;
@Override
public int getId() {
return id;
}
public int getPropDepotId() {
return propDepotId;
}
public int getWeight() {
return weight;
}
public FightProperty getFightProp() {
return propType;
}
} }

View File

@ -1,43 +1,35 @@
package emu.grasscutter.data.excels; package emu.grasscutter.data.excels;
import java.util.Arrays; import java.util.Arrays;
import java.util.List;
import emu.grasscutter.Grasscutter;
import emu.grasscutter.data.GameData;
import emu.grasscutter.data.GameResource; import emu.grasscutter.data.GameResource;
import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.ResourceType;
import emu.grasscutter.game.props.SceneType; import lombok.Getter;
import emu.grasscutter.data.ResourceType.LoadPriority; import emu.grasscutter.data.ResourceType.LoadPriority;
import emu.grasscutter.data.common.ItemParamData; import emu.grasscutter.data.common.ItemParamData;
import emu.grasscutter.data.common.ItemParamStringData; import emu.grasscutter.data.common.ItemParamStringData;
@ResourceType(name = "RewardPreviewExcelConfigData.json", loadPriority = LoadPriority.HIGH) @ResourceType(name = "RewardPreviewExcelConfigData.json", loadPriority = LoadPriority.HIGH)
public class RewardPreviewData extends GameResource { public class RewardPreviewData extends GameResource {
private int id; @Getter(onMethod = @__(@Override))
private ItemParamStringData[] previewItems; private int id;
private ItemParamData[] previewItemsArray; private ItemParamStringData[] previewItems;
private ItemParamData[] previewItemsArray;
@Override public ItemParamData[] getPreviewItems() {
public int getId() { return previewItemsArray;
return this.id; }
}
public ItemParamData[] getPreviewItems() { @Override
return previewItemsArray; public void onLoad() {
} if (this.previewItems != null && this.previewItems.length > 0) {
this.previewItemsArray = Arrays.stream(this.previewItems)
@Override .filter(d -> d.getId() > 0 && d.getCount() != null && !d.getCount().isEmpty())
public void onLoad() { .map(ItemParamStringData::toItemParamData)
if (this.previewItems != null && this.previewItems.length > 0) { .toArray(size -> new ItemParamData[size]);
this.previewItemsArray = Arrays.stream(this.previewItems) } else {
.filter(d -> d.getId() > 0 && d.getCount() != null && !d.getCount().isEmpty()) this.previewItemsArray = new ItemParamData[0];
.map(ItemParamStringData::toItemParamData) }
.toArray(size -> new ItemParamData[size]); }
} else {
this.previewItemsArray = new ItemParamData[0];
}
}
} }

View File

@ -1,32 +1,19 @@
package emu.grasscutter.data.excels; package emu.grasscutter.data.excels;
import emu.grasscutter.data.GameData; import com.google.gson.annotations.SerializedName;
import emu.grasscutter.data.GameResource; import emu.grasscutter.data.GameResource;
import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.ResourceType;
import emu.grasscutter.game.props.SceneType; import emu.grasscutter.game.props.SceneType;
import lombok.Getter;
@ResourceType(name = "SceneExcelConfigData.json") @ResourceType(name = "SceneExcelConfigData.json")
@Getter
public class SceneData extends GameResource { public class SceneData extends GameResource {
private int id; @Getter(onMethod = @__(@Override))
private SceneType type; private int id;
private String scriptData; @SerializedName("type")
private SceneType sceneType;
@Override private String scriptData;
public int getId() {
return this.id;
}
public SceneType getSceneType() {
return type;
}
public String getScriptData() {
return scriptData;
}
@Override
public void onLoad() {
}
} }

View File

@ -2,10 +2,11 @@ package emu.grasscutter.data.excels;
import emu.grasscutter.data.GameResource; import emu.grasscutter.data.GameResource;
import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.ResourceType;
import lombok.Getter;
@ResourceType(name = "TowerFloorExcelConfigData.json") @ResourceType(name = "TowerFloorExcelConfigData.json")
@Getter
public class TowerFloorData extends GameResource { public class TowerFloorData extends GameResource {
private int floorId; private int floorId;
private int floorIndex; private int floorIndex;
private int levelGroupId; private int levelGroupId;
@ -17,33 +18,4 @@ public class TowerFloorData extends GameResource {
public int getId() { public int getId() {
return this.floorId; return this.floorId;
} }
@Override
public void onLoad() {
super.onLoad();
}
public int getFloorId() {
return floorId;
}
public int getFloorIndex() {
return floorIndex;
}
public int getLevelGroupId() {
return levelGroupId;
}
public int getOverrideMonsterLevel() {
return overrideMonsterLevel;
}
public int getTeamNum() {
return teamNum;
}
public int getFloorLevelConfigId() {
return floorLevelConfigId;
}
} }

View File

@ -1,6 +1,7 @@
package emu.grasscutter.database; package emu.grasscutter.database;
import java.util.List; import java.util.List;
import java.util.stream.Stream;
import com.mongodb.client.result.DeleteResult; import com.mongodb.client.result.DeleteResult;
@ -154,6 +155,11 @@ public final class DatabaseHelper {
DatabaseManager.getAccountDatastore().find(Account.class).filter(Filters.eq("id", target.getId())).delete(); DatabaseManager.getAccountDatastore().find(Account.class).filter(Filters.eq("id", target.getId())).delete();
} }
public static <T> Stream<T> getByGameClass(Class<T> classType) {
return DatabaseManager.getGameDatastore().find(classType).stream();
}
@Deprecated(forRemoval = true)
public static List<Player> getAllPlayers() { public static List<Player> getAllPlayers() {
return DatabaseManager.getGameDatastore().find(Player.class).stream().toList(); return DatabaseManager.getGameDatastore().find(Player.class).stream().toList();
} }

View File

@ -3,7 +3,6 @@ package emu.grasscutter.game.avatar;
import static emu.grasscutter.config.Configuration.GAME_OPTIONS; import static emu.grasscutter.config.Configuration.GAME_OPTIONS;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -59,7 +58,9 @@ import emu.grasscutter.net.proto.ShowAvatarInfoOuterClass.ShowAvatarInfo;
import emu.grasscutter.net.proto.ShowEquipOuterClass.ShowEquip; import emu.grasscutter.net.proto.ShowEquipOuterClass.ShowEquip;
import emu.grasscutter.server.packet.send.*; import emu.grasscutter.server.packet.send.*;
import emu.grasscutter.utils.ProtoHelper; import emu.grasscutter.utils.ProtoHelper;
import it.unimi.dsi.fastutil.ints.Int2FloatMap;
import it.unimi.dsi.fastutil.ints.Int2FloatOpenHashMap; import it.unimi.dsi.fastutil.ints.Int2FloatOpenHashMap;
import it.unimi.dsi.fastutil.ints.Int2IntArrayMap;
import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap; import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
@ -89,15 +90,15 @@ public class Avatar {
private float currentEnergy; private float currentEnergy;
@Transient @Getter private final Int2ObjectMap<GameItem> equips; @Transient @Getter private final Int2ObjectMap<GameItem> equips;
@Transient private final Int2FloatOpenHashMap fightProp; @Transient @Getter private final Int2FloatOpenHashMap fightProperties;
@Transient @Getter private final Int2FloatOpenHashMap fightPropOverrides; @Transient @Getter private final Int2FloatOpenHashMap fightPropOverrides;
@Transient @Getter private Set<String> extraAbilityEmbryos; @Transient @Getter private Set<String> extraAbilityEmbryos;
private List<Integer> fetters; private List<Integer> fetters;
private Map<Integer, Integer> skillLevelMap; // Talent levels private Map<Integer, Integer> skillLevelMap = new Int2IntArrayMap(7); // Talent levels
private Map<Integer, Integer> skillExtraChargeMap; // Charges @Transient @Getter private Map<Integer, Integer> skillExtraChargeMap = new Int2IntArrayMap(2); // Charges
private Map<Integer, Integer> proudSkillBonusMap; // Talent bonus levels (from const) @Transient private Map<Integer, Integer> proudSkillBonusMap = new Int2IntArrayMap(2); // Talent bonus levels (from const)
@Getter private int skillDepotId; @Getter private int skillDepotId;
private Set<Integer> talentIdList; // Constellation id list private Set<Integer> talentIdList; // Constellation id list
@Getter private Set<Integer> proudSkillList; // Character passives @Getter private Set<Integer> proudSkillList; // Character passives
@ -115,10 +116,9 @@ public class Avatar {
@Deprecated // Do not use. Morhpia only! @Deprecated // Do not use. Morhpia only!
public Avatar() { public Avatar() {
this.equips = new Int2ObjectOpenHashMap<>(); this.equips = new Int2ObjectOpenHashMap<>();
this.fightProp = new Int2FloatOpenHashMap(); this.fightProperties = new Int2FloatOpenHashMap();
this.fightPropOverrides = new Int2FloatOpenHashMap(); this.fightPropOverrides = new Int2FloatOpenHashMap();
this.extraAbilityEmbryos = new HashSet<>(); this.extraAbilityEmbryos = new HashSet<>();
this.proudSkillBonusMap = new HashMap<>();
this.fetters = new ArrayList<>(); // TODO Move to avatar this.fetters = new ArrayList<>(); // TODO Move to avatar
} }
@ -136,8 +136,6 @@ public class Avatar {
this.bornTime = (int) (System.currentTimeMillis() / 1000); this.bornTime = (int) (System.currentTimeMillis() / 1000);
this.flyCloak = 140001; this.flyCloak = 140001;
this.skillLevelMap = new HashMap<>();
this.skillExtraChargeMap = new HashMap<>();
this.talentIdList = new HashSet<>(); this.talentIdList = new HashSet<>();
this.proudSkillList = new HashSet<>(); this.proudSkillList = new HashSet<>();
@ -247,13 +245,6 @@ public class Avatar {
this.recalcStats(); this.recalcStats();
} }
private Map<Integer, Integer> getSkillExtraChargeMap() {
if (skillExtraChargeMap == null) {
skillExtraChargeMap = new HashMap<>();
}
return skillExtraChargeMap;
}
public void setFetterList(List<Integer> fetterList) { public void setFetterList(List<Integer> fetterList) {
this.fetters = fetterList; this.fetters = fetterList;
} }
@ -286,10 +277,6 @@ public class Avatar {
} }
} }
public Int2FloatOpenHashMap getFightProperties() {
return fightProp;
}
public void setFightProperty(FightProperty prop, float value) { public void setFightProperty(FightProperty prop, float value) {
this.getFightProperties().put(prop.getId(), value); this.getFightProperties().put(prop.getId(), value);
} }
@ -315,18 +302,16 @@ public class Avatar {
// Returns a copy of the skill bonus levels for the current skillDepot, capped to avoid invalid levels. // Returns a copy of the skill bonus levels for the current skillDepot, capped to avoid invalid levels.
public Map<Integer, Integer> getProudSkillBonusMap() { public Map<Integer, Integer> getProudSkillBonusMap() {
var map = new Int2IntOpenHashMap(); var map = new Int2IntArrayMap();
this.skillDepot.getSkillsAndEnergySkill().forEach(skillId -> { this.skillDepot.getSkillsAndEnergySkill().forEach(skillId -> {
val skillData = GameData.getAvatarSkillDataMap().get(skillId); val skillData = GameData.getAvatarSkillDataMap().get(skillId);
if (skillData == null) return; if (skillData == null) return;
int proudSkillGroupId = skillData.getProudSkillGroupId(); int proudSkillGroupId = skillData.getProudSkillGroupId();
int bonus = this.proudSkillBonusMap.getOrDefault(proudSkillGroupId, 0); int bonus = this.proudSkillBonusMap.getOrDefault(proudSkillGroupId, 0);
val validLevels = GameData.getProudSkillGroupLevels(proudSkillGroupId); int maxLevel = GameData.getProudSkillGroupMaxLevel(proudSkillGroupId);
if (validLevels != null && validLevels.size() > 0) { int curLevel = this.skillLevelMap.getOrDefault(skillId, 0);
int maxLevel = validLevels.intStream().max().getAsInt(); if (maxLevel > 0) {
int maxBonus = maxLevel - this.skillLevelMap.getOrDefault(skillId, 0); bonus = Math.min(bonus, maxLevel - curLevel);
if (maxBonus < bonus)
bonus = maxBonus;
} }
map.put(proudSkillGroupId, bonus); map.put(proudSkillGroupId, bonus);
}); });
@ -411,9 +396,9 @@ public class Avatar {
public void recalcStats(boolean forceSendAbilityChange) { public void recalcStats(boolean forceSendAbilityChange) {
// Setup // Setup
AvatarData data = this.getAvatarData(); var data = this.getAvatarData();
AvatarPromoteData promoteData = GameData.getAvatarPromoteData(data.getAvatarPromoteId(), this.getPromoteLevel()); var promoteData = GameData.getAvatarPromoteData(data.getAvatarPromoteId(), this.getPromoteLevel());
Int2IntOpenHashMap setMap = new Int2IntOpenHashMap(); var setMap = new Int2IntOpenHashMap();
// Extra ability embryos // Extra ability embryos
Set<String> prevExtraAbilityEmbryos = this.getExtraAbilityEmbryos(); Set<String> prevExtraAbilityEmbryos = this.getExtraAbilityEmbryos();
@ -479,37 +464,31 @@ public class Avatar {
} }
// Set stuff // Set stuff
for (Int2IntOpenHashMap.Entry e : setMap.int2IntEntrySet()) { setMap.forEach((setId, amount) -> {
ReliquarySetData setData = GameData.getReliquarySetDataMap().get(e.getIntKey()); ReliquarySetData setData = GameData.getReliquarySetDataMap().get((int) setId);
if (setData == null) { if (setData == null) return;
continue;
}
// Calculate how many items are from the set // Calculate how many items are from the set
int amount = e.getIntValue();
// Add affix data from set bonus // Add affix data from set bonus
for (int setIndex = 0; setIndex < setData.getSetNeedNum().length; setIndex++) { val setNeedNum = setData.getSetNeedNum();
if (amount >= setData.getSetNeedNum()[setIndex]) { for (int setIndex = 0; setIndex < setNeedNum.length; setIndex++) {
int affixId = (setData.getEquipAffixId() * 10) + setIndex; if (amount < setNeedNum[setIndex]) break;
EquipAffixData affix = GameData.getEquipAffixDataMap().get(affixId); int affixId = (setData.getEquipAffixId() * 10) + setIndex;
if (affix == null) { EquipAffixData affix = GameData.getEquipAffixDataMap().get(affixId);
continue; if (affix == null) {
} continue;
// Add properties from this affix to our avatar
for (FightPropData prop : affix.getAddProps()) {
this.addFightProperty(prop.getProp(), prop.getValue());
}
// Add any skill strings from this affix
this.addToExtraAbilityEmbryos(affix.getOpenConfig(), true);
} else {
break;
} }
// Add properties from this affix to our avatar
for (FightPropData prop : affix.getAddProps()) {
this.addFightProperty(prop.getProp(), prop.getValue());
}
// Add any skill strings from this affix
this.addToExtraAbilityEmbryos(affix.getOpenConfig(), true);
} }
} });
// Weapon // Weapon
GameItem weapon = this.getWeapon(); GameItem weapon = this.getWeapon();
@ -597,21 +576,11 @@ public class Avatar {
// Add any skill strings from this constellation // Add any skill strings from this constellation
// Set % stats // Set % stats
this.setFightProperty( FightProperty.forEachCompoundProperty(c -> this.setFightProperty(c.getResult(),
FightProperty.FIGHT_PROP_MAX_HP, this.getFightProperty(c.getFlat()) + (this.getFightProperty(c.getBase()) * (1f + this.getFightProperty(c.getPercent())))));
(getFightProperty(FightProperty.FIGHT_PROP_BASE_HP) * (1f + getFightProperty(FightProperty.FIGHT_PROP_HP_PERCENT))) + getFightProperty(FightProperty.FIGHT_PROP_HP)
);
this.setFightProperty(
FightProperty.FIGHT_PROP_CUR_ATTACK,
(getFightProperty(FightProperty.FIGHT_PROP_BASE_ATTACK) * (1f + getFightProperty(FightProperty.FIGHT_PROP_ATTACK_PERCENT))) + getFightProperty(FightProperty.FIGHT_PROP_ATTACK)
);
this.setFightProperty(
FightProperty.FIGHT_PROP_CUR_DEFENSE,
(getFightProperty(FightProperty.FIGHT_PROP_BASE_DEFENSE) * (1f + getFightProperty(FightProperty.FIGHT_PROP_DEFENSE_PERCENT))) + getFightProperty(FightProperty.FIGHT_PROP_DEFENSE)
);
// Reapply all overrides // Reapply all overrides
this.fightProp.putAll(this.fightPropOverrides); this.fightProperties.putAll(this.fightPropOverrides);
// Set current hp // Set current hp
this.setFightProperty(FightProperty.FIGHT_PROP_CUR_HP, this.getFightProperty(FightProperty.FIGHT_PROP_MAX_HP) * hpPercent); this.setFightProperty(FightProperty.FIGHT_PROP_CUR_HP, this.getFightProperty(FightProperty.FIGHT_PROP_MAX_HP) * hpPercent);
@ -678,8 +647,8 @@ public class Avatar {
public void recalcConstellations() { public void recalcConstellations() {
// Clear first // Clear first
this.getProudSkillBonusMap().clear(); this.proudSkillBonusMap.clear();
this.getSkillExtraChargeMap().clear(); this.skillExtraChargeMap.clear();
// Sanity checks // Sanity checks
if (this.data == null || this.skillDepot == null) { if (this.data == null || this.skillDepot == null) {
@ -732,7 +701,7 @@ public class Avatar {
} }
// Add to bonus list // Add to bonus list
this.addProudSkillLevelBonus(skillId, 3); this.addProudSkillLevelBonus(skillData.getProudSkillGroupId(), 3);
return true; return true;
} }
@ -768,14 +737,16 @@ public class Avatar {
if (level < 0 || level > 15) return false; if (level < 0 || level > 15) return false;
var validLevels = GameData.getAvatarSkillLevels(skillId); var validLevels = GameData.getAvatarSkillLevels(skillId);
if (validLevels != null && !validLevels.contains(level)) return false; if (validLevels != null && !validLevels.contains(level)) return false;
int oldLevel = this.skillLevelMap.getOrDefault(skillId, 0); // just taking the return value of put would have null concerns int oldLevel = this.skillLevelMap.getOrDefault(skillId, 0); // just taking the return value of put would have null concerns
this.skillLevelMap.put(skillId, level); this.skillLevelMap.put(skillId, level);
this.save(); this.save();
// Packet // Packet
this.getPlayer().sendPacket(new PacketAvatarSkillChangeNotify(this, skillId, oldLevel, level)); val player = this.getPlayer();
this.getPlayer().sendPacket(new PacketAvatarSkillUpgradeRsp(this, skillId, oldLevel, level)); if (player != null) {
player.sendPacket(new PacketAvatarSkillChangeNotify(this, skillId, oldLevel, level));
player.sendPacket(new PacketAvatarSkillUpgradeRsp(this, skillId, oldLevel, level));
}
return true; return true;
} }
@ -825,18 +796,20 @@ public class Avatar {
if (level < 0) { // Special case for resetConst to remove inactive depots too if (level < 0) { // Special case for resetConst to remove inactive depots too
this.talentIdList.clear(); this.talentIdList.clear();
this.recalcStats(); this.recalcStats();
this.save();
return; return;
} }
this.talentIdList.removeAll(this.getTalentIdList()); // Only remove constellations from active depot this.talentIdList.removeAll(this.getTalentIdList()); // Only remove constellations from active depot
for (int i = 0; i < level; i++) for (int i = 0; i < level; i++)
this.unlockConstellation(true); this.unlockConstellation(true);
this.recalcStats(); this.recalcStats();
this.save();
} }
public boolean sendSkillExtraChargeMap() { public boolean sendSkillExtraChargeMap() {
var map = this.getSkillExtraChargeMap(); val map = this.getSkillExtraChargeMap();
if (map.isEmpty()) return false; if (map.isEmpty()) return false;
this.getPlayer().sendPacket(new PacketAvatarSkillInfoNotify(this.guid, new Int2IntOpenHashMap(map))); this.getPlayer().sendPacket(new PacketAvatarSkillInfoNotify(this.guid, new Int2IntArrayMap(map))); // TODO: Remove this allocation when updating interfaces to FastUtils later
return true; return true;
} }
@ -891,7 +864,7 @@ public class Avatar {
.setCoreProudSkillLevel(this.getCoreProudSkillLevel()) .setCoreProudSkillLevel(this.getCoreProudSkillLevel())
.putAllSkillLevelMap(this.getSkillLevelMap()) .putAllSkillLevelMap(this.getSkillLevelMap())
.addAllInherentProudSkillList(this.getProudSkillList()) .addAllInherentProudSkillList(this.getProudSkillList())
.putAllProudSkillExtraLevelMap(getProudSkillBonusMap()) .putAllProudSkillExtraLevelMap(this.getProudSkillBonusMap())
.setAvatarType(1) .setAvatarType(1)
.setBornTime(this.getBornTime()) .setBornTime(this.getBornTime())
.setFetterInfo(avatarFetter) .setFetterInfo(avatarFetter)

View File

@ -1,124 +0,0 @@
package emu.grasscutter.game.avatar;
import java.util.stream.Stream;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
public enum AvatarStat {
FIGHT_PROP_NONE(0),
FIGHT_PROP_BASE_HP(1),
FIGHT_PROP_HP(2),
FIGHT_PROP_HP_PERCENT(3),
FIGHT_PROP_BASE_ATTACK(4),
FIGHT_PROP_ATTACK(5),
FIGHT_PROP_ATTACK_PERCENT(6),
FIGHT_PROP_BASE_DEFENSE(7),
FIGHT_PROP_DEFENSE(8),
FIGHT_PROP_DEFENSE_PERCENT(9),
FIGHT_PROP_BASE_SPEED(10),
FIGHT_PROP_SPEED_PERCENT(11),
FIGHT_PROP_HP_MP_PERCENT(12),
FIGHT_PROP_ATTACK_MP_PERCENT(13),
FIGHT_PROP_CRITICAL(20),
FIGHT_PROP_ANTI_CRITICAL(21),
FIGHT_PROP_CRITICAL_HURT(22),
FIGHT_PROP_CHARGE_EFFICIENCY(23),
FIGHT_PROP_ADD_HURT(24),
FIGHT_PROP_SUB_HURT(25),
FIGHT_PROP_HEAL_ADD(26),
FIGHT_PROP_HEALED_ADD(27),
FIGHT_PROP_ELEMENT_MASTERY(28),
FIGHT_PROP_PHYSICAL_SUB_HURT(29),
FIGHT_PROP_PHYSICAL_ADD_HURT(30),
FIGHT_PROP_DEFENCE_IGNORE_RATIO(31),
FIGHT_PROP_DEFENCE_IGNORE_DELTA(32),
FIGHT_PROP_FIRE_ADD_HURT(40),
FIGHT_PROP_ELEC_ADD_HURT(41),
FIGHT_PROP_WATER_ADD_HURT(42),
FIGHT_PROP_GRASS_ADD_HURT(43),
FIGHT_PROP_WIND_ADD_HURT(44),
FIGHT_PROP_ROCK_ADD_HURT(45),
FIGHT_PROP_ICE_ADD_HURT(46),
FIGHT_PROP_HIT_HEAD_ADD_HURT(47),
FIGHT_PROP_FIRE_SUB_HURT(50),
FIGHT_PROP_ELEC_SUB_HURT(51),
FIGHT_PROP_WATER_SUB_HURT(52),
FIGHT_PROP_GRASS_SUB_HURT(53),
FIGHT_PROP_WIND_SUB_HURT(54),
FIGHT_PROP_ROCK_SUB_HURT(55),
FIGHT_PROP_ICE_SUB_HURT(56),
FIGHT_PROP_EFFECT_HIT(60),
FIGHT_PROP_EFFECT_RESIST(61),
FIGHT_PROP_FREEZE_RESIST(62),
FIGHT_PROP_TORPOR_RESIST(63),
FIGHT_PROP_DIZZY_RESIST(64),
FIGHT_PROP_FREEZE_SHORTEN(65),
FIGHT_PROP_TORPOR_SHORTEN(66),
FIGHT_PROP_DIZZY_SHORTEN(67),
FIGHT_PROP_MAX_FIRE_ENERGY(70),
FIGHT_PROP_MAX_ELEC_ENERGY(71),
FIGHT_PROP_MAX_WATER_ENERGY(72),
FIGHT_PROP_MAX_GRASS_ENERGY(73),
FIGHT_PROP_MAX_WIND_ENERGY(74),
FIGHT_PROP_MAX_ICE_ENERGY(75),
FIGHT_PROP_MAX_ROCK_ENERGY(76),
FIGHT_PROP_SKILL_CD_MINUS_RATIO(80),
FIGHT_PROP_SHIELD_COST_MINUS_RATIO(81),
FIGHT_PROP_CUR_FIRE_ENERGY(1000),
FIGHT_PROP_CUR_ELEC_ENERGY(1001),
FIGHT_PROP_CUR_WATER_ENERGY(1002),
FIGHT_PROP_CUR_GRASS_ENERGY(1003),
FIGHT_PROP_CUR_WIND_ENERGY(1004),
FIGHT_PROP_CUR_ICE_ENERGY(1005),
FIGHT_PROP_CUR_ROCK_ENERGY(1006),
FIGHT_PROP_CUR_HP(1010),
FIGHT_PROP_MAX_HP(2000),
FIGHT_PROP_CUR_ATTACK(2001),
FIGHT_PROP_CUR_DEFENSE(2002),
FIGHT_PROP_CUR_SPEED(2003),
FIGHT_PROP_NONEXTRA_ATTACK(3000),
FIGHT_PROP_NONEXTRA_DEFENSE(3001),
FIGHT_PROP_NONEXTRA_CRITICAL(3002),
FIGHT_PROP_NONEXTRA_ANTI_CRITICAL(3003),
FIGHT_PROP_NONEXTRA_CRITICAL_HURT(3004),
FIGHT_PROP_NONEXTRA_CHARGE_EFFICIENCY(3005),
FIGHT_PROP_NONEXTRA_ELEMENT_MASTERY(3006),
FIGHT_PROP_NONEXTRA_PHYSICAL_SUB_HURT(3007),
FIGHT_PROP_NONEXTRA_FIRE_ADD_HURT(3008),
FIGHT_PROP_NONEXTRA_ELEC_ADD_HURT(3009),
FIGHT_PROP_NONEXTRA_WATER_ADD_HURT(3010),
FIGHT_PROP_NONEXTRA_GRASS_ADD_HURT(3011),
FIGHT_PROP_NONEXTRA_WIND_ADD_HURT(3012),
FIGHT_PROP_NONEXTRA_ROCK_ADD_HURT(3013),
FIGHT_PROP_NONEXTRA_ICE_ADD_HURT(3014),
FIGHT_PROP_NONEXTRA_FIRE_SUB_HURT(3015),
FIGHT_PROP_NONEXTRA_ELEC_SUB_HURT(3016),
FIGHT_PROP_NONEXTRA_WATER_SUB_HURT(3017),
FIGHT_PROP_NONEXTRA_GRASS_SUB_HURT(3018),
FIGHT_PROP_NONEXTRA_WIND_SUB_HURT(3019),
FIGHT_PROP_NONEXTRA_ROCK_SUB_HURT(3020),
FIGHT_PROP_NONEXTRA_ICE_SUB_HURT(3021),
FIGHT_PROP_NONEXTRA_SKILL_CD_MINUS_RATIO(3022),
FIGHT_PROP_NONEXTRA_SHIELD_COST_MINUS_RATIO(3023),
FIGHT_PROP_NONEXTRA_PHYSICAL_ADD_HURT(3024);
private final int id;
private static final Int2ObjectMap<AvatarStat> map = new Int2ObjectOpenHashMap<>();
static {
Stream.of(values()).forEach(e -> map.put(e.getId(), e));
}
private AvatarStat(int id) {
this.id = id;
}
public int getId() {
return id;
}
public static AvatarStat getStatById(int value) {
return map.getOrDefault(value, FIGHT_PROP_NONE);
}
}

View File

@ -21,7 +21,6 @@ import emu.grasscutter.net.proto.ChangeHpReasonOuterClass.ChangeHpReason;
import emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo; import emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo;
import emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData; import emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData;
import emu.grasscutter.net.proto.EntityRendererChangedInfoOuterClass.EntityRendererChangedInfo; import emu.grasscutter.net.proto.EntityRendererChangedInfoOuterClass.EntityRendererChangedInfo;
import emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair;
import emu.grasscutter.net.proto.PlayerDieTypeOuterClass.PlayerDieType; import emu.grasscutter.net.proto.PlayerDieTypeOuterClass.PlayerDieType;
import emu.grasscutter.net.proto.PropChangeReasonOuterClass.PropChangeReason; import emu.grasscutter.net.proto.PropChangeReasonOuterClass.PropChangeReason;
import emu.grasscutter.net.proto.PropPairOuterClass.PropPair; import emu.grasscutter.net.proto.PropPairOuterClass.PropPair;
@ -38,19 +37,25 @@ import emu.grasscutter.utils.Position;
import emu.grasscutter.utils.ProtoHelper; import emu.grasscutter.utils.ProtoHelper;
import emu.grasscutter.utils.Utils; import emu.grasscutter.utils.Utils;
import it.unimi.dsi.fastutil.ints.Int2FloatMap; import it.unimi.dsi.fastutil.ints.Int2FloatMap;
import it.unimi.dsi.fastutil.ints.Int2FloatOpenHashMap; import lombok.Getter;
import lombok.val;
public class EntityAvatar extends GameEntity { public class EntityAvatar extends GameEntity {
private final Avatar avatar; @Getter private final Avatar avatar;
private PlayerDieType killedType; @Getter private PlayerDieType killedType;
private int killedBy; @Getter private int killedBy;
public EntityAvatar(Avatar avatar) {
this(null, avatar);
}
public EntityAvatar(Scene scene, Avatar avatar) { public EntityAvatar(Scene scene, Avatar avatar) {
super(scene); super(scene);
this.avatar = avatar; this.avatar = avatar;
this.avatar.setCurrentEnergy(); this.avatar.setCurrentEnergy();
this.id = getScene().getWorld().getNextEntityId(EntityIdType.AVATAR); if (scene != null)
this.id = getScene().getWorld().getNextEntityId(EntityIdType.AVATAR);
GameItem weapon = this.getAvatar().getWeapon(); GameItem weapon = this.getAvatar().getWeapon();
if (weapon != null) { if (weapon != null) {
@ -58,47 +63,20 @@ public class EntityAvatar extends GameEntity {
} }
} }
public EntityAvatar(Avatar avatar) { public Player getPlayer() {return this.avatar.getPlayer();}
super(null);
this.avatar = avatar;
this.avatar.setCurrentEnergy();
}
public Player getPlayer() {
return avatar.getPlayer();
}
@Override @Override
public Position getPosition() { public Position getPosition() {return getPlayer().getPosition();}
return getPlayer().getPosition();
}
@Override @Override
public Position getRotation() { public Position getRotation() {return getPlayer().getRotation();}
return getPlayer().getRotation();
}
public Avatar getAvatar() {
return avatar;
}
public int getKilledBy() {
return killedBy;
}
public PlayerDieType getKilledType() {
return killedType;
}
@Override @Override
public boolean isAlive() { public boolean isAlive() {
return this.getFightProperty(FightProperty.FIGHT_PROP_CUR_HP) > 0f; return this.getFightProperty(FightProperty.FIGHT_PROP_CUR_HP) > 0f;
} }
@Override @Override public Int2FloatMap getFightProperties() {return getAvatar().getFightProperties();}
public Int2FloatOpenHashMap getFightProperties() {
return getAvatar().getFightProperties();
}
public int getWeaponEntityId() { public int getWeaponEntityId() {
if (getAvatar().getWeapon() != null) { if (getAvatar().getWeapon() != null) {
@ -144,11 +122,8 @@ public class EntityAvatar extends GameEntity {
public void clearEnergy(ChangeEnergyReason reason) { public void clearEnergy(ChangeEnergyReason reason) {
// Fight props. // Fight props.
FightProperty curEnergyProp = this.getAvatar().getSkillDepot().getElementType().getCurEnergyProp(); val curEnergyProp = this.getAvatar().getSkillDepot().getElementType().getCurEnergyProp();
FightProperty maxEnergyProp = this.getAvatar().getSkillDepot().getElementType().getMaxEnergyProp(); float curEnergy = this.getFightProperty(curEnergyProp);
// Get max energy.
float maxEnergy = this.avatar.getFightProperty(maxEnergyProp);
// Set energy to zero. // Set energy to zero.
this.avatar.setCurrentEnergy(curEnergyProp, 0); this.avatar.setCurrentEnergy(curEnergyProp, 0);
@ -157,7 +132,7 @@ public class EntityAvatar extends GameEntity {
this.getScene().broadcastPacket(new PacketEntityFightPropUpdateNotify(this, curEnergyProp)); this.getScene().broadcastPacket(new PacketEntityFightPropUpdateNotify(this, curEnergyProp));
if (reason == ChangeEnergyReason.CHANGE_ENERGY_REASON_SKILL_START) { if (reason == ChangeEnergyReason.CHANGE_ENERGY_REASON_SKILL_START) {
this.getScene().broadcastPacket(new PacketEntityFightPropChangeReasonNotify(this, curEnergyProp, -maxEnergy, reason)); this.getScene().broadcastPacket(new PacketEntityFightPropChangeReasonNotify(this, curEnergyProp, -curEnergy, reason));
} }
} }
@ -166,18 +141,16 @@ public class EntityAvatar extends GameEntity {
} }
public void addEnergy(float amount, PropChangeReason reason, boolean isFlat) { public void addEnergy(float amount, PropChangeReason reason, boolean isFlat) {
// Get current and maximum energy for this avatar. // Get current and maximum energy for this avatar.
FightProperty curEnergyProp = this.getAvatar().getSkillDepot().getElementType().getCurEnergyProp(); val elementType = this.getAvatar().getSkillDepot().getElementType();
FightProperty maxEnergyProp = this.getAvatar().getSkillDepot().getElementType().getMaxEnergyProp(); val curEnergyProp = elementType.getCurEnergyProp();
val maxEnergyProp = elementType.getMaxEnergyProp();
float curEnergy = this.getFightProperty(curEnergyProp); float curEnergy = this.getFightProperty(curEnergyProp);
float maxEnergy = this.getFightProperty(maxEnergyProp); float maxEnergy = this.getFightProperty(maxEnergyProp);
// Get energy recharge.
float energyRecharge = this.getFightProperty(FightProperty.FIGHT_PROP_CHARGE_EFFICIENCY);
// Scale amount by energy recharge, if the amount is not flat. // Scale amount by energy recharge, if the amount is not flat.
if (!isFlat) { if (!isFlat) {
amount *= energyRecharge; amount *= this.getFightProperty(FightProperty.FIGHT_PROP_CHARGE_EFFICIENCY);
} }
// Determine the new energy value. // Determine the new energy value.
@ -193,21 +166,23 @@ public class EntityAvatar extends GameEntity {
} }
public SceneAvatarInfo getSceneAvatarInfo() { public SceneAvatarInfo getSceneAvatarInfo() {
val avatar = this.getAvatar();
val player = this.getPlayer();
SceneAvatarInfo.Builder avatarInfo = SceneAvatarInfo.newBuilder() SceneAvatarInfo.Builder avatarInfo = SceneAvatarInfo.newBuilder()
.setUid(this.getPlayer().getUid()) .setUid(player.getUid())
.setAvatarId(this.getAvatar().getAvatarId()) .setAvatarId(avatar.getAvatarId())
.setGuid(this.getAvatar().getGuid()) .setGuid(avatar.getGuid())
.setPeerId(this.getPlayer().getPeerId()) .setPeerId(player.getPeerId())
.addAllTalentIdList(this.getAvatar().getTalentIdList()) .addAllTalentIdList(avatar.getTalentIdList())
.setCoreProudSkillLevel(this.getAvatar().getCoreProudSkillLevel()) .setCoreProudSkillLevel(avatar.getCoreProudSkillLevel())
.putAllSkillLevelMap(this.getAvatar().getSkillLevelMap()) .putAllSkillLevelMap(avatar.getSkillLevelMap())
.setSkillDepotId(this.getAvatar().getSkillDepotId()) .setSkillDepotId(avatar.getSkillDepotId())
.addAllInherentProudSkillList(this.getAvatar().getProudSkillList()) .addAllInherentProudSkillList(avatar.getProudSkillList())
.putAllProudSkillExtraLevelMap(this.getAvatar().getProudSkillBonusMap()) .putAllProudSkillExtraLevelMap(avatar.getProudSkillBonusMap())
.addAllTeamResonanceList(this.getAvatar().getPlayer().getTeamManager().getTeamResonances()) .addAllTeamResonanceList(player.getTeamManager().getTeamResonances())
.setWearingFlycloakId(this.getAvatar().getFlyCloak()) .setWearingFlycloakId(avatar.getFlyCloak())
.setCostumeId(this.getAvatar().getCostume()) .setCostumeId(avatar.getCostume())
.setBornTime(this.getAvatar().getBornTime()); .setBornTime(avatar.getBornTime());
for (GameItem item : avatar.getEquips().values()) { for (GameItem item : avatar.getEquips().values()) {
if (item.getItemData().getEquipType() == EquipType.EQUIP_WEAPON) { if (item.getItemData().getEquipType() == EquipType.EQUIP_WEAPON) {
@ -244,13 +219,7 @@ public class EntityAvatar extends GameEntity {
entityInfo.setMotionInfo(this.getMotionInfo()); entityInfo.setMotionInfo(this.getMotionInfo());
} }
for (Int2FloatMap.Entry entry : getFightProperties().int2FloatEntrySet()) { this.addAllFightPropsToEntityInfo(entityInfo);
if (entry.getIntKey() == 0) {
continue;
}
FightPropPair fightProp = FightPropPair.newBuilder().setPropType(entry.getIntKey()).setPropValue(entry.getFloatValue()).build();
entityInfo.addFightPropList(fightProp);
}
PropPair pair = PropPair.newBuilder() PropPair pair = PropPair.newBuilder()
.setType(PlayerProperty.PROP_LEVEL.getId()) .setType(PlayerProperty.PROP_LEVEL.getId())

View File

@ -3,11 +3,23 @@ package emu.grasscutter.game.entity;
import emu.grasscutter.data.binout.ConfigGadget; import emu.grasscutter.data.binout.ConfigGadget;
import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.game.props.FightProperty;
import emu.grasscutter.game.world.Scene; import emu.grasscutter.game.world.Scene;
import emu.grasscutter.utils.Position;
import lombok.Getter;
public abstract class EntityBaseGadget extends GameEntity { public abstract class EntityBaseGadget extends GameEntity {
@Getter(onMethod = @__(@Override))
protected final Position position;
@Getter(onMethod = @__(@Override))
protected final Position rotation;
public EntityBaseGadget(Scene scene) { public EntityBaseGadget(Scene scene) {
this(scene, null, null);
}
public EntityBaseGadget(Scene scene, Position position, Position rotation) {
super(scene); super(scene);
this.position = position != null ? position.clone() : new Position();
this.rotation = rotation != null ? rotation.clone() : new Position();
} }
public abstract int getGadgetId(); public abstract int getGadgetId();

View File

@ -19,30 +19,28 @@ import emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo;
import emu.grasscutter.net.proto.VectorOuterClass.Vector; import emu.grasscutter.net.proto.VectorOuterClass.Vector;
import emu.grasscutter.utils.Position; import emu.grasscutter.utils.Position;
import emu.grasscutter.utils.ProtoHelper; import emu.grasscutter.utils.ProtoHelper;
import it.unimi.dsi.fastutil.ints.Int2FloatOpenHashMap; import it.unimi.dsi.fastutil.ints.Int2FloatMap;
import lombok.Getter;
public class EntityClientGadget extends EntityBaseGadget { public class EntityClientGadget extends EntityBaseGadget {
private final Player owner; @Getter private final Player owner;
private final Position pos; @Getter(onMethod = @__(@Override))
private final Position rot; private int gadgetId;
private int configId; @Getter private int campId;
private int campId; @Getter private int campType;
private int campType; @Getter private int ownerEntityId;
private int ownerEntityId; @Getter private int targetEntityId;
private int targetEntityId; @Getter private boolean asyncLoad;
private boolean asyncLoad;
private int originalOwnerEntityId; @Getter private int originalOwnerEntityId;
public EntityClientGadget(Scene scene, Player player, EvtCreateGadgetNotify notify) { public EntityClientGadget(Scene scene, Player player, EvtCreateGadgetNotify notify) {
super(scene); super(scene, new Position(notify.getInitPos()), new Position(notify.getInitEulerAngles()));
this.owner = player; this.owner = player;
this.id = notify.getEntityId(); this.id = notify.getEntityId();
this.pos = new Position(notify.getInitPos()); this.gadgetId = notify.getConfigId();
this.rot = new Position(notify.getInitEulerAngles());
this.configId = notify.getConfigId();
this.campId = notify.getCampId(); this.campId = notify.getCampId();
this.campType = notify.getCampType(); this.campType = notify.getCampType();
this.ownerEntityId = notify.getPropOwnerEntityId(); this.ownerEntityId = notify.getPropOwnerEntityId();
@ -58,61 +56,12 @@ public class EntityClientGadget extends EntityBaseGadget {
} }
} }
@Override
public int getGadgetId() {
return configId;
}
public Player getOwner() {
return owner;
}
public int getCampId() {
return campId;
}
public int getCampType() {
return campType;
}
public int getOwnerEntityId() {
return ownerEntityId;
}
public int getTargetEntityId() {
return targetEntityId;
}
public boolean isAsyncLoad() {
return this.asyncLoad;
}
public int getOriginalOwnerEntityId() {
return this.originalOwnerEntityId;
}
@Override @Override
public void onDeath(int killerId) { public void onDeath(int killerId) {
super.onDeath(killerId); // Invoke super class's onDeath() method. super.onDeath(killerId); // Invoke super class's onDeath() method.
} }
@Override @Override public Int2FloatMap getFightProperties() {return null;}
public Int2FloatOpenHashMap getFightProperties() {
// TODO Auto-generated method stub
return null;
}
@Override
public Position getPosition() {
// TODO Auto-generated method stub
return this.pos;
}
@Override
public Position getRotation() {
// TODO Auto-generated method stub
return this.rot;
}
@Override @Override
public SceneEntityInfo toProto() { public SceneEntityInfo toProto() {

View File

@ -6,8 +6,6 @@ import emu.grasscutter.data.excels.GadgetData;
import emu.grasscutter.game.entity.gadget.*; import emu.grasscutter.game.entity.gadget.*;
import emu.grasscutter.game.player.Player; import emu.grasscutter.game.player.Player;
import emu.grasscutter.game.props.EntityIdType; import emu.grasscutter.game.props.EntityIdType;
import emu.grasscutter.game.props.EntityType;
import emu.grasscutter.game.props.FightProperty;
import emu.grasscutter.game.props.PlayerProperty; import emu.grasscutter.game.props.PlayerProperty;
import emu.grasscutter.game.world.Scene; import emu.grasscutter.game.world.Scene;
import emu.grasscutter.net.proto.AbilitySyncStateInfoOuterClass.AbilitySyncStateInfo; import emu.grasscutter.net.proto.AbilitySyncStateInfoOuterClass.AbilitySyncStateInfo;
@ -29,77 +27,47 @@ import emu.grasscutter.scripts.data.ScriptArgs;
import emu.grasscutter.server.packet.send.PacketGadgetStateNotify; import emu.grasscutter.server.packet.send.PacketGadgetStateNotify;
import emu.grasscutter.utils.Position; import emu.grasscutter.utils.Position;
import emu.grasscutter.utils.ProtoHelper; import emu.grasscutter.utils.ProtoHelper;
import it.unimi.dsi.fastutil.ints.Int2FloatMap;
import it.unimi.dsi.fastutil.ints.Int2FloatOpenHashMap; import it.unimi.dsi.fastutil.ints.Int2FloatOpenHashMap;
import lombok.Getter; import lombok.Getter;
import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import java.util.Optional;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@ToString(callSuper = true) @ToString(callSuper = true)
public class EntityGadget extends EntityBaseGadget { public class EntityGadget extends EntityBaseGadget {
private final GadgetData data; @Getter private final GadgetData gadgetData;
private final Position pos; @Getter(onMethod = @__(@Override)) @Setter
private final Position rot;
private int gadgetId; private int gadgetId;
private int state; @Getter @Setter private int state;
private int pointType; @Getter @Setter private int pointType;
private GadgetContent content; @Getter private GadgetContent content;
private Int2FloatOpenHashMap fightProp; @Getter(onMethod = @__(@Override), lazy = true)
private SceneGadget metaGadget; private final Int2FloatMap fightProperties = new Int2FloatOpenHashMap();
@Getter @Setter private SceneGadget metaGadget;
@Nullable @Getter @Nullable @Getter
private ConfigGadget configGadget; private ConfigGadget configGadget;
public EntityGadget(Scene scene, int gadgetId, Position pos, Position rot) { public EntityGadget(Scene scene, int gadgetId, Position pos) {
super(scene); this(scene, gadgetId, pos, null, null);
this.data = GameData.getGadgetDataMap().get(gadgetId);
if (data!=null && data.getJsonName()!=null) {
this.configGadget = GameData.getGadgetConfigData().get(data.getJsonName());
}
this.id = getScene().getWorld().getNextEntityId(EntityIdType.GADGET);
this.gadgetId = gadgetId;
this.pos = pos.clone();
this.rot = rot != null ? rot.clone() : new Position();
fillFightProps(configGadget);
} }
public EntityGadget(Scene scene, int gadgetId, Position pos) { public EntityGadget(Scene scene, int gadgetId, Position pos, Position rot) {
this(scene, gadgetId, pos, new Position()); this(scene, gadgetId, pos, rot, null);
} }
public EntityGadget(Scene scene, int gadgetId, Position pos, Position rot, GadgetContent content) { public EntityGadget(Scene scene, int gadgetId, Position pos, Position rot, GadgetContent content) {
this(scene, gadgetId, pos, rot); super(scene, pos, rot);
this.content = content; this.gadgetData = GameData.getGadgetDataMap().get(gadgetId);
} this.configGadget = Optional.ofNullable(this.gadgetData).map(GadgetData::getJsonName).map(GameData.getGadgetConfigData()::get).orElse(null);
this.id = this.getScene().getWorld().getNextEntityId(EntityIdType.GADGET);
public GadgetData getGadgetData() {
return data;
}
@Override
public Position getPosition() {
return this.pos;
}
@Override
public Position getRotation() {
return this.rot;
}
public int getGadgetId() {
return gadgetId;
}
public void setGadgetId(int gadgetId) {
this.gadgetId = gadgetId; this.gadgetId = gadgetId;
} this.content = content;
fillFightProps(configGadget);
public int getState() {
return state;
}
public void setState(int state) {
this.state = state;
} }
public void updateState(int state) { public void updateState(int state) {
@ -108,39 +76,18 @@ public class EntityGadget extends EntityBaseGadget {
getScene().getScriptManager().callEvent(EventType.EVENT_GADGET_STATE_CHANGE, new ScriptArgs(state, this.getConfigId())); getScene().getScriptManager().callEvent(EventType.EVENT_GADGET_STATE_CHANGE, new ScriptArgs(state, this.getConfigId()));
} }
public int getPointType() { @Deprecated(forRemoval = true) // Dont use!
return pointType;
}
public void setPointType(int pointType) {
this.pointType = pointType;
}
public GadgetContent getContent() {
return content;
}
@Deprecated // Dont use!
public void setContent(GadgetContent content) { public void setContent(GadgetContent content) {
this.content = this.content == null ? content : this.content; this.content = this.content == null ? content : this.content;
} }
public SceneGadget getMetaGadget() {
return metaGadget;
}
public void setMetaGadget(SceneGadget metaGadget) {
this.metaGadget = metaGadget;
}
// TODO refactor // TODO refactor
public void buildContent() { public void buildContent() {
if (getContent() != null || getGadgetData() == null || getGadgetData().getType() == null) { if (this.getContent() != null || this.getGadgetData() == null || this.getGadgetData().getType() == null) {
return; return;
} }
EntityType type = getGadgetData().getType(); this.content = switch (this.getGadgetData().getType()) {
GadgetContent content = switch (type) {
case GatherPoint -> new GadgetGatherPoint(this); case GatherPoint -> new GadgetGatherPoint(this);
case GatherObject -> new GadgetGatherObject(this); case GatherObject -> new GadgetGatherObject(this);
case Worktop -> new GadgetWorktop(this); case Worktop -> new GadgetWorktop(this);
@ -149,14 +96,6 @@ public class EntityGadget extends EntityBaseGadget {
case Gadget -> new GadgetObject(this); case Gadget -> new GadgetObject(this);
default -> null; default -> null;
}; };
this.content = content;
}
@Override
public Int2FloatOpenHashMap getFightProperties() {
if (this.fightProp == null) this.fightProp = new Int2FloatOpenHashMap();
return this.fightProp;
} }
@Override @Override
@ -216,8 +155,8 @@ public class EntityGadget extends EntityBaseGadget {
entityInfo.addPropList(pair); entityInfo.addPropList(pair);
// We do not use the getter to null check because the getter will create a fight prop map if it is null // We do not use the getter to null check because the getter will create a fight prop map if it is null
if (this.fightProp != null) { if (this.fightProperties != null) {
this.addAllFightPropsToEntityInfo(entityInfo); addAllFightPropsToEntityInfo(entityInfo);
} }
SceneGadgetInfo.Builder gadgetInfo = SceneGadgetInfo.newBuilder() SceneGadgetInfo.Builder gadgetInfo = SceneGadgetInfo.newBuilder()

View File

@ -25,57 +25,33 @@ import emu.grasscutter.net.proto.VectorOuterClass.Vector;
import emu.grasscutter.server.packet.send.PacketGadgetInteractRsp; import emu.grasscutter.server.packet.send.PacketGadgetInteractRsp;
import emu.grasscutter.utils.Position; import emu.grasscutter.utils.Position;
import emu.grasscutter.utils.ProtoHelper; import emu.grasscutter.utils.ProtoHelper;
import it.unimi.dsi.fastutil.ints.Int2FloatOpenHashMap; import it.unimi.dsi.fastutil.ints.Int2FloatMap;
import lombok.Getter;
public class EntityItem extends EntityBaseGadget { public class EntityItem extends EntityBaseGadget {
private final Position pos; @Getter private final GameItem item;
private final Position rot; @Getter private final long guid;
@Getter private final boolean share;
private final GameItem item;
private final long guid;
private final boolean share;
public EntityItem(Scene scene, Player player, ItemData itemData, Position pos, int count) { public EntityItem(Scene scene, Player player, ItemData itemData, Position pos, int count) {
super(scene); this(scene, player, itemData, pos, count, true);
this.id = getScene().getWorld().getNextEntityId(EntityIdType.GADGET);
this.pos = new Position(pos);
this.rot = new Position();
this.guid = player == null ? scene.getWorld().getHost().getNextGameGuid() : player.getNextGameGuid();
this.item = new GameItem(itemData, count);
this.share = true;
} }
// In official game, some drop items are shared to all players, and some other items are independent to all players // In official game, some drop items are shared to all players, and some other items are independent to all players
// For example, if you killed a monster in MP mode, all players could get drops but rarity and number of them are different // For example, if you killed a monster in MP mode, all players could get drops but rarity and number of them are different
// but if you broke regional mine, when someone picked up the drop then it disappeared // but if you broke regional mine, when someone picked up the drop then it disappeared
public EntityItem(Scene scene, Player player, ItemData itemData, Position pos, int count, boolean share) { public EntityItem(Scene scene, Player player, ItemData itemData, Position pos, int count, boolean share) {
super(scene); super(scene, pos, null);
this.id = getScene().getWorld().getNextEntityId(EntityIdType.GADGET); this.id = getScene().getWorld().getNextEntityId(EntityIdType.GADGET);
this.pos = new Position(pos);
this.rot = new Position();
this.guid = player == null ? scene.getWorld().getHost().getNextGameGuid() : player.getNextGameGuid(); this.guid = player == null ? scene.getWorld().getHost().getNextGameGuid() : player.getNextGameGuid();
this.item = new GameItem(itemData, count); this.item = new GameItem(itemData, count);
this.share = share; this.share = share;
} }
@Override
public int getId() {
return this.id;
}
private GameItem getItem() {
return this.item;
}
public ItemData getItemData() { public ItemData getItemData() {
return this.getItem().getItemData(); return this.getItem().getItemData();
} }
public long getGuid() {
return guid;
}
public int getCount() { public int getCount() {
return this.getItem().getCount(); return this.getItem().getCount();
} }
@ -85,24 +61,7 @@ public class EntityItem extends EntityBaseGadget {
return this.getItemData().getGadgetId(); return this.getItemData().getGadgetId();
} }
@Override @Override public Int2FloatMap getFightProperties() {return null;}
public Position getPosition() {
return this.pos;
}
@Override
public Position getRotation() {
return this.rot;
}
@Override
public Int2FloatOpenHashMap getFightProperties() {
return null;
}
public boolean isShare() {
return share;
}
@Override @Override
public void onInteract(Player player, GadgetInteractReq interactReq) { public void onInteract(Player player, GadgetInteractReq interactReq) {

View File

@ -1,14 +1,12 @@
package emu.grasscutter.game.entity; package emu.grasscutter.game.entity;
import emu.grasscutter.Grasscutter; import java.util.Optional;
import emu.grasscutter.data.GameData; import emu.grasscutter.data.GameData;
import emu.grasscutter.data.common.ItemParamData;
import emu.grasscutter.data.common.PropGrowCurve; import emu.grasscutter.data.common.PropGrowCurve;
import emu.grasscutter.data.excels.EnvAnimalGatherConfigData; import emu.grasscutter.data.excels.EnvAnimalGatherConfigData;
import emu.grasscutter.data.excels.ItemData;
import emu.grasscutter.data.excels.MonsterCurveData; import emu.grasscutter.data.excels.MonsterCurveData;
import emu.grasscutter.data.excels.MonsterData; import emu.grasscutter.data.excels.MonsterData;
import emu.grasscutter.game.inventory.GameItem;
import emu.grasscutter.game.player.Player; import emu.grasscutter.game.player.Player;
import emu.grasscutter.game.props.ActionReason; import emu.grasscutter.game.props.ActionReason;
import emu.grasscutter.game.props.EntityIdType; import emu.grasscutter.game.props.EntityIdType;
@ -16,13 +14,11 @@ import emu.grasscutter.game.props.FightProperty;
import emu.grasscutter.game.props.PlayerProperty; import emu.grasscutter.game.props.PlayerProperty;
import emu.grasscutter.game.props.WatcherTriggerType; import emu.grasscutter.game.props.WatcherTriggerType;
import emu.grasscutter.game.world.Scene; import emu.grasscutter.game.world.Scene;
import emu.grasscutter.net.proto.VisionTypeOuterClass;
import emu.grasscutter.net.proto.AbilitySyncStateInfoOuterClass.AbilitySyncStateInfo; import emu.grasscutter.net.proto.AbilitySyncStateInfoOuterClass.AbilitySyncStateInfo;
import emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair; import emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair;
import emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo; import emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo;
import emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData; import emu.grasscutter.net.proto.EntityClientDataOuterClass.EntityClientData;
import emu.grasscutter.net.proto.EntityRendererChangedInfoOuterClass.EntityRendererChangedInfo; import emu.grasscutter.net.proto.EntityRendererChangedInfoOuterClass.EntityRendererChangedInfo;
import emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair;
import emu.grasscutter.net.proto.GadgetInteractReqOuterClass.GadgetInteractReq; import emu.grasscutter.net.proto.GadgetInteractReqOuterClass.GadgetInteractReq;
import emu.grasscutter.net.proto.MonsterBornTypeOuterClass.MonsterBornType; import emu.grasscutter.net.proto.MonsterBornTypeOuterClass.MonsterBornType;
import emu.grasscutter.net.proto.PropPairOuterClass.PropPair; import emu.grasscutter.net.proto.PropPairOuterClass.PropPair;
@ -35,31 +31,32 @@ import emu.grasscutter.scripts.constants.EventType;
import emu.grasscutter.scripts.data.ScriptArgs; import emu.grasscutter.scripts.data.ScriptArgs;
import emu.grasscutter.utils.Position; import emu.grasscutter.utils.Position;
import emu.grasscutter.utils.ProtoHelper; import emu.grasscutter.utils.ProtoHelper;
import it.unimi.dsi.fastutil.ints.Int2FloatMap;
import it.unimi.dsi.fastutil.ints.Int2FloatOpenHashMap; import it.unimi.dsi.fastutil.ints.Int2FloatOpenHashMap;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
public class EntityMonster extends GameEntity { public class EntityMonster extends GameEntity {
private final MonsterData monsterData; @Getter private final MonsterData monsterData;
private final Int2FloatOpenHashMap fightProp; @Getter(onMethod = @__(@Override))
private final Int2FloatOpenHashMap fightProperties;
private final Position pos; @Getter(onMethod = @__(@Override))
private final Position rot; private final Position position;
private final Position bornPos; @Getter(onMethod = @__(@Override))
private final int level; private final Position rotation;
@Getter private final Position bornPos;
@Getter private final int level;
private int weaponEntityId; private int weaponEntityId;
private int poseId; @Getter @Setter private int poseId;
@Getter @Setter @Getter @Setter private int aiId = -1;
private int aiId=-1;
public EntityMonster(Scene scene, MonsterData monsterData, Position pos, int level) { public EntityMonster(Scene scene, MonsterData monsterData, Position pos, int level) {
super(scene); super(scene);
this.id = getWorld().getNextEntityId(EntityIdType.MONSTER); this.id = getWorld().getNextEntityId(EntityIdType.MONSTER);
this.monsterData = monsterData; this.monsterData = monsterData;
this.fightProp = new Int2FloatOpenHashMap(); this.fightProperties = new Int2FloatOpenHashMap();
this.pos = new Position(pos); this.position = new Position(pos);
this.rot = new Position(); this.rotation = new Position();
this.bornPos = getPosition().clone(); this.bornPos = getPosition().clone();
this.level = level; this.level = level;
@ -71,59 +68,19 @@ public class EntityMonster extends GameEntity {
this.recalcStats(); this.recalcStats();
} }
@Override
public int getId() {
return this.id;
}
public MonsterData getMonsterData() {
return monsterData;
}
public int getMonsterWeaponId() { public int getMonsterWeaponId() {
return getMonsterData().getWeaponId(); return this.getMonsterData().getWeaponId();
} }
private int getMonsterId() { private int getMonsterId() {
return this.getMonsterData().getId(); return this.getMonsterData().getId();
} }
public int getLevel() {
return level;
}
@Override
public Position getPosition() {
return this.pos;
}
@Override
public Position getRotation() {
return this.rot;
}
public Position getBornPos() {
return bornPos;
}
@Override
public Int2FloatOpenHashMap getFightProperties() {
return fightProp;
}
@Override @Override
public boolean isAlive() { public boolean isAlive() {
return this.getFightProperty(FightProperty.FIGHT_PROP_CUR_HP) > 0f; return this.getFightProperty(FightProperty.FIGHT_PROP_CUR_HP) > 0f;
} }
public int getPoseId() {
return poseId;
}
public void setPoseId(int poseId) {
this.poseId = poseId;
}
@Override @Override
public void onInteract(Player player, GadgetInteractReq interactReq) { public void onInteract(Player player, GadgetInteractReq interactReq) {
EnvAnimalGatherConfigData gatherData = GameData.getEnvAnimalGatherConfigDataMap().get(this.getMonsterData().getId()); EnvAnimalGatherConfigData gatherData = GameData.getEnvAnimalGatherConfigDataMap().get(this.getMonsterData().getId());
@ -163,27 +120,24 @@ public class EntityMonster extends GameEntity {
@Override @Override
public void onDeath(int killerId) { public void onDeath(int killerId) {
super.onDeath(killerId); // Invoke super class's onDeath() method. super.onDeath(killerId); // Invoke super class's onDeath() method.
var scene = this.getScene();
var challenge = Optional.ofNullable(scene.getChallenge());
var scriptManager = scene.getScriptManager();
Optional.ofNullable(this.getSpawnEntry()).ifPresent(scene.getDeadSpawnedEntities()::add);
if (this.getSpawnEntry() != null) {
this.getScene().getDeadSpawnedEntities().add(getSpawnEntry());
}
// first set the challenge data // first set the challenge data
if (getScene().getChallenge() != null) { challenge.ifPresent(c -> c.onMonsterDeath(this));
getScene().getChallenge().onMonsterDeath(this);
} if (scriptManager.isInit() && this.getGroupId() > 0) {
if (getScene().getScriptManager().isInit() && this.getGroupId() > 0) { Optional.ofNullable(scriptManager.getScriptMonsterSpawnService()).ifPresent(s -> s.onMonsterDead(this));
if (getScene().getScriptManager().getScriptMonsterSpawnService() != null) {
getScene().getScriptManager().getScriptMonsterSpawnService().onMonsterDead(this);
}
// prevent spawn monster after success // prevent spawn monster after success
if (getScene().getChallenge() != null && getScene().getChallenge().inProgress()) { if (challenge.map(c -> c.inProgress()).orElse(true))
getScene().getScriptManager().callEvent(EventType.EVENT_ANY_MONSTER_DIE, new ScriptArgs().setParam1(this.getConfigId())); scriptManager.callEvent(EventType.EVENT_ANY_MONSTER_DIE, new ScriptArgs().setParam1(this.getConfigId()));
}else if (getScene().getChallenge() == null) {
getScene().getScriptManager().callEvent(EventType.EVENT_ANY_MONSTER_DIE, new ScriptArgs().setParam1(this.getConfigId()));
}
} }
// Battle Pass trigger // Battle Pass trigger
getScene().getPlayers().forEach(p -> p.getBattlePassManager().triggerMission(WatcherTriggerType.TRIGGER_MONSTER_DIE, this.getMonsterId(), 1)); scene.getPlayers().forEach(p -> p.getBattlePassManager().triggerMission(WatcherTriggerType.TRIGGER_MONSTER_DIE, this.getMonsterId(), 1));
} }
public void recalcStats() { public void recalcStats() {
@ -197,18 +151,7 @@ public class EntityMonster extends GameEntity {
this.getFightProperties().clear(); this.getFightProperties().clear();
// Base stats // Base stats
this.setFightProperty(FightProperty.FIGHT_PROP_BASE_HP, data.getBaseHp()); MonsterData.definedFightProperties.forEach(prop -> this.setFightProperty(prop, data.getFightProperty(prop)));
this.setFightProperty(FightProperty.FIGHT_PROP_BASE_ATTACK, data.getBaseAttack());
this.setFightProperty(FightProperty.FIGHT_PROP_BASE_DEFENSE, data.getBaseDefense());
this.setFightProperty(FightProperty.FIGHT_PROP_PHYSICAL_SUB_HURT, data.getPhysicalSubHurt());
this.setFightProperty(FightProperty.FIGHT_PROP_FIRE_SUB_HURT, .1f);
this.setFightProperty(FightProperty.FIGHT_PROP_ELEC_SUB_HURT, data.getElecSubHurt());
this.setFightProperty(FightProperty.FIGHT_PROP_WATER_SUB_HURT, data.getWaterSubHurt());
this.setFightProperty(FightProperty.FIGHT_PROP_GRASS_SUB_HURT, data.getGrassSubHurt());
this.setFightProperty(FightProperty.FIGHT_PROP_WIND_SUB_HURT, data.getWindSubHurt());
this.setFightProperty(FightProperty.FIGHT_PROP_ROCK_SUB_HURT, .1f);
this.setFightProperty(FightProperty.FIGHT_PROP_ICE_SUB_HURT, data.getIceSubHurt());
// Level curve // Level curve
MonsterCurveData curve = GameData.getMonsterCurveDataMap().get(this.getLevel()); MonsterCurveData curve = GameData.getMonsterCurveDataMap().get(this.getLevel());
@ -220,18 +163,8 @@ public class EntityMonster extends GameEntity {
} }
// Set % stats // Set % stats
this.setFightProperty( FightProperty.forEachCompoundProperty(c -> this.setFightProperty(c.getResult(),
FightProperty.FIGHT_PROP_MAX_HP, this.getFightProperty(c.getFlat()) + (this.getFightProperty(c.getBase()) * (1f + this.getFightProperty(c.getPercent())))));
(getFightProperty(FightProperty.FIGHT_PROP_BASE_HP) * (1f + getFightProperty(FightProperty.FIGHT_PROP_HP_PERCENT))) + getFightProperty(FightProperty.FIGHT_PROP_HP)
);
this.setFightProperty(
FightProperty.FIGHT_PROP_CUR_ATTACK,
(getFightProperty(FightProperty.FIGHT_PROP_BASE_ATTACK) * (1f + getFightProperty(FightProperty.FIGHT_PROP_ATTACK_PERCENT))) + getFightProperty(FightProperty.FIGHT_PROP_ATTACK)
);
this.setFightProperty(
FightProperty.FIGHT_PROP_CUR_DEFENSE,
(getFightProperty(FightProperty.FIGHT_PROP_BASE_DEFENSE) * (1f + getFightProperty(FightProperty.FIGHT_PROP_DEFENSE_PERCENT))) + getFightProperty(FightProperty.FIGHT_PROP_DEFENSE)
);
// Set current hp // Set current hp
this.setFightProperty(FightProperty.FIGHT_PROP_CUR_HP, this.getFightProperty(FightProperty.FIGHT_PROP_MAX_HP) * hpPercent); this.setFightProperty(FightProperty.FIGHT_PROP_CUR_HP, this.getFightProperty(FightProperty.FIGHT_PROP_MAX_HP) * hpPercent);
@ -239,14 +172,14 @@ public class EntityMonster extends GameEntity {
@Override @Override
public SceneEntityInfo toProto() { public SceneEntityInfo toProto() {
EntityAuthorityInfo authority = EntityAuthorityInfo.newBuilder() var authority = EntityAuthorityInfo.newBuilder()
.setAbilityInfo(AbilitySyncStateInfo.newBuilder()) .setAbilityInfo(AbilitySyncStateInfo.newBuilder())
.setRendererChangedInfo(EntityRendererChangedInfo.newBuilder()) .setRendererChangedInfo(EntityRendererChangedInfo.newBuilder())
.setAiInfo(SceneEntityAiInfo.newBuilder().setIsAiOpen(true).setBornPos(this.getBornPos().toProto())) .setAiInfo(SceneEntityAiInfo.newBuilder().setIsAiOpen(true).setBornPos(this.getBornPos().toProto()))
.setBornPos(this.getBornPos().toProto()) .setBornPos(this.getBornPos().toProto())
.build(); .build();
SceneEntityInfo.Builder entityInfo = SceneEntityInfo.newBuilder() var entityInfo = SceneEntityInfo.newBuilder()
.setEntityId(getId()) .setEntityId(getId())
.setEntityType(ProtEntityType.PROT_ENTITY_TYPE_MONSTER) .setEntityType(ProtEntityType.PROT_ENTITY_TYPE_MONSTER)
.setMotionInfo(this.getMotionInfo()) .setMotionInfo(this.getMotionInfo())
@ -255,21 +188,14 @@ public class EntityMonster extends GameEntity {
.setEntityAuthorityInfo(authority) .setEntityAuthorityInfo(authority)
.setLifeState(this.getLifeState().getValue()); .setLifeState(this.getLifeState().getValue());
for (Int2FloatMap.Entry entry : getFightProperties().int2FloatEntrySet()) { this.addAllFightPropsToEntityInfo(entityInfo);
if (entry.getIntKey() == 0) {
continue;
}
FightPropPair fightProp = FightPropPair.newBuilder().setPropType(entry.getIntKey()).setPropValue(entry.getFloatValue()).build();
entityInfo.addFightPropList(fightProp);
}
PropPair pair = PropPair.newBuilder() entityInfo.addPropList(PropPair.newBuilder()
.setType(PlayerProperty.PROP_LEVEL.getId()) .setType(PlayerProperty.PROP_LEVEL.getId())
.setPropValue(ProtoHelper.newPropValue(PlayerProperty.PROP_LEVEL, getLevel())) .setPropValue(ProtoHelper.newPropValue(PlayerProperty.PROP_LEVEL, getLevel()))
.build(); .build());
entityInfo.addPropList(pair);
SceneMonsterInfo.Builder monsterInfo = SceneMonsterInfo.newBuilder() var monsterInfo = SceneMonsterInfo.newBuilder()
.setMonsterId(getMonsterId()) .setMonsterId(getMonsterId())
.setGroupId(this.getGroupId()) .setGroupId(this.getGroupId())
.setConfigId(this.getConfigId()) .setConfigId(this.getConfigId())

View File

@ -5,14 +5,16 @@ import emu.grasscutter.game.world.Scene;
import emu.grasscutter.net.proto.*; import emu.grasscutter.net.proto.*;
import emu.grasscutter.scripts.data.SceneNPC; import emu.grasscutter.scripts.data.SceneNPC;
import emu.grasscutter.utils.Position; import emu.grasscutter.utils.Position;
import it.unimi.dsi.fastutil.ints.Int2FloatOpenHashMap; import it.unimi.dsi.fastutil.ints.Int2FloatMap;
import lombok.Getter;
public class EntityNPC extends GameEntity{ public class EntityNPC extends GameEntity{
@Getter(onMethod = @__(@Override))
private final Position position; private final Position position;
@Getter(onMethod = @__(@Override))
private final Position rotation; private final Position rotation;
private final SceneNPC metaNpc; private final SceneNPC metaNpc;
private final int suiteId; @Getter private final int suiteId;
public EntityNPC(Scene scene, SceneNPC metaNPC, int blockId, int suiteId) { public EntityNPC(Scene scene, SceneNPC metaNPC, int blockId, int suiteId) {
super(scene); super(scene);
@ -27,24 +29,7 @@ public class EntityNPC extends GameEntity{
} }
@Override @Override public Int2FloatMap getFightProperties() {return null;}
public Int2FloatOpenHashMap getFightProperties() {
return null;
}
@Override
public Position getPosition() {
return position;
}
@Override
public Position getRotation() {
return rotation;
}
public int getSuiteId() {
return suiteId;
}
@Override @Override
public SceneEntityInfoOuterClass.SceneEntityInfo toProto() { public SceneEntityInfoOuterClass.SceneEntityInfo toProto() {

View File

@ -5,7 +5,7 @@ import emu.grasscutter.game.world.Scene;
import emu.grasscutter.net.proto.SceneEntityInfoOuterClass; import emu.grasscutter.net.proto.SceneEntityInfoOuterClass;
import emu.grasscutter.scripts.data.SceneRegion; import emu.grasscutter.scripts.data.SceneRegion;
import emu.grasscutter.utils.Position; import emu.grasscutter.utils.Position;
import it.unimi.dsi.fastutil.ints.Int2FloatOpenHashMap; import it.unimi.dsi.fastutil.ints.Int2FloatMap;
import lombok.Getter; import lombok.Getter;
import java.util.Set; import java.util.Set;
@ -57,20 +57,11 @@ public class EntityRegion extends GameEntity{
} }
public boolean entityLeave() {return this.entityLeave;} public boolean entityLeave() {return this.entityLeave;}
public void resetEntityLeave() {this.entityLeave = false;} public void resetEntityLeave() {this.entityLeave = false;}
@Override @Override public Int2FloatMap getFightProperties() {return null;}
public Int2FloatOpenHashMap getFightProperties() {
return null;
}
@Override @Override public Position getPosition() {return position;}
public Position getPosition() {
return position;
}
@Override @Override public Position getRotation() {return null;}
public Position getRotation() {
return null;
}
@Override @Override
public SceneEntityInfoOuterClass.SceneEntityInfo toProto() { public SceneEntityInfoOuterClass.SceneEntityInfo toProto() {

View File

@ -12,7 +12,6 @@ import emu.grasscutter.net.proto.AbilitySyncStateInfoOuterClass.AbilitySyncState
import emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair; import emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair;
import emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo; import emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo;
import emu.grasscutter.net.proto.EntityRendererChangedInfoOuterClass.EntityRendererChangedInfo; import emu.grasscutter.net.proto.EntityRendererChangedInfoOuterClass.EntityRendererChangedInfo;
import emu.grasscutter.net.proto.FightPropPairOuterClass.FightPropPair;
import emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo; import emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo;
import emu.grasscutter.net.proto.PropPairOuterClass.PropPair; import emu.grasscutter.net.proto.PropPairOuterClass.PropPair;
import emu.grasscutter.net.proto.ProtEntityTypeOuterClass.ProtEntityType; import emu.grasscutter.net.proto.ProtEntityTypeOuterClass.ProtEntityType;
@ -36,10 +35,8 @@ import java.util.List;
public class EntityVehicle extends EntityBaseGadget { public class EntityVehicle extends EntityBaseGadget {
@Getter private final Player owner; @Getter private final Player owner;
private final Int2FloatMap fightProp; @Getter(onMethod = @__(@Override))
private final Int2FloatMap fightProperties;
private final Position pos;
private final Position rot;
@Getter private final int pointId; @Getter private final int pointId;
@Getter private final int gadgetId; @Getter private final int gadgetId;
@ -49,12 +46,10 @@ public class EntityVehicle extends EntityBaseGadget {
@Nullable @Getter private ConfigGadget configGadget; @Nullable @Getter private ConfigGadget configGadget;
public EntityVehicle(Scene scene, Player player, int gadgetId, int pointId, Position pos, Position rot) { public EntityVehicle(Scene scene, Player player, int gadgetId, int pointId, Position pos, Position rot) {
super(scene); super(scene, pos, rot);
this.owner = player; this.owner = player;
this.id = getScene().getWorld().getNextEntityId(EntityIdType.GADGET); this.id = getScene().getWorld().getNextEntityId(EntityIdType.GADGET);
this.fightProp = new Int2FloatOpenHashMap(); this.fightProperties = new Int2FloatOpenHashMap();
this.pos = new Position(pos);
this.rot = new Position(rot);
this.gadgetId = gadgetId; this.gadgetId = gadgetId;
this.pointId = pointId; this.pointId = pointId;
this.curStamina = 240; // might be in configGadget.GCALKECLLLP.JBAKBEFIMBN.ANBMPHPOALP this.curStamina = 240; // might be in configGadget.GCALKECLLLP.JBAKBEFIMBN.ANBMPHPOALP
@ -74,19 +69,6 @@ public class EntityVehicle extends EntityBaseGadget {
this.addFightProperty(FightProperty.FIGHT_PROP_CHARGE_EFFICIENCY, 0); this.addFightProperty(FightProperty.FIGHT_PROP_CHARGE_EFFICIENCY, 0);
} }
@Override
public Int2FloatMap getFightProperties() {
return fightProp;
}
@Override
public Position getPosition() { return this.pos; }
@Override
public Position getRotation() {
return this.rot;
}
@Override @Override
public SceneEntityInfo toProto() { public SceneEntityInfo toProto() {
@ -122,14 +104,7 @@ public class EntityVehicle extends EntityBaseGadget {
.setPropValue(ProtoHelper.newPropValue(PlayerProperty.PROP_LEVEL, 47)) .setPropValue(ProtoHelper.newPropValue(PlayerProperty.PROP_LEVEL, 47))
.build(); .build();
for (Int2FloatMap.Entry entry : getFightProperties().int2FloatEntrySet()) { this.addAllFightPropsToEntityInfo(entityInfo);
if (entry.getIntKey() == 0) {
continue;
}
FightPropPair fightProp = FightPropPair.newBuilder().setPropType(entry.getIntKey()).setPropValue(entry.getFloatValue()).build();
entityInfo.addFightPropList(fightProp);
}
entityInfo.addPropList(pair); entityInfo.addPropList(pair);
return entityInfo.build(); return entityInfo.build();

View File

@ -33,7 +33,7 @@ public abstract class GameEntity {
@Getter @Setter private int configId; @Getter @Setter private int configId;
@Getter @Setter private int groupId; @Getter @Setter private int groupId;
private MotionState moveState; @Getter @Setter private MotionState motionState;
@Getter @Setter private int lastMoveSceneTimeMs; @Getter @Setter private int lastMoveSceneTimeMs;
@Getter @Setter private int lastMoveReliableSeq; @Getter @Setter private int lastMoveReliableSeq;
@ -45,7 +45,7 @@ public abstract class GameEntity {
public GameEntity(Scene scene) { public GameEntity(Scene scene) {
this.scene = scene; this.scene = scene;
this.moveState = MotionState.MOTION_STATE_NONE; this.motionState = MotionState.MOTION_STATE_NONE;
} }
public int getEntityType() { public int getEntityType() {
@ -84,14 +84,6 @@ public abstract class GameEntity {
public abstract Position getRotation(); public abstract Position getRotation();
public MotionState getMotionState() {
return moveState;
}
public void setMotionState(MotionState moveState) {
this.moveState = moveState;
}
public void setFightProperty(FightProperty prop, float value) { public void setFightProperty(FightProperty prop, float value) {
this.getFightProperties().put(prop.getId(), value); this.getFightProperties().put(prop.getId(), value);
} }
@ -113,13 +105,10 @@ public abstract class GameEntity {
} }
public void addAllFightPropsToEntityInfo(SceneEntityInfo.Builder entityInfo) { public void addAllFightPropsToEntityInfo(SceneEntityInfo.Builder entityInfo) {
for (Int2FloatMap.Entry entry : this.getFightProperties().int2FloatEntrySet()) { this.getFightProperties().forEach((key, value) -> {
if (entry.getIntKey() == 0) { if (key == 0) return;
continue; entityInfo.addFightPropList(FightPropPair.newBuilder().setPropType(key).setPropValue(value).build());
} });
FightPropPair fightProp = FightPropPair.newBuilder().setPropType(entry.getIntKey()).setPropValue(entry.getFloatValue()).build();
entityInfo.addFightPropList(fightProp);
}
} }
protected MotionInfo getMotionInfo() { protected MotionInfo getMotionInfo() {

View File

@ -20,12 +20,12 @@ import javax.annotation.Nullable;
public class EntityPlatform extends EntityBaseGadget { public class EntityPlatform extends EntityBaseGadget {
@Getter @Getter
private final Player owner; private final Player owner;
@Getter(onMethod = @__(@Override))
private final int gadgetId; private final int gadgetId;
@Getter @Getter
private final EntityClientGadget gadget; private final EntityClientGadget gadget;
private final Int2FloatMap fightProp; @Getter(onMethod = @__(@Override))
private final Position pos; private final Int2FloatMap fightProperties;
private final Position rot;
@Nullable @Nullable
@Getter @Getter
private ConfigGadget configGadget; private ConfigGadget configGadget;
@ -39,13 +39,11 @@ public class EntityPlatform extends EntityBaseGadget {
private boolean isActive; private boolean isActive;
public EntityPlatform(EntityClientGadget gadget, Scene scene, Player player, int gadgetId, Position pos, Position rot, MovingPlatformTypeOuterClass.MovingPlatformType movingPlatformType) { public EntityPlatform(EntityClientGadget gadget, Scene scene, Player player, int gadgetId, Position pos, Position rot, MovingPlatformTypeOuterClass.MovingPlatformType movingPlatformType) {
super(scene); super(scene, pos, rot);
this.gadget = gadget; this.gadget = gadget;
this.owner = player; this.owner = player;
this.id = getScene().getWorld().getNextEntityId(EntityIdType.GADGET); this.id = getScene().getWorld().getNextEntityId(EntityIdType.GADGET);
this.fightProp = new Int2FloatOpenHashMap(); this.fightProperties = new Int2FloatOpenHashMap();
this.pos = new Position(pos);
this.rot = new Position(rot);
this.movingPlatformType = movingPlatformType; this.movingPlatformType = movingPlatformType;
this.gadgetId = gadgetId; this.gadgetId = gadgetId;
GadgetData data = GameData.getGadgetDataMap().get(gadgetId); GadgetData data = GameData.getGadgetDataMap().get(gadgetId);
@ -56,26 +54,6 @@ public class EntityPlatform extends EntityBaseGadget {
fillFightProps(configGadget); fillFightProps(configGadget);
} }
@Override
public int getGadgetId() {
return gadgetId;
}
@Override
public Int2FloatMap getFightProperties() {
return fightProp;
}
@Override
public Position getPosition() {
return pos;
}
@Override
public Position getRotation() {
return rot;
}
@Override @Override
public SceneEntityInfoOuterClass.SceneEntityInfo toProto() { public SceneEntityInfoOuterClass.SceneEntityInfo toProto() {
var platform = PlatformInfoOuterClass.PlatformInfo.newBuilder() var platform = PlatformInfoOuterClass.PlatformInfo.newBuilder()
@ -93,14 +71,7 @@ public class EntityPlatform extends EntityBaseGadget {
.setGadget(gadgetInfo) .setGadget(gadgetInfo)
.setLifeState(1); .setLifeState(1);
for (Int2FloatMap.Entry entry : getFightProperties().int2FloatEntrySet()) { this.addAllFightPropsToEntityInfo(entityInfo);
if (entry.getIntKey() == 0) {
continue;
}
FightPropPairOuterClass.FightPropPair fightProp = FightPropPairOuterClass.FightPropPair.newBuilder().setPropType(entry.getIntKey()).setPropValue(entry.getFloatValue()).build();
entityInfo.addFightPropList(fightProp);
}
return entityInfo.build(); return entityInfo.build();
} }

View File

@ -89,16 +89,7 @@ public class EntitySolarIsotomaElevatorPlatform extends EntityPlatform {
Grasscutter.getLogger().warn("Why gadget owner doesn't exist?"); Grasscutter.getLogger().warn("Why gadget owner doesn't exist?");
} }
for (var entry : getFightProperties().int2FloatEntrySet()) { this.addAllFightPropsToEntityInfo(info);
if (entry.getIntKey() == 0) {
continue;
}
var fightProp = FightPropPairOuterClass.FightPropPair.newBuilder()
.setPropType(entry.getIntKey())
.setPropValue(entry.getFloatValue())
.build();
info.addFightPropList(fightProp);
}
info.setLifeState(1) info.setLifeState(1)
.setGadget(gadget) .setGadget(gadget)

View File

@ -2,6 +2,7 @@ package emu.grasscutter.game.gacha;
import static emu.grasscutter.config.Configuration.*; import static emu.grasscutter.config.Configuration.*;
import emu.grasscutter.Grasscutter;
import emu.grasscutter.data.common.ItemParamData; import emu.grasscutter.data.common.ItemParamData;
import emu.grasscutter.game.player.Player; import emu.grasscutter.game.player.Player;
import emu.grasscutter.net.proto.GachaInfoOuterClass.GachaInfo; import emu.grasscutter.net.proto.GachaInfoOuterClass.GachaInfo;
@ -39,14 +40,41 @@ public class GachaBanner {
private int eventChance4 = 50; // Chance to win a featured event item private int eventChance4 = 50; // Chance to win a featured event item
private int eventChance5 = 50; // Chance to win a featured event item private int eventChance5 = 50; // Chance to win a featured event item
@Getter private BannerType bannerType = BannerType.STANDARD; @Getter private BannerType bannerType = BannerType.STANDARD;
// Kinda wanna deprecate these but they're in people's configs
private int[] rateUpItems1 = {};
private int[] rateUpItems2 = {};
private int eventChance = -1;
private int costItem = 0;
@Getter private int wishMaxProgress = 2; @Getter private int wishMaxProgress = 2;
// Deprecated fields that were tolerated in early May 2022 but have apparently still being circulating in new custom configs
// For now, throw up big scary errors on load telling people that they will be banned outright in a future version
@Deprecated private int[] rateUpItems1 = {};
@Deprecated private int[] rateUpItems2 = {};
@Deprecated private int eventChance = -1;
@Deprecated private int costItem = 0;
@Deprecated private int softPity = -1;
@Deprecated private int hardPity = -1;
@Deprecated private int minItemType = -1;
@Deprecated private int maxItemType = -1;
private static void warnDeprecated(String name, String replacement) {
Grasscutter.getLogger().error("Deprecated field found in Banners.json: "+name+" was replaced back in early May 2022, use "+replacement+" instead. If you do not remove this key from your config, it will refuse to load in a future Grasscutter version.");
}
public void onLoad() {
if (eventChance != -1)
warnDeprecated("eventChance", "eventChance4 & eventChance5");
if (costItem != 0)
warnDeprecated("costItem", "costItemId");
if (softPity != -1)
warnDeprecated("softPity", "weights5");
if (hardPity != -1)
warnDeprecated("hardPity", "weights5");
if (minItemType != -1)
warnDeprecated("minItemType", "fallbackItems[4,5]Pool[1,2]");
if (maxItemType != -1)
warnDeprecated("maxItemType", "fallbackItems[4,5]Pool[1,2]");
if (rateUpItems1.length > 0)
warnDeprecated("rateUpItems1", "rateUpItems5");
if (rateUpItems2.length > 0)
warnDeprecated("rateUpItems2", "rateUpItems4");
}
public String getPreviewPrefabPath() { public String getPreviewPrefabPath() {
if (this.previewPrefabPath != null && !this.previewPrefabPath.isEmpty()) if (this.previewPrefabPath != null && !this.previewPrefabPath.isEmpty())
return this.previewPrefabPath; return this.previewPrefabPath;

View File

@ -73,6 +73,7 @@ public class GachaSystem extends BaseGameSystem {
List<GachaBanner> banners = DataLoader.loadList("Banners.json", GachaBanner.class); List<GachaBanner> banners = DataLoader.loadList("Banners.json", GachaBanner.class);
if (banners.size() > 0) { if (banners.size() > 0) {
for (GachaBanner banner : banners) { for (GachaBanner banner : banners) {
banner.onLoad();
getGachaBanners().put(banner.getScheduleId(), banner); getGachaBanners().put(banner.getScheduleId(), banner);
} }
Grasscutter.getLogger().debug("Banners successfully loaded."); Grasscutter.getLogger().debug("Banners successfully loaded.");
@ -316,10 +317,10 @@ public class GachaSystem extends BaseGameSystem {
pools.removeFromAllPools(new int[] {itemId}); pools.removeFromAllPools(new int[] {itemId});
} }
addStarglitter = (itemData.getRankLevel()==5)? 10 : 2; addStarglitter = (itemData.getRankLevel()==5)? 10 : 2;
int constItemId = itemId + 100; int constItemId = itemId + 100; // This may not hold true for future characters. Examples of strictly correct constellation item lookup are elsewhere for now.
GameItem constItem = inventory.getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(constItemId); boolean haveConstItem = inventory.getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(constItemId) == null;
gachaItem.addTransferItems(GachaTransferItem.newBuilder().setItem(ItemParam.newBuilder().setItemId(constItemId).setCount(1)).setIsTransferItemNew(constItem == null)); gachaItem.addTransferItems(GachaTransferItem.newBuilder().setItem(ItemParam.newBuilder().setItemId(constItemId).setCount(1)).setIsTransferItemNew(haveConstItem));
inventory.addItem(constItemId, 1); //inventory.addItem(constItemId, 1); // This is now managed by the avatar card item itself
} }
isTransferItem = true; isTransferItem = true;
break; break;

View File

@ -11,6 +11,7 @@ import emu.grasscutter.data.excels.HomeWorldLevelData;
import emu.grasscutter.database.DatabaseHelper; import emu.grasscutter.database.DatabaseHelper;
import emu.grasscutter.game.player.Player; import emu.grasscutter.game.player.Player;
import emu.grasscutter.server.packet.send.*; import emu.grasscutter.server.packet.send.*;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@ -20,6 +21,7 @@ import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
@Entity(value = "homes", useDiscriminator = false) @Entity(value = "homes", useDiscriminator = false)
@Data @Data
@ -38,6 +40,7 @@ public class GameHome {
List<FurnitureMakeSlotItem> furnitureMakeSlotItemList; List<FurnitureMakeSlotItem> furnitureMakeSlotItemList;
ConcurrentHashMap<Integer, HomeSceneItem> sceneMap; ConcurrentHashMap<Integer, HomeSceneItem> sceneMap;
Set<Integer> unlockedHomeBgmList; Set<Integer> unlockedHomeBgmList;
int enterHomeOption;
public void save() { public void save() {
DatabaseHelper.saveHome(this); DatabaseHelper.saveHome(this);
@ -56,6 +59,7 @@ public class GameHome {
.ownerUid(uid) .ownerUid(uid)
.level(1) .level(1)
.sceneMap(new ConcurrentHashMap<>()) .sceneMap(new ConcurrentHashMap<>())
.unlockedHomeBgmList(new HashSet<>())
.build(); .build();
} }
@ -92,7 +96,7 @@ public class GameHome {
} }
public boolean addUnlockedHomeBgm(int homeBgmId) { public boolean addUnlockedHomeBgm(int homeBgmId) {
if (getUnlockedHomeBgmList().add(homeBgmId)) return false; if (!getUnlockedHomeBgmList().add(homeBgmId)) return false;
var player = this.getPlayer(); var player = this.getPlayer();
player.sendPacket(new PacketUnlockHomeBgmNotify(homeBgmId)); player.sendPacket(new PacketUnlockHomeBgmNotify(homeBgmId));
@ -101,20 +105,22 @@ public class GameHome {
return true; return true;
} }
public Set<Integer> getUnlockedHomeBgmListInfo() { public Set<Integer> getUnlockedHomeBgmList() {
if (this.unlockedHomeBgmList == null) { if (this.unlockedHomeBgmList == null) {
this.unlockedHomeBgmList = new HashSet<>(); this.unlockedHomeBgmList = new HashSet<>();
addAllDefaultUnlockedBgmIds(this.unlockedHomeBgmList); }
if (this.unlockedHomeBgmList.addAll(getDefaultUnlockedHomeBgmIds())) {
save(); save();
} }
return this.unlockedHomeBgmList; return this.unlockedHomeBgmList;
} }
private void addAllDefaultUnlockedBgmIds(Set<Integer> list) { private Set<Integer> getDefaultUnlockedHomeBgmIds() {
GameData.getHomeWorldBgmDataMap().forEach((id, data) -> { return GameData.getHomeWorldBgmDataMap().int2ObjectEntrySet().stream()
if (data.isDefaultUnlock()) .filter(e -> e.getValue().isDefaultUnlock())
list.add(id); .map(Int2ObjectMap.Entry::getIntKey)
}); .collect(Collectors.toUnmodifiableSet());
} }
} }

View File

@ -1,28 +1,18 @@
package emu.grasscutter.game.inventory; package emu.grasscutter.game.inventory;
import static emu.grasscutter.config.Configuration.*; import emu.grasscutter.Grasscutter;
import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import emu.grasscutter.GameConstants;
import emu.grasscutter.data.GameData; import emu.grasscutter.data.GameData;
import emu.grasscutter.data.common.ItemParamData; import emu.grasscutter.data.common.ItemParamData;
import emu.grasscutter.data.excels.AvatarCostumeData;
import emu.grasscutter.data.excels.AvatarData;
import emu.grasscutter.data.excels.AvatarFlycloakData;
import emu.grasscutter.data.excels.ItemData; import emu.grasscutter.data.excels.ItemData;
import emu.grasscutter.database.DatabaseHelper; import emu.grasscutter.database.DatabaseHelper;
import emu.grasscutter.game.avatar.AvatarStorage;
import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.avatar.Avatar;
import emu.grasscutter.game.avatar.AvatarStorage;
import emu.grasscutter.game.player.BasePlayerManager; import emu.grasscutter.game.player.BasePlayerManager;
import emu.grasscutter.game.player.Player; import emu.grasscutter.game.player.Player;
import emu.grasscutter.game.props.ActionReason; import emu.grasscutter.game.props.ActionReason;
import emu.grasscutter.game.props.ItemUseAction.UseItemParams;
import emu.grasscutter.game.props.PlayerProperty; import emu.grasscutter.game.props.PlayerProperty;
import emu.grasscutter.game.props.WatcherTriggerType; import emu.grasscutter.game.props.WatcherTriggerType;
import emu.grasscutter.game.props.ItemUseAction.UseItemParams;
import emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam; import emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam;
import emu.grasscutter.server.packet.send.PacketAvatarEquipChangeNotify; import emu.grasscutter.server.packet.send.PacketAvatarEquipChangeNotify;
import emu.grasscutter.server.packet.send.PacketItemAddHintNotify; import emu.grasscutter.server.packet.send.PacketItemAddHintNotify;
@ -33,6 +23,13 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import it.unimi.dsi.fastutil.longs.Long2ObjectMap; import it.unimi.dsi.fastutil.longs.Long2ObjectMap;
import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import static emu.grasscutter.config.Configuration.INVENTORY_LIMITS;
public class Inventory extends BasePlayerManager implements Iterable<GameItem> { public class Inventory extends BasePlayerManager implements Iterable<GameItem> {
private final Long2ObjectMap<GameItem> store; private final Long2ObjectMap<GameItem> store;
private final Int2ObjectMap<InventoryTab> inventoryTypes; private final Int2ObjectMap<InventoryTab> inventoryTypes;
@ -138,26 +135,30 @@ public class Inventory extends BasePlayerManager implements Iterable<GameItem> {
this.addItems(items, null); this.addItems(items, null);
} }
public void addItems(Collection<GameItem> items, ActionReason reason) { public void addItems(Collection<GameItem> items, ActionReason reason) {
List<GameItem> changedItems = new LinkedList<>(); List<GameItem> changedItems = new ArrayList<>();
for (var item : items) {
for (GameItem item : items) { if (item.getItemId() == 0) continue;
GameItem result = putItem(item); GameItem result = null;
try {
// putItem might throws exception
// ignore that exception and continue
result = putItem(item);
} catch (Exception e) {
e.printStackTrace();
}
if (result != null) { if (result != null) {
getPlayer().getBattlePassManager().triggerMission(WatcherTriggerType.TRIGGER_OBTAIN_MATERIAL_NUM, result.getItemId(), result.getCount()); getPlayer().getBattlePassManager().triggerMission(WatcherTriggerType.TRIGGER_OBTAIN_MATERIAL_NUM, result.getItemId(), result.getCount());
changedItems.add(result); changedItems.add(result);
} }
} }
if (changedItems.size() == 0) { if (changedItems.size() == 0) {
return; return;
} }
if (reason != null) { if (reason != null) {
getPlayer().sendPacket(new PacketItemAddHintNotify(changedItems, reason)); getPlayer().sendPacket(new PacketItemAddHintNotify(changedItems, reason));
} }
getPlayer().sendPacket(new PacketStoreItemChangeNotify(changedItems)); getPlayer().sendPacket(new PacketStoreItemChangeNotify(changedItems));
} }
@ -180,6 +181,7 @@ public class Inventory extends BasePlayerManager implements Iterable<GameItem> {
if (data.isUseOnGain()) { if (data.isUseOnGain()) {
var params = new UseItemParams(this.player, data.getUseTarget()); var params = new UseItemParams(this.player, data.getUseTarget());
params.usedItemId = data.getId();
this.player.getServer().getInventorySystem().useItemDirect(data, params); this.player.getServer().getInventorySystem().useItemDirect(data, params);
return null; return null;
} }
@ -209,34 +211,10 @@ public class Inventory extends BasePlayerManager implements Iterable<GameItem> {
default: default:
switch (item.getItemData().getMaterialType()) { switch (item.getItemData().getMaterialType()) {
case MATERIAL_AVATAR: case MATERIAL_AVATAR:
// Get avatar id
int avatarId = (item.getItemId() % 1000) + 10000000;
// Dont let people give themselves extra main characters
if (avatarId == GameConstants.MAIN_CHARACTER_MALE || avatarId == GameConstants.MAIN_CHARACTER_FEMALE) {
return null;
}
// Add avatar
AvatarData avatarData = GameData.getAvatarDataMap().get(avatarId);
if (avatarData != null && !this.player.getAvatars().hasAvatar(avatarId)) {
this.player.addAvatar(new Avatar(avatarData));
}
return null;
case MATERIAL_FLYCLOAK: case MATERIAL_FLYCLOAK:
AvatarFlycloakData flycloakData = GameData.getAvatarFlycloakDataMap().get(item.getItemId());
if (flycloakData != null && !this.player.getFlyCloakList().contains(item.getItemId())) {
this.player.addFlycloak(item.getItemId());
}
return null;
case MATERIAL_COSTUME: case MATERIAL_COSTUME:
AvatarCostumeData costumeData = GameData.getAvatarCostumeDataItemIdMap().get(item.getItemId());
if (costumeData != null && !this.player.getCostumeList().contains(costumeData.getId())) {
this.player.addCostume(costumeData.getId());
}
return null;
case MATERIAL_NAMECARD: case MATERIAL_NAMECARD:
if (!this.player.getNameCardList().contains(item.getItemId())) { Grasscutter.getLogger().warn("Attempted to add a "+item.getItemData().getMaterialType().name()+" to inventory, but item definition lacks isUseOnGain. This indicates a Resources error.");
this.player.addNameCard(item.getItemId());
}
return null; return null;
default: default:
if (tab == null) { if (tab == null) {
@ -394,6 +372,7 @@ public class Inventory extends BasePlayerManager implements Iterable<GameItem> {
return false; return false;
// All costs are satisfied, now remove them all // All costs are satisfied, now remove them all
costItems.forEach(cost -> this.payVirtualItem(cost.getId(), cost.getCount() * quantity)); costItems.forEach(cost -> this.payVirtualItem(cost.getId(), cost.getCount() * quantity));
//TODO:handle the reason(need to send certain package)
return true; return true;
} }

View File

@ -0,0 +1,59 @@
package emu.grasscutter.game.managers.cooking;
import dev.morphia.annotations.Entity;
import lombok.Getter;
@Entity
public class ActiveCookCompoundData {
private final int costTime;
@Getter
private final int compoundId;
@Getter
private int totalCount;
private int startTime;
public ActiveCookCompoundData(int compoundId, int processTime, int count, int startTime) {
this.compoundId = compoundId;
this.costTime = processTime;
this.totalCount = count;
this.startTime = startTime;
}
public int getOutputCount(int currentTime) {
int cnt = (currentTime - startTime) / costTime;
if (cnt > totalCount) return totalCount;
else return cnt;
}
public int getWaitCount(int currentTime) {
return totalCount - getOutputCount(currentTime);
}
/**
* Get the timestamp of next output.
* If all finished,return 0
*/
public int getOutputTime(int currentTime) {
int cnt = getOutputCount(currentTime);
if (cnt == totalCount) return 0;
else return startTime + (cnt + 1) * costTime;
}
public void addCompound(int count, int currentTime) {
if (getOutputCount(currentTime) == totalCount) startTime = currentTime - totalCount * costTime;
totalCount += count;
}
/**
* Take away all finished compound.
*
* @return The number of finished items.
*/
public int takeCompound(int currentTime) {
int count = getOutputCount(currentTime);
startTime += costTime * count;
totalCount -= count;
return count;
}
}

View File

@ -0,0 +1,135 @@
package emu.grasscutter.game.managers.cooking;
import emu.grasscutter.data.GameData;
import emu.grasscutter.data.common.ItemParamData;
import emu.grasscutter.data.excels.CompoundData;
import emu.grasscutter.game.inventory.GameItem;
import emu.grasscutter.game.player.BasePlayerManager;
import emu.grasscutter.game.player.Player;
import emu.grasscutter.game.props.ActionReason;
import emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData;
import emu.grasscutter.net.proto.GetCompoundDataReqOuterClass.GetCompoundDataReq;
import emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam;
import emu.grasscutter.net.proto.PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq;
import emu.grasscutter.net.proto.RetcodeOuterClass.Retcode;
import emu.grasscutter.net.proto.TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq;
import emu.grasscutter.server.packet.send.PackageTakeCompoundOutputRsp;
import emu.grasscutter.server.packet.send.PacketCompoundDataNotify;
import emu.grasscutter.server.packet.send.PacketGetCompoundDataRsp;
import emu.grasscutter.server.packet.send.PacketPlayerCompoundMaterialRsp;
import emu.grasscutter.utils.Utils;
import java.util.*;
public class CookingCompoundManager extends BasePlayerManager {
private static Set<Integer> defaultUnlockedCompounds;
private static Map<Integer, Set<Integer>> compoundGroups;
//TODO:bind it to player
private static Set<Integer> unlocked;
public CookingCompoundManager(Player player) {
super(player);
}
public static void initialize() {
defaultUnlockedCompounds = new HashSet<>();
compoundGroups = new HashMap<>();
GameData.getCompoundDataMap().forEach((id, compound) -> {
if (compound.isDefaultUnlocked()) {
defaultUnlockedCompounds.add(id);
}
compoundGroups.computeIfAbsent(compound.getGroupId(), gid -> new HashSet<>()).add(id);
});
//TODO:Because we haven't implemented fishing feature,unlock all compounds related to fish.Besides,it should be bound to player rather than manager.
unlocked = new HashSet<>(defaultUnlockedCompounds);
if (compoundGroups.containsKey(3)) // Avoid NPE from Resources error
unlocked.addAll(compoundGroups.get(3));
}
private synchronized List<CompoundQueueData> getCompoundQueueData() {
List<CompoundQueueData> compoundQueueData = new ArrayList<>(player.getActiveCookCompounds().size());
int currentTime = Utils.getCurrentSeconds();
for (var item : player.getActiveCookCompounds().values()) {
var data = CompoundQueueData.newBuilder().setCompoundId(item.getCompoundId()).setOutputCount(item.getOutputCount(currentTime)).setOutputTime(item.getOutputTime(currentTime)).setWaitCount(item.getWaitCount(currentTime)).build();
compoundQueueData.add(data);
}
return compoundQueueData;
}
public synchronized void handleGetCompoundDataReq(GetCompoundDataReq req) {
player.sendPacket(new PacketGetCompoundDataRsp(unlocked, getCompoundQueueData()));
}
public synchronized void handlePlayerCompoundMaterialReq(PlayerCompoundMaterialReq req) {
int id = req.getCompoundId(), count = req.getCount();
CompoundData compound = GameData.getCompoundDataMap().get(id);
var activeCompounds = player.getActiveCookCompounds();
//check whether the compound is available
//TODO:add other compounds,see my pr for detail
if (!unlocked.contains(id)) {
player.sendPacket(new PacketPlayerCompoundMaterialRsp(Retcode.RET_FAIL_VALUE));
return;
}
//check whether the queue is full
if (activeCompounds.containsKey(id) && activeCompounds.get(id).getTotalCount() + count > compound.getQueueSize()) {
player.sendPacket(new PacketPlayerCompoundMaterialRsp(Retcode.RET_COMPOUND_QUEUE_FULL_VALUE));
return;
}
//try to consume raw materials
if (!player.getInventory().payItems(compound.getInputVec(), count)) {
//TODO:I'm not sure whether retcode is correct.
player.sendPacket(new PacketPlayerCompoundMaterialRsp(Retcode.RET_ITEM_COUNT_NOT_ENOUGH_VALUE));
return;
}
ActiveCookCompoundData c;
int currentTime = Utils.getCurrentSeconds();
if (activeCompounds.containsKey(id)) {
c = activeCompounds.get(id);
c.addCompound(count, currentTime);
} else {
c = new ActiveCookCompoundData(id, compound.getCostTime(), count, currentTime);
activeCompounds.put(id, c);
}
var data = CompoundQueueData.newBuilder().setCompoundId(id).setOutputCount(c.getOutputCount(currentTime)).setOutputTime(c.getOutputTime(currentTime)).setWaitCount(c.getWaitCount(currentTime)).build();
player.sendPacket(new PacketPlayerCompoundMaterialRsp(data));
}
public synchronized void handleTakeCompoundOutputReq(TakeCompoundOutputReq req) {
//Client won't set compound_id and will set group_id instead.
int groupId = req.getCompoundGroupId();
var activeCompounds = player.getActiveCookCompounds();
int now = Utils.getCurrentSeconds();
//check available queues
boolean success = false;
Map<Integer, GameItem> allRewards = new HashMap<>();
for (int id : compoundGroups.get(groupId)) {
if (!activeCompounds.containsKey(id)) continue;
int quantity = activeCompounds.get(id).takeCompound(now);
if (activeCompounds.get(id).getTotalCount() == 0) activeCompounds.remove(id);
if (quantity == 0) continue;
List<ItemParamData> rewards = GameData.getCompoundDataMap().get(id).getOutputVec();
for (var i : rewards) {
if (i.getId() == 0) continue;
if (allRewards.containsKey(i.getId())) {
GameItem item = allRewards.get(i.getId());
item.setCount(item.getCount() + i.getCount() * quantity);
} else {
allRewards.put(i.getId(), new GameItem(i.getId(), i.getCount()*quantity));
}
}
success = true;
}
//give player the rewards
if (success) {
player.getInventory().addItems(allRewards.values(), ActionReason.Compound);
player.sendPacket(new PackageTakeCompoundOutputRsp(allRewards.values().stream().map(i -> ItemParam.newBuilder().setItemId(i.getItemId()).setCount(i.getCount()).build()).toList(), Retcode.RET_SUCC_VALUE));
} else {
player.sendPacket(new PackageTakeCompoundOutputRsp(null, Retcode.RET_COMPOUND_NOT_FINISH_VALUE));
}
}
public void onPlayerLogin() {
player.sendPacket(new PacketCompoundDataNotify(unlocked,getCompoundQueueData()));
}
}

View File

@ -1,4 +1,4 @@
package emu.grasscutter.game.managers; package emu.grasscutter.game.managers.cooking;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
@ -12,7 +12,6 @@ import emu.grasscutter.game.inventory.GameItem;
import emu.grasscutter.game.player.BasePlayerManager; import emu.grasscutter.game.player.BasePlayerManager;
import emu.grasscutter.game.player.Player; import emu.grasscutter.game.player.Player;
import emu.grasscutter.game.props.ActionReason; import emu.grasscutter.game.props.ActionReason;
import emu.grasscutter.game.props.ItemUseOp;
import emu.grasscutter.net.proto.CookRecipeDataOuterClass; import emu.grasscutter.net.proto.CookRecipeDataOuterClass;
import emu.grasscutter.net.proto.PlayerCookArgsReqOuterClass.PlayerCookArgsReq; import emu.grasscutter.net.proto.PlayerCookArgsReqOuterClass.PlayerCookArgsReq;
import emu.grasscutter.net.proto.PlayerCookReqOuterClass.PlayerCookReq; import emu.grasscutter.net.proto.PlayerCookReqOuterClass.PlayerCookReq;
@ -164,25 +163,20 @@ public class CookingManager extends BasePlayerManager {
} }
} }
public void sendCookDataNofity() { public void sendCookDataNotify() {
// Default unlocked recipies to player if they don't have them yet. // Default unlocked recipes to player if they don't have them yet.
this.addDefaultUnlocked(); this.addDefaultUnlocked();
// Get unlocked recipies. // Get unlocked recipes.
var unlockedRecipies = this.player.getUnlockedRecipies(); var unlockedRecipes = this.player.getUnlockedRecipies();
// Construct CookRecipeData protos. // Construct CookRecipeData protos.
List<CookRecipeDataOuterClass.CookRecipeData> data = new ArrayList<>(); List<CookRecipeDataOuterClass.CookRecipeData> data = new ArrayList<>();
for (var recipe : unlockedRecipies.entrySet()) { unlockedRecipes.forEach((recipeId, proficiency) ->
int recipeId = recipe.getKey(); data.add(CookRecipeDataOuterClass.CookRecipeData.newBuilder()
int proficiency = recipe.getValue();
CookRecipeDataOuterClass.CookRecipeData proto = CookRecipeDataOuterClass.CookRecipeData.newBuilder()
.setRecipeId(recipeId) .setRecipeId(recipeId)
.setProficiency(proficiency) .setProficiency(proficiency)
.build(); .build()));
data.add(proto);
}
// Send packet. // Send packet.
this.player.sendPacket(new PacketCookDataNotify(data)); this.player.sendPacket(new PacketCookDataNotify(data));

Some files were not shown because too many files have changed in this diff Show More