* Avoid iterating over every offline player
* getAllPlayers by stream
* Use the new method without changing the old signature
* Annotate deprecated `getAllPlayers`
* 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
* [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
* 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>
* 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>
* 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>
-De-hardcode elemental orb values
-De-hardcode exp items
-Change ShopChest format (temporary, drop system overhaul will replace it entirely)
-Food healing actually uses Ability data for real HP amounts
* Extend talent command "all":
Added talent option to set all talents (n, e, q) at once
Modified error message to cover edge cases when player entered talent level lower than 1
* Update src/main/java/emu/grasscutter/command/commands/TalentCommand.java
some suggested changes
Co-authored-by: Luke H-W <Birdulon@users.noreply.github.com>
* 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
* Move Data, Plugin, Script, Packet access from Strings to Paths
- No longer dump default Data files to folder on launch
- Allow Scripts to be loaded from Resources zip
- Lay groundwork for Plugins to be loaded from zip
* Update 3.0 protos
* Update classes to match protos
* Fix RegionHandler versions
* 3.0 Opcodes
* Fixed Gadget Spawning
Original Commit Message: fixed gadget spawning ty MJDerp
Gitea Author: yh0Nathan
Co-authored-by: yh0Nathan <yhonathancaleb@gmail.com>
* Make PointData compatible with alternative PointData
Original Commit Message: Make PointData compatible with windied scene points.
Gitea Author: GanyusLeftHorn
Co-authored-by: GanyusLeftHorn <1244229+GanyusLeftHorn@users.noreply.github.com>
* Add scene tag for Vanarana.
Original Commit Message: Add scene tag for Vanarana.
Gitea Author: GanyusLeftHorn
Co-authored-by: GanyusLeftHorn <1244229+GanyusLeftHorn@users.noreply.github.com>
* Add Sumeru expeditions.
Original Commit Message: Add Sumeru expeditions.
Gitea Author: GanyusLeftHorn
Co-authored-by: GanyusLeftHorn <1244229+GanyusLeftHorn@users.noreply.github.com>
* Update game version to 3.0.0
* versionFix must be >= 50 not == 50 in RegionHandler
* Add new 3.0 Reliquary and SkillParticleGeneration data
Original Commit Message: Repair 3.0 added Reliquary 3-in-1 on the crafting table. Add skill particle generation info for Tighnari,Collei and Dori
Gitea Author: Roly
* Actually fix RegionHandler
* Remove asset names from json and comments
* Add scene areas for Sumeru desert to /prop um
* Added New MaterialType
* Change version to 3.1.0
* funny welcome message back
* Fix pyramid skill issue.
* Fix pyramid and event scene tags without ugly bruteforce.
* Remove backrooms chat welcome message.
* Incorporate suggestions.
* RoomSceneId and empty list checking.
Co-authored-by: Benj <benjamin7006@gmail.com>
Co-authored-by: yh0Nathan <yhonathancaleb@gmail.com>
Co-authored-by: Kokoboy <anushkumar222001@gmail.com>
Co-authored-by: nitro <31241699+nitrog0d@users.noreply.github.com>
Co-authored-by: Vexeone <vexeone@gmail.com>
* add missing EntityTypes
* small command refactorings and improvements
* move common command patterns and methods to CommandHelpers
* let the spawn command detect the entityType instead of spawning every entity as EntityVehicle
* add extra options for spawning gadgets for better debuging and testing
* More spawn command additions and cleanups+EntityVehicle changes
* Moved remaining patterns from GiveCommand and ClearCommand to CommandHelpers
* Added patterns for hp, maxhp, atk, def and (monster)ai for the spawn command
* Moved intParam parsing via regex to the CommandHelpers
* Read most of EntityVehicle stats from the ConfigGadget instead of hardcoding them
Co-authored-by: hartie95 <mail@hartie95.de>
* fixed gadget hp properties and invincibility handling
* Allow killing of hp locked entities, if the damage is higher then the hp
Co-authored-by: hartie95 <mail@hartie95.de>
* Pull request made after merging the latest version
* Update src/main/resources/languages/ja-JP.json
* first commit
* TeamRespawn_BigWorld
* Improving scene Loading
* Final commit
* optimize import
* optimize
* Update TeamManager.java
* Update src/main/java/emu/grasscutter/game/player/TeamManager.java
* Console output player command
* Update CommandMap.java
* Add the Output_player_command option to the config
* Proper formatting for logging commands
* Log account usernames, not player nicknames
Co-authored-by: Melledy <52122272+Melledy@users.noreply.github.com>
This should make it easier to help people troubleshoot networked setups.
Consider telling people to try connecting to the address with a web browser on the client's machine.
Original Commit Message: Repair 3.0 added Reliquary 3-in-1 on the crafting table. Add skill particle generation info for Tighnari,Collei and Dori
Gitea Author: Roly
Original Commit Message: Add scene tag for Vanarana.
Gitea Author: GanyusLeftHorn
Co-authored-by: GanyusLeftHorn <1244229+GanyusLeftHorn@users.noreply.github.com>
Original Commit Message: Make PointData compatible with windied scene points.
Gitea Author: GanyusLeftHorn
Co-authored-by: GanyusLeftHorn <1244229+GanyusLeftHorn@users.noreply.github.com>
Ensures Traveler retains talent levels and constellations on inactive elements when switching elements.
Relevant for any other skillDepot-changing activities like Windtrace too, though keeping those in the db might not be as useful.
Refactor avatar talent upgrade and access
Refactor skillExtraCharges
* Refactor a couple of iterators
* Use side-effect instead of second iterator
* Make World::onTick return shouldDelete instead of success
* Replace Shop iterator with side effects
* Scene
* Clean up Expeditions
* Refactor Expeditions
* Clean up Expeditions, Player
* Limit Expeditions by AR
* Lombokify props
Co-authored-by: AnimeGitB <AnimeGitB@bigblueball.in>
Original commits:
* Add necessary protos for scene point/area unlocking.
* Rename PlayerOpenStateManager to PlayerProgressManager and move data to Player.
* Handle unlocking of waypoints.
* Add primo rewards for waypoint unlock.
* Statue unlocking.
* Add statue quest on player login.
* I forgor to add an unlock command.
* Give EXP as reward, fire quest trigger, make EXP UI show up.
Original commits:
* Clean-up
* Introduce a new application arguments parser & handler
* Clean-up and deprecate `Tools#getLanguageOption`
* Fix `-debug` and `-debugall` parameters
* found this while debugging, ...why
* Remove deprecated parameters
* Invoke startup argument parser before handbook generation
* Move command map instantiation to `Grasscutter `(prevent making 3 instances on startup)
* Ensure \n at EOF
Co-authored-by: AnimeGitB <AnimeGitB@bigblueball.in>
Replaces tab indents with an extra linebreak.
Also adds / to the start of command usage.
Neither of these changes affect messages to the server console log.
* Make sure we never access PlayerOpenStateManager::map directly.
* Read OpenStates from excels.
* Add defaultState
* Replace hardcoded open states with the ones read from excels.
* Don't send change notify when unlocking on login.
* Add open state blacklist for default unlocks.
* Add a way to temporarily set open states for dev
* Remove old OpenState.java
* Fix UnlockAllCommand
* Change condType to an enum.