diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java index 4936e803ed..0211e71039 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java @@ -66,11 +66,20 @@ public final class HennaInfo implements IClientOutgoingPacket packet.writeD(henna.getDyeId()); packet.writeD(henna.isAllowedClass(_player.getClassId()) ? 0x01 : 0x00); } - if (_player.getHenna(4) != null) + + final Henna premium = _player.getHenna(4); + if (premium != null) { - packet.writeD(_player.getHenna(4).getDyeId()); - packet.writeD(_player.getHenna(4).getDuration()); // Premium Slot Dye Time Left - packet.writeD(_player.getHenna(4).isAllowedClass(_player.getClassId()) ? 0x01 : 0x00); + int duration = premium.getDuration(); + if (duration > 0) + { + final long currentTime = System.currentTimeMillis(); + duration = (int) Math.max(0, _player.getVariables().getLong("HennaDuration4", currentTime) - currentTime) / 1000; + } + + packet.writeD(premium.getDyeId()); + packet.writeD(duration); // Premium Slot Dye Time Left + packet.writeD(premium.isAllowedClass(_player.getClassId()) ? 0x01 : 0x00); } else { diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java index a6eb047fad..4d1424d8b1 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java @@ -66,11 +66,20 @@ public final class HennaInfo implements IClientOutgoingPacket packet.writeD(henna.getDyeId()); packet.writeD(henna.isAllowedClass(_player.getClassId()) ? 0x01 : 0x00); } - if (_player.getHenna(4) != null) + + final Henna premium = _player.getHenna(4); + if (premium != null) { - packet.writeD(_player.getHenna(4).getDyeId()); - packet.writeD(_player.getHenna(4).getDuration()); // Premium Slot Dye Time Left - packet.writeD(_player.getHenna(4).isAllowedClass(_player.getClassId()) ? 0x01 : 0x00); + int duration = premium.getDuration(); + if (duration > 0) + { + final long currentTime = System.currentTimeMillis(); + duration = (int) Math.max(0, _player.getVariables().getLong("HennaDuration4", currentTime) - currentTime) / 1000; + } + + packet.writeD(premium.getDyeId()); + packet.writeD(duration); // Premium Slot Dye Time Left + packet.writeD(premium.isAllowedClass(_player.getClassId()) ? 0x01 : 0x00); } else { diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java index dadc2440e1..b8cea020ed 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java @@ -66,11 +66,20 @@ public final class HennaInfo implements IClientOutgoingPacket packet.writeD(henna.getDyeId()); packet.writeD(henna.isAllowedClass(_player.getClassId()) ? 0x01 : 0x00); } - if (_player.getHenna(4) != null) + + final Henna premium = _player.getHenna(4); + if (premium != null) { - packet.writeD(_player.getHenna(4).getDyeId()); - packet.writeD(_player.getHenna(4).getDuration()); // Premium Slot Dye Time Left - packet.writeD(_player.getHenna(4).isAllowedClass(_player.getClassId()) ? 0x01 : 0x00); + int duration = premium.getDuration(); + if (duration > 0) + { + final long currentTime = System.currentTimeMillis(); + duration = (int) Math.max(0, _player.getVariables().getLong("HennaDuration4", currentTime) - currentTime) / 1000; + } + + packet.writeD(premium.getDyeId()); + packet.writeD(duration); // Premium Slot Dye Time Left + packet.writeD(premium.isAllowedClass(_player.getClassId()) ? 0x01 : 0x00); } else { diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java index dadc2440e1..b8cea020ed 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java @@ -66,11 +66,20 @@ public final class HennaInfo implements IClientOutgoingPacket packet.writeD(henna.getDyeId()); packet.writeD(henna.isAllowedClass(_player.getClassId()) ? 0x01 : 0x00); } - if (_player.getHenna(4) != null) + + final Henna premium = _player.getHenna(4); + if (premium != null) { - packet.writeD(_player.getHenna(4).getDyeId()); - packet.writeD(_player.getHenna(4).getDuration()); // Premium Slot Dye Time Left - packet.writeD(_player.getHenna(4).isAllowedClass(_player.getClassId()) ? 0x01 : 0x00); + int duration = premium.getDuration(); + if (duration > 0) + { + final long currentTime = System.currentTimeMillis(); + duration = (int) Math.max(0, _player.getVariables().getLong("HennaDuration4", currentTime) - currentTime) / 1000; + } + + packet.writeD(premium.getDyeId()); + packet.writeD(duration); // Premium Slot Dye Time Left + packet.writeD(premium.isAllowedClass(_player.getClassId()) ? 0x01 : 0x00); } else { diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java index dadc2440e1..b8cea020ed 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java @@ -66,11 +66,20 @@ public final class HennaInfo implements IClientOutgoingPacket packet.writeD(henna.getDyeId()); packet.writeD(henna.isAllowedClass(_player.getClassId()) ? 0x01 : 0x00); } - if (_player.getHenna(4) != null) + + final Henna premium = _player.getHenna(4); + if (premium != null) { - packet.writeD(_player.getHenna(4).getDyeId()); - packet.writeD(_player.getHenna(4).getDuration()); // Premium Slot Dye Time Left - packet.writeD(_player.getHenna(4).isAllowedClass(_player.getClassId()) ? 0x01 : 0x00); + int duration = premium.getDuration(); + if (duration > 0) + { + final long currentTime = System.currentTimeMillis(); + duration = (int) Math.max(0, _player.getVariables().getLong("HennaDuration4", currentTime) - currentTime) / 1000; + } + + packet.writeD(premium.getDyeId()); + packet.writeD(duration); // Premium Slot Dye Time Left + packet.writeD(premium.isAllowedClass(_player.getClassId()) ? 0x01 : 0x00); } else { diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java index dadc2440e1..b8cea020ed 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java @@ -66,11 +66,20 @@ public final class HennaInfo implements IClientOutgoingPacket packet.writeD(henna.getDyeId()); packet.writeD(henna.isAllowedClass(_player.getClassId()) ? 0x01 : 0x00); } - if (_player.getHenna(4) != null) + + final Henna premium = _player.getHenna(4); + if (premium != null) { - packet.writeD(_player.getHenna(4).getDyeId()); - packet.writeD(_player.getHenna(4).getDuration()); // Premium Slot Dye Time Left - packet.writeD(_player.getHenna(4).isAllowedClass(_player.getClassId()) ? 0x01 : 0x00); + int duration = premium.getDuration(); + if (duration > 0) + { + final long currentTime = System.currentTimeMillis(); + duration = (int) Math.max(0, _player.getVariables().getLong("HennaDuration4", currentTime) - currentTime) / 1000; + } + + packet.writeD(premium.getDyeId()); + packet.writeD(duration); // Premium Slot Dye Time Left + packet.writeD(premium.isAllowedClass(_player.getClassId()) ? 0x01 : 0x00); } else { diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java index dadc2440e1..b8cea020ed 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/serverpackets/HennaInfo.java @@ -66,11 +66,20 @@ public final class HennaInfo implements IClientOutgoingPacket packet.writeD(henna.getDyeId()); packet.writeD(henna.isAllowedClass(_player.getClassId()) ? 0x01 : 0x00); } - if (_player.getHenna(4) != null) + + final Henna premium = _player.getHenna(4); + if (premium != null) { - packet.writeD(_player.getHenna(4).getDyeId()); - packet.writeD(_player.getHenna(4).getDuration()); // Premium Slot Dye Time Left - packet.writeD(_player.getHenna(4).isAllowedClass(_player.getClassId()) ? 0x01 : 0x00); + int duration = premium.getDuration(); + if (duration > 0) + { + final long currentTime = System.currentTimeMillis(); + duration = (int) Math.max(0, _player.getVariables().getLong("HennaDuration4", currentTime) - currentTime) / 1000; + } + + packet.writeD(premium.getDyeId()); + packet.writeD(duration); // Premium Slot Dye Time Left + packet.writeD(premium.isAllowedClass(_player.getClassId()) ? 0x01 : 0x00); } else {