Add PlayerLevelAvatarEvent

This commit is contained in:
KingRainbow44 2023-08-27 23:26:01 -04:00
parent 4bd0fbf657
commit 314b90e936
No known key found for this signature in database
GPG Key ID: FC2CB64B00D257BE
2 changed files with 37 additions and 15 deletions

View File

@ -4,31 +4,24 @@ import emu.grasscutter.Grasscutter;
import emu.grasscutter.data.GameData; import emu.grasscutter.data.GameData;
import emu.grasscutter.data.common.ItemParamData; import emu.grasscutter.data.common.ItemParamData;
import emu.grasscutter.data.excels.ItemData; import emu.grasscutter.data.excels.ItemData;
import emu.grasscutter.data.excels.avatar.AvatarPromoteData; import emu.grasscutter.data.excels.avatar.*;
import emu.grasscutter.data.excels.avatar.AvatarSkillDepotData;
import emu.grasscutter.data.excels.weapon.WeaponPromoteData; import emu.grasscutter.data.excels.weapon.WeaponPromoteData;
import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.avatar.Avatar;
import emu.grasscutter.game.inventory.GameItem; import emu.grasscutter.game.inventory.*;
import emu.grasscutter.game.inventory.ItemType;
import emu.grasscutter.game.inventory.MaterialType;
import emu.grasscutter.game.player.Player; import emu.grasscutter.game.player.Player;
import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.game.props.*;
import emu.grasscutter.game.props.ItemUseAction.ItemUseAddExp; import emu.grasscutter.game.props.ItemUseAction.*;
import emu.grasscutter.game.props.ItemUseAction.ItemUseAddReliquaryExp;
import emu.grasscutter.game.props.ItemUseAction.ItemUseAddWeaponExp;
import emu.grasscutter.game.props.ItemUseAction.UseItemParams;
import emu.grasscutter.game.props.ItemUseOp;
import emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam; import emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam;
import emu.grasscutter.net.proto.MaterialInfoOuterClass.MaterialInfo; import emu.grasscutter.net.proto.MaterialInfoOuterClass.MaterialInfo;
import emu.grasscutter.server.event.player.PlayerUseFoodEvent; import emu.grasscutter.server.event.player.*;
import emu.grasscutter.server.game.BaseGameSystem; import emu.grasscutter.server.game.*;
import emu.grasscutter.server.game.GameServer;
import emu.grasscutter.server.packet.send.*; import emu.grasscutter.server.packet.send.*;
import emu.grasscutter.utils.Utils; import emu.grasscutter.utils.Utils;
import it.unimi.dsi.fastutil.ints.*; import it.unimi.dsi.fastutil.ints.*;
import lombok.val;
import java.util.*; import java.util.*;
import java.util.stream.Stream; import java.util.stream.Stream;
import lombok.val;
public class InventorySystem extends BaseGameSystem { public class InventorySystem extends BaseGameSystem {
private static final Int2IntMap weaponRefundMaterials = new Int2IntArrayMap(); private static final Int2IntMap weaponRefundMaterials = new Int2IntArrayMap();
@ -743,6 +736,9 @@ public class InventorySystem extends BaseGameSystem {
// Packets // Packets
player.sendPacket(new PacketAvatarPropNotify(avatar)); player.sendPacket(new PacketAvatarPropNotify(avatar));
player.sendPacket(new PacketAvatarUpgradeRsp(avatar, oldLevel, oldPropMap)); player.sendPacket(new PacketAvatarUpgradeRsp(avatar, oldLevel, oldPropMap));
// Call PlayerLevelAvatarEvent.
new PlayerLevelAvatarEvent(player, oldLevel, avatar).call();
} }
public void upgradeAvatarFetterLevel(Player player, Avatar avatar, int expGain) { public void upgradeAvatarFetterLevel(Player player, Avatar avatar, int expGain) {

View File

@ -0,0 +1,26 @@
package emu.grasscutter.server.event.player;
import emu.grasscutter.game.avatar.Avatar;
import emu.grasscutter.game.player.Player;
import emu.grasscutter.server.event.types.PlayerEvent;
import lombok.Getter;
@Getter
public final class PlayerLevelAvatarEvent extends PlayerEvent {
private final int oldLevel;
private final Avatar avatar;
public PlayerLevelAvatarEvent(Player player, int oldLevel, Avatar avatar) {
super(player);
this.oldLevel = oldLevel;
this.avatar = avatar;
}
/**
* @return The avatar's new level.
*/
public int getNewLevel() {
return this.getAvatar().getLevel();
}
}