Grasscutter/src/main/java/emu/grasscutter/server/packet/recv/HandlerSetOpenStateReq.java
GanyusLeftHorn d0edd39465 Read Open States from Excels (#1557)
* 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.
2022-07-24 00:12:07 -07:00

20 lines
748 B
Java

package emu.grasscutter.server.packet.recv;
import emu.grasscutter.net.packet.Opcodes;
import emu.grasscutter.net.packet.PacketHandler;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.proto.SetOpenStateReqOuterClass.SetOpenStateReq;
import emu.grasscutter.server.game.GameSession;
@Opcodes(PacketOpcodes.SetOpenStateReq)
public class HandlerSetOpenStateReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
var req = SetOpenStateReq.parseFrom(payload);
int openState = req.getKey();
int value = req.getValue();
session.getPlayer().getOpenStateManager().setOpenStateFromClient(openState, value);
}
}