From 5fea9f6b07251a44e7fc824c003e717c8718e60c Mon Sep 17 00:00:00 2001
From: Maneco2 <maneco_1@hotmail.com>
Date: Wed, 8 Dec 2021 12:00:20 -0300
Subject: [PATCH] Adding retail BonusTimeLimitUp effect skills

-- Cleanup
---
 .../effecthandlers/pump/BonusTimeLimitUp.java |   5 +-
 .../data/stats/skills/09100-09199.xml         | 172 +++++++++++++-----
 .../data/stats/skills/23300-23399.xml         |   5 +
 src/main/resources/data/xsd/skills.xsd        |   2 +-
 4 files changed, 138 insertions(+), 46 deletions(-)

diff --git a/src/main/java/com/l2jserver/datapack/handlers/effecthandlers/pump/BonusTimeLimitUp.java b/src/main/java/com/l2jserver/datapack/handlers/effecthandlers/pump/BonusTimeLimitUp.java
index 9290a28c98..1ef8424e3d 100644
--- a/src/main/java/com/l2jserver/datapack/handlers/effecthandlers/pump/BonusTimeLimitUp.java
+++ b/src/main/java/com/l2jserver/datapack/handlers/effecthandlers/pump/BonusTimeLimitUp.java
@@ -27,7 +27,7 @@ import com.l2jserver.gameserver.model.zone.ZoneId;
 import com.l2jserver.gameserver.network.serverpackets.UserInfo;
 
 /**
- * Nevit's Hourglass effect implementation.
+ * Bonus Time Limit Up effect implementation.
  * @author Maneco2
  * @since 2.6.3.0
  */
@@ -36,7 +36,7 @@ public final class BonusTimeLimitUp extends AbstractEffect {
 	
 	public BonusTimeLimitUp(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params) {
 		super(attachCond, applyCond, set, params);
-		_time = set.getInt("time", 0);
+		_time = params.getInt("time", 0);
 	}
 	
 	@Override
@@ -47,6 +47,7 @@ public final class BonusTimeLimitUp extends AbstractEffect {
 	@Override
 	public void onStart(BuffInfo info) {
 		if ((info.getEffected() != null) && info.getEffected().isPlayer()) {
+			info.setAbnormalTime(_time);
 			info.getEffected().getActingPlayer().startHourglassEffect();
 			info.getEffected().getActingPlayer().sendPacket(new UserInfo(info.getEffected().getActingPlayer()));
 		}
diff --git a/src/main/resources/data/stats/skills/09100-09199.xml b/src/main/resources/data/stats/skills/09100-09199.xml
index dadf5eb387..08b945ae3c 100644
--- a/src/main/resources/data/stats/skills/09100-09199.xml
+++ b/src/main/resources/data/stats/skills/09100-09199.xml
@@ -369,7 +369,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="3600" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9116" levels="1" name="Nevit's Hourglass - 1.5 hour">
@@ -396,7 +398,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="5400" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9117" levels="1" name="Nevit's Hourglass - 2 hour">
@@ -423,7 +427,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="7200" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9118" levels="1" name="Nevit's Hourglass - 2.5 hour">
@@ -450,7 +456,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="9000" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9119" levels="1" name="Nevit's Hourglass - 3 hour">
@@ -477,7 +485,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="10800" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9120" levels="1" name="Nevit's Hourglass - 1 hour">
@@ -504,7 +514,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="3600" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9121" levels="1" name="Nevit's Hourglass - 1.5 hour">
@@ -531,7 +543,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="5400" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9122" levels="1" name="Nevit's Hourglass - 2 hour">
@@ -558,7 +572,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="7200" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9123" levels="1" name="Nevit's Hourglass - 2.5 hour">
@@ -585,7 +601,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="9000" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9124" levels="1" name="Nevit's Hourglass - 3 hour">
@@ -612,7 +630,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="10800" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9125" levels="1" name="Nevit's Hourglass - 1 hour">
@@ -639,7 +659,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="3600" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9126" levels="1" name="Nevit's Hourglass - 1.5 hour">
@@ -666,7 +688,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="5400" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9127" levels="1" name="Nevit's Hourglass - 2 hour">
@@ -693,7 +717,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="7200" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9128" levels="1" name="Nevit's Hourglass - 2.5 hour">
@@ -720,7 +746,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="9000" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9129" levels="1" name="Nevit's Hourglass - 3 hour">
@@ -747,7 +775,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="10800" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9130" levels="1" name="Nevit's Hourglass - 1 hour">
@@ -774,7 +804,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="3600" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9131" levels="1" name="Nevit's Hourglass - 1.5 hour">
@@ -801,7 +833,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="5400" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9132" levels="1" name="Nevit's Hourglass - 2 hour">
@@ -828,7 +862,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="7200" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9133" levels="1" name="Nevit's Hourglass - 2.5 hour">
@@ -855,7 +891,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="9000" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9134" levels="1" name="Nevit's Hourglass - 3 hour">
@@ -882,7 +920,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="10800" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9135" levels="1" name="Nevit's Hourglass - 1 hour">
@@ -909,7 +949,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="3600" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9136" levels="1" name="Nevit's Hourglass - 1.5 hour">
@@ -936,7 +978,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="5400" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9137" levels="1" name="Nevit's Hourglass - 2 hour">
@@ -963,7 +1007,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="7200" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9138" levels="1" name="Nevit's Hourglass - 2.5 hour">
@@ -990,7 +1036,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="9000" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9139" levels="1" name="Nevit's Hourglass - 3 hour">
@@ -1017,7 +1065,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="10800" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9140" levels="1" name="Nevit's Hourglass - 1 hour">
@@ -1044,7 +1094,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="3600" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9141" levels="1" name="Nevit's Hourglass - 1.5 hour">
@@ -1071,7 +1123,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="5400" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9142" levels="1" name="Nevit's Hourglass - 2 hour">
@@ -1098,7 +1152,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="7200" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9143" levels="1" name="Nevit's Hourglass - 2.5 hour">
@@ -1125,7 +1181,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="9000" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9144" levels="1" name="Nevit's Hourglass - 3 hour">
@@ -1152,7 +1210,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="10800" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9145" levels="1" name="Nevit's Hourglass - 1 hour">
@@ -1179,7 +1239,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="3600" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9146" levels="1" name="Nevit's Hourglass - 1.5 hour">
@@ -1206,7 +1268,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="5400" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9147" levels="1" name="Nevit's Hourglass - 2 hour">
@@ -1233,7 +1297,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="7200" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9148" levels="1" name="Nevit's Hourglass - 2.5 hour">
@@ -1260,7 +1326,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="9000" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9149" levels="1" name="Nevit's Hourglass - 3 hour">
@@ -1287,7 +1355,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="10800" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9150" levels="1" name="Freesia Bouquet - Event">
@@ -1682,7 +1752,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="3600" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9168" levels="1" name="Nevit's Hourglass - 1.5 hour(s)">
@@ -1709,7 +1781,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="5400" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9169" levels="1" name="Nevit's Hourglass - 2 hour(s)">
@@ -1736,7 +1810,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="7200" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9170" levels="1" name="Nevit's Hourglass - 2.5 hour(s)">
@@ -1763,7 +1839,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="9000" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9171" levels="1" name="Nevit's Hourglass - 3 hour(s)">
@@ -1790,7 +1868,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="10800" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9172" levels="1" name="Nevit's Hourglass - 4 hour(s)">
@@ -1817,7 +1897,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="14400" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9173" levels="1" name="Nevit's Voice">
@@ -1959,7 +2041,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="14400" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9182" levels="1" name="Nevit's Hourglass - 4 hour(s)">
@@ -1985,7 +2069,9 @@
 			<target checkAbnormal="VOTE;1;false" /> <!-- Nevit's Hourglass -->
 		</cond>
 		<effects>
-			<effect name="Buff" />
+			<effect name="BonusTimeLimitUp">
+				<param time="14400" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="9183" levels="1" name="Freya's Refreshing Breeze - 4 hour(s)">
diff --git a/src/main/resources/data/stats/skills/23300-23399.xml b/src/main/resources/data/stats/skills/23300-23399.xml
index 9eae3e6535..bb8c01a4b1 100644
--- a/src/main/resources/data/stats/skills/23300-23399.xml
+++ b/src/main/resources/data/stats/skills/23300-23399.xml
@@ -253,6 +253,11 @@
 		<set name="reuseDelayType" val="S" />
 		<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
 		<set name="targetType" val="TARGET" />
+		<effects>
+			<effect name="BonusTimeLimitUp">
+				<param time="10800" />
+			</effect>
+		</effects>
 	</skill>
 	<skill id="23313" levels="5" name="Action Prohibit Immunity">
 		<!-- High Five Confirmed -->
diff --git a/src/main/resources/data/xsd/skills.xsd b/src/main/resources/data/xsd/skills.xsd
index d105d1a3cd..143f5070ac 100644
--- a/src/main/resources/data/xsd/skills.xsd
+++ b/src/main/resources/data/xsd/skills.xsd
@@ -522,6 +522,7 @@
 					<xs:enumeration value="BlockBuffSlot" />
 					<xs:enumeration value="BlockResurrection" />
 					<xs:enumeration value="Bluff" />
+					<xs:enumeration value="BonusTimeLimitUp" />
 					<xs:enumeration value="Buff" />
 					<xs:enumeration value="CallParty" />
 					<xs:enumeration value="CallPc" />
@@ -602,7 +603,6 @@
 					<xs:enumeration value="Mp" />
 					<xs:enumeration value="MpPerMax" />
 					<xs:enumeration value="Mute" />
-					<xs:enumeration value="NevitHourglass" />
 					<xs:enumeration value="NoblesseBless" />
 					<xs:enumeration value="OpenChest" />
 					<xs:enumeration value="Unsummon" />
-- 
GitLab