diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/db_installer/sql/game/character_pledge_donation.sql b/L2J_Mobius_Essence_5.2_FrostLord/dist/db_installer/sql/game/character_pledge_donation.sql deleted file mode 100644 index 7ba7d84398..0000000000 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/db_installer/sql/game/character_pledge_donation.sql +++ /dev/null @@ -1,6 +0,0 @@ -DROP TABLE IF EXISTS `character_pledge_donation`; -CREATE TABLE IF NOT EXISTS `character_pledge_donation` ( - `charId` int(10) unsigned NOT NULL DEFAULT 0, - `points` int(10) UNSIGNED NOT NULL DEFAULT 0, - PRIMARY KEY (`charId`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; \ No newline at end of file diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/instancemanager/DailyTaskManager.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/instancemanager/DailyTaskManager.java index f236a91132..97c77eb16e 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/instancemanager/DailyTaskManager.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/instancemanager/DailyTaskManager.java @@ -360,23 +360,28 @@ public class DailyTaskManager private void resetClanDonationPoints() { + // Update data for offline players. try (Connection con = DatabaseFactory.getConnection()) { - try (PreparedStatement ps = con.prepareStatement("DELETE FROM character_pledge_donation WHERE points < ?")) + try (PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE points var = ?")) { - ps.setInt(1, 4); + ps.setString(1, PlayerVariables.CLAN_DONATION_POINTS); ps.execute(); } - for (Player player : World.getInstance().getPlayers()) - { - player.setClanDonationPoints(3); - } } catch (Exception e) { LOGGER.log(Level.SEVERE, "Could not reset clan donation points: ", e); } - LOGGER.info("Weekly caln contributions cleaned."); + + // Update data for online players. + for (Player player : World.getInstance().getPlayers()) + { + player.getVariables().remove(PlayerVariables.CLAN_DONATION_POINTS); + player.getVariables().storeMe(); + } + + LOGGER.info("Daily clan donation points have been reset."); } private void resetWorldChatPoints() diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/Player.java index b3356327fb..135a53ff6f 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -460,11 +460,6 @@ public class Player extends Playable private static final String INSERT_SUBJUGATION = "REPLACE INTO character_purge (`charId`, `category`, `points`, `keys`) VALUES (?, ?, ?, ?)"; private static final String RESTORE_SUBJUGATION = "SELECT * FROM character_purge WHERE charId=?"; - // Pledge donation: - private static final String DELETE_CLAN_DONATION = "DELETE FROM character_pledge_donation WHERE charId=?"; - private static final String INSERT_CLAN_DONATION = "REPLACE INTO character_pledge_donation (`charId`, `points`) VALUES (?, ?)"; - private static final String RESTORE_CLAN_DONATION = "SELECT * FROM character_pledge_donation WHERE charId=?"; - // Elemental Spirits: private static final String RESTORE_ELEMENTAL_SPIRITS = "SELECT * FROM character_spirits WHERE charId=?"; @@ -946,8 +941,6 @@ public class Player extends Playable private final Map _petEvolves = new HashMap<>(); - private int _clanDonationPoints = 3; - private final List _questTimers = new ArrayList<>(); private final List> _timerHolders = new ArrayList<>(); @@ -7084,9 +7077,6 @@ public class Player extends Playable // Purge. restoreSubjugation(); - // Clan donation. - restoreClanDonation(); - // Load Premium Item List. loadPremiumItemList(); @@ -7241,9 +7231,6 @@ public class Player extends Playable // Purge. storeSubjugation(); - // Pledge donation. - storePledgeDonation(); - final PlayerVariables vars = getScript(PlayerVariables.class); if (vars != null) { @@ -15351,54 +15338,6 @@ public class Player extends Playable public int getClanDonationPoints() { - return _clanDonationPoints; - } - - public void setClanDonationPoints(int points) - { - _clanDonationPoints = points; - } - - public void storePledgeDonation() - { - try (Connection con = DatabaseFactory.getConnection()) - { - try (PreparedStatement st = con.prepareStatement(DELETE_CLAN_DONATION)) - { - st.setInt(1, getObjectId()); - st.execute(); - } - - try (PreparedStatement st = con.prepareStatement(INSERT_CLAN_DONATION)) - { - st.setInt(1, getObjectId()); - st.setInt(2, getClanDonationPoints()); - st.execute(); - } - } - catch (Exception e) - { - LOGGER.log(Level.SEVERE, "Could not store clan donation points for playerId " + getObjectId() + ": ", e); - } - } - - private void restoreClanDonation() - { - try (Connection con = DatabaseFactory.getConnection(); - PreparedStatement statement = con.prepareStatement(RESTORE_CLAN_DONATION)) - { - statement.setInt(1, getObjectId()); - try (ResultSet rset = statement.executeQuery()) - { - if (rset.next()) - { - setClanDonationPoints(rset.getInt("points")); - } - } - } - catch (Exception e) - { - LOGGER.log(Level.SEVERE, "Could not restore clan donation points for playerId: " + getObjectId(), e); - } + return getVariables().getInt(PlayerVariables.CLAN_DONATION_POINTS, 3); } } diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/variables/ClanVariables.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/variables/ClanVariables.java index 54477fb4ab..8cd7253357 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/variables/ClanVariables.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/variables/ClanVariables.java @@ -39,6 +39,8 @@ public class ClanVariables extends AbstractVariables private static final String DELETE_QUERY = "DELETE FROM clan_variables WHERE clanId = ?"; private static final String INSERT_QUERY = "INSERT INTO clan_variables (clanId, var, val) VALUES (?, ?, ?)"; private static final String DELETE_WEAKLY_QUERY = "DELETE FROM clan_variables WHERE var LIKE 'CONTRIBUTION_WEEKLY_%' AND clanId = ?"; + + // Public variable names. public static final String CONTRIBUTION = "CONTRIBUTION_"; public static final String CONTRIBUTION_WEEKLY = "CONTRIBUTION_WEEKLY_"; diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/variables/PlayerVariables.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/variables/PlayerVariables.java index 8914176931..fd6430a15d 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/variables/PlayerVariables.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/variables/PlayerVariables.java @@ -38,7 +38,7 @@ public class PlayerVariables extends AbstractVariables private static final String DELETE_QUERY = "DELETE FROM character_variables WHERE charId = ?"; private static final String INSERT_QUERY = "INSERT INTO character_variables (charId, var, val) VALUES (?, ?, ?)"; - // Public variable names + // Public variable names. public static final String INSTANCE_ORIGIN = "INSTANCE_ORIGIN"; public static final String HAIR_ACCESSORY_VARIABLE_NAME = "HAIR_ACCESSORY_ENABLED"; public static final String WORLD_CHAT_VARIABLE_NAME = "WORLD_CHAT_USED"; @@ -81,6 +81,7 @@ public class PlayerVariables extends AbstractVariables public static final String STAT_MEN = "STAT_MEN"; public static final String RESURRECT_BY_PAYMENT_COUNT = "RESURRECT_BY_PAYMENT_COUNT"; public static final String CLAN_JOIN_TIME = "CLAN_JOIN_TIME"; + public static final String CLAN_DONATION_POINTS = "CLAN_DONATION_POINTS"; private final int _objectId; diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/pledgedonation/RequestExPledgeDonationRequest.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/pledgedonation/RequestExPledgeDonationRequest.java index 1349c53fcf..1122ca4fc3 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/pledgedonation/RequestExPledgeDonationRequest.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/pledgedonation/RequestExPledgeDonationRequest.java @@ -25,9 +25,11 @@ import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.itemcontainer.Inventory; import org.l2jmobius.gameserver.model.itemcontainer.Mail; +import org.l2jmobius.gameserver.model.variables.PlayerVariables; import org.l2jmobius.gameserver.network.GameClient; import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket; import org.l2jmobius.gameserver.network.serverpackets.limitshop.ExBloodyCoinCount; +import org.l2jmobius.gameserver.network.serverpackets.pledgedonation.ExPledgeDonationInfo; import org.l2jmobius.gameserver.network.serverpackets.pledgedonation.ExPledgeDonationRequest; /** @@ -63,7 +65,7 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket { case 0: { - if (player.reduceAdena("pledge donation", 10000, null, true)) + if (player.reduceAdena("Pledge donation", 10000, null, true)) { clan.addExp(player.getObjectId(), 9); } @@ -77,15 +79,9 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket { if (player.getInventory().getInventoryItemCount(Inventory.LCOIN_ID, -1) >= 100) { - if (player.getInventory().destroyItemByItemId("pledge donation", Inventory.LCOIN_ID, 100, player, null) != null) - { - clan.addExp(player.getObjectId(), 30); - player.setHonorCoins(player.getHonorCoins() + 100); - } - else - { - player.sendPacket(new ExPledgeDonationRequest(false, _type, 2)); - } + player.destroyItemByItemId("Pledge donation", Inventory.LCOIN_ID, 100, player, true); + clan.addExp(player.getObjectId(), 30); + player.setHonorCoins(player.getHonorCoins() + 100); } else { @@ -97,15 +93,9 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket { if (player.getInventory().getInventoryItemCount(Inventory.LCOIN_ID, -1) >= 500) { - if (player.getInventory().destroyItemByItemId("pledge donation", Inventory.LCOIN_ID, 500, player, null) != null) - { - clan.addExp(player.getObjectId(), 150); - player.setHonorCoins(player.getHonorCoins() + 500); - } - else - { - player.sendPacket(new ExPledgeDonationRequest(false, _type, 2)); - } + player.destroyItemByItemId("Pledge donation", Inventory.LCOIN_ID, 500, player, true); + clan.addExp(player.getObjectId(), 150); + player.setHonorCoins(player.getHonorCoins() + 500); } else { @@ -114,24 +104,22 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket break; } } - player.setClanDonationPoints(Math.max(player.getClanDonationPoints() - 1, 0)); + player.getVariables().set(PlayerVariables.CLAN_DONATION_POINTS, Math.max(player.getClanDonationPoints() - 1, 0)); criticalSuccess(player, clan, _type); player.sendPacket(new ExBloodyCoinCount(player)); player.sendItemList(); player.sendPacket(new ExPledgeDonationRequest(true, _type, player.getClanDonationPoints())); + player.sendPacket(new ExPledgeDonationInfo(player.getClanDonationPoints(), true)); } private void criticalSuccess(Player player, Clan clan, int type) { if (type == 1) { - if (Rnd.get(100) < 10) + if (Rnd.get(100) < 5) { player.setHonorCoins(player.getHonorCoins() + 200); - clan.getMembers().forEach(clanMember -> - { - sendMail(clanMember.getObjectId(), 1, player.getName()); - }); + clan.getMembers().forEach(clanMember -> sendMail(clanMember.getObjectId(), 1, player.getName())); } } else if (type == 2) @@ -139,10 +127,7 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket if (Rnd.get(100) < 5) { player.setHonorCoins(player.getHonorCoins() + 1000); - clan.getMembers().forEach(clanMember -> - { - sendMail(clanMember.getObjectId(), 5, player.getName()); - }); + clan.getMembers().forEach(clanMember -> sendMail(clanMember.getObjectId(), 5, player.getName())); } } } @@ -151,7 +136,7 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket { final Message msg = new Message(charId, "Clan Rewards for " + donator + " Donation", "The entire clan receives rewards for " + donator + " donation.", MailType.PLEDGE_DONATION_CRITICAL_SUCCESS); final Mail attachment = msg.createAttachments(); - attachment.addItem("Pledge reward", 95672, amount, null, null); + attachment.addItem("Pledge reward", 95672, amount, null, donator); // Honor Coin Pouch MailManager.getInstance().sendMessage(msg); } } diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/dist/db_installer/sql/game/character_pledge_donation.sql b/L2J_Mobius_Essence_6.1_BattleChronicle/dist/db_installer/sql/game/character_pledge_donation.sql deleted file mode 100644 index 7ba7d84398..0000000000 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/dist/db_installer/sql/game/character_pledge_donation.sql +++ /dev/null @@ -1,6 +0,0 @@ -DROP TABLE IF EXISTS `character_pledge_donation`; -CREATE TABLE IF NOT EXISTS `character_pledge_donation` ( - `charId` int(10) unsigned NOT NULL DEFAULT 0, - `points` int(10) UNSIGNED NOT NULL DEFAULT 0, - PRIMARY KEY (`charId`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; \ No newline at end of file diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/instancemanager/DailyTaskManager.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/instancemanager/DailyTaskManager.java index 1d283647f1..5ac2754841 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/instancemanager/DailyTaskManager.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/instancemanager/DailyTaskManager.java @@ -361,23 +361,28 @@ public class DailyTaskManager private void resetClanDonationPoints() { + // Update data for offline players. try (Connection con = DatabaseFactory.getConnection()) { - try (PreparedStatement ps = con.prepareStatement("DELETE FROM character_pledge_donation WHERE points < ?")) + try (PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE points var = ?")) { - ps.setInt(1, 4); + ps.setString(1, PlayerVariables.CLAN_DONATION_POINTS); ps.execute(); } - for (Player player : World.getInstance().getPlayers()) - { - player.setClanDonationPoints(3); - } } catch (Exception e) { LOGGER.log(Level.SEVERE, "Could not reset clan donation points: ", e); } - LOGGER.info("Weekly caln contributions cleaned."); + + // Update data for online players. + for (Player player : World.getInstance().getPlayers()) + { + player.getVariables().remove(PlayerVariables.CLAN_DONATION_POINTS); + player.getVariables().storeMe(); + } + + LOGGER.info("Daily clan donation points have been reset."); } private void resetWorldChatPoints() diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/Player.java index 0921ea1ad9..9d2ff84f69 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -464,11 +464,6 @@ public class Player extends Playable private static final String INSERT_SUBJUGATION = "REPLACE INTO character_purge (`charId`, `category`, `points`, `keys`) VALUES (?, ?, ?, ?)"; private static final String RESTORE_SUBJUGATION = "SELECT * FROM character_purge WHERE charId=?"; - // Pledge donation: - private static final String DELETE_CLAN_DONATION = "DELETE FROM character_pledge_donation WHERE charId=?"; - private static final String INSERT_CLAN_DONATION = "REPLACE INTO character_pledge_donation (`charId`, `points`) VALUES (?, ?)"; - private static final String RESTORE_CLAN_DONATION = "SELECT * FROM character_pledge_donation WHERE charId=?"; - // Elemental Spirits: private static final String RESTORE_ELEMENTAL_SPIRITS = "SELECT * FROM character_spirits WHERE charId=?"; @@ -954,8 +949,6 @@ public class Player extends Playable private final Map _petEvolves = new HashMap<>(); - private int _clanDonationPoints = 3; - private final List _questTimers = new ArrayList<>(); private final List> _timerHolders = new ArrayList<>(); @@ -7099,9 +7092,6 @@ public class Player extends Playable // Purge. restoreSubjugation(); - // Clan donation. - restoreClanDonation(); - // Load Premium Item List. loadPremiumItemList(); @@ -7258,9 +7248,6 @@ public class Player extends Playable // Purge. storeSubjugation(); - // Pledge donation. - storePledgeDonation(); - final PlayerVariables vars = getScript(PlayerVariables.class); if (vars != null) { @@ -15531,54 +15518,6 @@ public class Player extends Playable public int getClanDonationPoints() { - return _clanDonationPoints; - } - - public void setClanDonationPoints(int points) - { - _clanDonationPoints = points; - } - - public void storePledgeDonation() - { - try (Connection con = DatabaseFactory.getConnection()) - { - try (PreparedStatement st = con.prepareStatement(DELETE_CLAN_DONATION)) - { - st.setInt(1, getObjectId()); - st.execute(); - } - - try (PreparedStatement st = con.prepareStatement(INSERT_CLAN_DONATION)) - { - st.setInt(1, getObjectId()); - st.setInt(2, getClanDonationPoints()); - st.execute(); - } - } - catch (Exception e) - { - LOGGER.log(Level.SEVERE, "Could not store clan donation points for playerId " + getObjectId() + ": ", e); - } - } - - private void restoreClanDonation() - { - try (Connection con = DatabaseFactory.getConnection(); - PreparedStatement statement = con.prepareStatement(RESTORE_CLAN_DONATION)) - { - statement.setInt(1, getObjectId()); - try (ResultSet rset = statement.executeQuery()) - { - if (rset.next()) - { - setClanDonationPoints(rset.getInt("points")); - } - } - } - catch (Exception e) - { - LOGGER.log(Level.SEVERE, "Could not restore clan donation points for playerId: " + getObjectId(), e); - } + return getVariables().getInt(PlayerVariables.CLAN_DONATION_POINTS, 3); } } diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/variables/ClanVariables.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/variables/ClanVariables.java index 54477fb4ab..8cd7253357 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/variables/ClanVariables.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/variables/ClanVariables.java @@ -39,6 +39,8 @@ public class ClanVariables extends AbstractVariables private static final String DELETE_QUERY = "DELETE FROM clan_variables WHERE clanId = ?"; private static final String INSERT_QUERY = "INSERT INTO clan_variables (clanId, var, val) VALUES (?, ?, ?)"; private static final String DELETE_WEAKLY_QUERY = "DELETE FROM clan_variables WHERE var LIKE 'CONTRIBUTION_WEEKLY_%' AND clanId = ?"; + + // Public variable names. public static final String CONTRIBUTION = "CONTRIBUTION_"; public static final String CONTRIBUTION_WEEKLY = "CONTRIBUTION_WEEKLY_"; diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/variables/PlayerVariables.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/variables/PlayerVariables.java index fb753317fd..47930cce74 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/variables/PlayerVariables.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/variables/PlayerVariables.java @@ -38,7 +38,7 @@ public class PlayerVariables extends AbstractVariables private static final String DELETE_QUERY = "DELETE FROM character_variables WHERE charId = ?"; private static final String INSERT_QUERY = "INSERT INTO character_variables (charId, var, val) VALUES (?, ?, ?)"; - // Public variable names + // Public variable names. public static final String INSTANCE_ORIGIN = "INSTANCE_ORIGIN"; public static final String HAIR_ACCESSORY_VARIABLE_NAME = "HAIR_ACCESSORY_ENABLED"; public static final String WORLD_CHAT_VARIABLE_NAME = "WORLD_CHAT_USED"; @@ -81,6 +81,7 @@ public class PlayerVariables extends AbstractVariables public static final String STAT_MEN = "STAT_MEN"; public static final String RESURRECT_BY_PAYMENT_COUNT = "RESURRECT_BY_PAYMENT_COUNT"; public static final String CLAN_JOIN_TIME = "CLAN_JOIN_TIME"; + public static final String CLAN_DONATION_POINTS = "CLAN_DONATION_POINTS"; public static final String HENNA1_DURATION = "HENNA1_DURATION"; public static final String HENNA2_DURATION = "HENNA2_DURATION"; public static final String HENNA3_DURATION = "HENNA3_DURATION"; diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/network/clientpackets/pledgedonation/RequestExPledgeDonationRequest.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/network/clientpackets/pledgedonation/RequestExPledgeDonationRequest.java index 1349c53fcf..1122ca4fc3 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/network/clientpackets/pledgedonation/RequestExPledgeDonationRequest.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/network/clientpackets/pledgedonation/RequestExPledgeDonationRequest.java @@ -25,9 +25,11 @@ import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.itemcontainer.Inventory; import org.l2jmobius.gameserver.model.itemcontainer.Mail; +import org.l2jmobius.gameserver.model.variables.PlayerVariables; import org.l2jmobius.gameserver.network.GameClient; import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket; import org.l2jmobius.gameserver.network.serverpackets.limitshop.ExBloodyCoinCount; +import org.l2jmobius.gameserver.network.serverpackets.pledgedonation.ExPledgeDonationInfo; import org.l2jmobius.gameserver.network.serverpackets.pledgedonation.ExPledgeDonationRequest; /** @@ -63,7 +65,7 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket { case 0: { - if (player.reduceAdena("pledge donation", 10000, null, true)) + if (player.reduceAdena("Pledge donation", 10000, null, true)) { clan.addExp(player.getObjectId(), 9); } @@ -77,15 +79,9 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket { if (player.getInventory().getInventoryItemCount(Inventory.LCOIN_ID, -1) >= 100) { - if (player.getInventory().destroyItemByItemId("pledge donation", Inventory.LCOIN_ID, 100, player, null) != null) - { - clan.addExp(player.getObjectId(), 30); - player.setHonorCoins(player.getHonorCoins() + 100); - } - else - { - player.sendPacket(new ExPledgeDonationRequest(false, _type, 2)); - } + player.destroyItemByItemId("Pledge donation", Inventory.LCOIN_ID, 100, player, true); + clan.addExp(player.getObjectId(), 30); + player.setHonorCoins(player.getHonorCoins() + 100); } else { @@ -97,15 +93,9 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket { if (player.getInventory().getInventoryItemCount(Inventory.LCOIN_ID, -1) >= 500) { - if (player.getInventory().destroyItemByItemId("pledge donation", Inventory.LCOIN_ID, 500, player, null) != null) - { - clan.addExp(player.getObjectId(), 150); - player.setHonorCoins(player.getHonorCoins() + 500); - } - else - { - player.sendPacket(new ExPledgeDonationRequest(false, _type, 2)); - } + player.destroyItemByItemId("Pledge donation", Inventory.LCOIN_ID, 500, player, true); + clan.addExp(player.getObjectId(), 150); + player.setHonorCoins(player.getHonorCoins() + 500); } else { @@ -114,24 +104,22 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket break; } } - player.setClanDonationPoints(Math.max(player.getClanDonationPoints() - 1, 0)); + player.getVariables().set(PlayerVariables.CLAN_DONATION_POINTS, Math.max(player.getClanDonationPoints() - 1, 0)); criticalSuccess(player, clan, _type); player.sendPacket(new ExBloodyCoinCount(player)); player.sendItemList(); player.sendPacket(new ExPledgeDonationRequest(true, _type, player.getClanDonationPoints())); + player.sendPacket(new ExPledgeDonationInfo(player.getClanDonationPoints(), true)); } private void criticalSuccess(Player player, Clan clan, int type) { if (type == 1) { - if (Rnd.get(100) < 10) + if (Rnd.get(100) < 5) { player.setHonorCoins(player.getHonorCoins() + 200); - clan.getMembers().forEach(clanMember -> - { - sendMail(clanMember.getObjectId(), 1, player.getName()); - }); + clan.getMembers().forEach(clanMember -> sendMail(clanMember.getObjectId(), 1, player.getName())); } } else if (type == 2) @@ -139,10 +127,7 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket if (Rnd.get(100) < 5) { player.setHonorCoins(player.getHonorCoins() + 1000); - clan.getMembers().forEach(clanMember -> - { - sendMail(clanMember.getObjectId(), 5, player.getName()); - }); + clan.getMembers().forEach(clanMember -> sendMail(clanMember.getObjectId(), 5, player.getName())); } } } @@ -151,7 +136,7 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket { final Message msg = new Message(charId, "Clan Rewards for " + donator + " Donation", "The entire clan receives rewards for " + donator + " donation.", MailType.PLEDGE_DONATION_CRITICAL_SUCCESS); final Mail attachment = msg.createAttachments(); - attachment.addItem("Pledge reward", 95672, amount, null, null); + attachment.addItem("Pledge reward", 95672, amount, null, donator); // Honor Coin Pouch MailManager.getInstance().sendMessage(msg); } } diff --git a/L2J_Mobius_Essence_6.2_Vanguard/dist/db_installer/sql/game/character_pledge_donation.sql b/L2J_Mobius_Essence_6.2_Vanguard/dist/db_installer/sql/game/character_pledge_donation.sql deleted file mode 100644 index 7ba7d84398..0000000000 --- a/L2J_Mobius_Essence_6.2_Vanguard/dist/db_installer/sql/game/character_pledge_donation.sql +++ /dev/null @@ -1,6 +0,0 @@ -DROP TABLE IF EXISTS `character_pledge_donation`; -CREATE TABLE IF NOT EXISTS `character_pledge_donation` ( - `charId` int(10) unsigned NOT NULL DEFAULT 0, - `points` int(10) UNSIGNED NOT NULL DEFAULT 0, - PRIMARY KEY (`charId`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; \ No newline at end of file diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/instancemanager/DailyTaskManager.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/instancemanager/DailyTaskManager.java index 1d283647f1..5ac2754841 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/instancemanager/DailyTaskManager.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/instancemanager/DailyTaskManager.java @@ -361,23 +361,28 @@ public class DailyTaskManager private void resetClanDonationPoints() { + // Update data for offline players. try (Connection con = DatabaseFactory.getConnection()) { - try (PreparedStatement ps = con.prepareStatement("DELETE FROM character_pledge_donation WHERE points < ?")) + try (PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE points var = ?")) { - ps.setInt(1, 4); + ps.setString(1, PlayerVariables.CLAN_DONATION_POINTS); ps.execute(); } - for (Player player : World.getInstance().getPlayers()) - { - player.setClanDonationPoints(3); - } } catch (Exception e) { LOGGER.log(Level.SEVERE, "Could not reset clan donation points: ", e); } - LOGGER.info("Weekly caln contributions cleaned."); + + // Update data for online players. + for (Player player : World.getInstance().getPlayers()) + { + player.getVariables().remove(PlayerVariables.CLAN_DONATION_POINTS); + player.getVariables().storeMe(); + } + + LOGGER.info("Daily clan donation points have been reset."); } private void resetWorldChatPoints() diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/Player.java index bc378b60a3..f651bfae72 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -466,11 +466,6 @@ public class Player extends Playable private static final String INSERT_SUBJUGATION = "REPLACE INTO character_purge (`charId`, `category`, `points`, `keys`) VALUES (?, ?, ?, ?)"; private static final String RESTORE_SUBJUGATION = "SELECT * FROM character_purge WHERE charId=?"; - // Pledge donation: - private static final String DELETE_CLAN_DONATION = "DELETE FROM character_pledge_donation WHERE charId=?"; - private static final String INSERT_CLAN_DONATION = "REPLACE INTO character_pledge_donation (`charId`, `points`) VALUES (?, ?)"; - private static final String RESTORE_CLAN_DONATION = "SELECT * FROM character_pledge_donation WHERE charId=?"; - // Elemental Spirits: private static final String RESTORE_ELEMENTAL_SPIRITS = "SELECT * FROM character_spirits WHERE charId=?"; @@ -961,8 +956,6 @@ public class Player extends Playable private final Map _petEvolves = new HashMap<>(); - private int _clanDonationPoints = 3; - private MissionLevelPlayerDataHolder _missionLevelProgress = null; private final List _questTimers = new ArrayList<>(); @@ -7140,9 +7133,6 @@ public class Player extends Playable // Purge. restoreSubjugation(); - // Clan donation. - restoreClanDonation(); - // Load Premium Item List. loadPremiumItemList(); @@ -7299,9 +7289,6 @@ public class Player extends Playable // Purge. storeSubjugation(); - // Pledge donation. - storePledgeDonation(); - final PlayerVariables vars = getScript(PlayerVariables.class); if (vars != null) { @@ -15620,55 +15607,7 @@ public class Player extends Playable public int getClanDonationPoints() { - return _clanDonationPoints; - } - - public void setClanDonationPoints(int points) - { - _clanDonationPoints = points; - } - - public void storePledgeDonation() - { - try (Connection con = DatabaseFactory.getConnection()) - { - try (PreparedStatement st = con.prepareStatement(DELETE_CLAN_DONATION)) - { - st.setInt(1, getObjectId()); - st.execute(); - } - - try (PreparedStatement st = con.prepareStatement(INSERT_CLAN_DONATION)) - { - st.setInt(1, getObjectId()); - st.setInt(2, getClanDonationPoints()); - st.execute(); - } - } - catch (Exception e) - { - LOGGER.log(Level.SEVERE, "Could not store clan donation points for playerId " + getObjectId() + ": ", e); - } - } - - private void restoreClanDonation() - { - try (Connection con = DatabaseFactory.getConnection(); - PreparedStatement statement = con.prepareStatement(RESTORE_CLAN_DONATION)) - { - statement.setInt(1, getObjectId()); - try (ResultSet rset = statement.executeQuery()) - { - if (rset.next()) - { - setClanDonationPoints(rset.getInt("points")); - } - } - } - catch (Exception e) - { - LOGGER.log(Level.SEVERE, "Could not restore clan donation points for playerId: " + getObjectId(), e); - } + return getVariables().getInt(PlayerVariables.CLAN_DONATION_POINTS, 3); } public MissionLevelPlayerDataHolder getMissionLevelProgress() diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/variables/ClanVariables.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/variables/ClanVariables.java index 54477fb4ab..8cd7253357 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/variables/ClanVariables.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/variables/ClanVariables.java @@ -39,6 +39,8 @@ public class ClanVariables extends AbstractVariables private static final String DELETE_QUERY = "DELETE FROM clan_variables WHERE clanId = ?"; private static final String INSERT_QUERY = "INSERT INTO clan_variables (clanId, var, val) VALUES (?, ?, ?)"; private static final String DELETE_WEAKLY_QUERY = "DELETE FROM clan_variables WHERE var LIKE 'CONTRIBUTION_WEEKLY_%' AND clanId = ?"; + + // Public variable names. public static final String CONTRIBUTION = "CONTRIBUTION_"; public static final String CONTRIBUTION_WEEKLY = "CONTRIBUTION_WEEKLY_"; diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/variables/PlayerVariables.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/variables/PlayerVariables.java index e6a6dfca1f..8eea4e5c1d 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/variables/PlayerVariables.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/variables/PlayerVariables.java @@ -38,7 +38,7 @@ public class PlayerVariables extends AbstractVariables private static final String DELETE_QUERY = "DELETE FROM character_variables WHERE charId = ?"; private static final String INSERT_QUERY = "INSERT INTO character_variables (charId, var, val) VALUES (?, ?, ?)"; - // Public variable names + // Public variable names. public static final String INSTANCE_ORIGIN = "INSTANCE_ORIGIN"; public static final String HAIR_ACCESSORY_VARIABLE_NAME = "HAIR_ACCESSORY_ENABLED"; public static final String WORLD_CHAT_VARIABLE_NAME = "WORLD_CHAT_USED"; @@ -82,6 +82,7 @@ public class PlayerVariables extends AbstractVariables public static final String STAT_MEN = "STAT_MEN"; public static final String RESURRECT_BY_PAYMENT_COUNT = "RESURRECT_BY_PAYMENT_COUNT"; public static final String CLAN_JOIN_TIME = "CLAN_JOIN_TIME"; + public static final String CLAN_DONATION_POINTS = "CLAN_DONATION_POINTS"; public static final String HENNA1_DURATION = "HENNA1_DURATION"; public static final String HENNA2_DURATION = "HENNA2_DURATION"; public static final String HENNA3_DURATION = "HENNA3_DURATION"; diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/network/clientpackets/pledgedonation/RequestExPledgeDonationRequest.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/network/clientpackets/pledgedonation/RequestExPledgeDonationRequest.java index 1349c53fcf..61490d1ab5 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/network/clientpackets/pledgedonation/RequestExPledgeDonationRequest.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/network/clientpackets/pledgedonation/RequestExPledgeDonationRequest.java @@ -25,9 +25,11 @@ import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.itemcontainer.Inventory; import org.l2jmobius.gameserver.model.itemcontainer.Mail; +import org.l2jmobius.gameserver.model.variables.PlayerVariables; import org.l2jmobius.gameserver.network.GameClient; import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket; import org.l2jmobius.gameserver.network.serverpackets.limitshop.ExBloodyCoinCount; +import org.l2jmobius.gameserver.network.serverpackets.pledgedonation.ExPledgeDonationInfo; import org.l2jmobius.gameserver.network.serverpackets.pledgedonation.ExPledgeDonationRequest; /** @@ -63,7 +65,7 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket { case 0: { - if (player.reduceAdena("pledge donation", 10000, null, true)) + if (player.reduceAdena("Pledge donation", 100000, null, true)) { clan.addExp(player.getObjectId(), 9); } @@ -77,15 +79,9 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket { if (player.getInventory().getInventoryItemCount(Inventory.LCOIN_ID, -1) >= 100) { - if (player.getInventory().destroyItemByItemId("pledge donation", Inventory.LCOIN_ID, 100, player, null) != null) - { - clan.addExp(player.getObjectId(), 30); - player.setHonorCoins(player.getHonorCoins() + 100); - } - else - { - player.sendPacket(new ExPledgeDonationRequest(false, _type, 2)); - } + player.destroyItemByItemId("Pledge donation", Inventory.LCOIN_ID, 100, player, true); + clan.addExp(player.getObjectId(), 30); + player.setHonorCoins(player.getHonorCoins() + 100); } else { @@ -97,15 +93,9 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket { if (player.getInventory().getInventoryItemCount(Inventory.LCOIN_ID, -1) >= 500) { - if (player.getInventory().destroyItemByItemId("pledge donation", Inventory.LCOIN_ID, 500, player, null) != null) - { - clan.addExp(player.getObjectId(), 150); - player.setHonorCoins(player.getHonorCoins() + 500); - } - else - { - player.sendPacket(new ExPledgeDonationRequest(false, _type, 2)); - } + player.destroyItemByItemId("Pledge donation", Inventory.LCOIN_ID, 500, player, true); + clan.addExp(player.getObjectId(), 150); + player.setHonorCoins(player.getHonorCoins() + 500); } else { @@ -114,24 +104,22 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket break; } } - player.setClanDonationPoints(Math.max(player.getClanDonationPoints() - 1, 0)); + player.getVariables().set(PlayerVariables.CLAN_DONATION_POINTS, Math.max(player.getClanDonationPoints() - 1, 0)); criticalSuccess(player, clan, _type); player.sendPacket(new ExBloodyCoinCount(player)); player.sendItemList(); player.sendPacket(new ExPledgeDonationRequest(true, _type, player.getClanDonationPoints())); + player.sendPacket(new ExPledgeDonationInfo(player.getClanDonationPoints(), true)); } private void criticalSuccess(Player player, Clan clan, int type) { if (type == 1) { - if (Rnd.get(100) < 10) + if (Rnd.get(100) < 5) { player.setHonorCoins(player.getHonorCoins() + 200); - clan.getMembers().forEach(clanMember -> - { - sendMail(clanMember.getObjectId(), 1, player.getName()); - }); + clan.getMembers().forEach(clanMember -> sendMail(clanMember.getObjectId(), 1, player.getName())); } } else if (type == 2) @@ -139,10 +127,7 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket if (Rnd.get(100) < 5) { player.setHonorCoins(player.getHonorCoins() + 1000); - clan.getMembers().forEach(clanMember -> - { - sendMail(clanMember.getObjectId(), 5, player.getName()); - }); + clan.getMembers().forEach(clanMember -> sendMail(clanMember.getObjectId(), 5, player.getName())); } } } @@ -151,7 +136,7 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket { final Message msg = new Message(charId, "Clan Rewards for " + donator + " Donation", "The entire clan receives rewards for " + donator + " donation.", MailType.PLEDGE_DONATION_CRITICAL_SUCCESS); final Mail attachment = msg.createAttachments(); - attachment.addItem("Pledge reward", 95672, amount, null, null); + attachment.addItem("Pledge reward", 95672, amount, null, donator); // Honor Coin Pouch MailManager.getInstance().sendMessage(msg); } }