Fixed next date for territory war not being set.
Contributed by Avanael.
This commit is contained in:
@@ -19,8 +19,6 @@ package quests.TerritoryWarScripts;
|
|||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
|
|
||||||
import org.l2jmobius.commons.util.CommonUtil;
|
import org.l2jmobius.commons.util.CommonUtil;
|
||||||
import org.l2jmobius.gameserver.instancemanager.CastleManager;
|
|
||||||
import org.l2jmobius.gameserver.instancemanager.GlobalVariablesManager;
|
|
||||||
import org.l2jmobius.gameserver.instancemanager.TerritoryWarManager;
|
import org.l2jmobius.gameserver.instancemanager.TerritoryWarManager;
|
||||||
import org.l2jmobius.gameserver.instancemanager.TerritoryWarManager.TerritoryNPCSpawn;
|
import org.l2jmobius.gameserver.instancemanager.TerritoryWarManager.TerritoryNPCSpawn;
|
||||||
import org.l2jmobius.gameserver.model.TerritoryWard;
|
import org.l2jmobius.gameserver.model.TerritoryWard;
|
||||||
@@ -66,38 +64,12 @@ public class TerritoryWarSuperClass extends Quest
|
|||||||
|
|
||||||
if (questId < 0)
|
if (questId < 0)
|
||||||
{
|
{
|
||||||
// Outpost and Ward handled by the Super Class script
|
// Outpost and Ward handled by the Super Class script.
|
||||||
addSkillSeeId(36590);
|
addSkillSeeId(36590);
|
||||||
|
|
||||||
// Calculate next TW date
|
// Calculate next TW date.
|
||||||
final Calendar cal = Calendar.getInstance();
|
TerritoryWarManager.getInstance().setNextTWDate();
|
||||||
|
LOGGER.info(getClass().getSimpleName() + ": Siege date: " + TerritoryWarManager.getInstance().getTWStart().getTime());
|
||||||
final long nextSiegeDate = GlobalVariablesManager.getInstance().getLong(TerritoryWarManager.GLOBAL_VARIABLE, 0);
|
|
||||||
if (nextSiegeDate > System.currentTimeMillis())
|
|
||||||
{
|
|
||||||
cal.setTimeInMillis(nextSiegeDate);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Let's check if territory war date was in the past
|
|
||||||
if (cal.before(Calendar.getInstance()))
|
|
||||||
{
|
|
||||||
cal.setTimeInMillis(System.currentTimeMillis());
|
|
||||||
}
|
|
||||||
|
|
||||||
final boolean hasOwnedCastle = CastleManager.getInstance().hasOwnedCastle();
|
|
||||||
cal.set(Calendar.DAY_OF_WEEK, hasOwnedCastle ? Calendar.SATURDAY : Calendar.SUNDAY);
|
|
||||||
cal.set(Calendar.HOUR_OF_DAY, hasOwnedCastle ? 20 : 22);
|
|
||||||
cal.set(Calendar.MINUTE, 0);
|
|
||||||
cal.set(Calendar.SECOND, 0);
|
|
||||||
if (cal.before(Calendar.getInstance()))
|
|
||||||
{
|
|
||||||
cal.add(Calendar.WEEK_OF_YEAR, 2);
|
|
||||||
}
|
|
||||||
GlobalVariablesManager.getInstance().set(TerritoryWarManager.GLOBAL_VARIABLE, cal.getTimeInMillis());
|
|
||||||
}
|
|
||||||
TerritoryWarManager.getInstance().setTWStartTimeInMillis(cal.getTimeInMillis());
|
|
||||||
LOGGER.info(getClass().getSimpleName() + ": Siege date: " + cal.getTime());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1108,11 +1108,42 @@ public class TerritoryWarManager implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// change next TW date
|
// Change next TW date.
|
||||||
|
setNextTWDate();
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.TERRITORY_WAR_HAS_ENDED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.TERRITORY_WAR_HAS_ENDED);
|
||||||
Broadcast.toAllOnlinePlayers(sm);
|
Broadcast.toAllOnlinePlayers(sm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setNextTWDate()
|
||||||
|
{
|
||||||
|
final Calendar cal = Calendar.getInstance();
|
||||||
|
final long nextSiegeDate = GlobalVariablesManager.getInstance().getLong(GLOBAL_VARIABLE, 0);
|
||||||
|
if (nextSiegeDate > System.currentTimeMillis())
|
||||||
|
{
|
||||||
|
cal.setTimeInMillis(nextSiegeDate);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Let's check if territory war date was in the past.
|
||||||
|
if (cal.before(Calendar.getInstance()))
|
||||||
|
{
|
||||||
|
cal.setTimeInMillis(System.currentTimeMillis());
|
||||||
|
}
|
||||||
|
|
||||||
|
final boolean hasOwnedCastle = CastleManager.getInstance().hasOwnedCastle();
|
||||||
|
cal.set(Calendar.DAY_OF_WEEK, hasOwnedCastle ? Calendar.SATURDAY : Calendar.SUNDAY);
|
||||||
|
cal.set(Calendar.HOUR_OF_DAY, hasOwnedCastle ? 20 : 22);
|
||||||
|
cal.set(Calendar.MINUTE, 0);
|
||||||
|
cal.set(Calendar.SECOND, 0);
|
||||||
|
if (cal.before(Calendar.getInstance()))
|
||||||
|
{
|
||||||
|
cal.add(Calendar.WEEK_OF_YEAR, 2);
|
||||||
|
}
|
||||||
|
GlobalVariablesManager.getInstance().set(GLOBAL_VARIABLE, cal.getTimeInMillis());
|
||||||
|
}
|
||||||
|
setTWStartTimeInMillis(cal.getTimeInMillis());
|
||||||
|
}
|
||||||
|
|
||||||
protected void updatePlayerTWStateFlags(boolean clear)
|
protected void updatePlayerTWStateFlags(boolean clear)
|
||||||
{
|
{
|
||||||
final Quest twQuest = QuestManager.getInstance().getQuest(qn);
|
final Quest twQuest = QuestManager.getInstance().getQuest(qn);
|
||||||
|
@@ -19,8 +19,6 @@ package quests.TerritoryWarScripts;
|
|||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
|
|
||||||
import org.l2jmobius.commons.util.CommonUtil;
|
import org.l2jmobius.commons.util.CommonUtil;
|
||||||
import org.l2jmobius.gameserver.instancemanager.CastleManager;
|
|
||||||
import org.l2jmobius.gameserver.instancemanager.GlobalVariablesManager;
|
|
||||||
import org.l2jmobius.gameserver.instancemanager.TerritoryWarManager;
|
import org.l2jmobius.gameserver.instancemanager.TerritoryWarManager;
|
||||||
import org.l2jmobius.gameserver.instancemanager.TerritoryWarManager.TerritoryNPCSpawn;
|
import org.l2jmobius.gameserver.instancemanager.TerritoryWarManager.TerritoryNPCSpawn;
|
||||||
import org.l2jmobius.gameserver.model.TerritoryWard;
|
import org.l2jmobius.gameserver.model.TerritoryWard;
|
||||||
@@ -66,38 +64,12 @@ public class TerritoryWarSuperClass extends Quest
|
|||||||
|
|
||||||
if (questId < 0)
|
if (questId < 0)
|
||||||
{
|
{
|
||||||
// Outpost and Ward handled by the Super Class script
|
// Outpost and Ward handled by the Super Class script.
|
||||||
addSkillSeeId(36590);
|
addSkillSeeId(36590);
|
||||||
|
|
||||||
// Calculate next TW date
|
// Calculate next TW date.
|
||||||
final Calendar cal = Calendar.getInstance();
|
TerritoryWarManager.getInstance().setNextTWDate();
|
||||||
|
LOGGER.info(getClass().getSimpleName() + ": Siege date: " + TerritoryWarManager.getInstance().getTWStart().getTime());
|
||||||
final long nextSiegeDate = GlobalVariablesManager.getInstance().getLong(TerritoryWarManager.GLOBAL_VARIABLE, 0);
|
|
||||||
if (nextSiegeDate > System.currentTimeMillis())
|
|
||||||
{
|
|
||||||
cal.setTimeInMillis(nextSiegeDate);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Let's check if territory war date was in the past
|
|
||||||
if (cal.before(Calendar.getInstance()))
|
|
||||||
{
|
|
||||||
cal.setTimeInMillis(System.currentTimeMillis());
|
|
||||||
}
|
|
||||||
|
|
||||||
final boolean hasOwnedCastle = CastleManager.getInstance().hasOwnedCastle();
|
|
||||||
cal.set(Calendar.DAY_OF_WEEK, hasOwnedCastle ? Calendar.SATURDAY : Calendar.SUNDAY);
|
|
||||||
cal.set(Calendar.HOUR_OF_DAY, hasOwnedCastle ? 20 : 22);
|
|
||||||
cal.set(Calendar.MINUTE, 0);
|
|
||||||
cal.set(Calendar.SECOND, 0);
|
|
||||||
if (cal.before(Calendar.getInstance()))
|
|
||||||
{
|
|
||||||
cal.add(Calendar.WEEK_OF_YEAR, 2);
|
|
||||||
}
|
|
||||||
GlobalVariablesManager.getInstance().set(TerritoryWarManager.GLOBAL_VARIABLE, cal.getTimeInMillis());
|
|
||||||
}
|
|
||||||
TerritoryWarManager.getInstance().setTWStartTimeInMillis(cal.getTimeInMillis());
|
|
||||||
LOGGER.info(getClass().getSimpleName() + ": Siege date: " + cal.getTime());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1108,11 +1108,42 @@ public class TerritoryWarManager implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// change next TW date
|
// Change next TW date.
|
||||||
|
setNextTWDate();
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.TERRITORY_WAR_HAS_ENDED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.TERRITORY_WAR_HAS_ENDED);
|
||||||
Broadcast.toAllOnlinePlayers(sm);
|
Broadcast.toAllOnlinePlayers(sm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setNextTWDate()
|
||||||
|
{
|
||||||
|
final Calendar cal = Calendar.getInstance();
|
||||||
|
final long nextSiegeDate = GlobalVariablesManager.getInstance().getLong(GLOBAL_VARIABLE, 0);
|
||||||
|
if (nextSiegeDate > System.currentTimeMillis())
|
||||||
|
{
|
||||||
|
cal.setTimeInMillis(nextSiegeDate);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Let's check if territory war date was in the past.
|
||||||
|
if (cal.before(Calendar.getInstance()))
|
||||||
|
{
|
||||||
|
cal.setTimeInMillis(System.currentTimeMillis());
|
||||||
|
}
|
||||||
|
|
||||||
|
final boolean hasOwnedCastle = CastleManager.getInstance().hasOwnedCastle();
|
||||||
|
cal.set(Calendar.DAY_OF_WEEK, hasOwnedCastle ? Calendar.SATURDAY : Calendar.SUNDAY);
|
||||||
|
cal.set(Calendar.HOUR_OF_DAY, hasOwnedCastle ? 20 : 22);
|
||||||
|
cal.set(Calendar.MINUTE, 0);
|
||||||
|
cal.set(Calendar.SECOND, 0);
|
||||||
|
if (cal.before(Calendar.getInstance()))
|
||||||
|
{
|
||||||
|
cal.add(Calendar.WEEK_OF_YEAR, 2);
|
||||||
|
}
|
||||||
|
GlobalVariablesManager.getInstance().set(GLOBAL_VARIABLE, cal.getTimeInMillis());
|
||||||
|
}
|
||||||
|
setTWStartTimeInMillis(cal.getTimeInMillis());
|
||||||
|
}
|
||||||
|
|
||||||
protected void updatePlayerTWStateFlags(boolean clear)
|
protected void updatePlayerTWStateFlags(boolean clear)
|
||||||
{
|
{
|
||||||
final Quest twQuest = QuestManager.getInstance().getQuest(qn);
|
final Quest twQuest = QuestManager.getInstance().getQuest(qn);
|
||||||
|
Reference in New Issue
Block a user