tick
1.
com.minecolonies.coremod.colony.requestsystem.management.manager.StandardRequestManager tick()
2.
com.minecolonies.coremod.colony.requestsystem.resolvers.StandardRetryingRequestResolver
@Override
public void tick()
{
manager.getLogger().debug("Starting reassignment.");
//Lets decrement all delays
getAllAssignedRequests().forEach(t -> {
Integer current = delays.remove(t);
delays.put(t, --current);
});
//Lets get all keys with 0 residual delay:
final Set<IToken<?>> retryables = delays.keySet().stream().filter(t -> delays.get(t) == 0).collect(Collectors.toSet());
final Set<IToken<?>> successfully = retryables.stream().filter(t -> {
final Set<IToken<?>> blackList = assignedRequests.get(t) < getMaximalTries() ? ImmutableSet.of() : ImmutableSet.of(id);
Integer currentAttempt = assignedRequests.get(t);
this.setCurrent(t);
final IToken<?> resultingResolver;
try
{
resultingResolver = manager.reassignRequest(t, blackList);
}
catch (Exception ex)
{
assignedRequests.remove(t);
delays.remove(t);
return false;
}
this.setCurrent(null);
assignedRequests.put(t, ++currentAttempt);
if (resultingResolver != null && !resultingResolver.equals(getId()))
{
assignedRequests.remove(t);
delays.remove(t);
}
return resultingResolver != null;
}).collect(Collectors.toSet());
successfully.forEach(t -> {
manager.getLogger().debug("Failed to reassign a retryable request: " + id);
});
manager.getLogger().debug("Finished reassignment.");
}
评论区