mirror of
https://github.com/Melledy/LunarCore.git
synced 2025-12-13 13:54:37 +01:00
Clean up InventoryService
This commit is contained in:
@@ -166,13 +166,15 @@ public class InventoryService extends BaseGameService {
|
|||||||
// Add skill
|
// Add skill
|
||||||
avatar.getSkills().put(pointId, nextLevel);
|
avatar.getSkills().put(pointId, nextLevel);
|
||||||
|
|
||||||
avatar.save();
|
// Save player
|
||||||
player.save();
|
player.save();
|
||||||
|
|
||||||
// Send packets
|
// Save avatar and send packets
|
||||||
if (avatar.getHeroPath() != null) {
|
if (avatar.getHeroPath() != null) {
|
||||||
|
avatar.getHeroPath().save();
|
||||||
player.sendPacket(new PacketPlayerSyncScNotify(avatar.getHeroPath()));
|
player.sendPacket(new PacketPlayerSyncScNotify(avatar.getHeroPath()));
|
||||||
} else {
|
} else {
|
||||||
|
avatar.save();
|
||||||
player.sendPacket(new PacketPlayerSyncScNotify(avatar));
|
player.sendPacket(new PacketPlayerSyncScNotify(avatar));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -183,29 +185,27 @@ public class InventoryService extends BaseGameService {
|
|||||||
// Get avatar
|
// Get avatar
|
||||||
GameAvatar avatar = player.getAvatarById(avatarId);
|
GameAvatar avatar = player.getAvatarById(avatarId);
|
||||||
if (avatar == null || avatar.getRank() >= avatar.getExcel().getMaxRank()) return false;
|
if (avatar == null || avatar.getRank() >= avatar.getExcel().getMaxRank()) return false;
|
||||||
|
|
||||||
AvatarRankExcel rankData = GameData.getAvatarRankExcel(avatar.getExcel().getRankId(avatar.getRank()));
|
AvatarRankExcel rankData = GameData.getAvatarRankExcel(avatar.getExcel().getRankId(avatar.getRank()));
|
||||||
if (rankData == null) return false;
|
if (rankData == null) return false;
|
||||||
|
|
||||||
// Verify items
|
// Verify items
|
||||||
for (ItemParam param : rankData.getUnlockCost()) {
|
if (!player.getInventory().verifyItems(rankData.getUnlockCost())) {
|
||||||
GameItem item = player.getInventory().getItemByParam(param);
|
return false;
|
||||||
if (item == null || item.getCount() < param.getCount()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pay items
|
// Pay items
|
||||||
player.getInventory().removeItemsByParams(rankData.getUnlockCost());
|
player.getInventory().removeItemsByParams(rankData.getUnlockCost());
|
||||||
|
|
||||||
// Add rank
|
// Add rank
|
||||||
avatar.setRank(avatar.getRank() + 1);
|
avatar.setRank(avatar.getRank() + 1);
|
||||||
avatar.save();
|
|
||||||
|
// Save avatar and send packets
|
||||||
// Send packets
|
|
||||||
if (avatar.getHeroPath() != null) {
|
if (avatar.getHeroPath() != null) {
|
||||||
|
avatar.getHeroPath().save();
|
||||||
player.sendPacket(new PacketPlayerSyncScNotify(avatar.getHeroPath()));
|
player.sendPacket(new PacketPlayerSyncScNotify(avatar.getHeroPath()));
|
||||||
} else {
|
} else {
|
||||||
|
avatar.save();
|
||||||
player.sendPacket(new PacketPlayerSyncScNotify(avatar));
|
player.sendPacket(new PacketPlayerSyncScNotify(avatar));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user