Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Major quest framework improvements #1553

Merged
6 commits merged into from
Jul 26, 2022
Merged

Conversation

akatatsu27
Copy link
Contributor

@akatatsu27 akatatsu27 commented Jul 23, 2022

Description

-Newly added ContentTriggerFire won't work because luaj can't read. Tests with tnsc4502's jnlua worked flawlessly. I have made this branch "questing-jnlua" in my repository to illustrate the differences. Starting quest 35104 is a good way to see.
-Implement quest rewind
-QuestManager can now pass accept, fail and finish QuestTriggers to all active quests
-GameMainQuest is now responsible for handling its subQuests' conditions appropriately
-track and store in the database quest related talks in GameMainQuest (important for some conditions)
-Implement QuestGlobalVars and QuestVars
-Added various QuestTrigger handlers
-also added start() and fail() methods to GameQuest
-fix finishCond set to null if no acceptCond
-fix if accept/fail/finish CondComb is null, getAccept/Fail/FinishCondComb returns null (should return LOGIC_NONE)
-fix some packet handlers
-fix QuestManager::addQuest() notify client only one new subQuest added (there could be multiple)
-Made more clear in the code if referring to MainQuest or SubQuest
-Added comments to some wrongly handled QuestTriggers

I suggest testing by starting quest 100301 via console command (not fully completable)

Note: for quest rewind to work properly, a slightly modified version of Birdulon's "flat.luas.scenes.full_globals.lua" is needed, which can be found here: https://github.com/akatatsu27/MoarGCResources (put ScriptSceneData in the resources folder)

Issues fixed by this PR

Type of changes

  • Bug fix
  • New feature
  • Enhancement
  • Documentation

Checklist:

  • My code follows the style guidelines of this project
  • My pull request is unique and no other pull requests have been opened for these changes
  • I have read the Contributing note and Code of conduct
  • I am responsible for any copyright issues with my code if it occurs in the future.

@keqingyyds
Copy link

I don't know English. Where should I put the new documents? I put it in the Resources folder. It doesn't seem to work. When you finish the task, you stay in making food, and you can't continue to complete it.

@akatatsu27
Copy link
Contributor Author

I don't know English. Where should I put the new documents? I put it in the Resources folder. It doesn't seem to work. When you finish the task, you stay in making food, and you can't continue to complete it.

Hello! sorry for the confusion. this PR doesn't fix the cooking. Since most questTriggers are yet to be implemented, few quests are actually completable. Also, the ScriptSceneData folder is completely unrelated with your issue. I'll update the description to be less confusing

@akatatsu27 akatatsu27 changed the title Major questing improvements Major quest framework improvements Jul 23, 2022
@ghost ghost self-assigned this Jul 24, 2022
@ghost ghost merged commit d2d82f0 into Grasscutters:development Jul 26, 2022
@longhuan1999
Copy link

There were some issues during quest 351 in the latest version 1.2.3-dev-283a8819. I'm not sure whether it's an issue with Grasscutter or some LUA scripts?

21:43:46 <INFO:OpenCommandHandler> IP: 10.241.77.203 run command in console > quest @10001 add 35104
21:43:47 <INFO:LuaSerializer> {data_index=0, room_id=0, id=1005, alias=Paimon, script=Actor/Quest/Q352/Paimon, pos=Q351FirstClimb, scene_id=3}
> java.lang.RuntimeException: Class cannot be created (missing no-arg constructor): sun.reflect.generics.reflectiveObjects.TypeVariableImpl
        at com.esotericsoftware.reflectasm.ConstructorAccess.get(ConstructorAccess.java:68)
        at emu.grasscutter.scripts.serializer.LuaSerializer.cacheType(LuaSerializer.java:191)
        at emu.grasscutter.scripts.serializer.LuaSerializer.serialize(LuaSerializer.java:139)
        at emu.grasscutter.scripts.serializer.LuaSerializer.serializeList(LuaSerializer.java:97)
        at emu.grasscutter.scripts.serializer.LuaSerializer.serialize(LuaSerializer.java:130)
        at emu.grasscutter.scripts.serializer.LuaSerializer.serialize(LuaSerializer.java:161)
        at emu.grasscutter.scripts.serializer.LuaSerializer.serializeMap(LuaSerializer.java:54)
        at emu.grasscutter.scripts.serializer.LuaSerializer.toMap(LuaSerializer.java:35)
        at emu.grasscutter.game.quest.GameMainQuest.addRewindPoints(GameMainQuest.java:207)
        at emu.grasscutter.game.quest.GameMainQuest.<init>(GameMainQuest.java:80)
        at emu.grasscutter.game.quest.QuestManager.addMainQuest(QuestManager.java:181)
        at emu.grasscutter.game.quest.QuestManager.addQuest(QuestManager.java:200)
        at emu.grasscutter.command.commands.QuestCommand.execute(QuestCommand.java:34)
        at emu.grasscutter.command.CommandMap.lambda$invoke$0(CommandMap.java:276)
        at emu.grasscutter.command.CommandMap.invoke(CommandMap.java:280)
        at com.github.jie65535.opencommand.OpenCommandHandler.handle(OpenCommandHandler.java:112)
        at express.Express.lambda$post$4(Express.java:131)
        at io.javalin.core.security.SecurityUtil.noopAccessManager(SecurityUtil.kt:23)
        at io.javalin.http.JavalinServlet$addHandler$protectedHandler$1.handle(JavalinServlet.kt:121)
        at io.javalin.http.JavalinServlet$service$2$1.invoke(JavalinServlet.kt:45)
        at io.javalin.http.JavalinServlet$service$2$1.invoke(JavalinServlet.kt:24)
        at io.javalin.http.JavalinServlet$service$1.invoke(JavalinServlet.kt:129)
        at io.javalin.http.JavalinServlet$service$2.invoke(JavalinServlet.kt:40)
        at io.javalin.http.JavalinServlet.service(JavalinServlet.kt:81)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at io.javalin.websocket.JavalinWsServlet.service(JavalinWsServlet.kt:51)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:791)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:550)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
        at io.javalin.core.JavalinServer$start$wsAndHttpHandler$1.doHandle(JavalinServer.kt:49)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
        at org.eclipse.jetty.server.Server.handle(Server.java:516)
        at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388)
        at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
        at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:540)
        at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:395)
        at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:161)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
        at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
        at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
        at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.NoSuchMethodException: sun.reflect.generics.reflectiveObjects.TypeVariableImpl.<init>()
        at java.base/java.lang.Class.getConstructor0(Class.java:3585)
        at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2754)
        at com.esotericsoftware.reflectasm.ConstructorAccess.get(ConstructorAccess.java:65)
        ... 59 more
21:43:47 <INFO:LuaSerializer> {data_index=0, room_id=0, id=1005, alias=Paimon, script=Actor/Quest/Q352/Paimon, pos=Q351FirstQuest, scene_id=3}
> java.lang.RuntimeException: Class cannot be created (missing no-arg constructor): sun.reflect.generics.reflectiveObjects.TypeVariableImpl
        at com.esotericsoftware.reflectasm.ConstructorAccess.get(ConstructorAccess.java:68)
        at emu.grasscutter.scripts.serializer.LuaSerializer.cacheType(LuaSerializer.java:191)
        at emu.grasscutter.scripts.serializer.LuaSerializer.serialize(LuaSerializer.java:139)
        at emu.grasscutter.scripts.serializer.LuaSerializer.serializeList(LuaSerializer.java:97)
        at emu.grasscutter.scripts.serializer.LuaSerializer.serialize(LuaSerializer.java:130)
        at emu.grasscutter.scripts.serializer.LuaSerializer.serialize(LuaSerializer.java:161)
        at emu.grasscutter.scripts.serializer.LuaSerializer.serializeMap(LuaSerializer.java:54)
        at emu.grasscutter.scripts.serializer.LuaSerializer.toMap(LuaSerializer.java:35)
        at emu.grasscutter.game.quest.GameMainQuest.addRewindPoints(GameMainQuest.java:207)
        at emu.grasscutter.game.quest.GameMainQuest.<init>(GameMainQuest.java:80)
        at emu.grasscutter.game.quest.QuestManager.addMainQuest(QuestManager.java:181)
        at emu.grasscutter.game.quest.QuestManager.addQuest(QuestManager.java:200)
        at emu.grasscutter.command.commands.QuestCommand.execute(QuestCommand.java:34)
        at emu.grasscutter.command.CommandMap.lambda$invoke$0(CommandMap.java:276)
        at emu.grasscutter.command.CommandMap.invoke(CommandMap.java:280)
        at com.github.jie65535.opencommand.OpenCommandHandler.handle(OpenCommandHandler.java:112)
        at express.Express.lambda$post$4(Express.java:131)
        at io.javalin.core.security.SecurityUtil.noopAccessManager(SecurityUtil.kt:23)
        at io.javalin.http.JavalinServlet$addHandler$protectedHandler$1.handle(JavalinServlet.kt:121)
        at io.javalin.http.JavalinServlet$service$2$1.invoke(JavalinServlet.kt:45)
        at io.javalin.http.JavalinServlet$service$2$1.invoke(JavalinServlet.kt:24)
        at io.javalin.http.JavalinServlet$service$1.invoke(JavalinServlet.kt:129)
        at io.javalin.http.JavalinServlet$service$2.invoke(JavalinServlet.kt:40)
        at io.javalin.http.JavalinServlet.service(JavalinServlet.kt:81)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at io.javalin.websocket.JavalinWsServlet.service(JavalinWsServlet.kt:51)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:791)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:550)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
        at io.javalin.core.JavalinServer$start$wsAndHttpHandler$1.doHandle(JavalinServer.kt:49)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
        at org.eclipse.jetty.server.Server.handle(Server.java:516)
        at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388)
        at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
        at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:540)
        at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:395)
        at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:161)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
        at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
        at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
        at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.NoSuchMethodException: sun.reflect.generics.reflectiveObjects.TypeVariableImpl.<init>()
        at java.base/java.lang.Class.getConstructor0(Class.java:3585)
        at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2754)
        at com.esotericsoftware.reflectasm.ConstructorAccess.get(ConstructorAccess.java:65)
        ... 59 more
21:43:47 <INFO:CommandHandler> 已添加任务 35104。
21:44:28 <ERROR:SceneScriptManager> [LUA] call trigger failed condition_EVENT_ENTER_REGION_84,emu.grasscutter.scripts.data.ScriptArgs@2bfae816
org.luaj.vm2.LuaError: script:1321 bad argument: userdata expected, got number
        at org.luaj.vm2.LuaValue.argerror(Unknown Source)
        at org.luaj.vm2.LuaValue.checkuserdata(Unknown Source)
        at org.luaj.vm2.lib.jse.JavaMethod.call(Unknown Source)
        at org.luaj.vm2.LuaClosure.execute(Unknown Source)
        at org.luaj.vm2.LuaClosure.call(Unknown Source)
        at emu.grasscutter.scripts.SceneScriptManager.safetyCall(SceneScriptManager.java:374)
        at emu.grasscutter.scripts.SceneScriptManager.callScriptFunc(SceneScriptManager.java:367)
        at emu.grasscutter.scripts.SceneScriptManager.realCallEvent(SceneScriptManager.java:322)
        at emu.grasscutter.scripts.SceneScriptManager.lambda$callEvent$10(SceneScriptManager.java:308)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.base/java.lang.Thread.run(Thread.java:833)

@akatatsu27
Copy link
Contributor Author

This is an issue (along with many others) with grasscutter, specifically the luaj library. In my testing with the jnlua library it worked as intended (addRewindPoints also needs the file I specified to work properly). Hopefully a consensus will be reached to address this issue.

Birdulon pushed a commit to Birdulon/Grasscutter that referenced this pull request Aug 21, 2022
Major quest framework improvements
github-actions bot added a commit that referenced this pull request Sep 3, 2022
Update languages [skip actions]
Fix whitespace [skip actions]
Add version increments to lint branch
Plugin Manager localisation
Update ru-RU.json
fix serenitea pot main building
Add command targeting by account username
Fix elementless Traveler depotValue
[BREAKING] dummy commit for Express -> Javalin
Update contributing guidelines
Move the remaining `HttpUtils` function over to `Router`
Clean up http server content types
Replace express with javalin in logger
Update HttpServer & AuthenticationSystem to use Javalin
Remove ``java-express``. Add javalin as dependency
Custom Teams (#1731)
Console output player command (#1722)
Clean up adding extra embryo logic in Avatar::recalcStats
Clean up OpenStateData onLoad logic
Update default Banners.json (#1719)
fix serenitea pot (#1726)
fix: avatar energy transform in proudskill
Update README.md Sequel (#1717)
Add permission clear and list commands (#1715)
Fix offline account deletion (fixes #1716)
maybe drop my dev domain and use `grasscutter.io`
Fix up some japanese references
add dendro resonance
Update README_NL.md
Update readme interlinks
Jp support (#1712)
Update translation (#1711)
Merge pull request #1710 from pfyy/development
fix dungeon
Dutch language updates For README (#1709)
Fix weird conditional in `EquipAffixData`
partial fix of dungeon
Update `AvatarCostumeData` naming
Fix `ReliquarySetData` naming
Update README_zh-CN.md
Show accessAddress in bold yellow on startup 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.
Update SetPropCommand strings, send cmd usage on target fail
refactor some itemdepot lookups for later
Fix account deletion
Fix HelpCommand missing aliases
Prevent material type from being null
Move vehicle fightprop hacks
Consolidate random point offsets
De-hardcode ChestBatchUse
Remove asset names from json and comments
Actually fix RegionHandler
Add new 3.0 Reliquary and SkillParticleGeneration data
versionFix must be >= 50 not == 50 in RegionHandler
Update game version to 3.0.0
Add Sumeru expeditions.
Add scene tag for Vanarana.
Make PointData compatible with alternative PointData
Fixed Gadget Spawning
3.0 Opcodes
Fix RegionHandler versions
Update classes to match protos
Update 3.0 protos
Fix QuestEncryptionKeys Path (#1696)
Update README.md (#1695)
More literate README_ru-RU.md
Avoid potential NPE on WL0 (#1693)
Make lint workflows ignore generated folder But run them on linter and workflow changes
Clean up some Position usage to avoid unneccessary unpacks
Fix healing skills being able to heal dead characters
Fix null pointer in `Avatar` if skill level map didnt already contain skill id
Delete quests from the player if there are errors loading them from the db
update zh-CN.json (#1684)
Update ru-RU.json
Rename lint_commit's job, don't fail on no changes
Fix lint commit reference
Allow adding constellations to playerless avatars Fixes #1682
Fix whitespace [skip actions]
Don't lint src/generated
Make TalentCommand show off new Translate function
Improve translate function Make commands pass ints and floats instead of manually casting them to string first
Hide resin from map when disabled
Replace protos with generated protos
small quest fixes (#1677)
Blossom Implement (#1606)
Merge pull request #1680 from 4Benj/development
Remove uncompiled protos from compiled jar
Remove crazy high AEXP drops from default chest rewards
Fix talentcommand message key
Refactor avatar skilldepot and constellation/talent changing 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.
Add README_fil-PH.md (#1675)
Avoid allocations on Map::putIfAbsent usage Map::computeIfAbsent only runs the passed constructors when it needs to
Add iterable payItems methods Shame they could never be fully generic, but oh well
Change unlocked scenes from lists to sets
Handbooks: use some sorted maps
Stop vendoring fastutil
Lombokify some more getters
Remove erroneous references to excel skilldata instead of avatar skilldata Refactor team resonances and correct login behaviour and less-than-full-party behaviour
Add README_ko-KR.md (#1673)
Don't use UIDs as initial capacity for chat history
ChatSystem nitpick
Fix chat welcome messages and some slight refactoring.
Fix deprecated chat references
update zh-CN.json (#1662)
Refactoring (#1660)
chore: typo fix
Bump config version.
Update ConfigContainer.java (#1646)
make fishhook_tp configurable
Refactor Json helper functions to JsonUtils
Funnel all gson calls into helper functions
Remove beta message
Fix TalentCommand for Traveler
fix:command player said to server won't be shown at chat history (#1643)
Update install_without_dependencies.sh
Fixed install_without_dependencies.sh script
Handle Unlocking of Waypoints and Statues (#1608)
Stop language linter from fighting the main linter on \n
Fix an edge case that breaks embryos if resources are loaded early
Introduce a new arguments parser (#1629)
Fix Claiming BP Reward Chests (#1634)
Make missing languages not throw warnings
Unify gacha mappings generation
Remove vestigial references to gacha_mappings
Remove language hack from handbook generation
Generate handbooks on every launch, fix html docs
Refactor handbook generation, remove singular handbook
Cache used strings from TextMaps
Load in all the textmaps!
Implement working* burst/ultimate invincibility
Added Indonesian README
Added install_without_dependencies.sh file
Add invoke-level invulnerability for bursts.
Invoke `AbilityManager#onSkillStart` and `AbilityManager#onSkillEnd`
Add a method to be invoked on skill perform and end
Update README_pl-PL.md
Update README_ru-RU.md
Update README_es-ES.md
Update README_fr-FR.md
Update README_zh-TW.md
Update README_zh-CN.md
Update README.md
fix typo
Added Indonesian language
Added install_without_dependencies.sh file
Improve some documentation and JSON (#1618)
Add `EntityDamageEvent` and implementations
Add more events
Update HandlerSceneTransToPointReq.java
Update src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneTransToPointReq.java
Update src/main/java/emu/grasscutter/game/managers/mapmark/MapMarksManager.java
Update src/main/java/emu/grasscutter/server/packet/recv/HandlerTryEnterHomeReq.java
Polish README and setConst translation (#1614)
Update ru-RU.json
Create ko-KR.json
Add `PlayerUseFoodEvent` and implementations
Move `PlayerTeleportEvent` occurrences into `World`
Merge branch 'development' into more-events
Clean-up the energy manager
Explicitly declare the charset of a `FileReader` in `ConfigContainer`
Update zh-CN.json
Changed charset of FileReader in ConfigContainer from default to utf-8.
Add files via upload
Auto language lint
Add explicit encoding on manage_languages.py for windows users
Add lock function to SetStatsCommand
Improve message formatting to clients 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.
Update zh-CN.json
Update zh-CN.json
Merge pull request #1586 from Birdulon/development
Suppress stacktrace on missing questkeys file
Change loading quest keys from `info` to `debug`.
Update zh-CN.json
Fix an NPE in `EntityGadget` when `draft_id` isn't set
SceneScriptManager fix nullPointer error
Move `QuestEncryptionKeys` to `resources/`
Traditional Chinese | Translation Patches
fix nullPointer error
small nullpointer fix in EntityGadget, in case meta gadget is not set
Update ru-RU.json
Add spanish translation for constellation commands
Merge pull request #1553 from akatatsu27/questing
token fix
Merge branch 'development' into questing
Update ru-RU.json
[Bug] New avatars always created with C0 constellation Fixes #1552
2.7+ prerendered cutscene support
two small activity/event fixes * fixed GetAcitivityInfoReq proto * added draft to gadget Scene gatget, to let the client know the propper minigame for some entities
Set Constellation Command (#1565)
Update French translation
Fix remaining traces of `Player#getPos`
Attempt to fix the `teleport` command.
Add `PlayerTeamDeathEvent` and implementations
Add `EntityDeathEvent` and implementations
Add a `Location` class (Scene + Position)
Remove deprecated class
Merge branch 'development' into more-events
call deregisterRegion appropriately
Merge branch 'development' into questing
Read Open States from Excels (#1557)
and misc bug fixes
Major questing improvements
Merge branch 'development' into more-events
Translated new changes in languages files to Spanish
Fix taking battle pass rewards
Add `unlockall` command to unlock all openstates
Fix battle pass manager saving with 0 id
Set `setChooseAvatarGuid` properly
Implement food buffs
Use sorted containers for commands & aliases
Change commands to use new usage message method.
Refactor Command usage and description strings
Updated Russian localization (#1543)
Refactor excel datas (Mainly item data)
Add `kcpInterval` to the config
Rename `hasSentAvatarDataNotify()` to `hasSentLoginPackets()`
Fix host team size not changing when a player joins their world for the first time
Lower kcp interval to 20
Bump project version
Add `PlayerTeleportEvent`
Update to support `PlayerMoveEvent`
Remove `Cancellable` from `PlayerMoveEvent`
Implement `PlayerMoveEvent`
GanyusLeftHorn pushed a commit that referenced this pull request Dec 11, 2022
Update languages [skip actions]
Fix whitespace [skip actions]
Add version increments to lint branch
Plugin Manager localisation
Update ru-RU.json
fix serenitea pot main building
Add command targeting by account username
Fix elementless Traveler depotValue
[BREAKING] dummy commit for Express -> Javalin
Update contributing guidelines
Move the remaining `HttpUtils` function over to `Router`
Clean up http server content types
Replace express with javalin in logger
Update HttpServer & AuthenticationSystem to use Javalin
Remove ``java-express``. Add javalin as dependency
Custom Teams (#1731)
Console output player command (#1722)
Clean up adding extra embryo logic in Avatar::recalcStats
Clean up OpenStateData onLoad logic
Update default Banners.json (#1719)
fix serenitea pot (#1726)
fix: avatar energy transform in proudskill
Update README.md Sequel (#1717)
Add permission clear and list commands (#1715)
Fix offline account deletion (fixes #1716)
maybe drop my dev domain and use `grasscutter.io`
Fix up some japanese references
add dendro resonance
Update README_NL.md
Update readme interlinks
Jp support (#1712)
Update translation (#1711)
Merge pull request #1710 from pfyy/development
fix dungeon
Dutch language updates For README (#1709)
Fix weird conditional in `EquipAffixData`
partial fix of dungeon
Update `AvatarCostumeData` naming
Fix `ReliquarySetData` naming
Update README_zh-CN.md
Show accessAddress in bold yellow on startup 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.
Update SetPropCommand strings, send cmd usage on target fail
refactor some itemdepot lookups for later
Fix account deletion
Fix HelpCommand missing aliases
Prevent material type from being null
Move vehicle fightprop hacks
Consolidate random point offsets
De-hardcode ChestBatchUse
Remove asset names from json and comments
Actually fix RegionHandler
Add new 3.0 Reliquary and SkillParticleGeneration data
versionFix must be >= 50 not == 50 in RegionHandler
Update game version to 3.0.0
Add Sumeru expeditions.
Add scene tag for Vanarana.
Make PointData compatible with alternative PointData
Fixed Gadget Spawning
3.0 Opcodes
Fix RegionHandler versions
Update classes to match protos
Update 3.0 protos
Fix QuestEncryptionKeys Path (#1696)
Update README.md (#1695)
More literate README_ru-RU.md
Avoid potential NPE on WL0 (#1693)
Make lint workflows ignore generated folder But run them on linter and workflow changes
Clean up some Position usage to avoid unneccessary unpacks
Fix healing skills being able to heal dead characters
Fix null pointer in `Avatar` if skill level map didnt already contain skill id
Delete quests from the player if there are errors loading them from the db
update zh-CN.json (#1684)
Update ru-RU.json
Rename lint_commit's job, don't fail on no changes
Fix lint commit reference
Allow adding constellations to playerless avatars Fixes #1682
Fix whitespace [skip actions]
Don't lint src/generated
Make TalentCommand show off new Translate function
Improve translate function Make commands pass ints and floats instead of manually casting them to string first
Hide resin from map when disabled
Replace protos with generated protos
small quest fixes (#1677)
Blossom Implement (#1606)
Merge pull request #1680 from 4Benj/development
Remove uncompiled protos from compiled jar
Remove crazy high AEXP drops from default chest rewards
Fix talentcommand message key
Refactor avatar skilldepot and constellation/talent changing 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.
Add README_fil-PH.md (#1675)
Avoid allocations on Map::putIfAbsent usage Map::computeIfAbsent only runs the passed constructors when it needs to
Add iterable payItems methods Shame they could never be fully generic, but oh well
Change unlocked scenes from lists to sets
Handbooks: use some sorted maps
Stop vendoring fastutil
Lombokify some more getters
Remove erroneous references to excel skilldata instead of avatar skilldata Refactor team resonances and correct login behaviour and less-than-full-party behaviour
Add README_ko-KR.md (#1673)
Don't use UIDs as initial capacity for chat history
ChatSystem nitpick
Fix chat welcome messages and some slight refactoring.
Fix deprecated chat references
update zh-CN.json (#1662)
Refactoring (#1660)
chore: typo fix
Bump config version.
Update ConfigContainer.java (#1646)
make fishhook_tp configurable
Refactor Json helper functions to JsonUtils
Funnel all gson calls into helper functions
Remove beta message
Fix TalentCommand for Traveler
fix:command player said to server won't be shown at chat history (#1643)
Update install_without_dependencies.sh
Fixed install_without_dependencies.sh script
Handle Unlocking of Waypoints and Statues (#1608)
Stop language linter from fighting the main linter on \n
Fix an edge case that breaks embryos if resources are loaded early
Introduce a new arguments parser (#1629)
Fix Claiming BP Reward Chests (#1634)
Make missing languages not throw warnings
Unify gacha mappings generation
Remove vestigial references to gacha_mappings
Remove language hack from handbook generation
Generate handbooks on every launch, fix html docs
Refactor handbook generation, remove singular handbook
Cache used strings from TextMaps
Load in all the textmaps!
Implement working* burst/ultimate invincibility
Added Indonesian README
Added install_without_dependencies.sh file
Add invoke-level invulnerability for bursts.
Invoke `AbilityManager#onSkillStart` and `AbilityManager#onSkillEnd`
Add a method to be invoked on skill perform and end
Update README_pl-PL.md
Update README_ru-RU.md
Update README_es-ES.md
Update README_fr-FR.md
Update README_zh-TW.md
Update README_zh-CN.md
Update README.md
fix typo
Added Indonesian language
Added install_without_dependencies.sh file
Improve some documentation and JSON (#1618)
Add `EntityDamageEvent` and implementations
Add more events
Update HandlerSceneTransToPointReq.java
Update src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneTransToPointReq.java
Update src/main/java/emu/grasscutter/game/managers/mapmark/MapMarksManager.java
Update src/main/java/emu/grasscutter/server/packet/recv/HandlerTryEnterHomeReq.java
Polish README and setConst translation (#1614)
Update ru-RU.json
Create ko-KR.json
Add `PlayerUseFoodEvent` and implementations
Move `PlayerTeleportEvent` occurrences into `World`
Merge branch 'development' into more-events
Clean-up the energy manager
Explicitly declare the charset of a `FileReader` in `ConfigContainer`
Update zh-CN.json
Changed charset of FileReader in ConfigContainer from default to utf-8.
Add files via upload
Auto language lint
Add explicit encoding on manage_languages.py for windows users
Add lock function to SetStatsCommand
Improve message formatting to clients 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.
Update zh-CN.json
Update zh-CN.json
Merge pull request #1586 from Birdulon/development
Suppress stacktrace on missing questkeys file
Change loading quest keys from `info` to `debug`.
Update zh-CN.json
Fix an NPE in `EntityGadget` when `draft_id` isn't set
SceneScriptManager fix nullPointer error
Move `QuestEncryptionKeys` to `resources/`
Traditional Chinese | Translation Patches
fix nullPointer error
small nullpointer fix in EntityGadget, in case meta gadget is not set
Update ru-RU.json
Add spanish translation for constellation commands
Merge pull request #1553 from akatatsu27/questing
token fix
Merge branch 'development' into questing
Update ru-RU.json
[Bug] New avatars always created with C0 constellation Fixes #1552
2.7+ prerendered cutscene support
two small activity/event fixes * fixed GetAcitivityInfoReq proto * added draft to gadget Scene gatget, to let the client know the propper minigame for some entities
Set Constellation Command (#1565)
Update French translation
Fix remaining traces of `Player#getPos`
Attempt to fix the `teleport` command.
Add `PlayerTeamDeathEvent` and implementations
Add `EntityDeathEvent` and implementations
Add a `Location` class (Scene + Position)
Remove deprecated class
Merge branch 'development' into more-events
call deregisterRegion appropriately
Merge branch 'development' into questing
Read Open States from Excels (#1557)
and misc bug fixes
Major questing improvements
Merge branch 'development' into more-events
Translated new changes in languages files to Spanish
Fix taking battle pass rewards
Add `unlockall` command to unlock all openstates
Fix battle pass manager saving with 0 id
Set `setChooseAvatarGuid` properly
Implement food buffs
Use sorted containers for commands & aliases
Change commands to use new usage message method.
Refactor Command usage and description strings
Updated Russian localization (#1543)
Refactor excel datas (Mainly item data)
Add `kcpInterval` to the config
Rename `hasSentAvatarDataNotify()` to `hasSentLoginPackets()`
Fix host team size not changing when a player joins their world for the first time
Lower kcp interval to 20
Bump project version
Add `PlayerTeleportEvent`
Update to support `PlayerMoveEvent`
Remove `Cancellable` from `PlayerMoveEvent`
Implement `PlayerMoveEvent`
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants