diff --git a/api/build.gradle b/api/build.gradle index c26b5265..cde30de6 100644 --- a/api/build.gradle +++ b/api/build.gradle @@ -13,8 +13,11 @@ dependencyManagement { } dependencies { - api 'com.discord4j:discord4j-core:3.2.4' api 'org.springframework.boot:spring-boot-starter' + api "io.projectreactor:reactor-core:3.5.6" api 'org.projectlombok:lombok' + api group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.15.2' + api group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.15.2' + api group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.15.2' annotationProcessor 'org.projectlombok:lombok' } diff --git a/api/src/main/java/net/bdavies/api/command/ICommandResponse.java b/api/src/main/java/net/bdavies/api/command/ICommandResponse.java index 7bbe0b55..01dcbc00 100644 --- a/api/src/main/java/net/bdavies/api/command/ICommandResponse.java +++ b/api/src/main/java/net/bdavies/api/command/ICommandResponse.java @@ -26,44 +26,43 @@ package net.bdavies.api.command; -import discord4j.core.spec.EmbedCreateSpec; +import net.bdavies.api.obj.message.discord.embed.EmbedMessage; import reactor.core.publisher.Flux; -import reactor.core.publisher.FluxProcessor; import reactor.core.publisher.Mono; +import reactor.core.publisher.Sinks; import java.lang.reflect.Type; -import java.util.function.Consumer; /** * @author ben.davies99@outlook.com (Ben Davies) * @since 1.2.7 */ -public interface ICommandResponse { +public interface ICommandResponse +{ /** - * This will return an embed response - * {@link EmbedCreateSpec} + * Respond with a {@link EmbedMessage} * - * @param embed this is the CreateSpec {@link EmbedCreateSpec} + * @param embed the embed message to send + * @since __RELEASE_VERSION__ */ - boolean sendEmbed(Consumer embed); + boolean sendEmbed(EmbedMessage embed); /** - * This will return an embed response - * {@link EmbedCreateSpec} + * Respond with a {@link EmbedMessage} using a {@link Mono} * - * @param embed this is the CreateSpec {@link EmbedCreateSpec} + * @param embed the embed message to send + * @since __RELEASE_VERSION__ */ - boolean sendEmbed(Mono> embed); + boolean sendEmbed(Mono embed); /** - * This will return an embed response - * {@link EmbedCreateSpec} - *

+ * Respond with a {@link EmbedMessage} using a {@link Flux} * - * @param embed this is the CreateSpec {@link EmbedCreateSpec} + * @param embed the embed message to send + * @since __RELEASE_VERSION__ */ - boolean sendEmbed(Flux> embed); + boolean sendEmbed(Flux embed); /** * This will send one String and then the command has finished @@ -102,5 +101,5 @@ public interface ICommandResponse { */ boolean send(Type type, Object obj); - FluxProcessor getResponses(); + Sinks.Many getResponses(); } diff --git a/api/src/main/java/net/bdavies/api/discord/IDiscordCommandUtil.java b/api/src/main/java/net/bdavies/api/discord/IDiscordCommandUtil.java index e00d6d23..2fab5a5e 100644 --- a/api/src/main/java/net/bdavies/api/discord/IDiscordCommandUtil.java +++ b/api/src/main/java/net/bdavies/api/discord/IDiscordCommandUtil.java @@ -26,11 +26,18 @@ package net.bdavies.api.discord; /** - * This is a list of utils attached to a command context and they make it easier to do things inside commands. + * This is a list of utils attached to a command context, and they make it easier to do things inside + * commands. * * @author ben.davies99@outlook.com (Ben Davies) * @since 1.0.0 */ -public interface IDiscordCommandUtil { +public interface IDiscordCommandUtil +{ + /** + * Send the author of the message a private message + * + * @param text - the message you would like to send + */ void sendPrivateMessage(String text); } diff --git a/api/src/main/java/net/bdavies/api/discord/IDiscordFacade.java b/api/src/main/java/net/bdavies/api/discord/IDiscordFacade.java index f4e03ee8..30dcc49e 100644 --- a/api/src/main/java/net/bdavies/api/discord/IDiscordFacade.java +++ b/api/src/main/java/net/bdavies/api/discord/IDiscordFacade.java @@ -25,28 +25,11 @@ package net.bdavies.api.discord; -import discord4j.core.DiscordClient; -import discord4j.core.GatewayDiscordClient; -import discord4j.core.event.domain.Event; -import discord4j.core.object.entity.User; -import discord4j.core.object.presence.Activity; -import discord4j.core.object.presence.Presence; +import net.bdavies.api.obj.message.discord.DiscordUser; import org.springframework.stereotype.Component; import reactor.core.publisher.Mono; -import java.util.function.Consumer; - /** - * This is the Public API for the Discord4JWrapper of the Discord API this will be used for plugins - *

- * An example use case being calling {@link IDiscordFacade#getClient()} in a plugin will give you access - * to the - * {@link DiscordClient} - * Use DiscordClient at your own risk it is subject to change, I would recommend just using the api given - * to you - * through the facade. - *

- * * @author ben.davies99@outlook.com (Ben Davies) * @since 1.0.0 */ @@ -61,13 +44,6 @@ public interface IDiscordFacade */ Mono logoutBot(); - /** - * This will return the discord client. - * - * @return {@link GatewayDiscordClient} - */ - GatewayDiscordClient getClient(); - /** * This is available to the public through plugins and this will return the bot user. * To use try doing {@code facade.getOurUser().subscribe(user -> System.out.println(user.getUsername()) @@ -76,23 +52,12 @@ public interface IDiscordFacade * * @return {@link Mono} this is a Mono Stream of a User */ - Mono getOurUser(); + Mono getBotUser(); /** * This will update the presence of the bot to the text * * @param text {@link String} the text to change it to - * @see discord4j.core.GatewayDiscordClient#updatePresence(discord4j.discordjson.json.gateway.StatusUpdate) - * @see Presence - * @see Activity */ void updateBotPlayingText(String text); - - /** - * Register a Event Listener to the Discord Client. - * - * @param callback A callback for the event handler - * @param clazz The the Event Class - */ - void registerEventHandler(Class clazz, Consumer callback); } diff --git a/server/src/main/java/net/bdavies/BabblebotApplication.java b/server/src/main/java/net/bdavies/BabblebotApplication.java index 8fbc6a21..1f3e39d1 100644 --- a/server/src/main/java/net/bdavies/BabblebotApplication.java +++ b/server/src/main/java/net/bdavies/BabblebotApplication.java @@ -38,6 +38,7 @@ import net.bdavies.api.plugins.IPluginContainer; import net.bdavies.api.variables.IVariableContainer; import net.bdavies.core.CorePlugin; +import net.bdavies.discord.DiscordFacade; import net.bdavies.plugins.PluginModel; import net.bdavies.plugins.PluginModelRepository; import net.bdavies.plugins.PluginType; @@ -212,8 +213,9 @@ public void restart() { Executors.newSingleThreadExecutor().submit(() -> { getPluginContainer().shutDownPlugins(); - IDiscordFacade facade = get(IDiscordFacade.class); - facade.registerEventHandler(DisconnectEvent.class, d -> log.info("Bot has been logged out!!!")); + DiscordFacade facade = get(DiscordFacade.class); + facade.getClient().getEventDispatcher().on(DisconnectEvent.class) + .subscribe(d -> log.info("Bot has been logged out!!!")); facade.logoutBot().block(); try { diff --git a/server/src/main/java/net/bdavies/command/CommandDispatcher.java b/server/src/main/java/net/bdavies/command/CommandDispatcher.java index 2f6314c5..87dcd4a5 100644 --- a/server/src/main/java/net/bdavies/command/CommandDispatcher.java +++ b/server/src/main/java/net/bdavies/command/CommandDispatcher.java @@ -38,7 +38,6 @@ import net.bdavies.api.command.ICommandDispatcher; import net.bdavies.api.command.ICommandMiddleware; import net.bdavies.api.config.EPluginPermission; -import net.bdavies.api.discord.IDiscordFacade; import net.bdavies.api.obj.DiscordColor; import net.bdavies.api.obj.message.discord.embed.EmbedAuthor; import net.bdavies.api.obj.message.discord.embed.EmbedFooter; @@ -49,6 +48,7 @@ import net.bdavies.api.plugins.Plugin; import net.bdavies.command.errors.UsageException; import net.bdavies.command.parser.MessageParser; +import net.bdavies.discord.DiscordFacade; import net.bdavies.discord.obj.factories.EmbedMessageFactory; import net.bdavies.variables.VariableParser; import org.springframework.stereotype.Component; @@ -109,7 +109,8 @@ public void addCommand(String namespace, ICommand command, IApplication applicat } else { namespaceCommands.add(command); - IDiscordFacade facade = application.get(IDiscordFacade.class); + //Todo: Move to renderer + DiscordFacade facade = application.get(DiscordFacade.class); long applicationId = facade.getClient().getRestClient().getApplicationId().block(); facade.getClient().getGuilds().subscribe(g -> { facade.getClient().getRestClient().getApplicationService() @@ -134,7 +135,7 @@ public void addNamespace(String namespace, List commandsToAdd, IApplic } //TODO: Make this better - IDiscordFacade facade = application.get(IDiscordFacade.class); + DiscordFacade facade = application.get(DiscordFacade.class); long applicationId = facade.getClient().getRestClient().getApplicationId().block(); facade.getClient().getGuilds().subscribe(g -> { commandsToAdd.forEach(c -> facade.getClient().getRestClient().getApplicationService() @@ -299,7 +300,7 @@ public void execute(MessageParser parser, String message, Mono chan getCommandsFromNamespace(namespace).filter(e -> checkType(e.getType(), commandContext.getType())) .filter(e -> Arrays.stream(e.getAliases()) - .anyMatch(alias -> alias.toLowerCase().equals(commandName.toLowerCase()))) + .anyMatch(alias -> alias.equalsIgnoreCase(commandName))) .doOnError(e -> log.error("Error in the command dispatcher.", e)).doOnComplete(() -> { if (!hasFoundOne.get()) { @@ -313,7 +314,7 @@ public void execute(MessageParser parser, String message, Mono chan if (!hasSentMessage.get()) { channel.subscribe( - c -> c.createMessage("Babblebot command could'nt be found.").subscribe()); + c -> c.createMessage("Babblebot command couldn't be found.").subscribe()); } else { sb.append("```"); @@ -336,6 +337,7 @@ public void execute(MessageParser parser, String message, Mono chan // g.getName())); c.exec(application, commandContext); return commandContext.getCommandResponse().getResponses() + .asFlux() .log(Loggers.getLogger("CommandResponses")); }).subscribe(s -> { if (s.isStringResponse()) @@ -363,7 +365,7 @@ public void execute(MessageParser parser, String message, Mono chan em.setTimestamp(Instant.now()); } Optional color = guild.flatMap( - g -> application.get(IDiscordFacade.class).getClient().getSelf() + g -> application.get(DiscordFacade.class).getClient().getSelf() .flatMap(u -> u.asMember(g.getId()).flatMap(PartialMember::getColor))) .blockOptional(); if (em.getColor() == null && color.isPresent()) diff --git a/server/src/main/java/net/bdavies/command/CommandResponse.java b/server/src/main/java/net/bdavies/command/CommandResponse.java index 989a1407..6e54d538 100644 --- a/server/src/main/java/net/bdavies/command/CommandResponse.java +++ b/server/src/main/java/net/bdavies/command/CommandResponse.java @@ -27,10 +27,8 @@ import discord4j.core.spec.EmbedCreateSpec; import lombok.extern.slf4j.Slf4j; -import reactor.core.publisher.EmitterProcessor; -import reactor.core.publisher.Flux; -import reactor.core.publisher.FluxProcessor; -import reactor.core.publisher.Mono; +import net.bdavies.api.obj.message.discord.embed.EmbedMessage; +import reactor.core.publisher.*; import net.bdavies.api.command.ICommandResponse; import net.bdavies.api.command.IResponse; import net.bdavies.command.response.ResponseHandler; @@ -47,25 +45,28 @@ @Slf4j public class CommandResponse implements ICommandResponse { - private final FluxProcessor processor; + private final Sinks.Many processor; public CommandResponse() { log.info("Constructor"); - processor = EmitterProcessor.create(); + processor = Sinks.many().multicast().onBackpressureBuffer(); } @Override - public boolean sendEmbed(Consumer embed) { + public boolean sendEmbed(EmbedMessage embed) + { return send(createEmbedType(), embed); } @Override - public boolean sendEmbed(Mono> embed) { + public boolean sendEmbed(Mono embed) + { return send(createMonoType(createEmbedType()), embed); } @Override - public boolean sendEmbed(Flux> embed) { + public boolean sendEmbed(Flux embed) + { return send(createFluxType(createEmbedType()), embed); } @@ -127,13 +128,13 @@ public boolean send(Type type, Object obj) { return true; } - processor.onComplete(); + processor.tryEmitComplete(); log.error("Unable to send Object of type: " + type + ", through the command dispatcher."); return false; } @Override - public FluxProcessor getResponses() { + public Sinks.Many getResponses() { return processor; } diff --git a/server/src/main/java/net/bdavies/command/response/ResponseHandler.java b/server/src/main/java/net/bdavies/command/response/ResponseHandler.java index 83169d39..70f807b0 100644 --- a/server/src/main/java/net/bdavies/command/response/ResponseHandler.java +++ b/server/src/main/java/net/bdavies/command/response/ResponseHandler.java @@ -27,8 +27,8 @@ import net.bdavies.api.command.IResponse; import reactor.core.publisher.Flux; -import reactor.core.publisher.FluxProcessor; import reactor.core.publisher.Mono; +import reactor.core.publisher.Sinks; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; @@ -41,11 +41,11 @@ public abstract class ResponseHandler { - private final FluxProcessor processor; + private final Sinks.Many processor; private final Type type; - protected ResponseHandler(Type type, FluxProcessor processor) + protected ResponseHandler(Type type, Sinks.Many processor) { this.processor = processor; this.type = type; @@ -95,17 +95,17 @@ private boolean isAMono() private void handleFlux(Flux responses) { - responses.subscribe(processor::onNext, null, processor::onComplete); + responses.subscribe(processor::tryEmitNext, null, processor::tryEmitComplete); } private void handleMono(Mono response) { - response.subscribe(processor::onNext, null, processor::onComplete); + response.subscribe(processor::tryEmitNext, null, processor::tryEmitComplete); } private void handleBase(IResponse response) { - processor.onNext(response); - processor.onComplete(); + processor.tryEmitNext(response); + processor.tryEmitComplete(); } } diff --git a/server/src/main/java/net/bdavies/command/response/ResponseHandlerFactory.java b/server/src/main/java/net/bdavies/command/response/ResponseHandlerFactory.java index 8959bb16..97790672 100644 --- a/server/src/main/java/net/bdavies/command/response/ResponseHandlerFactory.java +++ b/server/src/main/java/net/bdavies/command/response/ResponseHandlerFactory.java @@ -31,8 +31,8 @@ import net.bdavies.command.response.handlers.EmbedHandler; import net.bdavies.command.response.handlers.StringHandler; import reactor.core.publisher.Flux; -import reactor.core.publisher.FluxProcessor; import reactor.core.publisher.Mono; +import reactor.core.publisher.Sinks; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; @@ -46,7 +46,7 @@ public class ResponseHandlerFactory { - public static ResponseHandler getHandler(Type t, FluxProcessor processor) + public static ResponseHandler getHandler(Type t, Sinks.Many processor) { if (t instanceof ParameterizedType) @@ -70,7 +70,7 @@ public static ResponseHandler getHandler(Type t, FluxProcessor processor) + Sinks.Many processor) { log.info("Handling a type of: " + base); if (base.equals(String.class)) @@ -84,6 +84,8 @@ private static ResponseHandler getBaseHandler(Type raw, Type base, { return new EmbedHandler(raw, processor); } + } else if (base.equals(EmbedMessage.class)) { + return new EmbedHandler(raw, processor); } return null; diff --git a/server/src/main/java/net/bdavies/command/response/handlers/EmbedHandler.java b/server/src/main/java/net/bdavies/command/response/handlers/EmbedHandler.java index 364909d3..2eeb9059 100644 --- a/server/src/main/java/net/bdavies/command/response/handlers/EmbedHandler.java +++ b/server/src/main/java/net/bdavies/command/response/handlers/EmbedHandler.java @@ -30,7 +30,7 @@ import net.bdavies.api.obj.message.discord.embed.EmbedMessage; import net.bdavies.command.ResponseFactory; import net.bdavies.command.response.ResponseHandler; -import reactor.core.publisher.FluxProcessor; +import reactor.core.publisher.Sinks; import java.lang.reflect.Type; import java.util.function.Supplier; @@ -42,7 +42,7 @@ @Slf4j public class EmbedHandler extends ResponseHandler { - public EmbedHandler(Type type, FluxProcessor processor) { + public EmbedHandler(Type type, Sinks.Many processor) { super(type, processor); } diff --git a/server/src/main/java/net/bdavies/command/response/handlers/StringHandler.java b/server/src/main/java/net/bdavies/command/response/handlers/StringHandler.java index 1d225ea9..b9a5ea83 100644 --- a/server/src/main/java/net/bdavies/command/response/handlers/StringHandler.java +++ b/server/src/main/java/net/bdavies/command/response/handlers/StringHandler.java @@ -25,10 +25,10 @@ package net.bdavies.command.response.handlers; -import net.bdavies.command.ResponseFactory; -import reactor.core.publisher.FluxProcessor; import net.bdavies.api.command.IResponse; +import net.bdavies.command.ResponseFactory; import net.bdavies.command.response.ResponseHandler; +import reactor.core.publisher.Sinks; import java.lang.reflect.Type; @@ -38,7 +38,7 @@ */ public class StringHandler extends ResponseHandler { - public StringHandler(Type type, FluxProcessor processor) { + public StringHandler(Type type, Sinks.Many processor) { super(type, processor); } diff --git a/server/src/main/java/net/bdavies/core/AnnouncementService.java b/server/src/main/java/net/bdavies/core/AnnouncementService.java index 669319c0..fe37e8ae 100644 --- a/server/src/main/java/net/bdavies/core/AnnouncementService.java +++ b/server/src/main/java/net/bdavies/core/AnnouncementService.java @@ -35,8 +35,8 @@ import lombok.extern.slf4j.Slf4j; import net.bdavies.api.IApplication; import net.bdavies.api.core.IAnnouncementService; -import net.bdavies.api.discord.IDiscordFacade; import net.bdavies.core.repository.AnnouncementChannelRepository; +import net.bdavies.discord.DiscordFacade; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -52,13 +52,13 @@ @Service public class AnnouncementService implements IAnnouncementService { - private final IDiscordFacade facade; + private final DiscordFacade facade; private final IApplication application; private final AnnouncementChannelRepository announcementChannelRepo; @Autowired - public AnnouncementService(IDiscordFacade facade, IApplication application, + public AnnouncementService(DiscordFacade facade, IApplication application, AnnouncementChannelRepository announcementChannelRepo) { this.facade = facade; diff --git a/server/src/main/java/net/bdavies/core/CorePlugin.java b/server/src/main/java/net/bdavies/core/CorePlugin.java index 8fa1359e..f4760c40 100644 --- a/server/src/main/java/net/bdavies/core/CorePlugin.java +++ b/server/src/main/java/net/bdavies/core/CorePlugin.java @@ -25,6 +25,7 @@ package net.bdavies.core; +import discord4j.core.GatewayDiscordClient; import discord4j.core.event.domain.lifecycle.ReadyEvent; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -36,7 +37,6 @@ import net.bdavies.api.command.ICommandContext; import net.bdavies.api.command.ICommandDispatcher; import net.bdavies.api.config.IDiscordConfig; -import net.bdavies.api.discord.IDiscordFacade; import net.bdavies.api.obj.message.discord.DiscordMessage; import net.bdavies.api.obj.message.discord.embed.EmbedAuthor; import net.bdavies.api.obj.message.discord.embed.EmbedFooter; @@ -123,8 +123,8 @@ public void onBoot(IPluginSettings settings) return true; }, this, application); - IDiscordFacade discordFacade = application.get(IDiscordFacade.class); - discordFacade.registerEventHandler(ReadyEvent.class, r -> { + GatewayDiscordClient discordClient = application.get(GatewayDiscordClient.class); + discordClient.getEventDispatcher().on(ReadyEvent.class).subscribe(r -> { if (application.hasArgument("-restart")) { announcementService.sendMessage("The bot has now restarted"); diff --git a/server/src/main/java/net/bdavies/discord/DiscordCommandUtil.java b/server/src/main/java/net/bdavies/discord/DiscordCommandUtil.java index 4882c733..c78efea9 100644 --- a/server/src/main/java/net/bdavies/discord/DiscordCommandUtil.java +++ b/server/src/main/java/net/bdavies/discord/DiscordCommandUtil.java @@ -31,7 +31,6 @@ import lombok.extern.slf4j.Slf4j; import net.bdavies.DiscordCommandContext; import net.bdavies.api.discord.IDiscordCommandUtil; -import net.bdavies.api.discord.IDiscordFacade; import net.bdavies.api.obj.message.discord.DiscordMessage; /** @@ -44,7 +43,7 @@ public class DiscordCommandUtil implements IDiscordCommandUtil { private final DiscordCommandContext commandContext; - private final IDiscordFacade discordFacade; + private final DiscordFacade discordFacade; @Override public void sendPrivateMessage(String text) diff --git a/server/src/main/java/net/bdavies/discord/DiscordFacade.java b/server/src/main/java/net/bdavies/discord/DiscordFacade.java index 9ab910df..b28733ce 100644 --- a/server/src/main/java/net/bdavies/discord/DiscordFacade.java +++ b/server/src/main/java/net/bdavies/discord/DiscordFacade.java @@ -27,7 +27,6 @@ import discord4j.core.DiscordClient; import discord4j.core.GatewayDiscordClient; -import discord4j.core.event.domain.Event; import discord4j.core.object.entity.User; import discord4j.core.object.presence.Activity; import discord4j.core.object.presence.ClientActivity; @@ -37,11 +36,13 @@ import lombok.extern.slf4j.Slf4j; import net.bdavies.api.IApplication; import net.bdavies.api.discord.IDiscordFacade; +import net.bdavies.api.obj.message.discord.DiscordId; +import net.bdavies.api.obj.message.discord.DiscordUser; +import net.bdavies.discord.obj.factories.DiscordObjectFactory; +import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component; import reactor.core.publisher.Mono; -import java.util.function.Consumer; - /** * This is the Public API for the Discord4JWrapper of the Discord API this will be used for plugins * It will include common utilities that will be required to create plugins @@ -93,9 +94,11 @@ public Mono logoutBot() * * @return {@link Mono} this is a Mono Stream of a User */ - public Mono getOurUser() + public Mono getBotUser() { - return this.client.getSelf(); + DiscordObjectFactory objectFactory = application.get(DiscordObjectFactory.class); + return this.client.getSelf() + .flatMap(u -> Mono.justOrEmpty(objectFactory.userFromId(DiscordId.from(u.getId().asLong())))); } /** @@ -111,20 +114,9 @@ public void updateBotPlayingText(String text) this.client.updatePresence(ClientPresence.online(ClientActivity.playing(text))).block(); } - /** - * Register a Event Listener to the Discord Client. - * - * @param callback A callback for the event handler - * @param clazz The Event Class - */ - public void registerEventHandler(Class clazz, Consumer callback) + @Bean + GatewayDiscordClient internalDiscordClient() { - if (this.client != null) - { - this.client.getEventDispatcher().on(clazz).subscribe(callback); - } else - { - log.error("Unable to register event dispatcher because the client token is null or invalid"); - } + return this.client; } } diff --git a/server/src/main/java/net/bdavies/discord/obj/factories/DiscordObjectFactory.java b/server/src/main/java/net/bdavies/discord/obj/factories/DiscordObjectFactory.java index e66d1420..b641ca54 100644 --- a/server/src/main/java/net/bdavies/discord/obj/factories/DiscordObjectFactory.java +++ b/server/src/main/java/net/bdavies/discord/obj/factories/DiscordObjectFactory.java @@ -30,11 +30,11 @@ import discord4j.core.object.entity.User; import discord4j.core.object.entity.channel.TextChannel; import lombok.extern.slf4j.Slf4j; -import net.bdavies.api.discord.IDiscordFacade; import net.bdavies.api.obj.message.discord.DiscordChannel; import net.bdavies.api.obj.message.discord.DiscordGuild; import net.bdavies.api.obj.message.discord.DiscordId; import net.bdavies.api.obj.message.discord.DiscordUser; +import net.bdavies.discord.DiscordFacade; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import reactor.core.publisher.Mono; @@ -51,9 +51,9 @@ @Component public class DiscordObjectFactory { - private final IDiscordFacade discordFacade; + private final DiscordFacade discordFacade; - public DiscordObjectFactory(@Lazy IDiscordFacade discordFacade) + public DiscordObjectFactory(@Lazy DiscordFacade discordFacade) { this.discordFacade = discordFacade; } diff --git a/server/src/main/java/net/bdavies/plugins/PluginCommandParser.java b/server/src/main/java/net/bdavies/plugins/PluginCommandParser.java index 959d4c4f..ce990867 100644 --- a/server/src/main/java/net/bdavies/plugins/PluginCommandParser.java +++ b/server/src/main/java/net/bdavies/plugins/PluginCommandParser.java @@ -31,10 +31,10 @@ import net.bdavies.api.command.*; import net.bdavies.api.config.IConfig; import net.bdavies.api.discord.IDiscordCommandUtil; -import net.bdavies.api.discord.IDiscordFacade; import net.bdavies.api.obj.message.discord.DiscordMessage; import net.bdavies.api.plugins.IPluginSettings; import net.bdavies.discord.DiscordCommandUtil; +import net.bdavies.discord.DiscordFacade; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -173,7 +173,7 @@ private Object[] setupArgs(Method method, ICommandContext commandContext) if (isDiscordCommandContext(commandContext)) { objs.add(new DiscordCommandUtil((DiscordCommandContext) - commandContext, application.get(IDiscordFacade.class))); + commandContext, application.get(DiscordFacade.class))); } } else {