From 7e12777b776fa2580a4a9d301fee1888bfef4574 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Sun, 19 Jul 2020 11:34:43 +0000 Subject: [PATCH] Addition of CustomDonatorEnd player variable. --- .../admincommandhandlers/AdminDonator.java | 15 +++++++++++++-- .../model/actor/instance/PlayerInstance.java | 3 ++- .../admincommandhandlers/AdminDonator.java | 15 +++++++++++++-- .../model/actor/instance/PlayerInstance.java | 3 ++- 4 files changed, 30 insertions(+), 6 deletions(-) diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/admincommandhandlers/AdminDonator.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/admincommandhandlers/AdminDonator.java index 032cca7874..811330bd20 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/admincommandhandlers/AdminDonator.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/admincommandhandlers/AdminDonator.java @@ -24,6 +24,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.serverpackets.SocialAction; import org.l2jmobius.gameserver.util.BuilderUtil; +import org.l2jmobius.gameserver.util.Util; public class AdminDonator implements IAdminCommandHandler { @@ -48,8 +49,7 @@ public class AdminDonator implements IAdminCommandHandler if (target instanceof PlayerInstance) { final PlayerInstance targetPlayer = (PlayerInstance) target; - final boolean newDonator = !targetPlayer.isDonator(); - if (newDonator) + if (!targetPlayer.isDonator()) { targetPlayer.setDonator(true); targetPlayer.updateNameTitleColor(); @@ -59,6 +59,14 @@ public class AdminDonator implements IAdminCommandHandler AdminData.broadcastMessageToGMs("Warn: " + activeChar.getName() + " has set " + targetPlayer.getName() + " as donator !"); targetPlayer.broadcastPacket(new SocialAction(targetPlayer.getObjectId(), 16)); targetPlayer.broadcastUserInfo(); + + // Optional duration in days parameter. + final String value = command.replace("admin_setdonator ", ""); + if (Util.isDigit(value)) + { + final long donatorTime = Long.valueOf(value) * 24 * 60 * 60 * 1000; + targetPlayer.getVariables().set("CustomDonatorEnd", donatorTime == 0 ? 0 : System.currentTimeMillis() + donatorTime); + } } else { @@ -69,6 +77,9 @@ public class AdminDonator implements IAdminCommandHandler activeChar.sendMessage("You have revoked donator status from " + targetPlayer.getName()); AdminData.broadcastMessageToGMs("Warn: " + activeChar.getName() + " has removed donator status from player" + targetPlayer.getName()); targetPlayer.broadcastUserInfo(); + + // Optional duration in days parameter. + targetPlayer.getVariables().remove("CustomDonatorEnd"); } } else diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index ad0f7cf55b..8ebf99e417 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -14547,7 +14547,8 @@ public class PlayerInstance extends Playable setNoble(true); } - if (getVariables().getBoolean("CustomDonator", false)) + final long donatorEnd = getVariables().getLong("CustomDonatorEnd", 0); + if (getVariables().getBoolean("CustomDonator", false) && ((donatorEnd == 0) || (donatorEnd > System.currentTimeMillis()))) { setDonator(true); } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/admincommandhandlers/AdminDonator.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/admincommandhandlers/AdminDonator.java index 032cca7874..811330bd20 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/admincommandhandlers/AdminDonator.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/admincommandhandlers/AdminDonator.java @@ -24,6 +24,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.serverpackets.SocialAction; import org.l2jmobius.gameserver.util.BuilderUtil; +import org.l2jmobius.gameserver.util.Util; public class AdminDonator implements IAdminCommandHandler { @@ -48,8 +49,7 @@ public class AdminDonator implements IAdminCommandHandler if (target instanceof PlayerInstance) { final PlayerInstance targetPlayer = (PlayerInstance) target; - final boolean newDonator = !targetPlayer.isDonator(); - if (newDonator) + if (!targetPlayer.isDonator()) { targetPlayer.setDonator(true); targetPlayer.updateNameTitleColor(); @@ -59,6 +59,14 @@ public class AdminDonator implements IAdminCommandHandler AdminData.broadcastMessageToGMs("Warn: " + activeChar.getName() + " has set " + targetPlayer.getName() + " as donator !"); targetPlayer.broadcastPacket(new SocialAction(targetPlayer.getObjectId(), 16)); targetPlayer.broadcastUserInfo(); + + // Optional duration in days parameter. + final String value = command.replace("admin_setdonator ", ""); + if (Util.isDigit(value)) + { + final long donatorTime = Long.valueOf(value) * 24 * 60 * 60 * 1000; + targetPlayer.getVariables().set("CustomDonatorEnd", donatorTime == 0 ? 0 : System.currentTimeMillis() + donatorTime); + } } else { @@ -69,6 +77,9 @@ public class AdminDonator implements IAdminCommandHandler activeChar.sendMessage("You have revoked donator status from " + targetPlayer.getName()); AdminData.broadcastMessageToGMs("Warn: " + activeChar.getName() + " has removed donator status from player" + targetPlayer.getName()); targetPlayer.broadcastUserInfo(); + + // Optional duration in days parameter. + targetPlayer.getVariables().remove("CustomDonatorEnd"); } } else diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 644b4ed394..5ff65b636d 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -14902,7 +14902,8 @@ public class PlayerInstance extends Playable setNoble(true); } - if (getVariables().getBoolean("CustomDonator", false)) + final long donatorEnd = getVariables().getLong("CustomDonatorEnd", 0); + if (getVariables().getBoolean("CustomDonator", false) && ((donatorEnd == 0) || (donatorEnd > System.currentTimeMillis()))) { setDonator(true); }