/** * 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."); } }); }
AsyncCommandHelper.wrap(sampler.getFuture(), worldGuard.getSupervisor(), sender, worldGuard.getExceptionConverter()) .formatUsing(minutes) .registerWithSupervisor("Running CPU profiler for %d minute(s)...")
AsyncCommandHelper.wrap(future, worldGuard.getSupervisor(), sender, worldGuard.getExceptionConverter()) .forRegionDataLoad(world, false); } else { AsyncCommandHelper.wrap(future, worldGuard.getSupervisor(), sender, worldGuard.getExceptionConverter()) .registerWithSupervisor("Loading regions for all worlds") .sendMessageAfterDelay("(Please wait... loading region data for all worlds...)")
AsyncCommandHelper.wrap(future, worldGuard.getSupervisor(), sender, worldGuard.getExceptionConverter()) .forRegionDataSave(world, false); } else { AsyncCommandHelper.wrap(future, worldGuard.getSupervisor(), sender, worldGuard.getExceptionConverter()) .registerWithSupervisor("Saving regions for all worlds") .sendMessageAfterDelay("(Please wait... saving region data for all worlds...)")
AsyncCommandHelper.wrap(future, worldGuard.getSupervisor(), sender, worldGuard.getExceptionConverter()) .formatUsing(region.getId(), world.getName()) .registerWithSupervisor("Removing owners from the region '%s' on '%s'")
AsyncCommandHelper.wrap(future, worldGuard.getSupervisor(), sender, worldGuard.getExceptionConverter()) .formatUsing(region.getId(), world.getName()) .registerWithSupervisor("Removing members from the region '%s' on '%s'")
@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"); }
AsyncCommandHelper.wrap(WorldGuard.getInstance().getExecutorService().submit(task), worldGuard.getSupervisor(), sender, worldGuard.getExceptionConverter()) .formatUsing(existing.getId()) .registerWithSupervisor("Removing the region '%s'...")
ListenableFuture<?> future = WorldGuard.getInstance().getExecutorService().submit(task); AsyncCommandHelper.wrap(future, worldGuard.getSupervisor(), player, worldGuard.getExceptionConverter()) .formatUsing(id) .registerWithSupervisor("Updating the region '%s'...")
AsyncCommandHelper.wrap(future, worldGuard.getSupervisor(), sender, worldGuard.getExceptionConverter()) .registerWithSupervisor("Getting list of regions...") .sendMessageAfterDelay("(Please wait... fetching region list...)")
ListenableFuture<?> future = WorldGuard.getInstance().getExecutorService().submit(task); AsyncCommandHelper.wrap(future, worldGuard.getSupervisor(), player, worldGuard.getExceptionConverter()) .formatUsing(id) .registerWithSupervisor("Adding the region '%s'...")
resolver.createAddAllFunction(region.getOwners())); AsyncCommandHelper.wrap(future, worldGuard.getSupervisor(), sender, worldGuard.getExceptionConverter()) .formatUsing(region.getId(), world.getName()) .registerWithSupervisor("Adding owners to the region '%s' on '%s'")
ListenableFuture<?> future = worldGuard.getExecutorService().submit(task); AsyncCommandHelper.wrap(future, worldGuard.getSupervisor(), player, worldGuard.getExceptionConverter()) .formatUsing(id) .registerWithSupervisor("Claiming the region '%s'...")