public AsyncCommandHelper forRegionDataSave(World world, boolean silent) { checkNotNull(world); formatUsing(world.getName()); registerWithSupervisor("Saving region data for '%s'"); if (silent) { thenTellErrorsOnly("Failed to save regions '%s'"); } else { sendMessageAfterDelay("(Please wait... saving the region data for '%s')"); thenRespondWith( "Saved region data for '%s'", "Failed to load regions '%s'"); } return this; }
public AsyncCommandHelper forRegionDataLoad(World world, boolean silent) { checkNotNull(world); formatUsing(world.getName()); registerWithSupervisor("Loading region data for '%s'"); if (silent) { thenTellErrorsOnly("Failed to load regions '%s'"); } else { sendMessageAfterDelay("(Please wait... loading the region data for '%s')"); thenRespondWith( "Loaded region data for '%s'", "Failed to load regions '%s'"); } return this; }
/** * Submit data to a pastebin service and inform the sender of * success or failure. * * @param supervisor The supervisor instance * @param sender The sender * @param content The content * @param successMessage The message, formatted with {@link String#format(String, Object...)} on success */ public static void pastebin(Supervisor supervisor, final Actor sender, String content, final String successMessage, final ExceptionConverter exceptionConverter) { ListenableFuture<URL> future = new EngineHubPaste().paste(content); AsyncCommandHelper.wrap(future, supervisor, sender, exceptionConverter) .registerWithSupervisor("Submitting content to a pastebin service...") .sendMessageAfterDelay("(Please wait... sending output to pastebin...)"); Futures.addCallback(future, new FutureCallback<URL>() { @Override public void onSuccess(URL url) { sender.print(String.format(successMessage, url)); } @Override public void onFailure(Throwable throwable) { LOGGER.log(Level.WARNING, "Failed to submit pastebin", throwable); sender.printError("Failed to submit to a pastebin. Please see console for the error."); } }); }
.formatUsing(minutes) .registerWithSupervisor("Running CPU profiler for %d minute(s)...") .sendMessageAfterDelay("(Please wait... profiling for %d minute(s)...)") .thenTellErrorsOnly("CPU profiling failed.");
.sendMessageAfterDelay("(Please wait... loading region data for all worlds...)") .thenRespondWith( "Successfully load the region data for all worlds.",
.sendMessageAfterDelay("(Please wait... saving region data for all worlds...)") .thenRespondWith( "Successfully saved the region data for all worlds.",
.formatUsing(region.getId(), world.getName()) .registerWithSupervisor("Removing owners from the region '%s' on '%s'") .sendMessageAfterDelay("(Please wait... querying player names...)") .thenRespondWith("Region '%s' updated with owners removed.", "Failed to remove owners");
.formatUsing(region.getId(), world.getName()) .registerWithSupervisor("Removing members from the region '%s' on '%s'") .sendMessageAfterDelay("(Please wait... querying player names...)") .thenRespondWith("Region '%s' updated with members removed.", "Failed to remove members");
@Command(aliases = {"addmember", "addmember", "addmem", "am"}, usage = "<id> <members...>", flags = "nw:", desc = "Add a member to a region", min = 2) public void addMember(CommandContext args, Actor sender) throws CommandException { warnAboutSaveFailures(sender); World world = checkWorld(args, sender, 'w'); // Get the world String id = args.getString(0); RegionManager manager = checkRegionManager(world); ProtectedRegion region = checkExistingRegion(manager, id, true); id = region.getId(); // Check permissions if (!getPermissionModel(sender).mayAddMembers(region)) { throw new CommandPermissionsException(); } // Resolve members asynchronously DomainInputResolver resolver = new DomainInputResolver( WorldGuard.getInstance().getProfileService(), args.getParsedPaddedSlice(1, 0)); resolver.setLocatorPolicy(args.hasFlag('n') ? UserLocatorPolicy.NAME_ONLY : UserLocatorPolicy.UUID_ONLY); // Then add it to the members ListenableFuture<DefaultDomain> future = Futures.transform( WorldGuard.getInstance().getExecutorService().submit(resolver), resolver.createAddAllFunction(region.getMembers())); AsyncCommandHelper.wrap(future, worldGuard.getSupervisor(), sender, worldGuard.getExceptionConverter()) .formatUsing(region.getId(), world.getName()) .registerWithSupervisor("Adding members to the region '%s' on '%s'") .sendMessageAfterDelay("(Please wait... querying player names...)") .thenRespondWith("Region '%s' updated with new members.", "Failed to add new members"); }
.formatUsing(existing.getId()) .registerWithSupervisor("Removing the region '%s'...") .sendMessageAfterDelay("(Please wait... removing '%s'...)") .thenRespondWith( "The region named '%s' has been removed.",
.formatUsing(id) .registerWithSupervisor("Updating the region '%s'...") .sendMessageAfterDelay("(Please wait... updating '%s'...)") .thenRespondWith( "Region '%s' has been updated with a new area.",
.sendMessageAfterDelay("(Please wait... fetching region list...)") .thenTellErrorsOnly("Failed to fetch region list");
.formatUsing(id) .registerWithSupervisor("Adding the region '%s'...") .sendMessageAfterDelay("(Please wait... adding '%s'...)") .thenRespondWith( "A new region has been made named '%s'.",
.formatUsing(region.getId(), world.getName()) .registerWithSupervisor("Adding owners to the region '%s' on '%s'") .sendMessageAfterDelay("(Please wait... querying player names...)") .thenRespondWith("Region '%s' updated with new owners.", "Failed to add new owners");
.formatUsing(id) .registerWithSupervisor("Claiming the region '%s'...") .sendMessageAfterDelay("(Please wait... claiming '%s'...)") .thenRespondWith( "A new region has been claimed named '%s'.",