use of org.spongepowered.api.command.CommandSource in project TriggerReactor by wysohn.
the class TriggerReactor method showGlowStones.
@Override
protected void showGlowStones(ICommandSender sender, Set<Entry<SimpleLocation, Trigger>> set) {
CommandSource source = sender.get();
if (source instanceof Player) {
Player player = (Player) source;
for (Entry<SimpleLocation, Trigger> entry : set) {
SimpleLocation sloc = entry.getKey();
player.sendBlockChange(sloc.getX(), sloc.getY(), sloc.getZ(), BlockTypes.GLOWSTONE.getDefaultState());
}
}
}
use of org.spongepowered.api.command.CommandSource in project CatClearLag by Time6628.
the class TilesCommand method execute.
@Override
public CommandResult execute(CommandSource src, CommandContext args) {
Optional<World> world = args.getOne(Text.of("world"));
List<Chunk> chunksToSort = world.isPresent() ? Lists.newArrayList(world.get().getLoadedChunks()) : plugin.getGame().getServer().getWorlds().stream().flatMap(world1 -> Streams.stream(world1.getLoadedChunks())).collect(Collectors.toList());
TreeMap<Chunk, Integer> sortedChunks = new TreeMap<>((o1, o2) -> Integer.compare(o2.getTileEntities().size(), o1.getTileEntities().size()));
for (Chunk chunk : chunksToSort) {
sortedChunks.put(chunk, chunk.getTileEntities().size());
}
List<Text> texts = new ArrayList<>();
sortedChunks.forEach(((chunk, integer) -> texts.add(Text.builder().append(Text.of(chunk.getPosition().getX() + "," + chunk.getPosition().getZ() + " contains " + integer + " tiles.")).onClick(callback(chunk)).build())));
plugin.getPaginationService().builder().contents((texts)).title(Text.builder().color(TextColors.LIGHT_PURPLE).append(Text.of("Laggy Chunks")).build()).sendTo(src);
return CommandResult.success();
}
use of org.spongepowered.api.command.CommandSource in project CatClearLag by Time6628.
the class EntitiesCommand method execute.
@Override
public CommandResult execute(CommandSource src, CommandContext args) {
Optional<World> world = args.getOne(Text.of("world"));
List<Chunk> chunksToSort = world.isPresent() ? Lists.newArrayList(world.get().getLoadedChunks()) : plugin.getGame().getServer().getWorlds().stream().flatMap(world1 -> Streams.stream(world1.getLoadedChunks())).collect(Collectors.toList());
TreeMap<Chunk, Integer> sortedChunks = new TreeMap<>((o1, o2) -> Integer.compare(o2.getEntities().size(), o1.getEntities().size()));
for (Chunk chunk : chunksToSort) {
sortedChunks.put(chunk, chunk.getEntities().size());
}
List<Text> texts = new ArrayList<>();
sortedChunks.forEach(((chunk, integer) -> texts.add(Text.builder().append(Text.of(chunk.getPosition().getX() + "," + chunk.getPosition().getZ() + " in world " + chunk.getWorld().getName() + " contains " + integer + " entities.")).onClick(callback(chunk)).build())));
plugin.getPaginationService().builder().contents((texts)).title(Text.builder().color(TextColors.LIGHT_PURPLE).append(Text.of("Laggy Chunks")).build()).sendTo(src);
return CommandResult.success();
}
use of org.spongepowered.api.command.CommandSource in project Skree by Skelril.
the class MarketVerifyCommand method execute.
@Override
public CommandResult execute(CommandSource src, CommandContext args) throws CommandException {
Optional<MarketService> optService = Sponge.getServiceManager().provide(MarketService.class);
if (!optService.isPresent()) {
src.sendMessage(Text.of(TextColors.DARK_RED, "The market service is not currently running."));
return CommandResult.empty();
}
MarketService service = optService.get();
Task.builder().async().execute(() -> {
PaginationService pagination = Sponge.getServiceManager().provideUnchecked(PaginationService.class);
List<Clause<String, BigDecimal>> profitMargins = new ArrayList<>();
CraftingRecipeRegistry recipeRegistry = Sponge.getRegistry().getCraftingRecipeRegistry();
for (CraftingRecipe recipe : recipeRegistry.getRecipes()) {
ItemStack output = recipe.getExemplaryResult().createStack();
Optional<BigDecimal> optResultPrice = service.getPrice(output);
if (!optResultPrice.isPresent()) {
continue;
}
String name = service.getAlias(output).orElse(output.getType().getId());
// TODO This has been roughly ported from forge to sponge
// it may be incorrect, and also could be considerably optimized
Collection<ItemStack> items = new ArrayList<>();
if (recipe instanceof ShapedCraftingRecipe) {
int height = ((ShapedCraftingRecipe) recipe).getHeight();
int width = ((ShapedCraftingRecipe) recipe).getWidth();
for (int x = 0; x < width; ++x) {
for (int y = 0; y < height; ++y) {
getMostExpensiveOption(service, ((ShapedCraftingRecipe) recipe).getIngredient(x, y).displayedItems()).ifPresent(items::add);
}
}
} else if (recipe instanceof ShapelessCraftingRecipe) {
((ShapelessCraftingRecipe) recipe).getIngredientPredicates().forEach(i -> getMostExpensiveOption(service, i.displayedItems()).ifPresent(items::add));
} else {
src.sendMessage(Text.of(TextColors.RED, "Unsupported recipe for " + name));
continue;
}
items.removeAll(Collections.singleton(null));
BigDecimal creationCost = BigDecimal.ZERO;
try {
for (ItemStack stack : items) {
creationCost = creationCost.add(service.getPrice(stack).orElse(BigDecimal.ZERO));
}
} catch (Exception ex) {
src.sendMessage(Text.of(TextColors.RED, "Couldn't complete checks for " + name));
continue;
}
if (creationCost.equals(BigDecimal.ZERO)) {
src.sendMessage(Text.of(TextColors.RED, "No ingredients found on market for " + name));
continue;
}
BigDecimal sellPrice = optResultPrice.get();
sellPrice = sellPrice.multiply(service.getSellFactor(sellPrice));
profitMargins.add(new Clause<>(name, sellPrice.subtract(creationCost)));
}
List<Text> result = profitMargins.stream().sorted((a, b) -> b.getValue().subtract(a.getValue()).intValue()).map(a -> {
boolean profitable = a.getValue().compareTo(BigDecimal.ZERO) >= 0;
return Text.of(profitable ? TextColors.RED : TextColors.GREEN, a.getKey().toUpperCase(), " has a profit margin of ", profitable ? "+" : "", MarketImplUtil.format(a.getValue()));
}).collect(Collectors.toList());
pagination.builder().contents(result).title(Text.of(TextColors.GOLD, "Profit Margin Report")).padding(Text.of(" ")).sendTo(src);
}).submit(SkreePlugin.inst());
src.sendMessage(Text.of(TextColors.YELLOW, "Verification in progress..."));
return CommandResult.success();
}
use of org.spongepowered.api.command.CommandSource in project Skree by Skelril.
the class RegionRemMemberCommand method execute.
@Override
public CommandResult execute(CommandSource src, CommandContext args) throws CommandException {
if (!(src instanceof Player)) {
src.sendMessage(Text.of("You must be a player to use this command (for now ;) )!"));
return CommandResult.empty();
}
Optional<RegionService> optService = Sponge.getServiceManager().provide(RegionService.class);
if (!optService.isPresent()) {
src.sendMessage(Text.of(TextColors.DARK_RED, "The region service is not currently running."));
return CommandResult.empty();
}
RegionService service = optService.get();
Player player = (Player) src;
Optional<Region> optRef = service.getSelectedRegion(player);
if (!optRef.isPresent()) {
player.sendMessage(Text.of(TextColors.RED, "You do not currently have a region selected."));
return CommandResult.empty();
}
Region ref = optRef.get();
if (!ref.getMembers().contains(player.getUniqueId())) {
player.sendMessage(Text.of(TextColors.RED, "You must be a member of the region to modify it!"));
return CommandResult.empty();
}
List<UUID> oldMembers = args.<User>getAll("player").stream().map(Identifiable::getUniqueId).filter(a -> ref.getMembers().contains(a)).collect(Collectors.toList());
ref.remMember(oldMembers);
player.sendMessage(Text.of(TextColors.YELLOW, "Removed ", oldMembers.size(), " players from the region."));
return CommandResult.success();
}
Aggregations