diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/xsd/DailyMission.xsd b/L2J_Mobius_2.5_Underground/dist/game/data/xsd/DailyMission.xsd index 82b0a15fe4..d8e4390d3c 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/xsd/DailyMission.xsd +++ b/L2J_Mobius_2.5_Underground/dist/game/data/xsd/DailyMission.xsd @@ -36,7 +36,8 @@ - + + diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java index b97a7ad2d4..364115a2e3 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java @@ -71,21 +71,34 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer public synchronized void reset() { - try (Connection con = DatabaseFactory.getConnection(); - PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + if (_holder.dailyReset()) { - ps.setInt(1, _holder.getId()); - ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); - ps.execute(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + { + ps.setInt(1, _holder.getId()); + ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } - catch (SQLException e) + else { - LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); - } - finally - { - _entries.clear(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = 3")) + { + ps.setInt(1, _holder.getId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } + _entries.clear(); } public boolean requestReward(PlayerInstance player) diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java index 1e473d8213..5223b47ae9 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java @@ -37,6 +37,7 @@ public class DailyMissionDataHolder private final List _classRestriction; private final int _requiredCompletions; private final StatsSet _params; + private final boolean _dailyReset; private final boolean _isOneTime; private final AbstractDailyMissionHandler _handler; @@ -50,6 +51,7 @@ public class DailyMissionDataHolder _rewardsItems = set.getList("items", ItemHolder.class); _classRestriction = set.getList("classRestriction", ClassId.class); _params = set.getObject("params", StatsSet.class); + _dailyReset = set.getBoolean("dailyReset", true); _isOneTime = set.getBoolean("isOneTime", true); _handler = handler != null ? handler.apply(this) : null; } @@ -84,6 +86,11 @@ public class DailyMissionDataHolder return _params; } + public boolean dailyReset() + { + return _dailyReset; + } + public boolean isOneTime() { return _isOneTime; diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/xsd/DailyMission.xsd b/L2J_Mobius_3.0_Helios/dist/game/data/xsd/DailyMission.xsd index 82b0a15fe4..d8e4390d3c 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/xsd/DailyMission.xsd +++ b/L2J_Mobius_3.0_Helios/dist/game/data/xsd/DailyMission.xsd @@ -36,7 +36,8 @@ - + + diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java index b97a7ad2d4..364115a2e3 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java @@ -71,21 +71,34 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer public synchronized void reset() { - try (Connection con = DatabaseFactory.getConnection(); - PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + if (_holder.dailyReset()) { - ps.setInt(1, _holder.getId()); - ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); - ps.execute(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + { + ps.setInt(1, _holder.getId()); + ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } - catch (SQLException e) + else { - LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); - } - finally - { - _entries.clear(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = 3")) + { + ps.setInt(1, _holder.getId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } + _entries.clear(); } public boolean requestReward(PlayerInstance player) diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java index 1e473d8213..5223b47ae9 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java @@ -37,6 +37,7 @@ public class DailyMissionDataHolder private final List _classRestriction; private final int _requiredCompletions; private final StatsSet _params; + private final boolean _dailyReset; private final boolean _isOneTime; private final AbstractDailyMissionHandler _handler; @@ -50,6 +51,7 @@ public class DailyMissionDataHolder _rewardsItems = set.getList("items", ItemHolder.class); _classRestriction = set.getList("classRestriction", ClassId.class); _params = set.getObject("params", StatsSet.class); + _dailyReset = set.getBoolean("dailyReset", true); _isOneTime = set.getBoolean("isOneTime", true); _handler = handler != null ? handler.apply(this) : null; } @@ -84,6 +86,11 @@ public class DailyMissionDataHolder return _params; } + public boolean dailyReset() + { + return _dailyReset; + } + public boolean isOneTime() { return _isOneTime; diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/xsd/DailyMission.xsd b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/xsd/DailyMission.xsd index b201347d63..9da08900d0 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/xsd/DailyMission.xsd +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/xsd/DailyMission.xsd @@ -36,7 +36,8 @@ - + + diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java index ad57fe1f9a..182383217b 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java @@ -77,21 +77,34 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer public synchronized void reset() { - try (Connection con = DatabaseFactory.getConnection(); - PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + if (_holder.dailyReset()) { - ps.setInt(1, _holder.getId()); - ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); - ps.execute(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + { + ps.setInt(1, _holder.getId()); + ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } - catch (SQLException e) + else { - LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); - } - finally - { - _entries.clear(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = 3")) + { + ps.setInt(1, _holder.getId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } + _entries.clear(); } public boolean requestReward(PlayerInstance player) diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java index 91caa42a7e..9d5306eb90 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java @@ -37,6 +37,7 @@ public class DailyMissionDataHolder private final List _classRestriction; private final int _requiredCompletions; private final StatsSet _params; + private final boolean _dailyReset; private final boolean _isOneTime; private final boolean _isMainClassOnly; private final boolean _isDualClassOnly; @@ -53,6 +54,7 @@ public class DailyMissionDataHolder _rewardsItems = set.getList("items", ItemHolder.class); _classRestriction = set.getList("classRestriction", ClassId.class); _params = set.getObject("params", StatsSet.class); + _dailyReset = set.getBoolean("dailyReset", true); _isOneTime = set.getBoolean("isOneTime", true); _isMainClassOnly = set.getBoolean("isMainClassOnly", true); _isDualClassOnly = set.getBoolean("isDualClassOnly", false); @@ -90,6 +92,11 @@ public class DailyMissionDataHolder return _params; } + public boolean dailyReset() + { + return _dailyReset; + } + public boolean isOneTime() { return _isOneTime; diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/xsd/DailyMission.xsd b/L2J_Mobius_5.0_Salvation/dist/game/data/xsd/DailyMission.xsd index 0e170cc345..9da08900d0 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/xsd/DailyMission.xsd +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/xsd/DailyMission.xsd @@ -37,6 +37,7 @@ + diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java index 7854207c9d..5c4985b1a6 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java @@ -84,21 +84,34 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer public synchronized void reset() { - try (Connection con = DatabaseFactory.getConnection(); - PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + if (_holder.dailyReset()) { - ps.setInt(1, _holder.getId()); - ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); - ps.execute(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + { + ps.setInt(1, _holder.getId()); + ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } - catch (SQLException e) + else { - LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); - } - finally - { - _entries.clear(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = 3")) + { + ps.setInt(1, _holder.getId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } + _entries.clear(); } public boolean requestReward(PlayerInstance player) diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java index 4a4fc3eedd..f1c86b8469 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java @@ -37,6 +37,7 @@ public class DailyMissionDataHolder private final List _classRestriction; private final int _requiredCompletions; private final StatsSet _params; + private final boolean _dailyReset; private final boolean _isOneTime; private final boolean _isMainClassOnly; private final boolean _isDualClassOnly; @@ -53,6 +54,7 @@ public class DailyMissionDataHolder _rewardsItems = set.getList("items", ItemHolder.class); _classRestriction = set.getList("classRestriction", ClassId.class); _params = set.getObject("params", StatsSet.class); + _dailyReset = set.getBoolean("dailyReset", true); _isOneTime = set.getBoolean("isOneTime", true); _isMainClassOnly = set.getBoolean("isMainClassOnly", true); _isDualClassOnly = set.getBoolean("isDualClassOnly", false); @@ -90,6 +92,11 @@ public class DailyMissionDataHolder return _params; } + public boolean dailyReset() + { + return _dailyReset; + } + public boolean isOneTime() { return _isOneTime; diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/xsd/DailyMission.xsd b/L2J_Mobius_5.5_EtinasFate/dist/game/data/xsd/DailyMission.xsd index 0e170cc345..9da08900d0 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/xsd/DailyMission.xsd +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/xsd/DailyMission.xsd @@ -37,6 +37,7 @@ + diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java index 7854207c9d..5c4985b1a6 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java @@ -84,21 +84,34 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer public synchronized void reset() { - try (Connection con = DatabaseFactory.getConnection(); - PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + if (_holder.dailyReset()) { - ps.setInt(1, _holder.getId()); - ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); - ps.execute(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + { + ps.setInt(1, _holder.getId()); + ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } - catch (SQLException e) + else { - LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); - } - finally - { - _entries.clear(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = 3")) + { + ps.setInt(1, _holder.getId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } + _entries.clear(); } public boolean requestReward(PlayerInstance player) diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java index 4a4fc3eedd..f1c86b8469 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java @@ -37,6 +37,7 @@ public class DailyMissionDataHolder private final List _classRestriction; private final int _requiredCompletions; private final StatsSet _params; + private final boolean _dailyReset; private final boolean _isOneTime; private final boolean _isMainClassOnly; private final boolean _isDualClassOnly; @@ -53,6 +54,7 @@ public class DailyMissionDataHolder _rewardsItems = set.getList("items", ItemHolder.class); _classRestriction = set.getList("classRestriction", ClassId.class); _params = set.getObject("params", StatsSet.class); + _dailyReset = set.getBoolean("dailyReset", true); _isOneTime = set.getBoolean("isOneTime", true); _isMainClassOnly = set.getBoolean("isMainClassOnly", true); _isDualClassOnly = set.getBoolean("isDualClassOnly", false); @@ -90,6 +92,11 @@ public class DailyMissionDataHolder return _params; } + public boolean dailyReset() + { + return _dailyReset; + } + public boolean isOneTime() { return _isOneTime; diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/DailyMission.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/DailyMission.xml index 48794360e9..204cbbac2a 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/DailyMission.xml +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/DailyMission.xml @@ -1,6 +1,6 @@ - + 85 @@ -20,7 +20,7 @@ --> - + 23653,23654,23655,23656,23657,23658,23659,23660,23661,23662,23663,23664,23684,23685,23686 @@ -32,7 +32,7 @@ - + @@ -63,7 +63,7 @@ --> - + 29218,29194,29212 @@ -96,7 +96,7 @@ --> - + 29194,29212,29236,29237,26236 @@ -122,7 +122,7 @@ --> - + 26124,26143 @@ -143,7 +143,7 @@ --> - + @@ -151,7 +151,7 @@ - + 23465 @@ -573,7 +573,7 @@ --> - + 1 @@ -584,7 +584,7 @@ - + 1 @@ -595,7 +595,7 @@ - + 1 @@ -606,7 +606,7 @@ - + 23704,23703,23696,24068 @@ -630,7 +630,7 @@ - + 29068,29028,29240,29367,29305,29319 @@ -642,7 +642,7 @@ - + 29068,29028,29240,29367,29305,29319 @@ -757,7 +757,7 @@ --> - + diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/xsd/DailyMission.xsd b/L2J_Mobius_6.0_Fafurion/dist/game/data/xsd/DailyMission.xsd index 0e170cc345..9da08900d0 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/xsd/DailyMission.xsd +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/xsd/DailyMission.xsd @@ -37,6 +37,7 @@ + diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java index 7854207c9d..5c4985b1a6 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java @@ -84,21 +84,34 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer public synchronized void reset() { - try (Connection con = DatabaseFactory.getConnection(); - PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + if (_holder.dailyReset()) { - ps.setInt(1, _holder.getId()); - ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); - ps.execute(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + { + ps.setInt(1, _holder.getId()); + ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } - catch (SQLException e) + else { - LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); - } - finally - { - _entries.clear(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = 3")) + { + ps.setInt(1, _holder.getId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } + _entries.clear(); } public boolean requestReward(PlayerInstance player) diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java index 4a4fc3eedd..f1c86b8469 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java @@ -37,6 +37,7 @@ public class DailyMissionDataHolder private final List _classRestriction; private final int _requiredCompletions; private final StatsSet _params; + private final boolean _dailyReset; private final boolean _isOneTime; private final boolean _isMainClassOnly; private final boolean _isDualClassOnly; @@ -53,6 +54,7 @@ public class DailyMissionDataHolder _rewardsItems = set.getList("items", ItemHolder.class); _classRestriction = set.getList("classRestriction", ClassId.class); _params = set.getObject("params", StatsSet.class); + _dailyReset = set.getBoolean("dailyReset", true); _isOneTime = set.getBoolean("isOneTime", true); _isMainClassOnly = set.getBoolean("isMainClassOnly", true); _isDualClassOnly = set.getBoolean("isDualClassOnly", false); @@ -90,6 +92,11 @@ public class DailyMissionDataHolder return _params; } + public boolean dailyReset() + { + return _dailyReset; + } + public boolean isOneTime() { return _isOneTime; diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/DailyMission.xml b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/DailyMission.xml index 48794360e9..204cbbac2a 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/DailyMission.xml +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/DailyMission.xml @@ -1,6 +1,6 @@ - + 85 @@ -20,7 +20,7 @@ --> - + 23653,23654,23655,23656,23657,23658,23659,23660,23661,23662,23663,23664,23684,23685,23686 @@ -32,7 +32,7 @@ - + @@ -63,7 +63,7 @@ --> - + 29218,29194,29212 @@ -96,7 +96,7 @@ --> - + 29194,29212,29236,29237,26236 @@ -122,7 +122,7 @@ --> - + 26124,26143 @@ -143,7 +143,7 @@ --> - + @@ -151,7 +151,7 @@ - + 23465 @@ -573,7 +573,7 @@ --> - + 1 @@ -584,7 +584,7 @@ - + 1 @@ -595,7 +595,7 @@ - + 1 @@ -606,7 +606,7 @@ - + 23704,23703,23696,24068 @@ -630,7 +630,7 @@ - + 29068,29028,29240,29367,29305,29319 @@ -642,7 +642,7 @@ - + 29068,29028,29240,29367,29305,29319 @@ -757,7 +757,7 @@ --> - + diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/xsd/DailyMission.xsd b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/xsd/DailyMission.xsd index 0e170cc345..9da08900d0 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/xsd/DailyMission.xsd +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/xsd/DailyMission.xsd @@ -37,6 +37,7 @@ + diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java index 7854207c9d..5c4985b1a6 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java @@ -84,21 +84,34 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer public synchronized void reset() { - try (Connection con = DatabaseFactory.getConnection(); - PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + if (_holder.dailyReset()) { - ps.setInt(1, _holder.getId()); - ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); - ps.execute(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + { + ps.setInt(1, _holder.getId()); + ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } - catch (SQLException e) + else { - LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); - } - finally - { - _entries.clear(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = 3")) + { + ps.setInt(1, _holder.getId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } + _entries.clear(); } public boolean requestReward(PlayerInstance player) diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java index 4a4fc3eedd..f1c86b8469 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java @@ -37,6 +37,7 @@ public class DailyMissionDataHolder private final List _classRestriction; private final int _requiredCompletions; private final StatsSet _params; + private final boolean _dailyReset; private final boolean _isOneTime; private final boolean _isMainClassOnly; private final boolean _isDualClassOnly; @@ -53,6 +54,7 @@ public class DailyMissionDataHolder _rewardsItems = set.getList("items", ItemHolder.class); _classRestriction = set.getList("classRestriction", ClassId.class); _params = set.getObject("params", StatsSet.class); + _dailyReset = set.getBoolean("dailyReset", true); _isOneTime = set.getBoolean("isOneTime", true); _isMainClassOnly = set.getBoolean("isMainClassOnly", true); _isDualClassOnly = set.getBoolean("isDualClassOnly", false); @@ -90,6 +92,11 @@ public class DailyMissionDataHolder return _params; } + public boolean dailyReset() + { + return _dailyReset; + } + public boolean isOneTime() { return _isOneTime; diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/xsd/DailyMission.xsd b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/xsd/DailyMission.xsd index 82b0a15fe4..d8e4390d3c 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/xsd/DailyMission.xsd +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/xsd/DailyMission.xsd @@ -36,7 +36,8 @@ - + + diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java index b97a7ad2d4..364115a2e3 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java @@ -71,21 +71,34 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer public synchronized void reset() { - try (Connection con = DatabaseFactory.getConnection(); - PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + if (_holder.dailyReset()) { - ps.setInt(1, _holder.getId()); - ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); - ps.execute(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + { + ps.setInt(1, _holder.getId()); + ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } - catch (SQLException e) + else { - LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); - } - finally - { - _entries.clear(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = 3")) + { + ps.setInt(1, _holder.getId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } + _entries.clear(); } public boolean requestReward(PlayerInstance player) diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java index 1e473d8213..5223b47ae9 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java @@ -37,6 +37,7 @@ public class DailyMissionDataHolder private final List _classRestriction; private final int _requiredCompletions; private final StatsSet _params; + private final boolean _dailyReset; private final boolean _isOneTime; private final AbstractDailyMissionHandler _handler; @@ -50,6 +51,7 @@ public class DailyMissionDataHolder _rewardsItems = set.getList("items", ItemHolder.class); _classRestriction = set.getList("classRestriction", ClassId.class); _params = set.getObject("params", StatsSet.class); + _dailyReset = set.getBoolean("dailyReset", true); _isOneTime = set.getBoolean("isOneTime", true); _handler = handler != null ? handler.apply(this) : null; } @@ -84,6 +86,11 @@ public class DailyMissionDataHolder return _params; } + public boolean dailyReset() + { + return _dailyReset; + } + public boolean isOneTime() { return _isOneTime; diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/xsd/DailyMission.xsd b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/xsd/DailyMission.xsd index b201347d63..9da08900d0 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/xsd/DailyMission.xsd +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/xsd/DailyMission.xsd @@ -36,7 +36,8 @@ - + + diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java index ad57fe1f9a..182383217b 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java @@ -77,21 +77,34 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer public synchronized void reset() { - try (Connection con = DatabaseFactory.getConnection(); - PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + if (_holder.dailyReset()) { - ps.setInt(1, _holder.getId()); - ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); - ps.execute(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + { + ps.setInt(1, _holder.getId()); + ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } - catch (SQLException e) + else { - LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); - } - finally - { - _entries.clear(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = 3")) + { + ps.setInt(1, _holder.getId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } + _entries.clear(); } public boolean requestReward(PlayerInstance player) diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java index 1eaff5d6f3..efc53c7e48 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java @@ -37,6 +37,7 @@ public class DailyMissionDataHolder private final List _classRestriction; private final int _requiredCompletions; private final StatsSet _params; + private final boolean _dailyReset; private final boolean _isOneTime; private final boolean _isMainClassOnly; private final boolean _isDualClassOnly; @@ -53,6 +54,7 @@ public class DailyMissionDataHolder _rewardsItems = set.getList("items", ItemHolder.class); _classRestriction = set.getList("classRestriction", ClassId.class); _params = set.getObject("params", StatsSet.class); + _dailyReset = set.getBoolean("dailyReset", true); _isOneTime = set.getBoolean("isOneTime", true); _isMainClassOnly = set.getBoolean("isMainClassOnly", true); _isDualClassOnly = set.getBoolean("isDualClassOnly", false); @@ -90,6 +92,11 @@ public class DailyMissionDataHolder return _params; } + public boolean dailyReset() + { + return _dailyReset; + } + public boolean isOneTime() { return _isOneTime; diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/xsd/DailyMission.xsd b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/xsd/DailyMission.xsd index b201347d63..9da08900d0 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/xsd/DailyMission.xsd +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/xsd/DailyMission.xsd @@ -36,7 +36,8 @@ - + + diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java index ad57fe1f9a..182383217b 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java @@ -77,21 +77,34 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer public synchronized void reset() { - try (Connection con = DatabaseFactory.getConnection(); - PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + if (_holder.dailyReset()) { - ps.setInt(1, _holder.getId()); - ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); - ps.execute(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + { + ps.setInt(1, _holder.getId()); + ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } - catch (SQLException e) + else { - LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); - } - finally - { - _entries.clear(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = 3")) + { + ps.setInt(1, _holder.getId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } + _entries.clear(); } public boolean requestReward(PlayerInstance player) diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java index 1eaff5d6f3..efc53c7e48 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java @@ -37,6 +37,7 @@ public class DailyMissionDataHolder private final List _classRestriction; private final int _requiredCompletions; private final StatsSet _params; + private final boolean _dailyReset; private final boolean _isOneTime; private final boolean _isMainClassOnly; private final boolean _isDualClassOnly; @@ -53,6 +54,7 @@ public class DailyMissionDataHolder _rewardsItems = set.getList("items", ItemHolder.class); _classRestriction = set.getList("classRestriction", ClassId.class); _params = set.getObject("params", StatsSet.class); + _dailyReset = set.getBoolean("dailyReset", true); _isOneTime = set.getBoolean("isOneTime", true); _isMainClassOnly = set.getBoolean("isMainClassOnly", true); _isDualClassOnly = set.getBoolean("isDualClassOnly", false); @@ -90,6 +92,11 @@ public class DailyMissionDataHolder return _params; } + public boolean dailyReset() + { + return _dailyReset; + } + public boolean isOneTime() { return _isOneTime; diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/xsd/DailyMission.xsd b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/xsd/DailyMission.xsd index b201347d63..9da08900d0 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/xsd/DailyMission.xsd +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/xsd/DailyMission.xsd @@ -36,7 +36,8 @@ - + + diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java index ad57fe1f9a..182383217b 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java @@ -77,21 +77,34 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer public synchronized void reset() { - try (Connection con = DatabaseFactory.getConnection(); - PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + if (_holder.dailyReset()) { - ps.setInt(1, _holder.getId()); - ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); - ps.execute(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + { + ps.setInt(1, _holder.getId()); + ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } - catch (SQLException e) + else { - LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); - } - finally - { - _entries.clear(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = 3")) + { + ps.setInt(1, _holder.getId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } + _entries.clear(); } public boolean requestReward(PlayerInstance player) diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java index 1eaff5d6f3..efc53c7e48 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java @@ -37,6 +37,7 @@ public class DailyMissionDataHolder private final List _classRestriction; private final int _requiredCompletions; private final StatsSet _params; + private final boolean _dailyReset; private final boolean _isOneTime; private final boolean _isMainClassOnly; private final boolean _isDualClassOnly; @@ -53,6 +54,7 @@ public class DailyMissionDataHolder _rewardsItems = set.getList("items", ItemHolder.class); _classRestriction = set.getList("classRestriction", ClassId.class); _params = set.getObject("params", StatsSet.class); + _dailyReset = set.getBoolean("dailyReset", true); _isOneTime = set.getBoolean("isOneTime", true); _isMainClassOnly = set.getBoolean("isMainClassOnly", true); _isDualClassOnly = set.getBoolean("isDualClassOnly", false); @@ -90,6 +92,11 @@ public class DailyMissionDataHolder return _params; } + public boolean dailyReset() + { + return _dailyReset; + } + public boolean isOneTime() { return _isOneTime; diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/DailyMission.xml b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/DailyMission.xml index 598d9b4ced..ae763e6833 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/DailyMission.xml +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/DailyMission.xml @@ -1997,7 +1997,7 @@ - + 24025,24026,24027,24028,24029,24030,24031,24032,24033,24035,24039,24040 @@ -2184,7 +2184,7 @@ - + 25794,25795,25796,25797,25798,25799,25800,25801,25802,25803,25804,25805,25806,25807,25808,25809,25810,25811,25812,25813 @@ -2195,7 +2195,7 @@ - + 21733,21734,21735,21736,21742,21743,21744,21745 @@ -2365,7 +2365,7 @@ --> - + 20651,20652,20654,20656,20657,20658,24015,24016,24021,24022,20655,20771 @@ -2377,7 +2377,7 @@ - + 21737,21738,21739,21740,21741,21746,21747,21748,21749,21750,21752,21753 @@ -2389,7 +2389,7 @@ - + 21869,21870,21871,21876,21877,21878,21879,21888 @@ -2401,7 +2401,7 @@ - + 21854,21855,81856,21857,21866,21867 @@ -2413,7 +2413,7 @@ - + 29105 @@ -2424,7 +2424,7 @@ - + 29106 @@ -2435,7 +2435,7 @@ - + 29107 @@ -2446,7 +2446,7 @@ - + 29108 @@ -2481,7 +2481,7 @@ - + 21396,21397,21398,21399,21400,21401,21402,21403,21404,21405,21406,21407,21408,21409,21410,21411,21412,21413,21414,21415,21416,21417,21418,21419,21420,21421,21422,21423,21424,21425,21426,21427,21428,21429,21430,21431,21432,21433,21434,21435,21436,21437,21438,21439,21440 diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/xsd/DailyMission.xsd b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/xsd/DailyMission.xsd index b201347d63..9da08900d0 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/xsd/DailyMission.xsd +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/xsd/DailyMission.xsd @@ -36,7 +36,8 @@ - + + diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java index ad57fe1f9a..182383217b 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java @@ -77,21 +77,34 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer public synchronized void reset() { - try (Connection con = DatabaseFactory.getConnection(); - PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + if (_holder.dailyReset()) { - ps.setInt(1, _holder.getId()); - ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); - ps.execute(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + { + ps.setInt(1, _holder.getId()); + ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } - catch (SQLException e) + else { - LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); - } - finally - { - _entries.clear(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = 3")) + { + ps.setInt(1, _holder.getId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } + _entries.clear(); } public boolean requestReward(PlayerInstance player) diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java index 1eaff5d6f3..efc53c7e48 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java @@ -37,6 +37,7 @@ public class DailyMissionDataHolder private final List _classRestriction; private final int _requiredCompletions; private final StatsSet _params; + private final boolean _dailyReset; private final boolean _isOneTime; private final boolean _isMainClassOnly; private final boolean _isDualClassOnly; @@ -53,6 +54,7 @@ public class DailyMissionDataHolder _rewardsItems = set.getList("items", ItemHolder.class); _classRestriction = set.getList("classRestriction", ClassId.class); _params = set.getObject("params", StatsSet.class); + _dailyReset = set.getBoolean("dailyReset", true); _isOneTime = set.getBoolean("isOneTime", true); _isMainClassOnly = set.getBoolean("isMainClassOnly", true); _isDualClassOnly = set.getBoolean("isDualClassOnly", false); @@ -90,6 +92,11 @@ public class DailyMissionDataHolder return _params; } + public boolean dailyReset() + { + return _dailyReset; + } + public boolean isOneTime() { return _isOneTime; diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/DailyMission.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/DailyMission.xml index a8238891d5..72defc84ea 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/DailyMission.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/DailyMission.xml @@ -131,7 +131,7 @@ - + 25794,25795,25796,25797,25798,25799,25800,25801,25802,25803,25804,25805,25806,25807,25808,25809,25810,25811,25812,25813 @@ -249,7 +249,7 @@ --> - + 20651,20652,20654,20656,20657,20658,24015,24016,24021,24022,20655,20771 @@ -261,7 +261,7 @@ - + 21737,21738,21739,21740,21741,21746,21747,21748,21749,21750,21752,21753 @@ -273,7 +273,7 @@ - + 21869,21870,21871,21876,21877,21878,21879,21888 @@ -285,7 +285,7 @@ - + 21854,21855,81856,21857,21866,21867 @@ -297,7 +297,7 @@ - + 29105 @@ -308,7 +308,7 @@ - + 29106 @@ -319,7 +319,7 @@ - + 29107 @@ -330,7 +330,7 @@ - + 29108 @@ -485,7 +485,7 @@ - + 21396,21397,21398,21399,21400,21401,21402,21403,21404,21405,21406,21407,21408,21409,21410,21411,21412,21413,21414,21415,21416,21417,21418,21419,21420,21421,21422,21423,21424,21425,21426,21427,21428,21429,21430,21431,21432,21433,21434,21435,21436,21437,21438,21439,21440 @@ -496,7 +496,7 @@ - + 20017,20026,20029,20030,20035,20038,20042,20043,20045,20050,20051,20053,20054,20055,20058,20059,20060,20061,20062,20063,20064,20066,20076,20310,20359,20436,20437,20438,20439,20548,20782 @@ -507,7 +507,7 @@ - + 20075,20079,20080,20081,20082,20083,20084,20086,20087,20088,20089,20090,20144,20145,20156,20157,20158,20160,20171,20176,20197,20198,20199,20200,20201,20202,20199,20225,20226,20227,20228,20229,20230,20231,20232,20233,20234,20248,20249,20550,20551,20552,20553,20554 @@ -518,7 +518,7 @@ - + 20555,20556,20557,20558,20559,20560,20561,20562,20563,20564,20565,20566,20567,20589,20590,20591,20592,20593,20594,20595,20596,20597,20598,20599,20666,20668,20669,20674,20675,20678,20974,20975,20976,20996,20997,20998,20999,21000,21001,21002,21003,21004,21005,21006,21007,21008,21009,21010 @@ -529,7 +529,7 @@ - + 20659,20660,20661,20662,20663,20664,20665,20667,20681,20682,20683,20684,20685,20686,20965,20966,20967,20968,20969,20970,20971,20972,20973,21620,21621,21622,21623,21624,21625,21626,21627,21628,21629,21630,21631,21632,21633,21634,21635,21636,21637 @@ -540,7 +540,7 @@ - + 20110,20792,20794,20795,20796,20797,20798,20799,20800,20801,20802,20803,20849,20994,20995,21661,21662,21663,21664,21665,21666,21667,21668,21669,21670,21671,21672,21673,21674,21675,21676,21678,21686,21761,21762,21763,21764,21765,21766,21768,21769,21774,21775,21777,21778,21779,21780,21781,21782,21783,21784,21813,21814,21815,21816,21817,21818,21819,21820,21821,21822,21823,21824,21825,21826,21827,21828,21829,21830,21831 @@ -551,7 +551,7 @@ - + 1 @@ -561,7 +561,7 @@ - + 21 diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/xsd/DailyMission.xsd b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/xsd/DailyMission.xsd index b201347d63..9da08900d0 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/xsd/DailyMission.xsd +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/xsd/DailyMission.xsd @@ -36,7 +36,8 @@ - + + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java index ad57fe1f9a..182383217b 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java @@ -77,21 +77,34 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer public synchronized void reset() { - try (Connection con = DatabaseFactory.getConnection(); - PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + if (_holder.dailyReset()) { - ps.setInt(1, _holder.getId()); - ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); - ps.execute(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + { + ps.setInt(1, _holder.getId()); + ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } - catch (SQLException e) + else { - LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); - } - finally - { - _entries.clear(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = 3")) + { + ps.setInt(1, _holder.getId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } + _entries.clear(); } public boolean requestReward(PlayerInstance player) diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java index 1eaff5d6f3..efc53c7e48 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java @@ -37,6 +37,7 @@ public class DailyMissionDataHolder private final List _classRestriction; private final int _requiredCompletions; private final StatsSet _params; + private final boolean _dailyReset; private final boolean _isOneTime; private final boolean _isMainClassOnly; private final boolean _isDualClassOnly; @@ -53,6 +54,7 @@ public class DailyMissionDataHolder _rewardsItems = set.getList("items", ItemHolder.class); _classRestriction = set.getList("classRestriction", ClassId.class); _params = set.getObject("params", StatsSet.class); + _dailyReset = set.getBoolean("dailyReset", true); _isOneTime = set.getBoolean("isOneTime", true); _isMainClassOnly = set.getBoolean("isMainClassOnly", true); _isDualClassOnly = set.getBoolean("isDualClassOnly", false); @@ -90,6 +92,11 @@ public class DailyMissionDataHolder return _params; } + public boolean dailyReset() + { + return _dailyReset; + } + public boolean isOneTime() { return _isOneTime; diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/xsd/DailyMission.xsd b/L2J_Mobius_Classic_Interlude/dist/game/data/xsd/DailyMission.xsd index b201347d63..9da08900d0 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/xsd/DailyMission.xsd +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/xsd/DailyMission.xsd @@ -36,7 +36,8 @@ - + + diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java index ad57fe1f9a..182383217b 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java @@ -77,21 +77,34 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer public synchronized void reset() { - try (Connection con = DatabaseFactory.getConnection(); - PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + if (_holder.dailyReset()) { - ps.setInt(1, _holder.getId()); - ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); - ps.execute(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = ?")) + { + ps.setInt(1, _holder.getId()); + ps.setInt(2, DailyMissionStatus.COMPLETED.getClientId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } - catch (SQLException e) + else { - LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); - } - finally - { - _entries.clear(); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM character_daily_rewards WHERE rewardId = ? AND status = 3")) + { + ps.setInt(1, _holder.getId()); + ps.execute(); + } + catch (SQLException e) + { + LOGGER.log(Level.WARNING, "Error while clearing data for: " + getClass().getSimpleName(), e); + } } + _entries.clear(); } public boolean requestReward(PlayerInstance player) diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java index 1eaff5d6f3..efc53c7e48 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/DailyMissionDataHolder.java @@ -37,6 +37,7 @@ public class DailyMissionDataHolder private final List _classRestriction; private final int _requiredCompletions; private final StatsSet _params; + private final boolean _dailyReset; private final boolean _isOneTime; private final boolean _isMainClassOnly; private final boolean _isDualClassOnly; @@ -53,6 +54,7 @@ public class DailyMissionDataHolder _rewardsItems = set.getList("items", ItemHolder.class); _classRestriction = set.getList("classRestriction", ClassId.class); _params = set.getObject("params", StatsSet.class); + _dailyReset = set.getBoolean("dailyReset", true); _isOneTime = set.getBoolean("isOneTime", true); _isMainClassOnly = set.getBoolean("isMainClassOnly", true); _isDualClassOnly = set.getBoolean("isDualClassOnly", false); @@ -90,6 +92,11 @@ public class DailyMissionDataHolder return _params; } + public boolean dailyReset() + { + return _dailyReset; + } + public boolean isOneTime() { return _isOneTime;