From 2425f324b42f0cd1d63d91e9b3b9a3436a39f42e Mon Sep 17 00:00:00 2001 From: adrianolguin <33267387+adrianolguin@users.noreply.github.com> Date: Wed, 17 Mar 2021 18:01:01 -0700 Subject: [PATCH 1/3] Fixing my branches :p --- .../discord_bot_example/Bot.java | 355 +++++++++--------- .../java/org/jointheleague/modules/Poll.java | 257 ------------- .../org/jointheleague/modules/Reminder.java | 135 ------- 3 files changed, 175 insertions(+), 572 deletions(-) delete mode 100644 src/main/java/org/jointheleague/modules/Poll.java delete mode 100644 src/main/java/org/jointheleague/modules/Reminder.java diff --git a/src/main/java/org/jointheleague/discord_bot_example/Bot.java b/src/main/java/org/jointheleague/discord_bot_example/Bot.java index 8499b987..28e20348 100644 --- a/src/main/java/org/jointheleague/discord_bot_example/Bot.java +++ b/src/main/java/org/jointheleague/discord_bot_example/Bot.java @@ -1,180 +1,175 @@ -package org.jointheleague.discord_bot_example; - -import org.javacord.api.DiscordApi; - -import org.javacord.api.DiscordApiBuilder; - -/** - * Launches all of the listeners for one channel. - * @author keithgroves and https://tinystripz.com - * - */ -import org.jointheleague.modules.*; - - - -public class Bot { - - // The string to show the custom :vomiting_robot: emoji - public static String emoji = "<:vomiting_robot:642414033290657803>"; - - private String token; - private String channelName; - DiscordApi api; - _HelpListener helpListener; - - public Bot(String token, String channelName) { - this.token = token; - this.channelName = channelName; - helpListener = new _HelpListener(channelName); - } - - public void connect(boolean printInvite) { - - api = new DiscordApiBuilder().setToken(token).login().join(); - - // Print the URL to invite the bot - if (printInvite) { - System.out.println("You can invite the bot by using the following url: " + api.createBotInvite()); - } - - api.getServerTextChannelsByName(channelName).forEach(e -> e.sendMessage("Bot Connected")); - - //add Listeners - DiscordLibrary dl = new DiscordLibrary(channelName); - api.addMessageCreateListener(dl); - helpListener.addHelpEmbed(dl.getHelpEmbed()); - - CurrencyConverter cc = new CurrencyConverter(channelName); - api.addMessageCreateListener(cc); - helpListener.addHelpEmbed(cc.getHelpEmbed()); - - ToDoList list = new ToDoList(channelName); - api.addMessageCreateListener(list); - helpListener.addHelpEmbed(list.getHelpEmbed()); - - HeadlineListener head = new HeadlineListener(channelName); - api.addMessageCreateListener(head); - helpListener.addHelpEmbed(head.getHelpEmbed()); - - RandomNumber randomNumber = new RandomNumber(channelName); //replace with feature class later - api.addMessageCreateListener(randomNumber); - helpListener.addHelpEmbed(randomNumber.getHelpEmbed()); - - HypeMachine hypeMachine = new HypeMachine(channelName); - api.addMessageCreateListener(hypeMachine); - helpListener.addHelpEmbed(hypeMachine.getHelpEmbed()); - - TextStyler textStyler = new TextStyler(channelName); - api.addMessageCreateListener(textStyler); - helpListener.addHelpEmbed(textStyler.getHelpEmbed()); - - Tomagachi tomagachi = new Tomagachi(channelName); - api.addMessageCreateListener(tomagachi); - helpListener.addHelpEmbed(tomagachi.getHelpEmbed()); - - SetProfilePic setPFP = new SetProfilePic(channelName); - api.addMessageCreateListener(setPFP); - helpListener.addHelpEmbed(setPFP.getHelpEmbed()); - - ToGif toGif = new ToGif(channelName); - api.addMessageCreateListener(toGif); - helpListener.addHelpEmbed(toGif.getHelpEmbed()); - - RandomCase randomCase = new RandomCase(channelName); - api.addMessageCreateListener(randomCase); - helpListener.addHelpEmbed(randomCase.getHelpEmbed()); - - _ApiExampleListener apiExampleListener = new _ApiExampleListener(channelName); - api.addMessageCreateListener(apiExampleListener); - helpListener.addHelpEmbed(apiExampleListener.getHelpEmbed()); - - NewWeather newWeather = new NewWeather(channelName); - api.addMessageCreateListener(newWeather); - helpListener.addHelpEmbed(newWeather.getHelpEmbed()); - - CoinFlip cp = new CoinFlip(channelName); - api.addMessageCreateListener(cp); - - RollDie rollDie = new RollDie(channelName); - api.addMessageCreateListener(rollDie); - - - MaxTicTacToe mttt = new MaxTicTacToe(channelName); - api.addMessageCreateListener(mttt); - helpListener.addHelpEmbed(mttt.getHelpEmbed()); - - pythagcalc pythagCalc = new pythagcalc(channelName); - api.addMessageCreateListener(pythagCalc); - helpListener.addHelpEmbed(pythagCalc.getHelpEmbed()); - - //Greeter g = new Greeter(channelName); - //api.addMessageCreateListener(g); - //helpListener.addHelpEmbed(g.getHelpEmbed()); - - CovidCaseGetter covid = new CovidCaseGetter(channelName); - api.addMessageCreateListener(covid); - helpListener.addHelpEmbed(covid.getHelpEmbed()); - - ListMakerMessageListener LM = new ListMakerMessageListener(channelName); - api.addMessageCreateListener(LM); - helpListener.addHelpEmbed(LM.getHelpEmbed()); - - Dice d = new Dice(channelName); - api.addMessageCreateListener(d); - helpListener.addHelpEmbed(d.getHelpEmbed()); - - UnbeatableRockPaperScissors rps = new UnbeatableRockPaperScissors(channelName); - api.addMessageCreateListener(rps); - helpListener.addHelpEmbed(rps.getHelpEmbed()); - - //old way to add listeners - api.addMessageCreateListener(helpListener); - api.addMessageCreateListener(new MomBot(channelName)); - api.addMessageCreateListener(new DadJokes(channelName)); - api.addMessageCreateListener(new ClockMessageListener(channelName)); - api.addMessageCreateListener(new CalculatorMessageListener(channelName)); - api.addMessageCreateListener(new ComicMessageListener(channelName)); - api.addMessageCreateListener(new ElmoMessageListener(channelName)); - api.addMessageCreateListener(new FactMessageListener(channelName)); - api.addMessageCreateListener(new CasinoGameListener(channelName)); - api.addMessageCreateListener(new HighLowListener(channelName)); - api.addMessageCreateListener(new Ryland(channelName)); - api.addMessageCreateListener(new RockPaperScissorsListener(channelName)); - api.addMessageCreateListener(new leetMessageListener(channelName)); - api.addMessageCreateListener(new ConnectFour(channelName)); - api.addMessageCreateListener(new FlagMessageListener(channelName)); - api.addMessageCreateListener(new EightBall(channelName)); - api.addMessageCreateListener(new Reddit(channelName)); - api.addMessageCreateListener(new DeepFrier(channelName)); - api.addMessageCreateListener(new PictureOf(channelName)); - api.addMessageCreateListener(new GetPicture(channelName)); - api.addMessageCreateListener(new CuteAnimal(channelName)); - api.addMessageCreateListener(new Weather(channelName)); - api.addMessageCreateListener(new FashionAdvisor(channelName)); - api.addMessageCreateListener(new LatexRender(channelName)); - api.addMessageCreateListener(new MinesweeperListener(channelName)); - api.addMessageCreateListener(new Bot1Listener(channelName)); - api.addMessageCreateListener(new PingMessageListener(channelName)); - api.addMessageCreateListener(new CoinFlipMessageListener(channelName)); - api.addMessageCreateListener(new PlayRPSMessageListener(channelName)); - api.addMessageCreateListener(new KickMessageListener(channelName)); - api.addMessageCreateListener(new AssignRoleMessageListener(channelName)); - api.addMessageCreateListener(new NicknameListener(channelName)); - api.addMessageCreateListener(new SolveQuadraticListener(channelName)); - api.addMessageCreateListener(new RollDiceMessageListener(channelName)); - api.addMessageCreateListener(new MorseTranslator(channelName)); - api.addMessageCreateListener(new HangmanListener(channelName)); - api.addMessageCreateListener(new BogoSorterListener(channelName)); - api.addMessageCreateListener(new ComplimentListener(channelName)); - api.addMessageCreateListener(new CrazyEights(channelName)); - api.addMessageCreateListener(new Blackjack(channelName)); - api.addMessageCreateListener(new RandomCase(channelName)); - api.addMessageCreateListener(new GetTime(channelName)); - api.addMessageCreateListener(new ScreenCapture(channelName)); - - api.addMessageCreateListener(new Hello(channelName)); - api.addMessageCreateListener(new Reminder(channelName)); - api.addMessageCreateListener(new Poll(channelName)); - } -} +package org.jointheleague.discord_bot_example; + +import org.javacord.api.DiscordApi; + +import org.javacord.api.DiscordApiBuilder; + +/** + * Launches all of the listeners for one channel. + * @author keithgroves and https://tinystripz.com + * + */ +import org.jointheleague.modules.*; + +public class Bot { + + // The string to show the custom :vomiting_robot: emoji + public static String emoji = "<:vomiting_robot:642414033290657803>"; + + private String token; + private String channelName; + DiscordApi api; + _HelpListener helpListener; + + public Bot(String token, String channelName) { + this.token = token; + this.channelName = channelName; + helpListener = new _HelpListener(channelName); + } + + public void connect(boolean printInvite) { + + api = new DiscordApiBuilder().setToken(token).login().join(); + + // Print the URL to invite the bot + if (printInvite) { + System.out.println("You can invite the bot by using the following url: " + api.createBotInvite()); + } + + api.getServerTextChannelsByName(channelName).forEach(e -> e.sendMessage("Bot Connected")); + + // add Listeners + DiscordLibrary dl = new DiscordLibrary(channelName); + api.addMessageCreateListener(dl); + helpListener.addHelpEmbed(dl.getHelpEmbed()); + + CurrencyConverter cc = new CurrencyConverter(channelName); + api.addMessageCreateListener(cc); + helpListener.addHelpEmbed(cc.getHelpEmbed()); + + ToDoList list = new ToDoList(channelName); + api.addMessageCreateListener(list); + helpListener.addHelpEmbed(list.getHelpEmbed()); + + HeadlineListener head = new HeadlineListener(channelName); + api.addMessageCreateListener(head); + helpListener.addHelpEmbed(head.getHelpEmbed()); + + RandomNumber randomNumber = new RandomNumber(channelName); // replace with feature class later + api.addMessageCreateListener(randomNumber); + helpListener.addHelpEmbed(randomNumber.getHelpEmbed()); + + HypeMachine hypeMachine = new HypeMachine(channelName); + api.addMessageCreateListener(hypeMachine); + helpListener.addHelpEmbed(hypeMachine.getHelpEmbed()); + + TextStyler textStyler = new TextStyler(channelName); + api.addMessageCreateListener(textStyler); + helpListener.addHelpEmbed(textStyler.getHelpEmbed()); + + Tomagachi tomagachi = new Tomagachi(channelName); + api.addMessageCreateListener(tomagachi); + helpListener.addHelpEmbed(tomagachi.getHelpEmbed()); + + SetProfilePic setPFP = new SetProfilePic(channelName); + api.addMessageCreateListener(setPFP); + helpListener.addHelpEmbed(setPFP.getHelpEmbed()); + + ToGif toGif = new ToGif(channelName); + api.addMessageCreateListener(toGif); + helpListener.addHelpEmbed(toGif.getHelpEmbed()); + + RandomCase randomCase = new RandomCase(channelName); + api.addMessageCreateListener(randomCase); + helpListener.addHelpEmbed(randomCase.getHelpEmbed()); + + _ApiExampleListener apiExampleListener = new _ApiExampleListener(channelName); + api.addMessageCreateListener(apiExampleListener); + helpListener.addHelpEmbed(apiExampleListener.getHelpEmbed()); + + NewWeather newWeather = new NewWeather(channelName); + api.addMessageCreateListener(newWeather); + helpListener.addHelpEmbed(newWeather.getHelpEmbed()); + + CoinFlip cp = new CoinFlip(channelName); + api.addMessageCreateListener(cp); + + RollDie rollDie = new RollDie(channelName); + api.addMessageCreateListener(rollDie); + + MaxTicTacToe mttt = new MaxTicTacToe(channelName); + api.addMessageCreateListener(mttt); + helpListener.addHelpEmbed(mttt.getHelpEmbed()); + + pythagcalc pythagCalc = new pythagcalc(channelName); + api.addMessageCreateListener(pythagCalc); + helpListener.addHelpEmbed(pythagCalc.getHelpEmbed()); + + // Greeter g = new Greeter(channelName); + // api.addMessageCreateListener(g); + // helpListener.addHelpEmbed(g.getHelpEmbed()); + + CovidCaseGetter covid = new CovidCaseGetter(channelName); + api.addMessageCreateListener(covid); + helpListener.addHelpEmbed(covid.getHelpEmbed()); + + ListMakerMessageListener LM = new ListMakerMessageListener(channelName); + api.addMessageCreateListener(LM); + helpListener.addHelpEmbed(LM.getHelpEmbed()); + + Dice d = new Dice(channelName); + api.addMessageCreateListener(d); + helpListener.addHelpEmbed(d.getHelpEmbed()); + + UnbeatableRockPaperScissors rps = new UnbeatableRockPaperScissors(channelName); + api.addMessageCreateListener(rps); + helpListener.addHelpEmbed(rps.getHelpEmbed()); + + // old way to add listeners + api.addMessageCreateListener(helpListener); + api.addMessageCreateListener(new MomBot(channelName)); + api.addMessageCreateListener(new DadJokes(channelName)); + api.addMessageCreateListener(new ClockMessageListener(channelName)); + api.addMessageCreateListener(new CalculatorMessageListener(channelName)); + api.addMessageCreateListener(new ComicMessageListener(channelName)); + api.addMessageCreateListener(new ElmoMessageListener(channelName)); + api.addMessageCreateListener(new FactMessageListener(channelName)); + api.addMessageCreateListener(new CasinoGameListener(channelName)); + api.addMessageCreateListener(new HighLowListener(channelName)); + api.addMessageCreateListener(new Ryland(channelName)); + api.addMessageCreateListener(new RockPaperScissorsListener(channelName)); + api.addMessageCreateListener(new leetMessageListener(channelName)); + api.addMessageCreateListener(new ConnectFour(channelName)); + api.addMessageCreateListener(new FlagMessageListener(channelName)); + api.addMessageCreateListener(new EightBall(channelName)); + api.addMessageCreateListener(new Reddit(channelName)); + api.addMessageCreateListener(new DeepFrier(channelName)); + api.addMessageCreateListener(new PictureOf(channelName)); + api.addMessageCreateListener(new GetPicture(channelName)); + api.addMessageCreateListener(new CuteAnimal(channelName)); + api.addMessageCreateListener(new Weather(channelName)); + api.addMessageCreateListener(new FashionAdvisor(channelName)); + api.addMessageCreateListener(new LatexRender(channelName)); + api.addMessageCreateListener(new MinesweeperListener(channelName)); + api.addMessageCreateListener(new Bot1Listener(channelName)); + api.addMessageCreateListener(new PingMessageListener(channelName)); + api.addMessageCreateListener(new CoinFlipMessageListener(channelName)); + api.addMessageCreateListener(new PlayRPSMessageListener(channelName)); + api.addMessageCreateListener(new KickMessageListener(channelName)); + api.addMessageCreateListener(new AssignRoleMessageListener(channelName)); + api.addMessageCreateListener(new NicknameListener(channelName)); + api.addMessageCreateListener(new SolveQuadraticListener(channelName)); + api.addMessageCreateListener(new RollDiceMessageListener(channelName)); + api.addMessageCreateListener(new MorseTranslator(channelName)); + api.addMessageCreateListener(new HangmanListener(channelName)); + api.addMessageCreateListener(new BogoSorterListener(channelName)); + api.addMessageCreateListener(new ComplimentListener(channelName)); + api.addMessageCreateListener(new CrazyEights(channelName)); + api.addMessageCreateListener(new Blackjack(channelName)); + api.addMessageCreateListener(new RandomCase(channelName)); + api.addMessageCreateListener(new GetTime(channelName)); + api.addMessageCreateListener(new ScreenCapture(channelName)); + + api.addMessageCreateListener(new Hello(channelName)); + } +} diff --git a/src/main/java/org/jointheleague/modules/Poll.java b/src/main/java/org/jointheleague/modules/Poll.java deleted file mode 100644 index 531b360a..00000000 --- a/src/main/java/org/jointheleague/modules/Poll.java +++ /dev/null @@ -1,257 +0,0 @@ -package org.jointheleague.modules; - -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.time.LocalTime; -import java.time.temporal.ChronoField; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Iterator; -import java.util.List; -import java.util.Objects; -import java.util.concurrent.ExecutionException; - -import javax.swing.Timer; -import javax.swing.plaf.metal.OceanTheme; - -import org.javacord.api.entity.channel.TextChannel; -import org.javacord.api.entity.message.Message; -import org.javacord.api.entity.message.MessageBuilder; -import org.javacord.api.entity.message.Reaction; -import org.javacord.api.entity.message.embed.Embed; -import org.javacord.api.entity.message.embed.EmbedBuilder; -import org.javacord.api.event.message.MessageCreateEvent; -import org.javacord.api.event.message.reaction.ReactionAddEvent; -import org.javacord.api.event.message.reaction.ReactionRemoveEvent; -import org.javacord.api.listener.message.reaction.ReactionAddListener; -import org.javacord.api.listener.message.reaction.ReactionRemoveListener; - -import javassist.compiler.MemberCodeGen; -import net.aksingh.owmjapis.api.APIException; - -public class Poll extends CustomMessageCreateListener implements ReactionAddListener { - - public static String[] emoji = { "1️⃣", "2️⃣", "3️⃣", "4️⃣", "5️⃣", "6️⃣", "7️⃣", "8️⃣", "9️⃣", "🔟" }; - - public static final String COMMAND = "!createPoll"; - - boolean pollUp = false; - - public Poll(String channelName) { - super(channelName); - } - - @Override - public void handle(MessageCreateEvent event) throws APIException { - - if (event.getMessageContent().contains(COMMAND)) { - - String messageContent = event.getMessageContent().replace(COMMAND, ""); - Parameters parameters = getParameters(messageContent); - - String time = parameters.time; - String title = parameters.title; - String[] options = parameters.options; - - OptionContent[] oc = initializeOptions(options, null); - - Message m = buildEmbed(title, oc, event.getChannel()); - handleReactions(m, options.length); - - createTimer(time, m); - - try { - Thread.sleep(6000); - } catch (Exception e) { - e.printStackTrace(); - } - - m.addReactionRemoveListener(e -> votePercentages(m, options)); - m.addReactionAddListener(e -> votePercentages(m, options)); - - pollUp = true; - - } - - } - - private void createTimer(String timeParameter, Message m) { - - String measure = timeParameter.substring(timeParameter.indexOf(' ') + 1, timeParameter.length()); - String amount = timeParameter.substring(0, timeParameter.indexOf(' ')); - - int duration = 0; - - if (measure.equals("hours") || measure.equals("hour")) { - duration = Integer.parseInt(amount) * 60 * 60; - - } else if (measure.equals("minutes") || measure.equals("minute")) { - duration = Integer.parseInt(amount) * 60; - - } else if (measure.equals("seconds") || measure.equals("second")) { - duration = Integer.parseInt(amount); - - } - - Timer timer = new Timer(duration * 1000, e -> { - pollUp = false; - - String title = m.getEmbeds().get(0).getTitle().get(); - String footer = m.getEmbeds().get(0).getFooter().get().getText().get() + "\n(POLL HAS ENDED)\n"; - String description = m.getEmbeds().get(0).getDescription().get(); - - EmbedBuilder eb = new EmbedBuilder().setTitle(title).setDescription(description).setFooter(footer); - - m.edit(eb); - }); - - timer.setRepeats(false); - timer.start(); - } - - private void votePercentages(Message m, String[] options) { - if (pollUp) { - List reactionList = m.getReactions(); - - int[] percentages = new int[options.length]; - - int totalVotes = 0; - - for (int i = 0; i < options.length; i++) { - totalVotes += reactionList.get(i).getCount() - 1; - } - - for (int i = 0; i < options.length; i++) { - int percentage = 0; - try { - percentage = (reactionList.get(i).getCount() - 1) * (100 / totalVotes); - } catch (Exception e) { - e.getStackTrace(); - } - percentages[i] = percentage; - } - - OptionContent[] oc = initializeOptions(options, percentages); - - String descriptionContent = ""; - - for (OptionContent c : oc) { - descriptionContent += c.toString() + "\n"; - } - - String title = m.getEmbeds().get(0).getTitle().get(); - String footer = m.getEmbeds().get(0).getFooter().get().getText().get(); - - m.edit(new EmbedBuilder().setTitle(title).setDescription(descriptionContent).setFooter(footer)); - } - } - - private void handleReactions(Message m, int amount) { - for (int i = 0; i < amount; i++) { - m.addReaction(emoji[i]); - } - } - - private OptionContent[] initializeOptions(String[] options, int[] percentages) { - OptionContent[] oc = new OptionContent[options.length]; - - String percent = " 0%"; - - for (int i = 0; i < options.length; i++) { - if (percentages != null) { - percent = " " + percentages[i] + "%"; - } - - oc[i] = new OptionContent(emoji[i], options[i], percent); - } - return oc; - } - - private Message buildEmbed(String title, OptionContent[] options, TextChannel channel) { - MessageBuilder mb = new MessageBuilder(); - EmbedBuilder eb = new EmbedBuilder(); - - eb.setTitle(title); - eb.setFooter("Testing what this does"); - - String descriptionContent = ""; - for (OptionContent oc : options) { - descriptionContent += oc.toString() + "\n"; - } - eb.setDescription(descriptionContent); - - mb.setEmbed(eb); - Message m = null; - - try { - m = mb.send(channel).get(); - } catch (InterruptedException | ExecutionException e) { - e.printStackTrace(); - } - return m; - } - - private Parameters getParameters(String message) { - String messageContent = message; - System.out.println("Message: " + messageContent); - - String time = messageContent.substring(0, messageContent.indexOf(',') + 1); - messageContent = messageContent.replace(time, ""); - time = time.replace(",", "").trim(); - - String title = messageContent.substring(0, messageContent.indexOf(',') + 1); - messageContent = messageContent.replace(title, ""); - title = title.replace(",", "").trim(); - - ArrayList options = new ArrayList(); - - while (messageContent != "") { - String option = messageContent.substring(0, messageContent.indexOf(',') + 1); - messageContent = messageContent.replace(option, ""); - option = option.replace(",", "").trim(); - options.add(option); - - } - - Parameters p = new Parameters(time, title, options.toArray(new String[options.size()])); - - return p; - } - - @Override - public void onReactionAdd(ReactionAddEvent event) { - - } - -} - -class Parameters { - String time; - String title; - String[] options; - - Parameters(String time, String title, String[] options) { - this.time = time; - this.title = title; - this.options = options; - } - -} - -class OptionContent { - String emoji; - String option; - String percentage; - - OptionContent(String emoji, String option, String percentage) { - this.emoji = emoji; - this.option = option; - this.percentage = percentage; - } - - @Override - public String toString() { - return emoji + " " + option + " " + percentage; - } - -} diff --git a/src/main/java/org/jointheleague/modules/Reminder.java b/src/main/java/org/jointheleague/modules/Reminder.java deleted file mode 100644 index a0cb2081..00000000 --- a/src/main/java/org/jointheleague/modules/Reminder.java +++ /dev/null @@ -1,135 +0,0 @@ -package org.jointheleague.modules; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.time.LocalTime; -import java.time.temporal.ChronoField; -import java.util.ArrayList; -import javax.swing.Timer; -import org.javacord.api.entity.channel.TextChannel; -import org.javacord.api.entity.message.MessageBuilder; -import org.javacord.api.entity.message.embed.EmbedBuilder; -import org.javacord.api.event.message.MessageCreateEvent; -import org.javacord.api.listener.message.MessageCreateListener; - -import net.aksingh.owmjapis.api.APIException; - -public class Reminder extends CustomMessageCreateListener implements ActionListener { - - ArrayList userNames = new ArrayList(); - ArrayList messages = new ArrayList(); - ArrayList channelNames = new ArrayList(); - ArrayList timers = new ArrayList(); - - public static final String REMIND_COMMAND = "!setReminder"; - public static final String HELP_COMMAND = "!setReminderHelp"; - - public Reminder(String channelName) { - super(channelName); - - } - - @Override - public void handle(MessageCreateEvent event) throws APIException { - - if (event.getMessageContent().contains(HELP_COMMAND)) { - - //event.get - - new MessageBuilder().setEmbed(new EmbedBuilder().setTitle( - "To use this command first type the '!setReminder' command, followed by the time you want to be reminded (In Military Time), a comma, then your remind message") - .setDescription("P.S. Make sure when you input your time use a colon between the hours and minutes") - .setFooter("")).send(event.getChannel()); - - } else if (event.getMessageContent().contains(REMIND_COMMAND)) { - - // add use to the arraylist - String user = event.getMessageAuthor().getIdAsString(); - userNames.add(user); - - // add the channel to the arraylist - TextChannel txtChannel = event.getChannel(); - channelNames.add(txtChannel); - - String parameters = event.getMessageContent().replace(REMIND_COMMAND, ""); - - if (parameters.equals("")) { - event.getChannel().sendMessage("Invalid Input"); - } - - String timeParameter = ""; - - try { - // get the raw timeParameter, fix it later - timeParameter = parameters.substring(0, parameters.indexOf(',')); - - parameters = parameters.substring(parameters.indexOf(',') + 1, parameters.length()); - } catch (StringIndexOutOfBoundsException e) { - // This catches if there is no comma, which probably means there is no message - // so I set that to an empty string - - timeParameter = parameters.substring(0, parameters.length()); - - parameters = ""; - - } - - // get the raw messageParameter, no need to fix it and I add it to the arrayList - // immediately - String messageParameter = parameters.substring(0, parameters.length()); - messages.add(messageParameter); - - // all this is fixing the raw timeParameter so I can parse it to the LocalTime - // class and compare in to the current time - timeParameter = timeParameter.replaceAll(" ", ""); - - int count = timeParameter.length() - timeParameter.replaceAll(":", "").length(); - if (count == 1) { - timeParameter += ":00"; - } - - // parse fixed timeParameter to LocalTime class and get the current local time - LocalTime time = LocalTime.parse(timeParameter); - LocalTime currentTime = LocalTime.now(); - - // using LocalTime class functions, find the time until the user needs to be - // reminded, in seconds - // what the heck is a chronofield - int timeUntil = (int) (time.getLong(ChronoField.SECOND_OF_DAY) - - currentTime.getLong(ChronoField.SECOND_OF_DAY)); - - // Using the calculated time in seconds to create a timer that goes off after - // that time, add to ArrayList - timers.add(new Timer(timeUntil * 1000, this)); - timers.get(timers.size() - 1).start(); - - event.getChannel().sendMessage("Successfully created a reminder for " + time.toString()); - - } - } - - @Override - public void actionPerformed(ActionEvent e) { - - for (int i = 0; i < timers.size(); i++) { - - // Check which timer the ActionEvent belongs to, to find which index to be using - if (e.getSource().equals(timers.get(i))) { - channelNames.get(i).sendMessage("<@" + userNames.get(i) + ">"); - - new MessageBuilder() - .setEmbed(new EmbedBuilder().setTitle(messages.get(i)).setDescription("").setFooter("")) - .send(channelNames.get(i)); - - timers.get(i).stop(); - - // removing the information from the ArrayLists - userNames.remove(i); - channelNames.remove(i); - timers.remove(i); - messages.remove(i); - - } - } - } - -} From 9234a6c0840530fb5968ab6649fc211c2c3c22b2 Mon Sep 17 00:00:00 2001 From: adrianolguin <33267387+adrianolguin@users.noreply.github.com> Date: Wed, 17 Mar 2021 18:28:11 -0700 Subject: [PATCH 2/3] Adding help embed to my feature --- .../java/org/jointheleague/discord_bot_example/Bot.java | 7 +++++-- src/main/java/org/jointheleague/modules/Hello.java | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/jointheleague/discord_bot_example/Bot.java b/src/main/java/org/jointheleague/discord_bot_example/Bot.java index 28e20348..73402a08 100644 --- a/src/main/java/org/jointheleague/discord_bot_example/Bot.java +++ b/src/main/java/org/jointheleague/discord_bot_example/Bot.java @@ -109,6 +109,10 @@ public void connect(boolean printInvite) { // api.addMessageCreateListener(g); // helpListener.addHelpEmbed(g.getHelpEmbed()); + Hello hello = new Hello(channelName); + api.addMessageCreateListener(hello); + helpListener.addHelpEmbed(hello.getHelpEmbed()); + CovidCaseGetter covid = new CovidCaseGetter(channelName); api.addMessageCreateListener(covid); helpListener.addHelpEmbed(covid.getHelpEmbed()); @@ -126,7 +130,7 @@ public void connect(boolean printInvite) { helpListener.addHelpEmbed(rps.getHelpEmbed()); // old way to add listeners - api.addMessageCreateListener(helpListener); + //api.addMessageCreateListener(helpListener); api.addMessageCreateListener(new MomBot(channelName)); api.addMessageCreateListener(new DadJokes(channelName)); api.addMessageCreateListener(new ClockMessageListener(channelName)); @@ -170,6 +174,5 @@ public void connect(boolean printInvite) { api.addMessageCreateListener(new GetTime(channelName)); api.addMessageCreateListener(new ScreenCapture(channelName)); - api.addMessageCreateListener(new Hello(channelName)); } } diff --git a/src/main/java/org/jointheleague/modules/Hello.java b/src/main/java/org/jointheleague/modules/Hello.java index f601a0b0..3d216b85 100644 --- a/src/main/java/org/jointheleague/modules/Hello.java +++ b/src/main/java/org/jointheleague/modules/Hello.java @@ -1,6 +1,7 @@ package org.jointheleague.modules; import org.javacord.api.event.message.MessageCreateEvent; +import org.jointheleague.modules.pojo.HelpEmbed; import net.aksingh.owmjapis.api.APIException; @@ -10,6 +11,7 @@ public class Hello extends CustomMessageCreateListener { public Hello(String channelName) { super(channelName); + helpEmbed = new HelpEmbed(COMMAND, "This is a simple command that gives you a friendly Hello! To use it just type \\\"!Hello\\\""); } @Override From a345c270a2b9a547f4a6b4c4e9e3e65cab891680 Mon Sep 17 00:00:00 2001 From: adrianolguin <33267387+adrianolguin@users.noreply.github.com> Date: Wed, 17 Mar 2021 18:28:29 -0700 Subject: [PATCH 3/3] oops --- src/main/java/org/jointheleague/discord_bot_example/Bot.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/jointheleague/discord_bot_example/Bot.java b/src/main/java/org/jointheleague/discord_bot_example/Bot.java index 73402a08..3cc94c2d 100644 --- a/src/main/java/org/jointheleague/discord_bot_example/Bot.java +++ b/src/main/java/org/jointheleague/discord_bot_example/Bot.java @@ -130,7 +130,7 @@ public void connect(boolean printInvite) { helpListener.addHelpEmbed(rps.getHelpEmbed()); // old way to add listeners - //api.addMessageCreateListener(helpListener); + api.addMessageCreateListener(helpListener); api.addMessageCreateListener(new MomBot(channelName)); api.addMessageCreateListener(new DadJokes(channelName)); api.addMessageCreateListener(new ClockMessageListener(channelName));