Premium manager rework.

Contributed by yksdtc.
This commit is contained in:
MobiusDev
2017-01-03 07:35:35 +00:00
parent d39620bcb5
commit b40bd1c34b
7 changed files with 179 additions and 194 deletions

View File

@@ -17,6 +17,7 @@
package handlers.admincommandhandlers;
import java.text.SimpleDateFormat;
import java.util.concurrent.TimeUnit;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.cache.HtmCache;
@@ -118,15 +119,21 @@ public class AdminPremium implements IAdminCommandHandler
}
// TODO: Add check if account exists XD
PremiumManager.getInstance().addPremiumMonths(months, accountName);
admin.sendMessage("Account " + accountName + " will now have premium status until " + new SimpleDateFormat("dd.MM.yyyy HH:mm").format(PremiumManager.getInstance().getPremiumEndDate(accountName)) + ".");
PremiumManager.getInstance().addPremiumTime(accountName, months * 30, TimeUnit.DAYS);
admin.sendMessage("Account " + accountName + " will now have premium status until " + new SimpleDateFormat("dd.MM.yyyy HH:mm").format(PremiumManager.getInstance().getPremiumExpiration(accountName)) + ".");
}
private void viewPremiumInfo(L2PcInstance admin, String accountName)
{
if (PremiumManager.getInstance().getPremiumEndDate(accountName) > 0)
if (!Config.PREMIUM_SYSTEM_ENABLED)
{
admin.sendMessage("Account " + accountName + " has premium status until " + new SimpleDateFormat("dd.MM.yyyy HH:mm").format(PremiumManager.getInstance().getPremiumEndDate(accountName)) + ".");
admin.sendMessage("Premium system is disabled.");
return;
}
if (PremiumManager.getInstance().getPremiumExpiration(accountName) > 0)
{
admin.sendMessage("Account " + accountName + " has premium status until " + new SimpleDateFormat("dd.MM.yyyy HH:mm").format(PremiumManager.getInstance().getPremiumExpiration(accountName)) + ".");
}
else
{
@@ -136,7 +143,13 @@ public class AdminPremium implements IAdminCommandHandler
private void removePremium(L2PcInstance admin, String accountName)
{
if (PremiumManager.getInstance().getPremiumEndDate(accountName) > 0)
if (!Config.PREMIUM_SYSTEM_ENABLED)
{
admin.sendMessage("Premium system is disabled.");
return;
}
if (PremiumManager.getInstance().getPremiumExpiration(accountName) > 0)
{
PremiumManager.getInstance().removePremiumStatus(accountName);
admin.sendMessage("Account " + accountName + " has no longer premium status.");

View File

@@ -20,6 +20,7 @@ import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.concurrent.TimeUnit;
import com.l2jmobius.Config;
import com.l2jmobius.commons.database.DatabaseFactory;
@@ -242,8 +243,8 @@ public final class HomeBoard implements IParseBoardHandler
else
{
activeChar.destroyItemByItemId("CB_Premium", Config.COMMUNITY_PREMIUM_COIN_ID, Config.COMMUNITY_PREMIUM_PRICE_PER_DAY * premiumDays, activeChar, true);
PremiumManager.getInstance().addPremiumDays(premiumDays, activeChar.getAccountName());
activeChar.sendMessage("Your account will now have premium status until " + new SimpleDateFormat("dd.MM.yyyy HH:mm").format(PremiumManager.getInstance().getPremiumEndDate(activeChar.getAccountName())) + ".");
PremiumManager.getInstance().addPremiumTime(activeChar.getAccountName(), premiumDays, TimeUnit.DAYS);
activeChar.sendMessage("Your account will now have premium status until " + new SimpleDateFormat("dd.MM.yyyy HH:mm").format(PremiumManager.getInstance().getPremiumExpiration(activeChar.getAccountName())) + ".");
CommunityBoardHandler.separateAndSend(HtmCache.getInstance().getHtm(activeChar.getHtmlPrefix(), "data/html/CommunityBoard/Custom/premium/thankyou.html"), activeChar);
}
}

View File

@@ -37,7 +37,7 @@ public class Premium implements IVoicedCommandHandler
if (command.startsWith("premium") && Config.PREMIUM_SYSTEM_ENABLED)
{
final SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy HH:mm");
final long endDate = PremiumManager.getInstance().getPremiumEndDate(activeChar.getAccountName());
final long endDate = PremiumManager.getInstance().getPremiumExpiration(activeChar.getAccountName());
final NpcHtmlMessage msg = new NpcHtmlMessage(5);
final StringBuilder html = new StringBuilder();
if (endDate == 0)