Untitled
unknown
plain_text
a year ago
2.1 kB
15
Indexable
package fr.lostera.eco.util.suggestion;
import fr.lostera.eco.ModernEco;
import fr.lostera.eco.module.impl.commands.CommandsModule;
import fr.lostera.eco.module.impl.core.CoreModule;
import fr.lostera.eco.module.impl.core.currency.Currency;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import studio.mevera.imperat.BukkitSource;
import studio.mevera.imperat.command.parameters.CommandParameter;
import studio.mevera.imperat.command.parameters.type.BaseParameterType;
import studio.mevera.imperat.context.ExecutionContext;
import studio.mevera.imperat.context.internal.CommandInputStream;
import studio.mevera.imperat.resolvers.SuggestionResolver;
import java.util.Locale;
import java.util.Optional;
import java.util.stream.Collectors;
public class CurrencyParameterType extends BaseParameterType<BukkitSource, Currency> {
@Override
public SuggestionResolver<BukkitSource> getSuggestionResolver() {
return (context, parameter) -> {
final CoreModule coreModule = ModernEco.getInstance().getModuleManager().getModule(CoreModule.class);
return coreModule.getConfig().getCurrencies().values().stream().map(Currency::getName).collect(Collectors.toList());
};
}
@Override
public @Nullable Currency resolve(@NotNull final ExecutionContext<BukkitSource> context, @NotNull final CommandInputStream<BukkitSource> inputStream, @NotNull final String input) {
final CommandsModule commandsModule = ModernEco.getInstance().getModuleManager().getModule(CommandsModule.class);
final Optional<Currency> currency = commandsModule.getCoreModule().getConfig().findCurrencyByName(input);
return currency.orElse(null);
}
@Override
public boolean matchesInput(final String input, final CommandParameter<BukkitSource> parameter) {
return ModernEco.getInstance().getModuleManager().getModule(CoreModule.class).getConfig().findCurrencyByName(input.toLowerCase(Locale.ROOT)).isPresent();
}
}
Editor is loading...
Leave a Comment