mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-02-11 04:23:01 +08:00
Fix invalid gadget info for worktops
This commit is contained in:
parent
404ff9233a
commit
76251c6718
@ -1,5 +1,6 @@
|
||||
package emu.grasscutter.game.entity.gadget;
|
||||
|
||||
import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.game.entity.EntityGadget;
|
||||
import emu.grasscutter.game.entity.gadget.worktop.WorktopWorktopOptionHandler;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
@ -10,6 +11,7 @@ import emu.grasscutter.net.proto.WorktopInfoOuterClass.WorktopInfo;
|
||||
import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
|
||||
import it.unimi.dsi.fastutil.ints.IntSet;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
|
||||
public final class GadgetWorktop extends GadgetContent {
|
||||
private IntSet worktopOptions;
|
||||
@ -45,14 +47,19 @@ public final class GadgetWorktop extends GadgetContent {
|
||||
}
|
||||
|
||||
public void onBuildProto(SceneGadgetInfo.Builder gadgetInfo) {
|
||||
if (this.worktopOptions == null) {
|
||||
return;
|
||||
var options = this.getWorktopOptions();
|
||||
if (options == null) return;
|
||||
|
||||
try {
|
||||
var worktop = WorktopInfo.newBuilder()
|
||||
.addAllOptionList(options).build();
|
||||
gadgetInfo.setWorktop(worktop);
|
||||
} catch (NullPointerException ignored) {
|
||||
// "this.wrapped" is null.
|
||||
gadgetInfo.setWorktop(WorktopInfo.newBuilder()
|
||||
.addAllOptionList(Collections.emptyList()).build());
|
||||
Grasscutter.getLogger().warn("GadgetWorktop.onBuildProto: this.wrapped is null");
|
||||
}
|
||||
|
||||
WorktopInfo worktop =
|
||||
WorktopInfo.newBuilder().addAllOptionList(this.getWorktopOptions()).build();
|
||||
|
||||
gadgetInfo.setWorktop(worktop);
|
||||
}
|
||||
|
||||
public void setOnSelectWorktopOptionEvent(WorktopWorktopOptionHandler handler) {
|
||||
|
Loading…
Reference in New Issue
Block a user