Search in sources :

Example 1 with Arg

use of gg.projecteden.nexus.framework.commands.models.annotations.Arg in project Nexus by ProjectEdenGG.

the class CostumeCommand method top.

@Path("top [page]")
@Permission(Group.ADMIN)
void top(@Arg("1") int page) {
    Map<Costume, Integer> counts = new HashMap<>() {

        {
            for (CostumeUser user : service.getAll()) if (user.getRank() != Rank.ADMIN)
                for (String costume : user.getOwnedCostumes()) put(Costume.of(costume), getOrDefault(costume, 0) + 1);
        }
    };
    final BiFunction<Costume, String, JsonBuilder> formatter = (costume, index) -> json(index + " &e" + costume.getId() + " &7- " + counts.get(costume));
    paginate(Utils.sortByValueReverse(counts).keySet(), formatter, "/costume top", page);
}
Also used : JsonBuilder(gg.projecteden.nexus.utils.JsonBuilder) StringUtils(gg.projecteden.nexus.utils.StringUtils) BiFunction(java.util.function.BiFunction) ConverterFor(gg.projecteden.nexus.framework.commands.models.annotations.ConverterFor) Player(org.bukkit.entity.Player) EventHandler(org.bukkit.event.EventHandler) InventoryProvider(fr.minuskube.inv.content.InventoryProvider) MaterialTag(gg.projecteden.nexus.utils.MaterialTag) InventoryContents(fr.minuskube.inv.content.InventoryContents) Map(java.util.Map) Permission(gg.projecteden.nexus.framework.commands.models.annotations.Permission) DyeStation(gg.projecteden.nexus.features.custombenches.DyeStation) Material(org.bukkit.Material) EXCLUSIVE(gg.projecteden.nexus.models.costume.Costume.EXCLUSIVE) Path(gg.projecteden.nexus.framework.commands.models.annotations.Path) Rank(gg.projecteden.nexus.models.nerd.Rank) DyeStationMenu(gg.projecteden.nexus.features.custombenches.DyeStation.DyeStationMenu) NonNull(lombok.NonNull) Tasks(gg.projecteden.nexus.utils.Tasks) Collectors(java.util.stream.Collectors) ItemStack(org.bukkit.inventory.ItemStack) Aliases(gg.projecteden.nexus.framework.commands.models.annotations.Aliases) List(java.util.List) CustomModelFolder(gg.projecteden.nexus.features.resourcepack.models.files.CustomModelFolder) MenuUtils(gg.projecteden.nexus.features.menus.MenuUtils) CostumeType(gg.projecteden.nexus.models.costume.Costume.CostumeType) TabCompleterFor(gg.projecteden.nexus.framework.commands.models.annotations.TabCompleterFor) OnlinePlayers(gg.projecteden.nexus.utils.PlayerUtils.OnlinePlayers) CustomModel(gg.projecteden.nexus.features.resourcepack.models.CustomModel) SmartInventory(fr.minuskube.inv.SmartInventory) JsonBuilder(gg.projecteden.nexus.utils.JsonBuilder) Arg(gg.projecteden.nexus.framework.commands.models.annotations.Arg) HashMap(java.util.HashMap) Group(gg.projecteden.nexus.framework.commands.models.annotations.Permission.Group) InventoryCloseEvent(org.bukkit.event.inventory.InventoryCloseEvent) ICON(gg.projecteden.nexus.features.resourcepack.models.CustomModel.ICON) ResourcePackUpdateStartEvent(gg.projecteden.nexus.features.resourcepack.models.events.ResourcePackUpdateStartEvent) ColorType(gg.projecteden.nexus.utils.ColorType) ArrayList(java.util.ArrayList) InvalidInputException(gg.projecteden.nexus.framework.exceptions.postconfigured.InvalidInputException) Costume(gg.projecteden.nexus.models.costume.Costume) CostumeUserService(gg.projecteden.nexus.models.costume.CostumeUserService) ResourcePackUpdateCompleteEvent(gg.projecteden.nexus.features.resourcepack.models.events.ResourcePackUpdateCompleteEvent) ClickableItem(fr.minuskube.inv.ClickableItem) ChatColor(net.md_5.bungee.api.ChatColor) Listener(org.bukkit.event.Listener) StoreGallery(gg.projecteden.nexus.features.store.gallery.StoreGallery) ItemBuilder(gg.projecteden.nexus.utils.ItemBuilder) CostumeUser(gg.projecteden.nexus.models.costume.CostumeUser) CustomCommand(gg.projecteden.nexus.framework.commands.models.CustomCommand) Utils(gg.projecteden.nexus.utils.Utils) TickTime(gg.projecteden.utils.TimeUtils.TickTime) CommandEvent(gg.projecteden.nexus.framework.commands.models.events.CommandEvent) AllArgsConstructor(lombok.AllArgsConstructor) NoArgsConstructor(lombok.NoArgsConstructor) CostumeUser(gg.projecteden.nexus.models.costume.CostumeUser) HashMap(java.util.HashMap) Costume(gg.projecteden.nexus.models.costume.Costume) Path(gg.projecteden.nexus.framework.commands.models.annotations.Path) Permission(gg.projecteden.nexus.framework.commands.models.annotations.Permission)

Example 2 with Arg

use of gg.projecteden.nexus.framework.commands.models.annotations.Arg in project Nexus by ProjectEdenGG.

the class StoreCommand method coupon_list.

@Async
@SneakyThrows
@Path("coupons list <player>")
void coupon_list(@Arg(value = "self", permission = Group.STAFF) Contributor contributor) {
    final List<Coupon> coupons = Nexus.getBuycraft().getApiClient().getAllCoupons().execute().body().getData().stream().filter(coupon -> coupon.getUsername().equals(contributor.getName())).filter(coupon -> coupon.getExpire().getLimit() > 0).toList();
    if (coupons.isEmpty())
        error("No coupons found" + (isSelf(contributor) ? ". Create one with /store credit redeem <amount>" : " for " + contributor.getNickname()));
    send(PREFIX + "Available coupons (&eClick &3to copy)");
    line();
    for (Coupon coupon : coupons) send(json(" &e" + coupon.getCode() + " &7- $" + coupon.getDiscount().getValue()).copy(coupon.getCode()).hover("&fClick to copy"));
    line();
    send("&3Redeem at &e" + StoreCommand.URL);
}
Also used : StringUtils(gg.projecteden.nexus.utils.StringUtils) SneakyThrows(lombok.SneakyThrows) SmartInventory(fr.minuskube.inv.SmartInventory) JsonBuilder(gg.projecteden.nexus.utils.JsonBuilder) DisplaySet(gg.projecteden.nexus.features.store.gallery.StoreGalleryNPCs.DisplaySet) TabCompleteIgnore(gg.projecteden.nexus.framework.commands.models.annotations.TabCompleteIgnore) BiFunction(java.util.function.BiFunction) Async(gg.projecteden.annotations.Async) ContributorService(gg.projecteden.nexus.models.store.ContributorService) StoreGalleryNPCs(gg.projecteden.nexus.features.store.gallery.StoreGalleryNPCs) Arg(gg.projecteden.nexus.framework.commands.models.annotations.Arg) Group(gg.projecteden.nexus.framework.commands.models.annotations.Permission.Group) Player(org.bukkit.entity.Player) Contributor(gg.projecteden.nexus.models.store.Contributor) ArrayList(java.util.ArrayList) EventHandler(org.bukkit.event.EventHandler) PlayerUtils(gg.projecteden.nexus.utils.PlayerUtils) WarpType(gg.projecteden.nexus.models.warps.WarpType) PlayerRankChangeEvent(gg.projecteden.nexus.utils.LuckPermsUtils.GroupChange.PlayerRankChangeEvent) InventoryProvider(fr.minuskube.inv.content.InventoryProvider) InventoryContents(fr.minuskube.inv.content.InventoryContents) Permission(gg.projecteden.nexus.framework.commands.models.annotations.Permission) ExtraPlotUserService(gg.projecteden.nexus.models.extraplots.ExtraPlotUserService) CouponCreator(gg.projecteden.nexus.features.store.BuycraftUtils.CouponCreator) StoreCategory(gg.projecteden.nexus.features.store.annotations.Category.StoreCategory) Nickname(gg.projecteden.nexus.models.nickname.Nickname) Purchase(gg.projecteden.nexus.models.store.Contributor.Purchase) Material(org.bukkit.Material) ClickableItem(fr.minuskube.inv.ClickableItem) Listener(org.bukkit.event.Listener) Nexus(gg.projecteden.nexus.Nexus) ItemBuilder(gg.projecteden.nexus.utils.ItemBuilder) Path(gg.projecteden.nexus.framework.commands.models.annotations.Path) NPCListener(gg.projecteden.nexus.features.store.perks.NPCListener) Nerd(gg.projecteden.nexus.models.nerd.Nerd) CustomCommand(gg.projecteden.nexus.framework.commands.models.CustomCommand) UUID(java.util.UUID) StringUtils.prettyMoney(gg.projecteden.nexus.utils.StringUtils.prettyMoney) Coupon(net.buycraft.plugin.data.Coupon) Utils(gg.projecteden.nexus.utils.Utils) OfflinePlayer(org.bukkit.OfflinePlayer) Aliases(gg.projecteden.nexus.framework.commands.models.annotations.Aliases) List(java.util.List) CommandEvent(gg.projecteden.nexus.framework.commands.models.events.CommandEvent) MenuUtils(gg.projecteden.nexus.features.menus.MenuUtils) AllArgsConstructor(lombok.AllArgsConstructor) NoArgsConstructor(lombok.NoArgsConstructor) Coupon(net.buycraft.plugin.data.Coupon) Path(gg.projecteden.nexus.framework.commands.models.annotations.Path) Async(gg.projecteden.annotations.Async) SneakyThrows(lombok.SneakyThrows)

Example 3 with Arg

use of gg.projecteden.nexus.framework.commands.models.annotations.Arg in project Nexus by ProjectEdenGG.

the class Easter21Command method topLocations.

@Path("topLocations [page]")
@Permission(Group.ADMIN)
void topLocations(@Arg("1") int page) {
    Map<Location, Integer> counts = new HashMap<>() {

        {
            for (Easter21User user : new Easter21UserService().getAll()) for (Location location : user.getFound()) put(location, getOrDefault(location, 0) + 1);
        }
    };
    send(PREFIX + "Most found eggs");
    BiFunction<Location, String, JsonBuilder> formatter = (location, index) -> json(index + " &e" + getCoordinateString(location) + " &7- " + counts.get(location)).command(getTeleportCommand(location)).hover("&eClick to teleport");
    paginate(Utils.sortByValueReverse(counts).keySet(), formatter, "/easter topLocations", page);
}
Also used : JsonBuilder(gg.projecteden.nexus.utils.JsonBuilder) ActionGroup(gg.projecteden.nexus.utils.Utils.ActionGroup) JsonBuilder(gg.projecteden.nexus.utils.JsonBuilder) BiFunction(java.util.function.BiFunction) LocalDateTime(java.time.LocalDateTime) Arg(gg.projecteden.nexus.framework.commands.models.annotations.Arg) HashMap(java.util.HashMap) Group(gg.projecteden.nexus.framework.commands.models.annotations.Permission.Group) EventHandler(org.bukkit.event.EventHandler) WarpType(gg.projecteden.nexus.models.warps.WarpType) Block(org.bukkit.block.Block) Location(org.bukkit.Location) StringUtils.getTeleportCommand(gg.projecteden.nexus.utils.StringUtils.getTeleportCommand) Map(java.util.Map) Permission(gg.projecteden.nexus.framework.commands.models.annotations.Permission) PlayerInteractEvent(org.bukkit.event.player.PlayerInteractEvent) WorldGuardUtils(gg.projecteden.nexus.utils.WorldGuardUtils) Material(org.bukkit.Material) Listener(org.bukkit.event.Listener) Warp(gg.projecteden.nexus.models.warps.Warps.Warp) Path(gg.projecteden.nexus.framework.commands.models.annotations.Path) StringUtils.getCoordinateString(gg.projecteden.nexus.utils.StringUtils.getCoordinateString) NonNull(lombok.NonNull) CustomCommand(gg.projecteden.nexus.framework.commands.models.CustomCommand) Easter21User(gg.projecteden.nexus.models.easter21.Easter21User) Utils(gg.projecteden.nexus.utils.Utils) Easter21UserService(gg.projecteden.nexus.models.easter21.Easter21UserService) List(java.util.List) Collectors.toList(java.util.stream.Collectors.toList) CommandEvent(gg.projecteden.nexus.framework.commands.models.events.CommandEvent) LocalDate(java.time.LocalDate) Comparator(java.util.Comparator) Disabled(gg.projecteden.annotations.Disabled) BlockFromToEvent(org.bukkit.event.block.BlockFromToEvent) NoArgsConstructor(lombok.NoArgsConstructor) HashMap(java.util.HashMap) Easter21User(gg.projecteden.nexus.models.easter21.Easter21User) Easter21UserService(gg.projecteden.nexus.models.easter21.Easter21UserService) StringUtils.getCoordinateString(gg.projecteden.nexus.utils.StringUtils.getCoordinateString) Location(org.bukkit.Location) Path(gg.projecteden.nexus.framework.commands.models.annotations.Path) Permission(gg.projecteden.nexus.framework.commands.models.annotations.Permission)

Example 4 with Arg

use of gg.projecteden.nexus.framework.commands.models.annotations.Arg in project Nexus by ProjectEdenGG.

the class ReferralCommand method whoHasPlaytime.

@Path("who has playtime <playtime> from <site> [page]")
void whoHasPlaytime(String playtime, @Arg(tabCompleter = ReferralSite.class) String subdomain, @Arg("1") int page) {
    final long seconds = Timespan.of(playtime).getOriginal();
    List<Hours> players = getPlayersFrom(subdomain).stream().map(uuid -> new HoursService().get(uuid)).filter(hours -> hours.getTotal() >= seconds).sorted(Comparator.comparing(Hours::getTotal).reversed()).toList();
    BiFunction<Hours, String, JsonBuilder> formatter = (hours, index) -> json(index + " &e" + Nerd.of(hours).getColoredName() + " &7- " + Timespan.ofSeconds(hours.getTotal()).format());
    paginate(players, formatter, "/referral who has playtime " + playtime + " from " + subdomain, page);
}
Also used : Arrays(java.util.Arrays) StringUtils(gg.projecteden.nexus.utils.StringUtils) TabCompleteIgnore(gg.projecteden.nexus.framework.commands.models.annotations.TabCompleteIgnore) BiFunction(java.util.function.BiFunction) RequiredArgsConstructor(lombok.RequiredArgsConstructor) Nullables.isNullOrEmpty(gg.projecteden.nexus.utils.Nullables.isNullOrEmpty) WrittenBookMenu(gg.projecteden.nexus.features.menus.BookBuilder.WrittenBookMenu) EventHandler(org.bukkit.event.EventHandler) Utils.sortByValueReverse(gg.projecteden.nexus.utils.Utils.sortByValueReverse) Punishments(gg.projecteden.nexus.models.punishments.Punishments) Map(java.util.Map) Permission(gg.projecteden.nexus.framework.commands.models.annotations.Permission) HasReadRules(gg.projecteden.nexus.models.rule.HasReadRules) Timespan(gg.projecteden.utils.TimeUtils.Timespan) Nexus(gg.projecteden.nexus.Nexus) PlayerJoinEvent(org.bukkit.event.player.PlayerJoinEvent) Description(gg.projecteden.nexus.framework.commands.models.annotations.Description) Path(gg.projecteden.nexus.framework.commands.models.annotations.Path) Nerd(gg.projecteden.nexus.models.nerd.Nerd) PlayerLoginEvent(org.bukkit.event.player.PlayerLoginEvent) Rank(gg.projecteden.nexus.models.nerd.Rank) NonNull(lombok.NonNull) Tasks(gg.projecteden.nexus.utils.Tasks) HideFromHelp(gg.projecteden.nexus.framework.commands.models.annotations.HideFromHelp) UUID(java.util.UUID) Collectors(java.util.stream.Collectors) List(java.util.List) NotNull(org.jetbrains.annotations.NotNull) Getter(lombok.Getter) JsonBuilder(gg.projecteden.nexus.utils.JsonBuilder) LocalDateTime(java.time.LocalDateTime) Async(gg.projecteden.annotations.Async) Arg(gg.projecteden.nexus.framework.commands.models.annotations.Arg) HashMap(java.util.HashMap) Group(gg.projecteden.nexus.framework.commands.models.annotations.Permission.Group) Function(java.util.function.Function) ArrayList(java.util.ArrayList) Hours(gg.projecteden.nexus.models.hours.Hours) Strings(com.google.common.base.Strings) HasReadRulesService(gg.projecteden.nexus.models.rule.HasReadRulesService) Referral(gg.projecteden.nexus.models.referral.Referral) Listener(org.bukkit.event.Listener) ReferralService(gg.projecteden.nexus.models.referral.ReferralService) CustomCommand(gg.projecteden.nexus.framework.commands.models.CustomCommand) HasUniqueId(me.lexikiq.HasUniqueId) Origin(gg.projecteden.nexus.models.referral.Referral.Origin) CooldownService(gg.projecteden.nexus.models.cooldown.CooldownService) TickTime(gg.projecteden.utils.TimeUtils.TickTime) CommandEvent(gg.projecteden.nexus.framework.commands.models.events.CommandEvent) HoursService(gg.projecteden.nexus.models.hours.HoursService) Data(lombok.Data) Comparator(java.util.Comparator) NoArgsConstructor(lombok.NoArgsConstructor) JsonBuilder(gg.projecteden.nexus.utils.JsonBuilder) Hours(gg.projecteden.nexus.models.hours.Hours) HoursService(gg.projecteden.nexus.models.hours.HoursService) Path(gg.projecteden.nexus.framework.commands.models.annotations.Path)

Example 5 with Arg

use of gg.projecteden.nexus.framework.commands.models.annotations.Arg in project Nexus by ProjectEdenGG.

the class ReferralCommand method whoHasRank.

@Path("who has rank <rank> from <site> [page]")
void whoHasRank(Rank rank, @Arg(tabCompleter = ReferralSite.class) String subdomain, @Arg("1") int page) {
    List<Hours> players = getPlayersFrom(subdomain).stream().map(uuid -> new HoursService().get(uuid)).filter(uuid -> Rank.of(uuid).gte(rank)).sorted(Comparator.comparing(Hours::getTotal).reversed()).toList();
    BiFunction<Hours, String, JsonBuilder> formatter = (hours, index) -> json(index + " &e" + Nerd.of(hours).getColoredName());
    paginate(players, formatter, "/referral who has rank " + rank.name().toLowerCase() + " from " + subdomain, page);
}
Also used : Arrays(java.util.Arrays) StringUtils(gg.projecteden.nexus.utils.StringUtils) TabCompleteIgnore(gg.projecteden.nexus.framework.commands.models.annotations.TabCompleteIgnore) BiFunction(java.util.function.BiFunction) RequiredArgsConstructor(lombok.RequiredArgsConstructor) Nullables.isNullOrEmpty(gg.projecteden.nexus.utils.Nullables.isNullOrEmpty) WrittenBookMenu(gg.projecteden.nexus.features.menus.BookBuilder.WrittenBookMenu) EventHandler(org.bukkit.event.EventHandler) Utils.sortByValueReverse(gg.projecteden.nexus.utils.Utils.sortByValueReverse) Punishments(gg.projecteden.nexus.models.punishments.Punishments) Map(java.util.Map) Permission(gg.projecteden.nexus.framework.commands.models.annotations.Permission) HasReadRules(gg.projecteden.nexus.models.rule.HasReadRules) Timespan(gg.projecteden.utils.TimeUtils.Timespan) Nexus(gg.projecteden.nexus.Nexus) PlayerJoinEvent(org.bukkit.event.player.PlayerJoinEvent) Description(gg.projecteden.nexus.framework.commands.models.annotations.Description) Path(gg.projecteden.nexus.framework.commands.models.annotations.Path) Nerd(gg.projecteden.nexus.models.nerd.Nerd) PlayerLoginEvent(org.bukkit.event.player.PlayerLoginEvent) Rank(gg.projecteden.nexus.models.nerd.Rank) NonNull(lombok.NonNull) Tasks(gg.projecteden.nexus.utils.Tasks) HideFromHelp(gg.projecteden.nexus.framework.commands.models.annotations.HideFromHelp) UUID(java.util.UUID) Collectors(java.util.stream.Collectors) List(java.util.List) NotNull(org.jetbrains.annotations.NotNull) Getter(lombok.Getter) JsonBuilder(gg.projecteden.nexus.utils.JsonBuilder) LocalDateTime(java.time.LocalDateTime) Async(gg.projecteden.annotations.Async) Arg(gg.projecteden.nexus.framework.commands.models.annotations.Arg) HashMap(java.util.HashMap) Group(gg.projecteden.nexus.framework.commands.models.annotations.Permission.Group) Function(java.util.function.Function) ArrayList(java.util.ArrayList) Hours(gg.projecteden.nexus.models.hours.Hours) Strings(com.google.common.base.Strings) HasReadRulesService(gg.projecteden.nexus.models.rule.HasReadRulesService) Referral(gg.projecteden.nexus.models.referral.Referral) Listener(org.bukkit.event.Listener) ReferralService(gg.projecteden.nexus.models.referral.ReferralService) CustomCommand(gg.projecteden.nexus.framework.commands.models.CustomCommand) HasUniqueId(me.lexikiq.HasUniqueId) Origin(gg.projecteden.nexus.models.referral.Referral.Origin) CooldownService(gg.projecteden.nexus.models.cooldown.CooldownService) TickTime(gg.projecteden.utils.TimeUtils.TickTime) CommandEvent(gg.projecteden.nexus.framework.commands.models.events.CommandEvent) HoursService(gg.projecteden.nexus.models.hours.HoursService) Data(lombok.Data) Comparator(java.util.Comparator) NoArgsConstructor(lombok.NoArgsConstructor) JsonBuilder(gg.projecteden.nexus.utils.JsonBuilder) Hours(gg.projecteden.nexus.models.hours.Hours) HoursService(gg.projecteden.nexus.models.hours.HoursService) Path(gg.projecteden.nexus.framework.commands.models.annotations.Path)

Aggregations

Arg (gg.projecteden.nexus.framework.commands.models.annotations.Arg)24 Path (gg.projecteden.nexus.framework.commands.models.annotations.Path)22 CustomCommand (gg.projecteden.nexus.framework.commands.models.CustomCommand)21 CommandEvent (gg.projecteden.nexus.framework.commands.models.events.CommandEvent)21 Group (gg.projecteden.nexus.framework.commands.models.annotations.Permission.Group)19 Permission (gg.projecteden.nexus.framework.commands.models.annotations.Permission)18 JsonBuilder (gg.projecteden.nexus.utils.JsonBuilder)17 List (java.util.List)16 BiFunction (java.util.function.BiFunction)16 HashMap (java.util.HashMap)15 Map (java.util.Map)15 ArrayList (java.util.ArrayList)14 Nerd (gg.projecteden.nexus.models.nerd.Nerd)12 Aliases (gg.projecteden.nexus.framework.commands.models.annotations.Aliases)11 Utils (gg.projecteden.nexus.utils.Utils)11 TickTime (gg.projecteden.utils.TimeUtils.TickTime)11 NonNull (lombok.NonNull)11 Async (gg.projecteden.annotations.Async)10 StringUtils (gg.projecteden.nexus.utils.StringUtils)10 Tasks (gg.projecteden.nexus.utils.Tasks)10