Commit Graph

52 Commits

Author SHA1 Message Date
fc42f665a7 feat: implement teapot suite (#2344)
* feat: implement teapot suite

* fix: home animals, check respawn, etc

* fix: NPE and cancel summon events

* fix: forgot to send eventId also
2023-09-07 23:34:03 -04:00
1894296ed4 fix: home transfer (#2327)
* fix: home transfer

* Update HomeSceneItem.java
2023-09-02 19:04:02 -04:00
e04df0526a Run formatter & update protocol 2023-08-31 23:46:55 -04:00
541433c01b Merge remote-tracking branch 'origin/dev-4.0' into dev-4.0
# Conflicts:
#	src/main/java/emu/grasscutter/game/player/Player.java
#	src/main/java/emu/grasscutter/game/player/TeamManager.java
#	src/main/java/emu/grasscutter/game/world/Scene.java
2023-08-31 21:06:13 -04:00
58b3570f27 De-obfuscate definitions & run formatter 2023-08-31 19:29:31 -04:00
aad4529b0e Run formatter & 'protogen' 2023-08-30 19:36:58 -04:00
7049cfdb58 fix: player profile changes are not reflected cuz Java is object-oriented (#2322)
* fix: player profile changes are not reflected.
fix: deob FriendBrief.proto

* fix: tentatively sync profile when log out

* fix: allow offline player

* Update src/main/java/emu/grasscutter/game/friends/PlayerProfile.java

Co-authored-by: Magix <27646710+KingRainbow44@users.noreply.github.com>

* Update src/main/java/emu/grasscutter/game/player/Player.java

Co-authored-by: Magix <27646710+KingRainbow44@users.noreply.github.com>

* Update src/main/java/emu/grasscutter/game/player/Player.java

Co-authored-by: Magix <27646710+KingRainbow44@users.noreply.github.com>

* fix: server friend

---------

Co-authored-by: Magix <27646710+KingRainbow44@users.noreply.github.com>
2023-08-29 23:23:46 -04:00
8563d4b574 feat: support multiplayer mode in teapot (#2317) 2023-08-29 21:12:21 -04:00
cf55a58c01 revert GetScenePointRspOuterClass.java (#2312) 2023-08-27 01:25:13 -04:00
fc7de04f73 fix forging (again) (#2309) 2023-08-26 21:02:51 -04:00
f656143038 Run the formatter & Generate protocol definitions 2023-08-26 19:51:45 -04:00
f20ac13914 Merge changes from hamusuke (#2) 2023-08-26 17:59:26 -04:00
873d190e46 Make friends by fixing the protos (#2307) 2023-08-24 20:47:58 -04:00
407c1b3a86 Protocol definition fixes 2023-08-14 23:38:07 -04:00
31b9541b66 Add unversioned protocol definitions 2023-08-14 18:57:43 -04:00
ceeaf3748a Add new protocol definitions 2023-08-14 18:57:07 -04:00
f3277dee9f Fix Forging (#2278) 2023-07-29 11:37:32 -04:00
fecf83cfa4 Revert AvatarUpgradeRsp 2023-07-14 21:09:57 -04:00
f40cdfd23d Update protocol definition for AvatarUpgradeRsp 2023-07-01 01:29:30 -04:00
d8d31f3afe Update AvatarUpgradeRspOuterClass.java (#2193) 2023-06-06 16:39:46 -04:00
8472c36490 Implement SET_KILLED_STATE 2023-06-05 23:27:14 -04:00
f389d2fb28 Handle SetRandomOverrideMapValue 2023-06-04 17:53:48 -04:00
d18a8c31a6 Add SystemHintType enum 2023-06-03 15:23:27 -04:00
9e5b57a043 Merge unstable into development (#2173)
* Remove more scene synchronized

* Fix worktop options not appearing

* Format code [skip actions]

* Fix delay with server tasks

* Format code [skip actions]

* Fully fix fairy clock (#2146)

* Fix scene transition

* fully fix fairy clock

* Re-add call to `Player#updatePlayerGameTime`

* Format code [skip actions]

* Initialize the script loader in `ResourceLoader#loadAll`

* Fix region removal checking

* Format code [skip actions]

* Use Lombok's `EqualsAndHashCode` for comparing scene regions

* Format code [skip actions]

* Move 'invalid gather object' to `trace`

* Add more information to the 'unknown condition handler' message

* Move invalid ability action to trace

* Make `KcpTunnel` public

* Validate the NPC being talked to

* Format code [skip actions]

* NPCs are not spawned server side; change logic to handle it

* Format code [skip actions]

* unload scene when there are no players (#2147)

* unload scene when there are no players

* Update src/main/java/emu/grasscutter/game/world/Scene.java

Co-authored-by: Magix <27646710+KingRainbow44@users.noreply.github.com>

---------

Co-authored-by: Magix <27646710+KingRainbow44@users.noreply.github.com>

* Check if a command should be copied or HTTP should be used

* Lint Code [skip actions]

* Fix character names rendering incorrectly

* Add basic troubleshooting command

* Implement handbook teleporting

also a few formatting changes and sort data by logical sense

* Fix listener `ConcurrentModificationException` issue

* Add color change to `Join the Community!`

* Lint Code [skip actions]

* Make clickable buttons appear clickable

* Remove 'Mechanicus' entities from the list of entities

* Format code [skip actions]

* Fix going back returning a blank screen

* Implement entity spawning

* Add setting level to entity card

* Add support for 'plain text' mode

* Make descriptions of objects scrollable

* Lint Code [skip actions]

* Format code [skip actions]

* Change the way existing hooks work

* Format code [skip actions]

* Upgrade Javalin to 5.5.0 & Fix project warnings

* Upgrade logging libraries

* Fix gacha mappings static file issue

* Add temporary backwards compatability for `ServerHelper`

* Format code [skip actions]

* Remove artifact signatures from VCS

* Fix forge queue data protocol definition

* Run `spotlessApply`

* Format code [skip actions]

* Download data required for building artifacts

* Add call for Facebook logins

* Add the wiki page as a submodule

* Format code [skip actions]

* Update translation (#2150)

* Update translation

* Update translation

* Separate the dispatch and game servers (pt. 1)

gacha is still broken, handbook still needs to be done

* Format code [skip actions]

* Separate the dispatch and game servers (pt. 2)

this commit fixes the gacha page

* Add description for '/troubleshoot'

* Set default avatar talent level to 10

* Separate the dispatch and game servers (pt. 3)

implement handbook across servers!

* Format code [skip actions]

* Update GitHub Actions to use 'download-file' over 'wget'

* Gm handbook lmao (#2149)

* Fix font issue

* Fix avatars

* Fix text overflow in commands

* Fix virtualized lists and items page 😭😭

* magix why 💀

* use hover style in all minicards

* button

* remove console.log

* lint

* Add icons

* magix asked

* Fix overflow padding issue

* Fix achievement text overflow

* remove icons from repo

* Change command icon

* Add the wiki page as a submodule

* total magix moment

* fix text overflow in commands

* Fix discord button

* Make text scale on Minicard

* import icons and font from another source

* Add hover effects to siebar buttons

* move font and readme to submodule repo

* Make data folder a submodule

* import icons and font from data submodule

* Update README.md

* total magix moment

* magix moment v2

* submodule change

* Import `.webp` files

* Resize `HomeButton`

* Fix 'Copy Command' reappearing after changing pages

---------

Co-authored-by: KingRainbow44 <kobedo11@gmail.com>

* Lint Code [skip actions]

* Download data for the build, not for the lint

* format imports

this is really just to see if build handbook works kek

* Implement proper handbook authentication (pt. 1)

* Implement proper handbook authentication (pt. 2)

* Format code [skip actions]

* Add quest data dumping for the handbook

* Change colors to fit _something suitable_

* Format code [skip actions]

* Fix force pushing to branches after linting

* Fix logic of `SetPlayerPropReq`

* Move more group loading to `trace`

* Add handbook IP authentication in hybrid mode

* Fix player level up not displaying on the client properly

* Format code [skip actions]

* Fix game time locking

* Format code [skip actions]

* Update player properties

* Format code [skip actions]

* Move `warn`s for groups to `debug`

* Fix player pausing

* Move more logs to `trace`

* Use `removeItemById` for deleting items via quests

* Clean up logger more

* Pause in-game time when the world is paused

* Format code [skip actions]

* More player property documentation

* Multi-threaded resource loading

* Format code [skip actions]

* Add quest widgets

* Add quests page (basic impl.)

* Add/fix colors

also fix tailwind

* Remove banned packets

client modifications already perform the job of blocking malicious packets from being executed, no point in having this if self-windy is wanted

* Re-add `BeginCameraSceneLookNotify`

* Fix being unable to attack (#2157)

* Add `PlayerOpenChestEvent`

* Add methods to get players from the server

* Add static methods to register an event handler

* Add `PlayerEnterDungeonEvent`

* Remove legacy documentation from `PlayerMoveEvent`

* Add `PlayerChatEvent`

* Add defaults to `Position`

* Clean up `.utils`

* Revert `Multi-threaded resource loading`

* Fix changing target UID when talking to the server

* Lint Code [skip actions]

* Format code [skip actions]

* fix NPC talk triggering main quest in 46101 (#2158)

Make it so that only talks where the param matches the talkId are checked.

* Format code [skip actions]

* Partially fix Chasing Shadows (#2159)

* Partially fix Chasing Shadows

* Go ahead and move it before the return before Magix tells me to.

* Format code [skip actions]

* Bring back period lol (#2160)

* Disable SNI for the HTTPS server

* Add `EntityCreationEvent`

* Add initial startup message

this is so the server appears like its preparing to start

* Format code [skip actions]

* Enable debug mode for plugin loggers if enabled for the primary logger

* Add documentation about `WorldAreaConfigData`

* Make more fields in excels accessible

* Remove deprecated fields from `GetShopRsp`

* Run `spotlessApply` on definitions

* Add `PlayerEnterAreaEvent`

* Optimize event calls

* Fix event invokes

* Format code [skip actions]

* Remove manual autofinish for main quests. (#2162)

* Add world areas to the textmap cache

* Format code [skip actions]

* Don't overdefine variables in extended classes (#2163)

* Add dumper for world areas

* Format code [skip actions]

* instantiate personalLineList (#2165)

* Fix protocol definitions

thank you Nazrin! (+ hiro for raw definitions)

* Fix the background color leaking from the character widget

* Change HTML spacing to 2 spaces

* Implement hiding widgets

* Change scrollbar to a vibrant color

* Add _some_ scaling to the home buttons and its text

* Build the handbook with Gradle

* Fix the 'finer details' with the handbook UI

* Lint Code [skip actions]

* Fix target destination for the Gradle-built handbook

* Implement fetching a player across servers & Add a chainable JsonObject

useful for plugins! might be used in grasscutter eventually

* Fix GitHub actions

* Fix event calling & canceling

* Run `spotlessApply`

* Rename fields (might be wrong)

* Add/update all/more protocol definitions

* Add/update all/more protocol definitions

* Remove outdated packet

* Fix protocol definitions

* Format code [skip actions]

* Implement some lua variables for less console spam (#2172)

* Implement some lua variables for less console spam

* Add GetHostQuestState

This fixes some chapter 3 stuff.

* Format code [skip actions]

* Fix merge import

* Format code [skip actions]

* Fully fix fairy clock for real this time (#2167)

* Fully fix fairy clock For real this time

* Make it so relogging keeps the time lock state.

* Refactor out questLockTime

* Per Hartie, the client packet needs to be changed too

* Update src/main/java/emu/grasscutter/game/world/World.java

Co-authored-by: Magix <27646710+KingRainbow44@users.noreply.github.com>

* Update src/main/java/emu/grasscutter/server/packet/recv/HandlerClientLockGameTimeNotify.java

* Remove all code not needed to get clock working

---------

Co-authored-by: Magix <27646710+KingRainbow44@users.noreply.github.com>

* Implement a proper ability system (#2166)

* Apply fix `21dec2fe`

* Apply fix `89d01d5f`

* Apply fix `d900f154`

this one was already implemented; updated to use call from previous commit

* Ability changing commit

TODO: change info to debug

* Remove use of deprecated methods/fields

* Temp commit v2
(Adding LoseHP and some fixes)

* Oopsie

* Probably fix monster battle

* Fix issue with reflecting into fields

* Fix some things

* Fix ability names for 3.6 resources

* Improve logging

---------

Co-authored-by: StartForKiller <jesussanz2003@gmail.com>

* Format code [skip actions]

* Add system for sending messages between servers

* Format some code

* Remove protocol definitions from Spotless

* Default debug to false; enable with `-debug`

* Implement completely useless global value copying

* HACK: Return the avatar which holds the weapon when the weapon is referred to by ID

* Add properties to `AbilityModifier`

* Change the way HTML is served after authentication

* Use thread executors to speed up the database loading process

* Format code [skip actions]

* Add system for setting handbook address and port

* Lint Code [skip actions]

* Format code [skip actions]

* Fix game-related data not saving

* Format code [skip actions]

* Fix handbook server details

* Lint Code [skip actions]

* Format code [skip actions]

* Use the headers provided by a context to get the IP address

should acknowledge #1975

* Format code [skip actions]

* Move more logs to `trace`

* Format code [skip actions]

* more trace

* Fix something and implement weapon entities

* Format code [skip actions]

* Fix `EntityWeapon`

* Remove deprecated API & Fix resource checking

* Fix unnecessary warning for first-time setup

* Implement handbook request limiting

* Format code [skip actions]

* Fix new avatar weapons being null

* Format code [skip actions]

* Fix issue with 35303 being un-completable & Try to fix fulfilled quest conditions being met

* Load activity config on server startup

* Require plugins to specify an API version and match with the server

* Add default open state ignore list

* Format code [skip actions]

* Quick fix for questing, needs more investigation
This would make the questing work again

* Remove existing hack for 35303

* Fix ignored open states from being set

* Format code [skip actions]

* fix the stupidest bug ive ever seen

* Optimize player kicking on server close

* Format code [skip actions]

* Re-add hack to fix 35303

* Update GitHub actions

* Format code [skip actions]

* Potentially fix issues with regions

* Download additional handbook data

* Revert "Potentially fix issues with regions"

This reverts commit 84e3823695.

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: scooterboo <lewasite@yahoo.com>
Co-authored-by: Tesutarin <105267106+Tesutarin@users.noreply.github.com>
Co-authored-by: Scald <104459145+Arikatsu@users.noreply.github.com>
Co-authored-by: StartForKiller <jesussanz2003@gmail.com>
2023-05-31 23:48:16 -04:00
71f6198361 Upgrade to REL3.7 (#2164)
* Remove hardcoded quest data

* Remove deprecated fields

* Try to fix packet

* Apply fix for token exchange

* Upgrade to REL3.7

* Add obfuscated protocol definitions

* Add missing enum (other protos too maybe)

* Re-add field setters and add note on removal
2023-05-27 00:29:02 -04:00
19bf2dfc69 Fix cooking packet definitions
thanks nick!
2023-05-17 23:19:56 -04:00
c4f1208f45 Add support for game version 3.6 (#2110)
* Update to game version `3.6.0` (pt. 1)

not complete!

* Update to game version `3.6.0` (pt. 2)

not complete!

* Update compiled definitions
2023-04-30 22:08:54 -04:00
d1686bd4db Fix fields (#2102) 2023-04-11 16:55:22 -04:00
c905d493af Add co-op lyre support (#2105) 2023-04-10 01:43:26 -04:00
caf9521013 feat: add ability to buy resin with primogems (#2104)
* feat: add ability to buy resin with primogems

* ResinManager#buy returns RetCode value
2023-04-09 20:20:12 -04:00
7254f55762 Fix switched fields (#2098) 2023-04-05 21:19:04 -04:00
9181d1cbfd fix: mail system (#2096)
* fix: mail

* Simplify the mail handler

---------

Co-authored-by: KingRainbow44 <kobedo11@gmail.com>
2023-04-02 21:32:30 -04:00
516e5975e1 Add support for v3.5.0 (#2090)
* Fix Dvalin battle

See https://github.com/Anime-Game-Servers/Grasscutter-Quests/pull/25.

This is entirely untested and there's a 99% chance it's broken, I'm just submitting it as a draft PR so that I don't forget about its existence.

Co-Authored-By: mjolsic <21289772+mjolsic@users.noreply.github.com>

* Update protos

* 3.4 protos

* Fix

Now builds successfully, don't have the time to check if I should have specified true instead of false for withChildQuests, or if this functions as intended.

* Change from false to true

Per what smileoflove has been told on Discord

* 3.5

* Remove the Dvalin crap from this PR

Git is so confusing

* Update version

* Apply README changes from `origin/development`

* Remove unnecessary debugging information

---------

Co-authored-by: mjolsic <21289772+mjolsic@users.noreply.github.com>
Co-authored-by: KingRainbow44 <kobedo11@gmail.com>
2023-03-31 15:13:32 -04:00
3ab3d5bc04 Simply implement achievement system and add achievement command (#2068)
* Implement achievement system

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

Co-authored-by: Der Chien <b03902015@ntu.edu.tw>

* fix: redundant codes

* fix: redundant codes

* Update language files

---------

Co-authored-by: Der Chien <b03902015@ntu.edu.tw>
2023-02-26 00:14:27 -05:00
b209d91947 Add home resource gain (#2064) 2023-02-23 23:22:25 -05:00
220c23b960 feat: change game time (#2061)
* feat: change game time

* Update proto names
2023-02-23 23:21:44 -05:00
a078b5ae28 Fix particle generation (#2066) 2023-02-23 23:20:57 -05:00
9a67f93ee8 Update missed files (#2060) 2023-02-20 13:46:32 -05:00
71a1e31d37 update gc 3.4 (#2041)
* update 3.4

* update3.4

* update 3.4

* update 3.4

* Add files via upload

* Delete SetPropCommand.java

* update 3.4 area id

* update version

* exchange cmdid

* exchange cmdid

* exchange cmdid

* my fault

* update AiSyncInfo
2023-02-18 22:18:27 -05:00
1b2210f5a7 Improved satiation (#2055)
* Natural satiation decreasing
Graphic showing satiation when eating (usually)

* Reworking values to match original

* Little fixes

* Satiation bar matches real values
Revival correctly updates bar

* Greatly simplify handling
Some fixes

* Inline variables
Add TODO for bug

* Satiation works correctly
Finally it all works as intended

* Remove unnecessary packets

* Improve satiation reduction handling
2023-02-15 19:32:59 -05:00
ab5b49b7c5 Teapot Implementations & Fixes (#2032)
* Add realm switching
Fix realm unlock items

* Implement exiting teapot

* Implement home level rewards

* Fix small issues

* Fix call issue

* Add 'seen unlock' packets

* Fix Sumeru Main House bricking accounts
This is only for the house, not the full realm

* Fixed realm 5

Main house needs to be placed manually for Sumeru realm (module 5) as the resources for defaults in Sumeru realm are missing. Sumeru main house cannot be exited from the door, issue due to the same missing res.

* Fix Grass main house bricking accounts

* Remove references

* Formatting change (web editor)

* Whitespace & Formatting

* Whitespace

* Make 'seen' status persistent

* Fix misnamed field

* Revert "Fix misnamed field"

This reverts commit 21ef404e14.

* Implement gaining trust (realm exp)

Add gaining trust by crafting
Add gaining trust via `/give`
Show trust in djinn menu

* Interior check for prevScene

* Correct positions & rotations

Return to front of main house when exiting from inside

* Update HandlerBackMyWorldReq.java

---------

Co-authored-by: Magix <27646710+KingRainbow44@users.noreply.github.com>
Co-authored-by: GanyusLeftHorn <1244229+GanyusLeftHorn@users.noreply.github.com>
2023-02-09 17:00:16 +01:00
92fbaa8670 Update gc to 3.3 (#1981)
* replace the deprecated api

* update proto

* delete music game

* fixed codes

* fix costume switch

* fix mail bug

* Bump version number.

* Re-add max boss chest number

Co-authored-by: GanyusLeftHorn <1244229+GanyusLeftHorn@users.noreply.github.com>
2022-12-23 22:12:02 +01:00
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
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
bf8ee32382 fix: albedo elevator doesn't work (#1845)
* Packet preparation

* elevator creation

* Make elevator work, scene time, entity removed event.

* Avoid referencing certain character name.
2022-10-12 17:26:45 +10:30
4da4c03ecc feat: unlock homeworld bgm and set homeworld bgm. (#1844)
* will be able to change home bgm.

* feat: unlock homeworld bgm and set homeworld bgm.

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

* Update GameHome.java

* Get default unlocked home bgms from HomeWorldBgmData

* fix: duplicate home items by sending packet
2022-10-11 22:29:43 +10:30
a4f10208de feat: set namecards in profile editing. (#1843)
* add: can set name cards in profile editing.

* some changes

* Update src/main/java/emu/grasscutter/game/player/Player.java

* Update src/main/java/emu/grasscutter/server/packet/recv/HandlerGetFriendShowNameCardInfoReq.java

* Update src/main/java/emu/grasscutter/server/packet/recv/HandlerUpdatePlayerShowNameCardListReq.java

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

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

* Update src/main/java/emu/grasscutter/game/player/Player.java
2022-10-09 11:40:10 +10:30
21ff749dca Add support for propperly showing activity shops (#1774)
* Add support for propperly showing activity shops

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

Co-authored-by: hartie95 <mail@hartie95.de>
2022-09-14 19:57:16 +09:30
712d17631f Custom Teams (#1731)
* Add support for creating and deleting custom teams.

* Add support for creating and deleting custom teams.

* Move some logic to TeamInfo::toProto
2022-08-31 17:21:47 -07:00