Class DeliverymenRequestResolver<R extends IRequestable>
- All Implemented Interfaces:
IRequester,IRequestResolver<R>
- Direct Known Subclasses:
DeliveryRequestResolver,PickupRequestResolver
-
Constructor Summary
ConstructorsConstructorDescriptionDeliverymenRequestResolver(@NotNull ILocation location, @NotNull IToken<?> token) -
Method Summary
Modifier and TypeMethodDescriptionattemptResolveRequest(@NotNull IRequestManager manager, @NotNull IRequest<? extends R> request) Method used to attempt a resolving operation.booleancanResolveRequest(@NotNull IRequestManager manager, IRequest<? extends R> requestToCheck) A PreCheck used to determine if this request resolver is able to resolve a given request.getFollowupRequestForCompletion(@NotNull IRequestManager manager, @NotNull IRequest<? extends R> completedRequest) @NotNull net.minecraft.network.chat.MutableComponentgetRequesterDisplayName(@NotNull IRequestManager manager, @NotNull IRequest<?> request) Gets the name of the requester that requested the request given by the token.intgetSuitabilityMetric(@NotNull IRequestManager manager, @NotNull IRequest<? extends R> request) Check how suitable this resolver is for the request.booleanhasCouriers(@NotNull IRequestManager manager) Get the deliverymen we can resolve requests forbooleanisValid()If this resolver has valid data in it.voidonAssignedRequestBeingCancelled(@NotNull IRequestManager manager, @NotNull IRequest<? extends R> request) Indicates that an assigned request has been cancelled.voidonAssignedRequestCancelled(@NotNull IRequestManager manager, @NotNull IRequest<? extends R> request) Indicates that an assigned request has been cancelled.voidonRequestedRequestCancelled(@NotNull IRequestManager manager, @NotNull IRequest<?> request) Method called by the request system to notify this requester that a request has been overruled.voidonRequestedRequestComplete(@NotNull IRequestManager manager, @NotNull IRequest<?> request) Method called by the request system to notify this requester that a request is complete.voidresolveRequest(@NotNull IRequestManager manager, @NotNull IRequest<? extends R> request) Method used to resolve a given request.Methods inherited from class com.minecolonies.core.colony.requestsystem.resolvers.core.AbstractRequestResolver
getId, getLocation, getPriorityMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.minecolonies.api.colony.requestsystem.resolver.IRequestResolver
getRequestType, onColonyUpdate, onRequestAssigned
-
Constructor Details
-
DeliverymenRequestResolver
-
-
Method Details
-
canResolveRequest
public boolean canResolveRequest(@NotNull @NotNull IRequestManager manager, IRequest<? extends R> requestToCheck) Description copied from interface:IRequestResolverA PreCheck used to determine if this request resolver is able to resolve a given request. Should quickly and cheaply check if this resolver COULD resolve this request.- Parameters:
manager- The manager that is checking if this resolver could resolve that request.requestToCheck- The request to check.- Returns:
- True when this resolver COULD resolve the given request, false when not.
-
hasCouriers
Get the deliverymen we can resolve requests for- Parameters:
manager- request manager- Returns:
- list of citizens
-
getSuitabilityMetric
public int getSuitabilityMetric(@NotNull @NotNull IRequestManager manager, @NotNull @NotNull IRequest<? extends R> request) Description copied from interface:IRequestResolverCheck how suitable this resolver is for the request.- Specified by:
getSuitabilityMetricin interfaceIRequestResolver<R extends IRequestable>- Overrides:
getSuitabilityMetricin classAbstractRequestResolver<R extends IRequestable>- Parameters:
manager- the req manager.request- the request to check.- Returns:
- the suitability metric (an int for easy comparison).
-
attemptResolveRequest
@Nullable public @Nullable List<IToken<?>> attemptResolveRequest(@NotNull @NotNull IRequestManager manager, @NotNull @NotNull IRequest<? extends R> request) Description copied from interface:IRequestResolverMethod used to attempt a resolving operation.When this attempt was successful a List with tokens of required requests is returned. This list maybe empty. The list should indicate all sub requests that should be fullfilled before the @code{resolve(IRequest request)} method is called.
When this attempt was not successful, eg. this resolver could not schedule a crafting operation, a Null object should be returned. In that case the next resolver will be tried by the manager.
IT IS VITAL THAT THE REQUEST RETURNED ARE NOT YET ASSIGNED. SIMULATION AND OTHER STRATEGIES WILL FAIL ELSE! THE MANAGER GIVEN WILL HANDLE ASSIGNING HIMSELF!
- Parameters:
manager- The manager that is attempting to resolve using this resolver.request- The request to resolve.- Returns:
- The tokens of required requests if the attempt was successful (an empty list is allowed to indicate no requirements), null if the attempt failed.
-
resolveRequest
public void resolveRequest(@NotNull @NotNull IRequestManager manager, @NotNull @NotNull IRequest<? extends R> request) throws RuntimeException Description copied from interface:IRequestResolverMethod used to resolve a given request. Is called the moment all Child requests are resolved.The resolver should update the state through the given manager.
When this method is called all requirements need be fullfilled for this resolver. If this is not the case it will throw a RunTimeException
- Parameters:
manager- The manager that is resolving this request, under normal conditions this is the colony manager.request- The request to resolve.- Throws:
RuntimeException- is thrown when the resolver could not resolve the request. Should never happen as attemptResolve should be called first, and all requirements should be available to this resolver at this point in time.
-
getFollowupRequestForCompletion
@Nullable public @Nullable List<IRequest<?>> getFollowupRequestForCompletion(@NotNull @NotNull IRequestManager manager, @NotNull @NotNull IRequest<? extends R> completedRequest) -
onAssignedRequestBeingCancelled
public void onAssignedRequestBeingCancelled(@NotNull @NotNull IRequestManager manager, @NotNull @NotNull IRequest<? extends R> request) Description copied from interface:IRequestResolverIndicates that an assigned request has been cancelled. Is called before graph is updated.- Parameters:
manager- The manager that indicates the cancellingrequest- The request that has been cancelled.
-
onAssignedRequestCancelled
public void onAssignedRequestCancelled(@NotNull @NotNull IRequestManager manager, @NotNull @NotNull IRequest<? extends R> request) Description copied from interface:IRequestResolverIndicates that an assigned request has been cancelled. Is called after the graph has been updated.- Parameters:
manager- The manager that indicates the cancellingrequest- The request that has been cancelled.
-
onRequestedRequestComplete
public void onRequestedRequestComplete(@NotNull @NotNull IRequestManager manager, @NotNull @NotNull IRequest<?> request) Description copied from interface:IRequesterMethod called by the request system to notify this requester that a request is complete.- Parameters:
manager- the request manager.request- the request.
-
onRequestedRequestCancelled
public void onRequestedRequestCancelled(@NotNull @NotNull IRequestManager manager, @NotNull @NotNull IRequest<?> request) Description copied from interface:IRequesterMethod called by the request system to notify this requester that a request has been overruled.- Parameters:
manager- the request manager.request- the request.
-
getRequesterDisplayName
@NotNull public @NotNull net.minecraft.network.chat.MutableComponent getRequesterDisplayName(@NotNull @NotNull IRequestManager manager, @NotNull @NotNull IRequest<?> request) Description copied from interface:IRequesterGets the name of the requester that requested the request given by the token.- Specified by:
getRequesterDisplayNamein interfaceIRequester- Overrides:
getRequesterDisplayNamein classAbstractRequestResolver<R extends IRequestable>- Parameters:
manager- the request manager.request- the request for which the name of the requester is retrieved- Returns:
- The display name of the requester.
-
isValid
public boolean isValid()Description copied from interface:IRequestResolverIf this resolver has valid data in it.- Returns:
- true if so.
-