mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-23 20:34:51 +01:00
Open state framework (#1483)
* Added more server debug options * made server debug code prettier * fixed initialization bug * Enables logging of packets contained in UnionCmdNotify, when debug level is WHITELIST or BLACKLIST * Fully Implement OpenState Framework * added devOpenStates * Commented out newPlayerOpenStates * Removed OPEN_STATE_NONE from devOpenStates
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.OpenStateChangeNotifyOuterClass.OpenStateChangeNotify;
|
||||
|
||||
//Sets openState to value
|
||||
public class PacketOpenStateChangeNotify extends BasePacket {
|
||||
|
||||
public PacketOpenStateChangeNotify(int openState, int value) {
|
||||
super(PacketOpcodes.OpenStateChangeNotify);
|
||||
|
||||
OpenStateChangeNotify proto = OpenStateChangeNotify.newBuilder()
|
||||
.putOpenStateMap(openState,value).build();
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,22 +1,25 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.player.PlayerOpenStateManager;
|
||||
import emu.grasscutter.game.props.OpenState;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.OpenStateUpdateNotifyOuterClass.OpenStateUpdateNotify;
|
||||
|
||||
import java.util.Map;
|
||||
/*
|
||||
Must be sent on login for openStates to work
|
||||
Tells the client to update its openStateMap for the keys sent. value is irrelevant
|
||||
*/
|
||||
public class PacketOpenStateUpdateNotify extends BasePacket {
|
||||
|
||||
public PacketOpenStateUpdateNotify() {
|
||||
|
||||
public PacketOpenStateUpdateNotify(Player player) {
|
||||
super(PacketOpcodes.OpenStateUpdateNotify);
|
||||
|
||||
|
||||
OpenStateUpdateNotify.Builder proto = OpenStateUpdateNotify.newBuilder();
|
||||
|
||||
for (OpenState type : OpenState.values()) {
|
||||
if (type.getValue() > 0) {
|
||||
proto.putOpenStateMap(type.getValue(), 1);
|
||||
}
|
||||
}
|
||||
|
||||
proto.putAllOpenStateMap(player.getOpenStateManager().getOpenStateMap()).build();
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.SetOpenStateRspOuterClass.SetOpenStateRsp;
|
||||
|
||||
public class PacketSetOpenStateRsp extends BasePacket {
|
||||
|
||||
public PacketSetOpenStateRsp(int openState, int value) {
|
||||
super(PacketOpcodes.SetOpenStateRsp);
|
||||
|
||||
SetOpenStateRsp proto = SetOpenStateRsp.newBuilder()
|
||||
.setKey(openState).setValue(value).build();
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user