@Subscribe
public void handleWeeklyTasks(PeriodicalTimeWeekEndUpdate event) {
if (disableService.aiTradingEnabled()) {
for (IAIPlayer player : players) {
List<INavigableVessel> shipList = player.getSelectableVessels();
for (INavigableVessel vessel : shipList) {
if (!tradeChecker.isEngagedInTrading(vessel) && tradeChecker.shouldBeTrading(vessel)) {
IAIPlayer owner = (IAIPlayer) vessel.getOwner();
logger.warn("The vessel {} of {} {} is currently not trading (position: {}), strategy={}: reinitialize", vessel.getName(), owner.getName(), owner.getLastName(), vessel.getLocation(), owner.getTradeStrategyType(vessel));
clearRemainingTradeSteps(vessel, player);
initializeStrategyForVessel(player, vessel);
IAITradeStrategy tradeStrategy = player.getTradeStrategyType(vessel).getStrategy();
tradeStrategy.executeTradeSteps(player, vessel);
}
}
IAIConstructionSelectionStrategy constructionStategy = player.getConstructionSelectionType().getStrategy();
if (constructionStategy.shouldOrderNewConstruction(player)) {
EShipType type = constructionStategy.shouldBuildShipType(player);
Optional<INavigableVessel> vessel = constructionStategy.selectCollectingVessel(player, type);
vessel.ifPresent(iNavigableVessel ->
constructionStategy.initShipConstruction(player, iNavigableVessel, type));
}
}
}
}
/**