Fix extra skill charges being removed if you teleport

Close #404
This commit is contained in:
Melledy
2022-05-02 17:25:26 -07:00
parent 5af7b8d2e8
commit 90787c659b
4 changed files with 51 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
package emu.grasscutter.server.packet.send;
import java.util.Map.Entry;
import emu.grasscutter.game.avatar.Avatar;
import emu.grasscutter.net.packet.BasePacket;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.proto.AvatarSkillInfoNotifyOuterClass.AvatarSkillInfoNotify;
import emu.grasscutter.net.proto.AvatarSkillInfoOuterClass.AvatarSkillInfo;
public class PacketAvatarSkillInfoNotify extends BasePacket {
public PacketAvatarSkillInfoNotify(Avatar avatar) {
super(PacketOpcodes.AvatarSkillInfoNotify);
AvatarSkillInfoNotify.Builder proto = AvatarSkillInfoNotify.newBuilder()
.setGuid(avatar.getGuid());
for (Entry<Integer, Integer> entry : avatar.getSkillExtraChargeMap().entrySet()) {
proto.putSkillMap(entry.getKey(), AvatarSkillInfo.newBuilder().setMaxChargeCount(entry.getValue()).build());
}
this.setData(proto);
}
}