new mines system
This commit is contained in:
@@ -13,10 +13,7 @@ import engine.objects.Guild;
|
|||||||
import engine.objects.Mine;
|
import engine.objects.Mine;
|
||||||
import engine.objects.PlayerCharacter;
|
import engine.objects.PlayerCharacter;
|
||||||
import org.pmw.tinylog.Logger;
|
import org.pmw.tinylog.Logger;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.ZoneId;
|
|
||||||
import java.time.ZonedDateTime;
|
|
||||||
|
|
||||||
public class MineThread implements Runnable {
|
public class MineThread implements Runnable {
|
||||||
public MineThread(){
|
public MineThread(){
|
||||||
@@ -113,41 +110,19 @@ public class MineThread implements Runnable {
|
|||||||
Building tower = BuildingManager.getBuildingFromCache(mine.getBuildingID());
|
Building tower = BuildingManager.getBuildingFromCache(mine.getBuildingID());
|
||||||
if(tower == null)
|
if(tower == null)
|
||||||
continue;
|
continue;
|
||||||
LocalDateTime liveTime = LocalDateTime.now().withHour(mine.liveHour).withMinute(mine.liveMinute).minusMinutes(1);
|
LocalDateTime liveTime = LocalDateTime.now().withHour(mine.liveHour).withMinute(mine.liveMinute).minusMinutes(1).plusHours(5);
|
||||||
ZonedDateTime localizedTime = convertCSTToLocalTime(liveTime);
|
|
||||||
if(!mine.isActive && !mine.wasOpened) {
|
if(!mine.isActive && !mine.wasOpened) {
|
||||||
if (ZonedDateTime.now().isAfter(localizedTime)) {
|
if (LocalDateTime.now().isAfter(liveTime)) {
|
||||||
mineWindowOpen(mine);
|
mineWindowOpen(mine);
|
||||||
// mine has not opened today yet, and it is now after the time it should have, open the mine
|
// mine has not opened today yet, and it is now after the time it should have, open the mine
|
||||||
}
|
}
|
||||||
}else{
|
|
||||||
//mine is active right now
|
|
||||||
if (ZonedDateTime.now().isBefore(localizedTime.plusMinutes(30))){
|
|
||||||
continue; // window is not over yet
|
|
||||||
}
|
|
||||||
|
|
||||||
if(tower.getRank() == 1){
|
|
||||||
//mine was not knocked down, close the window
|
|
||||||
mineWindowClose(mine);
|
|
||||||
}else{
|
|
||||||
if(mine.lastClaimer != null)
|
|
||||||
mineWindowClose(mine); //has a claimer, close the window
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
//mine is active right now
|
||||||
|
if (LocalDateTime.now().isBefore(liveTime.plusMinutes(30)))
|
||||||
|
continue; // window is not over yet
|
||||||
|
|
||||||
|
if(tower.getRank() == 1 || mine.lastClaimer != null)
|
||||||
|
mineWindowClose(mine);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static ZonedDateTime convertCSTToLocalTime(LocalDateTime cstDateTime) {
|
|
||||||
// Define the CST time zone (Central Standard Time)
|
|
||||||
ZoneId cstZoneId = ZoneId.of("America/Chicago"); // CST is represented by America/Chicago
|
|
||||||
// Define the system's default time zone
|
|
||||||
ZoneId localZoneId = ZoneId.systemDefault();
|
|
||||||
|
|
||||||
// Create a ZonedDateTime object for CST
|
|
||||||
ZonedDateTime cstZonedDateTime = ZonedDateTime.of(cstDateTime, cstZoneId);
|
|
||||||
|
|
||||||
// Convert CST to the local time zone
|
|
||||||
ZonedDateTime localZonedDateTime = cstZonedDateTime.withZoneSameInstant(localZoneId);
|
|
||||||
|
|
||||||
return localZonedDateTime;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user