From d71a4b85292b5ca5d39f3965052e0b3977a4a417 Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Mon, 11 Dec 2023 05:10:37 -0800 Subject: [PATCH] Dont save items to the db when their properties havent changed --- .../lunarcore/game/inventory/GameItem.java | 9 ++++-- .../lunarcore/game/inventory/Inventory.java | 5 ++-- .../emu/lunarcore/game/player/Player.java | 29 ++++++++++++++----- 3 files changed, 31 insertions(+), 12 deletions(-) diff --git a/src/main/java/emu/lunarcore/game/inventory/GameItem.java b/src/main/java/emu/lunarcore/game/inventory/GameItem.java index b84289d..90b6c93 100644 --- a/src/main/java/emu/lunarcore/game/inventory/GameItem.java +++ b/src/main/java/emu/lunarcore/game/inventory/GameItem.java @@ -135,8 +135,13 @@ public class GameItem { return !this.isLocked() && !this.isEquipped(); } - public void setCount(int count) { - this.count = count; + public boolean setCount(int count) { + if (this.count != count) { + this.count = count; + return true; + } + + return false; } public boolean setEquipAvatar(int newEquipAvatar) { diff --git a/src/main/java/emu/lunarcore/game/inventory/Inventory.java b/src/main/java/emu/lunarcore/game/inventory/Inventory.java index da1bf9a..9b1454b 100644 --- a/src/main/java/emu/lunarcore/game/inventory/Inventory.java +++ b/src/main/java/emu/lunarcore/game/inventory/Inventory.java @@ -236,8 +236,9 @@ public class Inventory extends BasePlayerManager { } else { // Add count to item int amount = Utils.safeAdd(existingItem.getCount(), item.getCount(), item.getExcel().getPileLimit(), 0); - existingItem.setCount(amount); - existingItem.save(); + if (existingItem.setCount(amount)) { + existingItem.save(); + } return existingItem; } } diff --git a/src/main/java/emu/lunarcore/game/player/Player.java b/src/main/java/emu/lunarcore/game/player/Player.java index 2b812fc..4481978 100644 --- a/src/main/java/emu/lunarcore/game/player/Player.java +++ b/src/main/java/emu/lunarcore/game/player/Player.java @@ -389,23 +389,35 @@ public class Player { } public void addSCoin(int amount) { - this.scoin = Utils.safeAdd(this.scoin, amount); - this.sendPacket(new PacketPlayerSyncScNotify(this)); + int newAmount = Utils.safeAdd(this.scoin, amount); + if (this.scoin != newAmount) { + this.scoin = newAmount; + this.sendPacket(new PacketPlayerSyncScNotify(this)); + } } public void addHCoin(int amount) { - this.hcoin = Utils.safeAdd(this.hcoin, amount); - this.sendPacket(new PacketPlayerSyncScNotify(this)); + int newAmount = Utils.safeAdd(this.hcoin, amount); + if (this.hcoin != newAmount) { + this.hcoin = newAmount; + this.sendPacket(new PacketPlayerSyncScNotify(this)); + } } public void addMCoin(int amount) { - this.mcoin = Utils.safeAdd(this.mcoin, amount); - this.sendPacket(new PacketPlayerSyncScNotify(this)); + int newAmount = Utils.safeAdd(this.mcoin, amount); + if (this.mcoin != newAmount) { + this.mcoin = newAmount; + this.sendPacket(new PacketPlayerSyncScNotify(this)); + } } public void addTalentPoints(int amount) { - this.talentPoints = Utils.safeAdd(this.talentPoints, amount); - this.sendPacket(new PacketSyncRogueVirtualItemInfoScNotify(this)); + int newAmount = Utils.safeAdd(this.talentPoints, amount); + if (this.talentPoints != newAmount) { + this.talentPoints = newAmount; + this.sendPacket(new PacketSyncRogueVirtualItemInfoScNotify(this)); + } } public void addExp(int amount) { @@ -421,6 +433,7 @@ public class Player { reqExp = GameData.getPlayerExpRequired(this.level + 1); } + // Update level and change property this.onLevelChange(oldLevel, this.level); this.save();