Clean up InventoryService

This commit is contained in:
Melledy
2023-12-06 03:02:34 -08:00
parent 1e352947b6
commit 417c8c105d

View File

@@ -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));
} }