Grasscutter icon indicating copy to clipboard operation
Grasscutter copied to clipboard

[Bug] Null pointer exception when adding tasks

Open wumulong-469 opened this issue 2 years ago • 0 comments

Did you look for other closed issues that have the same problem? no same problem .

Describe the bug

Although the documentation states that the implementation of "Serenitea Pot" is not written, I am curious to take a look. So I added the task numbered 1100801. It shows me the following error:

虽然文档上说明没有写“尘歌壶”的实现,但是好奇的还是想看一下。于是我添加了编号为1100801的任务。它给我展示了如下错误:

java.lang.NullPointerException: Cannot invoke "java.util.Map.put(Object, Object)" because "this.questGlobalVariables" i>
        at emu.grasscutter.game.quest.QuestManager.setQuestGlobalVarValue(QuestManager.java:119)
        at emu.grasscutter.game.quest.exec.ExecSetQuestGlobalVar.execute(ExecSetQuestGlobalVar.java:13)
        at emu.grasscutter.game.quest.QuestSystem.triggerExec(QuestSystem.java:95)
        at emu.grasscutter.game.quest.GameQuest.lambda$start$1(GameQuest.java:92)
        at java.base/java.lang.Iterable.forEach(Iterable.java:75)
        at emu.grasscutter.game.quest.GameQuest.start(GameQuest.java:92)
        at emu.grasscutter.game.quest.QuestManager.addQuest(QuestManager.java:207)
        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 emu.grasscutter.Grasscutter.startConsole(Grasscutter.java:387)
        at emu.grasscutter.Grasscutter.main(Grasscutter.java:212)

But in the visualization software of mongodb i can see that the task is indeed added. Then the same error occurred when completing the subtasks one by one.Like this:

但是在mongodb的可视化软件中可以看到任务的确添加了。随后在逐个完成子任务时候也出现了相同的错误。就像这样

2022-08-07T18:37:22Z <ERROR:emu.grasscutter.game.quest.GameMainQuest> An error occurred while trying to accept quest.
java.lang.NullPointerException: Cannot invoke "java.util.Map.put(Object, Object)" because "this.questGlobalVariables" i>
        at emu.grasscutter.game.quest.QuestManager.setQuestGlobalVarValue(QuestManager.java:119)
        at emu.grasscutter.game.quest.exec.ExecSetQuestGlobalVar.execute(ExecSetQuestGlobalVar.java:13)
        at emu.grasscutter.game.quest.QuestSystem.triggerExec(QuestSystem.java:95)
        at emu.grasscutter.game.quest.GameQuest.lambda$start$1(GameQuest.java:92)
        at java.base/java.lang.Iterable.forEach(Iterable.java:75)
        at emu.grasscutter.game.quest.GameQuest.start(GameQuest.java:92)
        at emu.grasscutter.game.quest.GameMainQuest.tryAcceptSubQuests(GameMainQuest.java:265)
        at emu.grasscutter.game.quest.QuestManager.triggerEvent(QuestManager.java:255)
        at emu.grasscutter.game.quest.QuestManager.triggerEvent(QuestManager.java:232)
        at emu.grasscutter.game.quest.GameQuest.finish(GameQuest.java:155)
        at emu.grasscutter.command.commands.QuestCommand.execute(QuestCommand.java:51)
        at emu.grasscutter.command.CommandMap.lambda$invoke$0(CommandMap.java:276)
        at emu.grasscutter.command.CommandMap.invoke(CommandMap.java:280)
        at emu.grasscutter.Grasscutter.startConsole(Grasscutter.java:387)
        at emu.grasscutter.Grasscutter.main(Grasscutter.java:212)
2022-08-07T18:37:22Z <INFO:emu.grasscutter.command.CommandHandler> 已完成任务 1100801。

As with adding, the database can successfully change the completion flag of a task.

和添加一样,数据库可以成功更改任务的完成标记。

Which branch did you use?

Grasscutter version : 1.2.3-dev-bdc687da Git Hash :bdc687d

Screenshots

Additional context

ARM64 platform openjdk version "17.0.4" 2022-07-19 OpenJDK Runtime Environment (build 17.0.4+8-Debian-1) OpenJDK 64-Bit Server VM (build 17.0.4+8-Debian-1, mixed mode, sharing)

wumulong-469 avatar Aug 07 '22 11:08 wumulong-469