Do not start disabled sieges.

This commit is contained in:
MobiusDevelopment 2022-11-07 22:42:17 +00:00
parent 14cb1e0cff
commit c90b7504d6
29 changed files with 786 additions and 644 deletions

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -84,6 +84,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -225,28 +252,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -81,6 +81,34 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
private final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
private SiegeGuardManager _siegeGuardManager;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
_siegeGuardManager = new SiegeGuardManager(getCastle());
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -222,30 +250,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
private final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
private SiegeGuardManager _siegeGuardManager;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
_siegeGuardManager = new SiegeGuardManager(getCastle());
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -82,6 +82,34 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
private final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
private SiegeGuardManager _siegeGuardManager;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
_siegeGuardManager = new SiegeGuardManager(getCastle());
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -223,30 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
private final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
private SiegeGuardManager _siegeGuardManager;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
_siegeGuardManager = new SiegeGuardManager(getCastle());
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -82,6 +82,34 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
private final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
private SiegeGuardManager _siegeGuardManager;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
_siegeGuardManager = new SiegeGuardManager(getCastle());
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -223,30 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
private final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
private SiegeGuardManager _siegeGuardManager;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
_siegeGuardManager = new SiegeGuardManager(getCastle());
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{

View File

@ -83,6 +83,33 @@ public class Siege implements Siegable
private int _controlTowerCount;
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
if ((schedule != null) && schedule.siegeEnabled())
{
startAutoTask();
}
}
public class ScheduleEndSiegeTask implements Runnable
{
private final Castle _castleInst;
@ -224,28 +251,6 @@ public class Siege implements Siegable
}
}
// must support Concurrent Modifications
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
// Castle setting
private final List<ControlTower> _controlTowers = new ArrayList<>();
private final List<FlameTower> _flameTowers = new ArrayList<>();
final Castle _castle;
boolean _isInProgress = false;
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
protected boolean _isRegistrationOver = false;
protected Calendar _siegeEndDate;
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
protected int _firstOwnerClanId = -1;
public Siege(Castle castle)
{
_castle = castle;
startAutoTask();
}
@Override
public void endSiege()
{