Calendar should never be used to get current time.

This commit is contained in:
MobiusDevelopment
2022-10-15 21:08:11 +00:00
parent eff401ff2a
commit 52ce1e3676
239 changed files with 1252 additions and 1109 deletions

View File

@@ -17,7 +17,6 @@
package org.l2jmobius.gameserver.communitybbs.Manager;
import java.text.DateFormat;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.Map;
@@ -87,11 +86,12 @@ public class TopicBBSManager extends BaseBBSManager
}
else
{
final long currentTime = System.currentTimeMillis();
f.vload();
final Topic t = new Topic(TopicConstructorType.CREATE, getInstance().getMaxID(f) + 1, Integer.parseInt(ar2), ar5, Calendar.getInstance().getTimeInMillis(), player.getName(), player.getObjectId(), Topic.MEMO, 0);
final Topic t = new Topic(TopicConstructorType.CREATE, getInstance().getMaxID(f) + 1, Integer.parseInt(ar2), ar5, currentTime, player.getName(), player.getObjectId(), Topic.MEMO, 0);
f.addTopic(t);
getInstance().setMaxID(t.getID(), f);
final Post p = new Post(player.getName(), player.getObjectId(), Calendar.getInstance().getTimeInMillis(), t.getID(), f.getID(), ar4);
final Post p = new Post(player.getName(), player.getObjectId(), currentTime, t.getID(), f.getID(), ar4);
PostBBSManager.getInstance().addPostByTopic(p, t);
parsecmd("_bbsmemo", player);
}

View File

@@ -72,15 +72,15 @@ public class Couple
public Couple(Player player1, Player player2)
{
final int _tempPlayer1Id = player1.getObjectId();
final int _tempPlayer2Id = player2.getObjectId();
_player1Id = _tempPlayer1Id;
_player2Id = _tempPlayer2Id;
final long currentTime = System.currentTimeMillis();
_player1Id = player1.getObjectId();
_player2Id = player2.getObjectId();
_affiancedDate = Calendar.getInstance();
_affiancedDate.setTimeInMillis(Calendar.getInstance().getTimeInMillis());
_affiancedDate.setTimeInMillis(currentTime);
_weddingDate = Calendar.getInstance();
_weddingDate.setTimeInMillis(Calendar.getInstance().getTimeInMillis());
_weddingDate.setTimeInMillis(currentTime);
try (Connection con = DatabaseFactory.getConnection();
PreparedStatement ps = con.prepareStatement("INSERT INTO mods_wedding (id, player1Id, player2Id, married, affianceDate, weddingDate) VALUES (?, ?, ?, ?, ?, ?)"))

View File

@@ -559,7 +559,7 @@ public class Duel
*/
public int getRemainingTime()
{
return (int) (_duelEndTime.getTimeInMillis() - Calendar.getInstance().getTimeInMillis());
return (int) (_duelEndTime.getTimeInMillis() - System.currentTimeMillis());
}
/**

View File

@@ -193,11 +193,12 @@ public class Olympiad extends ListenersContainer
_nextWeeklyChange = Long.parseLong(olympiadProperties.getProperty("NextWeeklyChange", "0"));
}
final long currentTime = System.currentTimeMillis();
switch (_period)
{
case 0:
{
if ((_olympiadEnd == 0) || (_olympiadEnd < Calendar.getInstance().getTimeInMillis()))
if ((_olympiadEnd == 0) || (_olympiadEnd < currentTime))
{
setNewOlympiadEnd();
}
@@ -209,7 +210,7 @@ public class Olympiad extends ListenersContainer
}
case 1:
{
if (_validationEnd > Calendar.getInstance().getTimeInMillis())
if (_validationEnd > currentTime)
{
loadNoblesRank();
_scheduledValdationTask = ThreadPool.schedule(new ValidationEndTask(), getMillisToValidationEnd());
@@ -600,8 +601,8 @@ public class Olympiad extends ListenersContainer
private long getMillisToOlympiadEnd()
{
// if (_olympiadEnd > Calendar.getInstance().getTimeInMillis())
return _olympiadEnd - Calendar.getInstance().getTimeInMillis();
// if (_olympiadEnd > System.currentTimeMillis())
return _olympiadEnd - System.currentTimeMillis();
// return 10;
}
@@ -617,9 +618,10 @@ public class Olympiad extends ListenersContainer
protected long getMillisToValidationEnd()
{
if (_validationEnd > Calendar.getInstance().getTimeInMillis())
final long currentTime = System.currentTimeMillis();
if (_validationEnd > currentTime)
{
return _validationEnd - Calendar.getInstance().getTimeInMillis();
return _validationEnd - currentTime;
}
return 10;
}
@@ -700,14 +702,15 @@ public class Olympiad extends ListenersContainer
private long getMillisToCompBegin()
{
if ((_compStart.getTimeInMillis() < Calendar.getInstance().getTimeInMillis()) && (_compEnd > Calendar.getInstance().getTimeInMillis()))
final long currentTime = System.currentTimeMillis();
if ((_compStart.getTimeInMillis() < currentTime) && (_compEnd > currentTime))
{
return 10;
}
if (_compStart.getTimeInMillis() > Calendar.getInstance().getTimeInMillis())
if (_compStart.getTimeInMillis() > currentTime)
{
return _compStart.getTimeInMillis() - Calendar.getInstance().getTimeInMillis();
return _compStart.getTimeInMillis() - currentTime;
}
return setNewCompBegin();
@@ -765,21 +768,22 @@ public class Olympiad extends ListenersContainer
LOGGER.info("Olympiad System: New Schedule @ " + _compStart.getTime());
return _compStart.getTimeInMillis() - Calendar.getInstance().getTimeInMillis();
return _compStart.getTimeInMillis() - System.currentTimeMillis();
}
protected long getMillisToCompEnd()
{
// if (_compEnd > Calendar.getInstance().getTimeInMillis())
return _compEnd - Calendar.getInstance().getTimeInMillis();
// if (_compEnd > System.currentTimeMillis())
return _compEnd - System.currentTimeMillis();
// return 10;
}
private long getMillisToWeekChange()
{
if (_nextWeeklyChange > Calendar.getInstance().getTimeInMillis())
final long currentTime = System.currentTimeMillis();
if (_nextWeeklyChange > currentTime)
{
return _nextWeeklyChange - Calendar.getInstance().getTimeInMillis();
return _nextWeeklyChange - currentTime;
}
return 10;
}
@@ -791,7 +795,7 @@ public class Olympiad extends ListenersContainer
resetWeeklyMatches();
LOGGER.info("Olympiad System: Reset weekly matches to nobles");
_nextWeeklyChange = Calendar.getInstance().getTimeInMillis() + WEEKLY_PERIOD;
_nextWeeklyChange = System.currentTimeMillis() + WEEKLY_PERIOD;
}, getMillisToWeekChange(), WEEKLY_PERIOD);
}

View File

@@ -823,7 +823,7 @@ public class FortSiege implements Siegable
return;
}
final long delay = getFort().getSiegeDate().getTimeInMillis() - Calendar.getInstance().getTimeInMillis();
final long delay = getFort().getSiegeDate().getTimeInMillis() - System.currentTimeMillis();
if (delay < 0)
{
// siege time in past

View File

@@ -102,7 +102,7 @@ public class Siege implements Siegable
try
{
final long timeRemaining = _siegeEndDate.getTimeInMillis() - Calendar.getInstance().getTimeInMillis();
final long timeRemaining = _siegeEndDate.getTimeInMillis() - System.currentTimeMillis();
if (timeRemaining > 3600000)
{
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_HOUR_S_UNTIL_CASTLE_SIEGE_CONCLUSION);
@@ -170,9 +170,10 @@ public class Siege implements Siegable
try
{
final long currentTime = System.currentTimeMillis();
if (!_castle.isTimeRegistrationOver())
{
final long regTimeRemaining = getTimeRegistrationOverDate().getTimeInMillis() - Calendar.getInstance().getTimeInMillis();
final long regTimeRemaining = getTimeRegistrationOverDate().getTimeInMillis() - currentTime;
if (regTimeRemaining > 0)
{
_scheduledStartSiegeTask = ThreadPool.schedule(new ScheduleStartSiegeTask(_castleInst), regTimeRemaining);
@@ -181,7 +182,7 @@ public class Siege implements Siegable
endTimeRegistration(true);
}
final long timeRemaining = getSiegeDate().getTimeInMillis() - Calendar.getInstance().getTimeInMillis();
final long timeRemaining = getSiegeDate().getTimeInMillis() - currentTime;
if (timeRemaining > 86400000)
{
_scheduledStartSiegeTask = ThreadPool.schedule(new ScheduleStartSiegeTask(_castleInst), timeRemaining - 86400000); // Prepare task for 24 before siege start to end registration
@@ -1236,7 +1237,7 @@ public class Siege implements Siegable
public void correctSiegeDateTime()
{
boolean corrected = false;
if (getCastle().getSiegeDate().getTimeInMillis() < Calendar.getInstance().getTimeInMillis())
if (getCastle().getSiegeDate().getTimeInMillis() < System.currentTimeMillis())
{
// Since siege has past reschedule it to the next one
// This is usually caused by server being down
@@ -1347,7 +1348,7 @@ public class Siege implements Siegable
{
setNextSiegeDate(); // Set the next set date for 2 weeks from now
// Schedule Time registration end
getTimeRegistrationOverDate().setTimeInMillis(Calendar.getInstance().getTimeInMillis());
getTimeRegistrationOverDate().setTimeInMillis(System.currentTimeMillis());
_castle.getTimeRegistrationOverDate().add(Calendar.DAY_OF_MONTH, 1);
_castle.setTimeRegistrationOver(false);