diff --git a/.gitignore b/.gitignore
index 330a9173..aece16ef 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,3 +31,5 @@ target/
src/main/resources/config.json
src/main/resources/config.json
+src/main/resources/config.json
+src/main/resources/config.json
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 00000000..26d33521
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 00000000..5b2e27ba
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 00000000..aa00ffab
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 00000000..712ab9d9
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 00000000..93c3f204
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 00000000..e96534fb
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 00000000..35eb1ddf
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
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 06e330bf..073c13a6 100644
--- a/src/main/java/org/jointheleague/discord_bot_example/Bot.java
+++ b/src/main/java/org/jointheleague/discord_bot_example/Bot.java
@@ -1,55 +1,61 @@
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.*;
-import org.jointheleague.modules.pojo.HelpEmbed;
+public class Bot {
-public class Bot {
-// private static final String COMMAND = "!help";
- // The string to show the custom :vomiting_robot: emoji
- public static String emoji = "<:vomiting_robot:642414033290657803>";
+ // 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) {
- //helpEmbed = new HelpEmbed(COMMAND, "Allows you to get a random number. You can also specify a range of values (e.g. !random 50-100)");
- this.token = token;
- this.channelName = channelName;
- helpListener = new _HelpListener(channelName);
- }
+ private final String token;
+ private final String channelName;
+ DiscordApi api;
+ _HelpListener helpListener;
- public void connect(boolean printInvite) {
-
- api = new DiscordApiBuilder().setToken(token).login().join();
+ public Bot(String token, String channelName) {
+ this.token = token;
+ this.channelName = channelName;
+ helpListener = new _HelpListener(channelName);
+ }
- // Print the URL to invite the bot
- if (printInvite) {
- System.out.println("You can invite the bot by using the following url: " + api.createBotInvite());
- }
+ 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
+
+ NumberRandom rn = new NumberRandom(channelName);
+ api.addMessageCreateListener(rn);
+ helpListener.addHelpEmbed(rn.getHelpEmbed());
+
+ RollDie rd = new RollDie(channelName);
+ api.addMessageCreateListener(rd);
+ helpListener.addHelpEmbed(rd.getHelpEmbed());
+
+ NumberGuesser ng = new NumberGuesser(channelName);
+ api.addMessageCreateListener(ng);
+ helpListener.addHelpEmbed(ng.getHelpEmbed());
+
+ BotKick bk = new BotKick(channelName);
+ api.addMessageCreateListener(bk);
+ helpListener.addHelpEmbed(bk.getHelpEmbed());
- 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());
+
+// CurrencyConverter cc = new CurrencyConverter(channelName);
+// api.addMessageCreateListener(cc);
+// helpListener.addHelpEmbed(cc.getHelpEmbed());
ToDoList list = new ToDoList(channelName);
api.addMessageCreateListener(list);
@@ -59,57 +65,53 @@ public void connect(boolean printInvite) {
api.addMessageCreateListener(maze);
helpListener.addHelpEmbed(maze.getHelpEmbed());
- HeadlineListener head = new HeadlineListener(channelName);
+ MarsPictures marsPictures = new MarsPictures(channelName);
+ api.addMessageCreateListener(marsPictures);
+ helpListener.addHelpEmbed(marsPictures.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());
-
- Feature1 feature1 = new Feature1(channelName);
- api.addMessageCreateListener(feature1);
- helpListener.addHelpEmbed(feature1.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());
-
- DeathMatch hungerGames = new DeathMatch(channelName);
- api.addMessageCreateListener(hungerGames);
- helpListener.addHelpEmbed(hungerGames.getHelpEmbed());
CoinFlip cp = new CoinFlip(channelName);
api.addMessageCreateListener(cp);
-
+
RollDie rollDie = new RollDie(channelName);
api.addMessageCreateListener(rollDie);
@@ -120,6 +122,18 @@ public void connect(boolean printInvite) {
pythagcalc pythagCalc = new pythagcalc(channelName);
api.addMessageCreateListener(pythagCalc);
helpListener.addHelpEmbed(pythagCalc.getHelpEmbed());
+
+ Reminder reminder = new Reminder(channelName);
+ api.addMessageCreateListener(reminder);
+ helpListener.addHelpEmbed(reminder.getHelpEmbed());
+
+ Hello hello = new Hello(channelName);
+ api.addMessageCreateListener(hello);
+ helpListener.addHelpEmbed(hello.getHelpEmbed());
+
+ Poll poll = new Poll(channelName);
+ api.addMessageCreateListener(poll);
+ helpListener.addHelpEmbed(poll.getHelpEmbed());
//Greeter g = new Greeter(channelName);
//api.addMessageCreateListener(g);
@@ -128,6 +142,10 @@ public void connect(boolean printInvite) {
api.addMessageCreateListener(dza);
helpListener.addHelpEmbed(dza.getHelpEmbed());
+ Poker poker = new Poker(channelName);
+ api.addMessageCreateListener(poker);
+ helpListener.addHelpEmbed(poker.getHelpEmbed());
+
CovidCaseGetter covid = new CovidCaseGetter(channelName);
api.addMessageCreateListener(covid);
helpListener.addHelpEmbed(covid.getHelpEmbed());
@@ -135,7 +153,7 @@ public void connect(boolean printInvite) {
ListMakerMessageListener LM = new ListMakerMessageListener(channelName);
api.addMessageCreateListener(LM);
helpListener.addHelpEmbed(LM.getHelpEmbed());
-
+
Dice d = new Dice(channelName);
api.addMessageCreateListener(d);
helpListener.addHelpEmbed(d.getHelpEmbed());
@@ -143,12 +161,20 @@ public void connect(boolean printInvite) {
UnbeatableRockPaperScissors rps = new UnbeatableRockPaperScissors(channelName);
api.addMessageCreateListener(rps);
helpListener.addHelpEmbed(rps.getHelpEmbed());
- Depression depress = new Depression(channelName);
+
+ FilmRecommendations f = new FilmRecommendations(channelName);
+ api.addMessageCreateListener(f);
+ helpListener.addHelpEmbed(f.getHelpEmbed());
+
+ Depression depress = new Depression(channelName);
api.addMessageCreateListener(depress);
helpListener.addHelpEmbed(depress.getHelpEmbed());
-
-
- //old way to add listeners
+
+ //Depression depress = new Depression(channelName);
+// api.addMessageCreateListener(depress);
+// helpListener.addHelpEmbed(depress.getHelpEmbed());
+
+ // old way to add listeners
api.addMessageCreateListener(helpListener);
api.addMessageCreateListener(new MomBot(channelName));
api.addMessageCreateListener(new DadJokes(channelName));
@@ -175,7 +201,7 @@ public void connect(boolean printInvite) {
api.addMessageCreateListener(new LatexRender(channelName));
api.addMessageCreateListener(new MinesweeperListener(channelName));
api.addMessageCreateListener(new Bot1Listener(channelName));
- api.addMessageCreateListener(new PingMessageListener(channelName));
+ api.addMessageCreateListener(new PingMessageListener(channelName));
api.addMessageCreateListener(new CoinFlipMessageListener(channelName));
api.addMessageCreateListener(new PlayRPSMessageListener(channelName));
api.addMessageCreateListener(new KickMessageListener(channelName));
@@ -192,8 +218,5 @@ public void connect(boolean printInvite) {
api.addMessageCreateListener(new RandomCase(channelName));
api.addMessageCreateListener(new GetTime(channelName));
api.addMessageCreateListener(new ScreenCapture(channelName));
- api.addMessageCreateListener(new StarSignSeeker(channelName));
- api.addMessageCreateListener(new War(channelName));
- //api.addMessageCreateListener(new Depression(channelName));
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/org/jointheleague/modules/BotKick.java b/src/main/java/org/jointheleague/modules/BotKick.java
new file mode 100644
index 00000000..d753cc93
--- /dev/null
+++ b/src/main/java/org/jointheleague/modules/BotKick.java
@@ -0,0 +1,63 @@
+package org.jointheleague.modules;
+
+import net.aksingh.owmjapis.api.APIException;
+import org.javacord.api.event.message.MessageCreateEvent;
+
+import java.util.Random;
+
+
+public class BotKick extends CustomMessageCreateListener {
+ public BotKick(String channelName) {
+ super(channelName);
+ }
+
+ @Override
+ public void handle(MessageCreateEvent event) throws APIException, InterruptedException {
+
+ String messageContent2 = event.getMessageContent();
+ String rock = "rock";
+ String paper = "paper";
+ String scissors = "scissors";
+ String botChoice = "";
+ Random ran = new Random();
+ int Random = ran.nextInt(3);
+ if (Random == 0){
+ botChoice = scissors;
+ }
+ if (Random == 1){
+ botChoice = rock;
+ }
+ if (Random == 2){
+ botChoice = paper;
+ }
+ if(messageContent2.contains(rock)){
+ event.getChannel().sendMessage("Computer chose: " + botChoice);
+ if (botChoice.equals(scissors)){
+ event.getChannel().sendMessage("You win");
+ }
+ else if (botChoice.equals(paper)){
+ event.getChannel().sendMessage("You lose");
+ }
+ }
+ else if(messageContent2.contains(scissors)) {
+ event.getChannel().sendMessage("Computer chose: " + botChoice);
+ if (botChoice.equals(paper)) {
+ event.getChannel().sendMessage("You win");
+ } else if (botChoice.equals(rock)) {
+ event.getChannel().sendMessage("You lose");
+ }
+ }
+ else if(messageContent2.contains(paper)) {
+ event.getChannel().sendMessage("Computer chose: " + botChoice);
+ if (botChoice.equals(rock)) {
+ event.getChannel().sendMessage("You win");
+ } else if (botChoice.equals(scissors)) {
+ event.getChannel().sendMessage("You lose");
+ }
+ }
+
+
+
+ }
+}
+
diff --git a/src/main/java/org/jointheleague/modules/CustomMessageCreateListener.java b/src/main/java/org/jointheleague/modules/CustomMessageCreateListener.java
index 699aee68..61f2d5d9 100644
--- a/src/main/java/org/jointheleague/modules/CustomMessageCreateListener.java
+++ b/src/main/java/org/jointheleague/modules/CustomMessageCreateListener.java
@@ -22,7 +22,7 @@ public void onMessageCreate(MessageCreateEvent event) {
if (e.getName().equals(channelName)) {
try {
handle(event);
- } catch (APIException e1) {
+ } catch (APIException | InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
@@ -34,5 +34,5 @@ public HelpEmbed getHelpEmbed() {
return this.helpEmbed;
}
- public abstract void handle(MessageCreateEvent event) throws APIException;
+ public abstract void handle(MessageCreateEvent event) throws APIException, InterruptedException;
}
\ No newline at end of file
diff --git a/src/main/java/org/jointheleague/modules/FilmRecommendations.java b/src/main/java/org/jointheleague/modules/FilmRecommendations.java
new file mode 100644
index 00000000..a31f0178
--- /dev/null
+++ b/src/main/java/org/jointheleague/modules/FilmRecommendations.java
@@ -0,0 +1,185 @@
+package org.jointheleague.modules;
+
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.ProtocolException;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.List;
+
+import javax.json.Json;
+import javax.json.JsonObject;
+import javax.json.JsonReader;
+
+import org.javacord.api.event.message.MessageCreateEvent;
+import org.jointheleague.modules.pojo.HelpEmbed;
+import org.jointheleague.modules.pojo.apiExample.ApiExampleWrapper;
+import org.jointheleague.modules.pojo.apiExample.Article;
+import org.jointheleague.modules.pojo.movieRecs.com.example.Movie2;
+import org.jointheleague.modules.pojo.movieRecs.com.example.Result;
+
+import com.google.gson.Gson;
+
+import net.aksingh.owmjapis.api.APIException;
+
+public class FilmRecommendations extends CustomMessageCreateListener {
+
+ private final String apiKey = "fa92f432901a636644b602c85e08eb4a";
+ private static final String COMMAND = "!moviesAPI";
+ private final Gson gson = new Gson();
+ HashMap genreMap = new HashMap();
+
+ public FilmRecommendations(String channelName) {
+ super(channelName);
+ helpEmbed = new HelpEmbed(COMMAND, "Please type '!moviesAPI' and the name of a movie you want information for.");
+ genreMap.put(28, "Action");
+ genreMap.put(12, "Adventure");
+ genreMap.put(16, "Animation");
+ genreMap.put(35, "Comedy");
+ genreMap.put(80, "Crime");
+ genreMap.put(99, "Documentary");
+ genreMap.put(18, "Drama");
+ genreMap.put(10751, "Family");
+ genreMap.put(14, "Fantasy");
+ genreMap.put(36, "History");
+ genreMap.put(27, "Horror");
+ genreMap.put(10402, "Music");
+ genreMap.put(9648, "Mystery");
+ genreMap.put(10749, "Romance");
+ genreMap.put(878, "Science Fiction");
+ genreMap.put(10770, "TV Movie");
+ genreMap.put(53, "Thriller");
+ genreMap.put(10752, "War");
+ genreMap.put(37, "Western");
+ }
+
+
+
+ @Override
+ public void handle(MessageCreateEvent event) throws APIException {
+
+ if(event.getMessageContent().contains(COMMAND)) {
+ //remove the command so we are only left with the search term
+ //String msg = event.getMessageContent();
+
+ String [] msg = event.getMessageContent().split(" ");
+ if (msg[0].equals("!moviesAPI")) {
+ //event.getChannel().sendMessage("Please give me a movie");
+ String userOutput = "";
+
+ for(int i = 1; i < msg.length; i++) {
+ userOutput += msg[i];
+
+ if(i < msg.length-1) {
+ userOutput += "%20";
+ }
+ }
+
+ System.out.println(userOutput);
+
+
+ String movieInfo = getMovie(userOutput);
+ System.out.println(movieInfo);
+ event.getChannel().sendMessage(movieInfo);
+
+ //event.getChannel().sendMessage("Please put a word after the command");
+ }
+ else {
+ event.getChannel().sendMessage("Please enter a movie.");
+ String userOutput = "";
+ for(int i = 1; i < msg.length; i++) {
+ userOutput += msg[i];
+
+ if(i < msg.length-1) {
+ userOutput += "%20";
+ }
+ }
+ }
+ }
+ }
+ public String getMovie(String movieName) {
+
+ //create the request URL (can be found in the documentation)
+// String requestURL = "http://newsapi.org/v2/everything?" +
+// "q="+topic+"&" +
+// "sortBy=popularity&" +
+// "apiKey="+apiKey;
+
+ //String requestURL = "https://api.themoviedb.org/3/movie/550?api_key=fa92f432901a636644b602c85e08eb4a";
+ String requestURL = "https://api.themoviedb.org/3/search/movie?api_key=" + apiKey + "&language=en-US&query=" + movieName + "&page=1&include_adult=false";
+
+ try {
+
+ //the following code will probably be the same for your feature
+ URL url = new URL(requestURL);
+ HttpURLConnection con = (HttpURLConnection) url.openConnection();
+ con.setRequestMethod("GET");
+ JsonReader repoReader = Json.createReader(con.getInputStream());
+ JsonObject userJSON = ((JsonObject) repoReader.read());
+ con.disconnect();
+
+ //turn the json response into a java object
+ //you will need to create a java class that represents the response in org.jointheleague.modules.pojo
+ //you can use a tools like Postman and jsonschema2pojo.com to help with that
+
+ //you can use postman to make the request and receive a response, then take that and put it right into jsonschema2pojo.com
+ //If using jsonschema2pojo.com, select Target Langue = java, Source Type = JSON, Annotation Style = Gson
+ Movie2 movie = gson.fromJson(userJSON.toString(), Movie2.class);
+
+ String getTitleStr = "";
+ String getOverviewStr = "";
+ List getGenreStr = null;
+ Double getVoteNum = null;
+ List resultList = movie.getResults();
+
+ if(resultList.size() > 0) {
+ Result r = resultList.get(0);
+ getTitleStr = r.getTitle();
+ getOverviewStr = r.getOverview();
+ getGenreStr = r.getGenreIds();
+ getVoteNum = r.getVoteAverage();
+ } else {
+ return "Please enter a movie.";
+ }
+
+ //get the genre of movie (these are just java objects now)
+// String getGenreName = "";
+// List genreList = movie.getGenres();
+// for (int i = 0; i < genreList.size(); i++) {
+// Genre g = genreList.get(i);
+// getGenreName = g.getName();
+// }
+//
+// //get the title of the movie
+// String title = movie.getTitle();
+//
+// //get the overview of the movie
+// String overview = movie.getOverview();
+
+ //create the message
+ String genre = "*not found*";
+ if(getGenreStr.size() > 0) {
+ genre = genreMap.get(getGenreStr.get(0));
+ }
+
+ String message = "'" + getTitleStr + "' is in the genre " + genre + ". "
+ + "Here is an overview of the movie: " + getOverviewStr + " " + " This movie got an average of " + getVoteNum + " votes.";
+
+ //send the message
+ return message;
+
+
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ } catch (ProtocolException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ //fix catch statement
+ return "No information found. Enter a different movie.";
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/org/jointheleague/modules/Hello.java b/src/main/java/org/jointheleague/modules/Hello.java
new file mode 100644
index 00000000..3d216b85
--- /dev/null
+++ b/src/main/java/org/jointheleague/modules/Hello.java
@@ -0,0 +1,26 @@
+package org.jointheleague.modules;
+
+import org.javacord.api.event.message.MessageCreateEvent;
+import org.jointheleague.modules.pojo.HelpEmbed;
+
+import net.aksingh.owmjapis.api.APIException;
+
+public class Hello extends CustomMessageCreateListener {
+
+ private static final String COMMAND = "!Hello";
+
+ 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
+ public void handle(MessageCreateEvent event) throws APIException {
+ if (event.getMessageContent().contains(COMMAND)) {
+ String user = event.getMessageAuthor().getDisplayName().toString();
+ event.getChannel().sendMessage("Hello! " + user);
+
+ }
+ }
+
+}
diff --git a/src/main/java/org/jointheleague/modules/MarsPictures.java b/src/main/java/org/jointheleague/modules/MarsPictures.java
new file mode 100644
index 00000000..86c1b715
--- /dev/null
+++ b/src/main/java/org/jointheleague/modules/MarsPictures.java
@@ -0,0 +1,125 @@
+package org.jointheleague.modules;
+
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+import javax.json.Json;
+import javax.json.JsonObject;
+import javax.json.JsonReader;
+
+import org.javacord.api.event.message.MessageCreateEvent;
+import org.jointheleague.modules.pojo.HelpEmbed;
+import org.jointheleague.modules.pojo.MarsImage.MarsImageWrapper;
+import org.jointheleague.modules.pojo.MarsRover.ManifestRover;
+import org.jointheleague.modules.pojo.MarsRover.MarsRoverWrapper;
+
+import com.google.gson.Gson;
+
+public class MarsPictures extends CustomMessageCreateListener{
+
+ private final String apiKey = "aY1trRHtbf5TdONEoOJcngI3SCjgeZbAPRPf7ccx";
+ private static final String COMMAND = "!marsImage";
+ private final Gson gson = new Gson();
+
+ public MarsPictures(String channelName) {
+ super(channelName);
+ helpEmbed = new HelpEmbed(COMMAND, "This command will return an image taken by a mars rover (either Curiosity, Opportunity, or Spirit). "
+ + "This command will require you to input the rover you want to get pictures from and the martian sol (day) that you want to get images from. "
+ + "You are also optionally able to input a specific camera to get images from. The parameters should be in the order . "
+ + "Use \"!marsImage cameras\" to see what cameras are supported by what rovers. Use \"!marsImage manifest \" to see the mission manifest "
+ + "of the rover.");
+ }
+
+ @Override
+ public void handle(MessageCreateEvent event) {
+ if(!event.getMessageAuthor().isBotUser() && event.getMessageContent().startsWith(COMMAND)) {
+ //remove the command so we are only left with the search term
+ String msg = event.getMessageContent().replace(COMMAND + " ", "");
+ String[] parameterList = msg.split(" ");
+
+ for (int i = 0; i < parameterList.length; i++) {
+ System.out.println(parameterList[i]);
+ }
+
+ if(parameterList[0].equalsIgnoreCase(COMMAND) || parameterList[0].equalsIgnoreCase("help")) {
+ event.getChannel().sendMessage(helpEmbed.getDescription());
+ } else if(parameterList[0].equalsIgnoreCase("cameras")) {
+ event.getChannel().sendMessage("```"
+ + "Abbreviation: | Camera: | Rovers:\n"
+ + "FHAZ | Front Hazard Avoidance Camera | Curiosity, Opportunity, Spirit\n"
+ + "RHAZ | Rear Hazard Avoidance Camera | Curiosity, Opportunity, Spirit\n"
+ + "MAST | Mast Camera | Curiosity\n"
+ + "CHEMCAM | Chemistry and Camera Complex | Curiosity\n"
+ + "MAHLI | Mars Hand Lens Imager | Curiosity\n"
+ + "MARDI | Mars descent Imager | Curiosity\n"
+ + "NAVCAM | Navigation Camera | Curiosity, Opportunity, Spirit\n"
+ + "PANCAM | Panoramic Camera | Opportunity, Spirit\n"
+ + "MINITES | Miniature Thermal Emission Spectrometer | Opportunity, Spirit\n"
+ + "```");
+ } else if(parameterList[0].equalsIgnoreCase("manifest") && parameterList.length > 1){
+ event.getChannel().sendMessage(getMarsRoverManifest(parameterList[1]));
+ } else {
+ if (parameterList.length < 2) {
+ event.getChannel().sendMessage("You didn't enter enough parameters. Use the \"help\" parameter for more information.");
+ } else if (parameterList.length == 2){
+ event.getChannel().sendMessage(getMarsImageURL(parameterList[0], parameterList[1]));
+ } else {
+ event.getChannel().sendMessage(getMarsImageURL(parameterList[0], parameterList[2], parameterList[1]));
+ }
+ }
+ }
+ }
+
+ public String getMarsImageURL(String rover, String sol) {
+ return getMarsImageURL(rover, "", sol);
+ }
+
+ public String getMarsImageURL(String rover, String camera, String sol) {
+
+ String requestURL;
+
+ if(camera.equals("")) {
+ requestURL = "https://api.nasa.gov/mars-photos/api/v1/rovers/" + rover.toLowerCase() + "/photos?" + "sol=" + sol + "&api_key=" + apiKey;
+ }else {
+ requestURL = "https://api.nasa.gov/mars-photos/api/v1/rovers/" + rover.toLowerCase() + "/photos?" + "sol=" + sol + "&camera=" + camera.toUpperCase() + "&api_key=" + apiKey;
+ }
+
+ try {
+ URL url = new URL(requestURL);
+ HttpURLConnection con = (HttpURLConnection) url.openConnection();
+ con.setRequestMethod("GET");
+ JsonReader repoReader = Json.createReader(con.getInputStream());
+ JsonObject userJSON = ((JsonObject) repoReader.read());
+ con.disconnect();
+
+ MarsImageWrapper marsImageWrapper = gson.fromJson(userJSON.toString(), MarsImageWrapper.class);
+
+ return marsImageWrapper.getPhotos().get(0).getImgSrc();
+
+ } catch (Exception e) {
+ return "A parameter was invalid or unavailable.";
+ }
+ }
+
+ public String getMarsRoverManifest(String rover) {
+ String requestURL = "https://api.nasa.gov/mars-photos/api/v1/rovers/" + rover.toLowerCase() + "/?api_key=" + apiKey;
+
+ try {
+ URL url = new URL(requestURL);
+ HttpURLConnection con = (HttpURLConnection) url.openConnection();
+ con.setRequestMethod("GET");
+ JsonReader repoReader = Json.createReader(con.getInputStream());
+ JsonObject userJSON = ((JsonObject) repoReader.read());
+ con.disconnect();
+
+ MarsRoverWrapper manifestRover = gson.fromJson(userJSON.toString(), MarsRoverWrapper .class);
+ ManifestRover manifest = manifestRover.getRover();
+
+ return "Name: " + manifest.getName() + ", Status: " + manifest.getStatus() + ", Launch Date: " +
+ manifest.getLaunchDate() + ", Landing Date: " + manifest.getLandingDate() + ", Max Sol: " + manifest.getMaxSol();
+
+ } catch (Exception e) {
+ return "A parameter was invalid.";
+ }
+ }
+}
diff --git a/src/main/java/org/jointheleague/modules/MazeGame.java b/src/main/java/org/jointheleague/modules/MazeGame.java
index 76e1f77c..b972c5c0 100644
--- a/src/main/java/org/jointheleague/modules/MazeGame.java
+++ b/src/main/java/org/jointheleague/modules/MazeGame.java
@@ -30,7 +30,7 @@ public void handle(MessageCreateEvent event) throws APIException {
System.out.println("Heard message: " + event.getMessageContent());
if (event.getMessageContent().contains(COMMAND) && !event.getMessageAuthor().isBotUser()) {
if (event.getMessageContent().contains("start") || event.getMessageContent().contains("load")) {
- String target = event.getMessageContent().substring(11).strip();
+ String target = event.getMessageContent().substring(11);
try {
if(!target.equalsIgnoreCase("upload")) {
diff --git a/src/main/java/org/jointheleague/modules/NumberGuesser.java b/src/main/java/org/jointheleague/modules/NumberGuesser.java
new file mode 100644
index 00000000..77b74f8a
--- /dev/null
+++ b/src/main/java/org/jointheleague/modules/NumberGuesser.java
@@ -0,0 +1,38 @@
+package org.jointheleague.modules;
+
+import net.aksingh.owmjapis.api.APIException;
+import org.javacord.api.event.message.MessageCreateEvent;
+
+
+import java.util.Random;
+
+public class NumberGuesser extends CustomMessageCreateListener {
+ public NumberGuesser(String channelName) {
+ super(channelName);
+ }
+
+ @Override
+ public void handle(MessageCreateEvent event) throws APIException, InterruptedException {
+ String zero = "0";
+ String one = "1";
+ String two = "2";
+ String three = "3";
+ Random r2 = new Random();
+ int ran = r2.nextInt(3);
+
+ String messageContent2 = event.getMessageContent();
+ String messageContent3 = event.getMessageContent();
+ if (messageContent2.startsWith(zero) || messageContent2.startsWith(one) || messageContent2.startsWith(two) || messageContent2.startsWith(three)) {
+ event.getChannel().sendMessage("Answer: " + ran);
+
+ if (messageContent3.startsWith("" + ran)){
+ event.getChannel().sendMessage("Correct" + " Now resetting...");
+ }
+
+ else {
+ event.getChannel().sendMessage("Nope!" + " Now resetting...");
+ }
+
+ }
+ }
+}
diff --git a/src/main/java/org/jointheleague/modules/NumberRandom.java b/src/main/java/org/jointheleague/modules/NumberRandom.java
new file mode 100644
index 00000000..28d0174e
--- /dev/null
+++ b/src/main/java/org/jointheleague/modules/NumberRandom.java
@@ -0,0 +1,45 @@
+package org.jointheleague.modules;
+
+import net.aksingh.owmjapis.api.APIException;
+import org.javacord.api.event.message.MessageCreateEvent;
+
+
+import java.util.Random;
+
+public class NumberRandom extends CustomMessageCreateListener {
+ public NumberRandom(String channelName) {
+ super(channelName);
+ }
+
+ @Override
+ public void handle(MessageCreateEvent event) throws APIException, InterruptedException {
+ String COMMAND = "!random";
+ String messageContent = event.getMessageContent();
+ if (messageContent.startsWith(COMMAND)) {
+ Random r = new Random();
+ event.getChannel().sendMessage("Your random number is " + r.nextInt(1001));
+ }
+
+ String zero = "0";
+ String one = "1";
+ String two = "2";
+ String three = "3";
+ Random r2 = new Random();
+ int ran = r2.nextInt(3);
+
+ String messageContent2 = event.getMessageContent();
+ String messageContent3 = event.getMessageContent();
+ if (messageContent2.startsWith(zero) || messageContent2.startsWith(one) || messageContent2.startsWith(two) || messageContent2.startsWith(three)) {
+ event.getChannel().sendMessage("Answer: " + ran);
+
+ if (messageContent3.startsWith("" + ran)){
+ event.getChannel().sendMessage("Correct" + " Now resetting...");
+ }
+
+ else {
+ event.getChannel().sendMessage("Nope!" + " Now resetting...");
+ }
+
+ }
+ }
+}
diff --git a/src/main/java/org/jointheleague/modules/PingPong.java b/src/main/java/org/jointheleague/modules/PingPong.java
new file mode 100644
index 00000000..c7c781ea
--- /dev/null
+++ b/src/main/java/org/jointheleague/modules/PingPong.java
@@ -0,0 +1,24 @@
+package org.jointheleague.modules;
+
+import net.aksingh.owmjapis.api.APIException;
+import org.javacord.api.event.message.MessageCreateEvent;
+import org.jointheleague.modules.pojo.HelpEmbed;
+
+public class PingPong extends CustomMessageCreateListener {
+ private static final String prefix = "!pingpong";
+
+ public PingPong(String channelName) {
+ super(channelName);
+ this.helpEmbed = new HelpEmbed(prefix, "Pong!!!!");
+ }
+
+ @Override
+ public void handle(MessageCreateEvent event) throws APIException {
+ String content = event.getMessageContent();
+
+ if (content.isEmpty()) return;
+ if (content.toLowerCase().contentEquals(prefix)) {
+ event.getChannel().sendMessage("Pong!");
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/org/jointheleague/modules/Poker.java b/src/main/java/org/jointheleague/modules/Poker.java
new file mode 100644
index 00000000..f2ff803c
--- /dev/null
+++ b/src/main/java/org/jointheleague/modules/Poker.java
@@ -0,0 +1,2048 @@
+package org.jointheleague.modules;
+
+import java.lang.reflect.Array;
+import java.util.Random;
+
+import org.javacord.api.event.message.MessageCreateEvent;
+import org.javacord.api.listener.message.MessageCreateListener;
+import org.jointheleague.modules.pojo.HelpEmbed;
+
+import net.aksingh.owmjapis.api.APIException;
+
+public class Poker extends CustomMessageCreateListener {
+
+ public Poker(String channelName) {
+ // TODO Auto-generated constructor stub
+ super(channelName);
+ helpEmbed = new HelpEmbed("!gamble poker", "This command starts a new poker game. You add a number after this command as the starting wager. The command !gamble bet with a number after it is the next wager continues the game. You can fold by using !gamble fold. If you run out of money, you can use !gamble work with a number after it to gain money in your balance.");
+ }
+
+ private static final String command = "!gamble";
+ int balance = 50;
+ int wager;
+ int totalBet;
+ int payment;
+ Random randCards = new Random();
+ String[] cards = new String[52];
+ String[] botAndMiddleCards = new String[7];
+ String[] playerAndMiddleCards=new String[7];
+ int[] usedCards = new int[9];
+ int playerCard1;
+ int playerCard2;
+ int middleCard1;
+ int middleCard2;
+ int middleCard3;
+ int middleCard4;
+ int middleCard5;
+ int botCard1;
+ int botCard2;
+ int numberSameCards;
+ int playerScore;
+ int botScore;
+ int numberPairs;
+ int highestPairValue;
+ int lowestPairValue;
+ int highestTripleValue;
+ int playerPairValue;
+ int botPairValue;
+ int playerLowPair;
+ int botLowPair;
+ int playerHighCard;
+ int playerSecondHighCard;
+ int playerThirdHighCard;
+ int playerFourthHighCard;
+ int playerFifthHighCard;
+ int botHighCard;
+ int botSecondHighCard;
+ int botThirdHighCard;
+ int botFourthHighCard;
+ int botFifthHighCard;
+ boolean triple;
+ boolean userCooporates = false;
+ boolean isUsed = false;
+ boolean flop = true;
+ boolean turn = true;
+ boolean river=true;
+ boolean gameOver = true;
+ boolean playerWon;
+ boolean rewardGiven;
+ boolean tie=false;
+ boolean straight;
+ boolean number;
+ int highestCallChance = 0;
+ int botCallChance = 0;
+ int botSpades;
+ int botDiamonds;
+ int botHearts;
+ int botClubs;
+ int playerSpades;
+ int playerDiamonds;
+ int playerHearts;
+ int playerClubs;
+ int highestSuit;
+ int highCard;
+ int secondHighCard;
+ int thirdHighCard;
+ int fourthHighCard;
+ int fifthHighCard;
+ int highStraightCard;
+ boolean ace;
+ boolean two;
+ boolean three;
+ boolean four;
+ boolean five;
+ boolean six;
+ boolean seven;
+ boolean eight;
+ boolean nine;
+ boolean ten;
+ boolean jack;
+ boolean queen;
+ boolean king;
+
+ @Override
+ public void handle(MessageCreateEvent event) throws APIException {
+ // TODO Auto-generated method stub
+ cards[0] = "ace of spades";
+ cards[1] = "2 of spades";
+ cards[2] = "3 of spades";
+ cards[3] = "4 of spades";
+ cards[4] = "5 of spades";
+ cards[5] = "6 of spades";
+ cards[6] = "7 of spades";
+ cards[7] = "8 of spades";
+ cards[8] = "9 of spades";
+ cards[9] = "10 of spades";
+ cards[10] = "jack of spades";
+ cards[11] = "queen of spades";
+ cards[12] = "king of spades";
+ cards[13] = "ace of hearts";
+ cards[14] = "2 of hearts";
+ cards[15] = "3 of hearts";
+ cards[16] = "4 of hearts";
+ cards[17] = "5 of hearts";
+ cards[18] = "6 of hearts";
+ cards[19] = "7 of hearts";
+ cards[20] = "8 of hearts";
+ cards[21] = "9 of hearts";
+ cards[22] = "10 of hearts";
+ cards[23] = "jack of hearts";
+ cards[24] = "queen of hearts";
+ cards[25] = "king of hearts";
+ cards[26] = "ace of diamonds";
+ cards[27] = "2 of diamonds";
+ cards[28] = "3 of diamonds";
+ cards[29] = "4 of diamonds";
+ cards[30] = "5 of diamonds";
+ cards[31] = "6 of diamonds";
+ cards[32] = "7 of diamonds";
+ cards[33] = "8 of diamonds";
+ cards[34] = "9 of diamonds";
+ cards[35] = "10 of diamonds";
+ cards[36] = "jack of diamonds";
+ cards[37] = "queen of diamonds";
+ cards[38] = "king of diamonds";
+ cards[39] = "ace of clubs";
+ cards[40] = "2 of clubs";
+ cards[41] = "3 of clubs";
+ cards[42] = "4 of clubs";
+ cards[43] = "5 of clubs";
+ cards[44] = "6 of clubs";
+ cards[45] = "7 of clubs";
+ cards[46] = "8 of clubs";
+ cards[47] = "9 of clubs";
+ cards[48] = "10 of clubs";
+ cards[49] = "jack of clubs";
+ cards[50] = "queen of clubs";
+ cards[51] = "king of clubs";
+ if (event.getMessageContent().contains(command)) {
+ String content = event.getMessageContent().replaceAll(" ", "").replace("!gamble", "");
+ if (content.contains("poker")) {
+ number=false;
+ content = content.replace("poker", "");
+ try {
+ wager = Integer.parseInt(content);
+ number=true;
+ } catch (Exception e) {
+ event.getChannel().sendMessage("Choose a number after the command to gamble");
+ return;
+ }
+ if (gameOver == true) {
+ gameOver = false;
+ flop=true;
+ turn=true;
+ river=true;
+ rewardGiven=false;
+ totalBet = 0;
+ highestCallChance=0;
+ botCallChance=0;
+ numberPairs=0;
+ triple=false;
+ usedCards[0]=-1;
+ usedCards[1]=-1;
+ usedCards[2]=-1;
+ usedCards[3]=-1;
+ usedCards[4]=-1;
+ usedCards[5]=-1;
+ usedCards[6]=-1;
+ usedCards[7]=-1;
+ usedCards[8]=-1;
+ botAndMiddleCards[0]="";
+ botAndMiddleCards[1]="";
+ botAndMiddleCards[2]="";
+ botAndMiddleCards[3]="";
+ botAndMiddleCards[4]="";
+ botAndMiddleCards[5]="";
+ botAndMiddleCards[6]="";
+ playerAndMiddleCards[0]="";
+ playerAndMiddleCards[1]="";
+ playerAndMiddleCards[2]="";
+ playerAndMiddleCards[3]="";
+ playerAndMiddleCards[4]="";
+ playerAndMiddleCards[5]="";
+ playerAndMiddleCards[6]="";
+ botSpades=0;
+ botDiamonds=0;
+ botHearts=0;
+ botClubs=0;
+ playerSpades=0;
+ playerDiamonds=0;
+ playerHearts=0;
+ playerClubs=0;
+
+ if (balance-wager < 0) {
+ event.getChannel().sendMessage("You don't have enough money to wager that much.");
+ gameOver=true;
+ } else if (wager<0) {
+ event.getChannel().sendMessage("Choose a positive number");
+ gameOver=true;
+ }
+ else {
+ balance -= wager;
+ totalBet += wager;
+ event.getChannel().sendMessage("Your balance is " + balance);
+ // send photos of cards in the middle, its only text currently
+ middleCard1 = randCards.nextInt(52);
+ usedCards[0] = middleCard1;
+ middleCard2 = randCards.nextInt(52);
+ for (int i = 0; i < usedCards.length; i++) {
+ if (usedCards[i] == middleCard2) {
+ isUsed = true;
+
+ }
+ while (isUsed == true) {
+ middleCard2 = randCards.nextInt(52);
+ isUsed = false;
+ }
+ }
+ usedCards[1] = middleCard2;
+ middleCard3 = randCards.nextInt(52);
+ for (int i = 0; i < usedCards.length; i++) {
+ if (usedCards[i] == middleCard3) {
+ isUsed = true;
+
+ }
+ while (isUsed == true) {
+ middleCard3 = randCards.nextInt(52);
+ isUsed = false;
+ }
+ }
+ usedCards[2] = middleCard3;
+ event.getChannel().sendMessage("The middle cards are the " + cards[middleCard1] + ", the "
+ + cards[middleCard2] + " and the " + cards[middleCard3]);
+
+ // send photo of player cards, its only text currently
+ playerCard1 = randCards.nextInt(52);
+ for (int i = 0; i < usedCards.length; i++) {
+ if (usedCards[i] == playerCard1) {
+ isUsed = true;
+
+ }
+ while (isUsed == true) {
+ playerCard1 = randCards.nextInt(52);
+ isUsed = false;
+ }
+ }
+ usedCards[3] = playerCard1;
+ playerCard2 = randCards.nextInt(52);
+ for (int i = 0; i < usedCards.length; i++) {
+ if (usedCards[i] == playerCard2) {
+ isUsed = true;
+
+ }
+ while (isUsed == true) {
+ playerCard2 = randCards.nextInt(52);
+ isUsed = false;
+ }
+ }
+ usedCards[4] = playerCard2;
+ event.getChannel().sendMessage(
+ "Your cards are the " + cards[playerCard1] + " and the " + cards[playerCard2]);
+
+ botCard1 = randCards.nextInt(52);
+ for (int i = 0; i < usedCards.length; i++) {
+ if (usedCards[i] == botCard1) {
+ isUsed = true;
+
+ }
+ while (isUsed == true) {
+ botCard1 = randCards.nextInt(52);
+ isUsed = false;
+ }
+ }
+ usedCards[5] = botCard1;
+ botCard2 = randCards.nextInt(52);
+ for (int i = 0; i < usedCards.length; i++) {
+ if (usedCards[i] == botCard2) {
+ isUsed = true;
+
+ }
+ while (isUsed == true) {
+ botCard2 = randCards.nextInt(52);
+ isUsed = false;
+ }
+ }
+ usedCards[6] = botCard2;
+
+ // shows bot's cards
+ System.out.println("Temporary: Bot's cards are the " + cards[botCard1] + " and the " + cards[botCard2]);
+
+ if (cards[middleCard1].contains("ace")) {
+ botAndMiddleCards[0] = "ace";
+ } else if (cards[middleCard1].contains("2")) {
+ botAndMiddleCards[0] = "2";
+ } else if (cards[middleCard1].contains("3")) {
+ botAndMiddleCards[0] = "3";
+ } else if (cards[middleCard1].contains("4")) {
+ botAndMiddleCards[0] = "4";
+ } else if (cards[middleCard1].contains("5")) {
+ botAndMiddleCards[0] = "5";
+ } else if (cards[middleCard1].contains("6")) {
+ botAndMiddleCards[0] = "6";
+ } else if (cards[middleCard1].contains("7")) {
+ botAndMiddleCards[0] = "7";
+ } else if (cards[middleCard1].contains("8")) {
+ botAndMiddleCards[0] = "8";
+ } else if (cards[middleCard1].contains("9")) {
+ botAndMiddleCards[0] = "9";
+ } else if (cards[middleCard1].contains("10")) {
+ botAndMiddleCards[0] = "10";
+ } else if (cards[middleCard1].contains("jack")) {
+ botAndMiddleCards[0] = "jack";
+ } else if (cards[middleCard1].contains("queen")) {
+ botAndMiddleCards[0] = "queen";
+ } else if (cards[middleCard1].contains("king")) {
+ botAndMiddleCards[0] = "king";
+ }
+ if (cards[middleCard1].contains("spades")) {
+ botSpades+=1;
+ }
+ else if(cards[middleCard1].contains("hearts")) {
+ botHearts+=1;
+ }
+ else if(cards[middleCard1].contains("diamonds")) {
+ botDiamonds+=1;
+ }
+ else if(cards[middleCard1].contains("clubs")) {
+ botClubs+=1;
+ }
+
+ if (cards[middleCard2].contains("ace")) {
+ botAndMiddleCards[1] = "ace";
+ } else if (cards[middleCard2].contains("2")) {
+ botAndMiddleCards[1] = "2";
+ } else if (cards[middleCard2].contains("3")) {
+ botAndMiddleCards[1] = "3";
+ } else if (cards[middleCard2].contains("4")) {
+ botAndMiddleCards[1] = "4";
+ } else if (cards[middleCard2].contains("5")) {
+ botAndMiddleCards[1] = "5";
+ } else if (cards[middleCard2].contains("6")) {
+ botAndMiddleCards[1] = "6";
+ } else if (cards[middleCard2].contains("7")) {
+ botAndMiddleCards[1] = "7";
+ } else if (cards[middleCard2].contains("8")) {
+ botAndMiddleCards[1] = "8";
+ } else if (cards[middleCard2].contains("9")) {
+ botAndMiddleCards[1] = "9";
+ } else if (cards[middleCard2].contains("10")) {
+ botAndMiddleCards[1] = "10";
+ } else if (cards[middleCard2].contains("jack")) {
+ botAndMiddleCards[1] = "jack";
+ } else if (cards[middleCard2].contains("queen")) {
+ botAndMiddleCards[1] = "queen";
+ } else if (cards[middleCard2].contains("king")) {
+ botAndMiddleCards[1] = "king";
+ }
+ if (cards[middleCard2].contains("spades")) {
+ botSpades+=1;
+ }
+ else if(cards[middleCard2].contains("hearts")) {
+ botHearts+=1;
+ }
+ else if(cards[middleCard2].contains("diamonds")) {
+ botDiamonds+=1;
+ }
+ else if(cards[middleCard2].contains("clubs")) {
+ botClubs+=1;
+ }
+
+ if (cards[middleCard3].contains("ace")) {
+ botAndMiddleCards[2] = "ace";
+ } else if (cards[middleCard3].contains("2")) {
+ botAndMiddleCards[2] = "2";
+ } else if (cards[middleCard3].contains("3")) {
+ botAndMiddleCards[2] = "3";
+ } else if (cards[middleCard3].contains("4")) {
+ botAndMiddleCards[2] = "4";
+ } else if (cards[middleCard3].contains("5")) {
+ botAndMiddleCards[2] = "5";
+ } else if (cards[middleCard3].contains("6")) {
+ botAndMiddleCards[2] = "6";
+ } else if (cards[middleCard3].contains("7")) {
+ botAndMiddleCards[2] = "7";
+ } else if (cards[middleCard3].contains("8")) {
+ botAndMiddleCards[2] = "8";
+ } else if (cards[middleCard3].contains("9")) {
+ botAndMiddleCards[2] = "9";
+ } else if (cards[middleCard3].contains("10")) {
+ botAndMiddleCards[2] = "10";
+ } else if (cards[middleCard3].contains("jack")) {
+ botAndMiddleCards[2] = "jack";
+ } else if (cards[middleCard3].contains("queen")) {
+ botAndMiddleCards[2] = "queen";
+ } else if (cards[middleCard3].contains("king")) {
+ botAndMiddleCards[2] = "king";
+ }
+ if (cards[middleCard3].contains("spades")) {
+ botSpades+=1;
+ }
+ else if(cards[middleCard3].contains("hearts")) {
+ botHearts+=1;
+ }
+ else if(cards[middleCard3].contains("diamonds")) {
+ botDiamonds+=1;
+ }
+ else if(cards[middleCard3].contains("clubs")) {
+ botClubs+=1;
+ }
+
+ if (cards[botCard1].contains("ace")) {
+ botAndMiddleCards[3] = "ace";
+ } else if (cards[botCard1].contains("2")) {
+ botAndMiddleCards[3] = "2";
+ } else if (cards[botCard1].contains("3")) {
+ botAndMiddleCards[3] = "3";
+ } else if (cards[botCard1].contains("4")) {
+ botAndMiddleCards[3] = "4";
+ } else if (cards[botCard1].contains("5")) {
+ botAndMiddleCards[3] = "5";
+ } else if (cards[botCard1].contains("6")) {
+ botAndMiddleCards[3] = "6";
+ } else if (cards[botCard1].contains("7")) {
+ botAndMiddleCards[3] = "7";
+ } else if (cards[botCard1].contains("8")) {
+ botAndMiddleCards[3] = "8";
+ } else if (cards[botCard1].contains("9")) {
+ botAndMiddleCards[3] = "9";
+ } else if (cards[botCard1].contains("10")) {
+ botAndMiddleCards[3] = "10";
+ } else if (cards[botCard1].contains("jack")) {
+ botAndMiddleCards[3] = "jack";
+ } else if (cards[botCard1].contains("queen")) {
+ botAndMiddleCards[3] = "queen";
+ } else if (cards[botCard1].contains("king")) {
+ botAndMiddleCards[3] = "king";
+ }
+ if (cards[botCard1].contains("spades")) {
+ botSpades+=1;
+ }
+ else if(cards[botCard1].contains("hearts")) {
+ botHearts+=1;
+ }
+ else if(cards[botCard1].contains("diamonds")) {
+ botDiamonds+=1;
+ }
+ else if(cards[botCard1].contains("clubs")) {
+ botClubs+=1;
+ }
+
+ if (cards[botCard2].contains("ace")) {
+ botAndMiddleCards[4] = "ace";
+ } else if (cards[botCard2].contains("2")) {
+ botAndMiddleCards[4] = "2";
+ } else if (cards[botCard2].contains("3")) {
+ botAndMiddleCards[4] = "3";
+ } else if (cards[botCard2].contains("4")) {
+ botAndMiddleCards[4] = "4";
+ } else if (cards[botCard2].contains("5")) {
+ botAndMiddleCards[4] = "5";
+ } else if (cards[botCard2].contains("6")) {
+ botAndMiddleCards[4] = "6";
+ } else if (cards[botCard2].contains("7")) {
+ botAndMiddleCards[4] = "7";
+ } else if (cards[botCard2].contains("8")) {
+ botAndMiddleCards[4] = "8";
+ } else if (cards[botCard2].contains("9")) {
+ botAndMiddleCards[4] = "9";
+ } else if (cards[botCard2].contains("10")) {
+ botAndMiddleCards[4] = "10";
+ } else if (cards[botCard2].contains("jack")) {
+ botAndMiddleCards[4] = "jack";
+ } else if (cards[botCard2].contains("queen")) {
+ botAndMiddleCards[4] = "queen";
+ } else if (cards[botCard2].contains("king")) {
+ botAndMiddleCards[4] = "king";
+ }
+ if (cards[botCard2].contains("spades")) {
+ botSpades+=1;
+ }
+ else if(cards[botCard2].contains("hearts")) {
+ botHearts+=1;
+ }
+ else if(cards[botCard2].contains("diamonds")) {
+ botDiamonds+=1;
+ }
+ else if(cards[botCard2].contains("clubs")) {
+ botClubs+=1;
+ }
+ System.out.println("The bot has " + botAndMiddleCards[0]+", "+botAndMiddleCards[1]+", "
+ +botAndMiddleCards[2]+", "+botAndMiddleCards[3]+", and "+botAndMiddleCards[4]);
+ event.getChannel().sendMessage("Your hand is now the " +cards[playerCard1]+", "+cards[playerCard2]+", "+cards[middleCard1]+", "+cards[middleCard2]+", and "+cards[middleCard3]);
+ event.getChannel().sendMessage("How much would you like to bet");
+ }
+ }
+ else {
+ event.getChannel().sendMessage("You already have a game running.");
+ }
+ }
+ else if(content.contains("fold") && !gameOver) {
+ event.getChannel().sendMessage("You folded. Your balance is now "+balance);
+ gameOver=true;
+ }
+ else if (content.contains("bet") && flop && !gameOver) {
+ content = content.replace("bet", "");
+ try {
+ wager = Integer.parseInt(content);
+ } catch (Exception e) {
+ event.getChannel().sendMessage("Choose a number after the command to gamble");
+ return;
+ }
+ System.out.println(totalBet);
+ if (balance-wager < 0) {
+ event.getChannel().sendMessage("You don't have enough money to wager that much.");
+ gameOver=true;
+ } else if(wager<0) {
+ event.getChannel().sendMessage("Choose a positive number");
+ }
+ else {
+ flop = false;
+ balance -= wager;
+ totalBet += wager;
+ event.getChannel().sendMessage("Your balance is " + balance);
+ highestSuit=0;
+ highestSuit=botSpades;
+ if(botDiamonds>highestSuit) {
+ highestSuit=botDiamonds;
+ }
+ if(botHearts>highestSuit) {
+ highestSuit=botHearts;
+ }
+ if(botSpades>highestSuit) {
+ highestSuit=botSpades;
+ }
+
+ highestCallChance = botAlgorithm(botAndMiddleCards, highestSuit);
+
+
+ if (500 > highestCallChance) {
+ highestCallChance = 500;
+ }
+ botCallChance = highestCallChance;
+ Random callRandom = new Random();
+ int i = callRandom.nextInt(750);
+ if (botCallChance >= i) {
+ // bot calls
+ System.out.println(
+ "Bot calls. Bot chance of calling was " + botCallChance + ". The random was " + i);
+ middleCard4 = randCards.nextInt(52);
+ event.getChannel().sendMessage("Bot calls.");
+ for (int k = 0; k < usedCards.length; k++) {
+ if (usedCards[k] == middleCard4) {
+ isUsed = true;
+
+ }
+ while (isUsed == true) {
+ middleCard4 = randCards.nextInt(52);
+ isUsed = false;
+ }
+ }
+ usedCards[7] = middleCard4;
+ event.getChannel()
+ .sendMessage("The middle cards are now the " + cards[middleCard1] + ", the "
+ + cards[middleCard2] + ", the " + cards[middleCard3] + " and the "
+ + cards[middleCard4]);
+ event.getChannel().sendMessage("Your hand is now the " +cards[playerCard1]+", "+cards[playerCard2]+", "+cards[middleCard1]+", "+cards[middleCard2]+", "+cards[middleCard3]+", and "+cards[middleCard4]);
+
+ if (cards[middleCard4].contains("ace")) {
+ botAndMiddleCards[5] = "ace";
+ } else if (cards[middleCard4].contains("2")) {
+ botAndMiddleCards[5] = "2";
+ } else if (cards[middleCard4].contains("3")) {
+ botAndMiddleCards[5] = "3";
+ } else if (cards[middleCard4].contains("4")) {
+ botAndMiddleCards[5] = "4";
+ } else if (cards[middleCard4].contains("5")) {
+ botAndMiddleCards[5] = "5";
+ } else if (cards[middleCard4].contains("6")) {
+ botAndMiddleCards[5] = "6";
+ } else if (cards[middleCard4].contains("7")) {
+ botAndMiddleCards[5] = "7";
+ } else if (cards[middleCard4].contains("8")) {
+ botAndMiddleCards[5] = "8";
+ } else if (cards[middleCard4].contains("9")) {
+ botAndMiddleCards[5] = "9";
+ } else if (cards[middleCard4].contains("10")) {
+ botAndMiddleCards[5] = "10";
+ } else if (cards[middleCard4].contains("jack")) {
+ botAndMiddleCards[5] = "jack";
+ } else if (cards[middleCard4].contains("queen")) {
+ botAndMiddleCards[5] = "queen";
+ } else if (cards[middleCard4].contains("king")) {
+ botAndMiddleCards[5] = "king";
+ }
+ if (cards[middleCard4].contains("spades")) {
+ botSpades+=1;
+ }
+ else if(cards[middleCard4].contains("hearts")) {
+ botHearts+=1;
+ }
+ else if(cards[middleCard4].contains("diamonds")) {
+ botDiamonds+=1;
+ }
+ else if(cards[middleCard4].contains("clubs")) {
+ botClubs+=1;
+ }
+
+ System.out.println("The bot has "+botAndMiddleCards[0]+", "+botAndMiddleCards[1]
+ +", "+botAndMiddleCards[2]+", "+botAndMiddleCards[3]+", "+botAndMiddleCards[4]
+ +" and "+botAndMiddleCards[5]);
+ event.getChannel().sendMessage("How much would you like to bet");
+ } else {
+ balance += totalBet * 2;
+ event.getChannel().sendMessage(
+ "The bot folded, you win " + ((totalBet * 2)-wager) + ". Your balance is now " + balance);
+ gameOver = true;
+ rewardGiven=true;
+ }
+ }
+ } else if (content.contains("bet") && turn && !gameOver) {
+ content = content.replace("bet", "");
+ try {
+ wager = Integer.parseInt(content);
+ } catch (Exception e) {
+ event.getChannel().sendMessage("Choose a number after the command to gamble");
+ return;
+ }
+ System.out.println(totalBet);
+ if (balance-wager < 0) {
+ event.getChannel().sendMessage("You don't have enough money to wager that much.");
+ gameOver=true;
+ } else if(wager<0) {
+ event.getChannel().sendMessage("Choose a positive number.");
+ }
+ else {
+ turn = false;
+ balance -= wager;
+ totalBet += wager;
+ event.getChannel().sendMessage("Your balance is " + balance);
+ highestSuit=0;
+ highestSuit=botSpades;
+ if(botDiamonds>highestSuit) {
+ highestSuit=botDiamonds;
+ }
+ if(botHearts>highestSuit) {
+ highestSuit=botHearts;
+ }
+ if(botSpades>highestSuit) {
+ highestSuit=botSpades;
+ }
+
+ highestCallChance = botAlgorithm(botAndMiddleCards, highestSuit);
+
+ // add more ways of having good hand here, in method
+
+ if (500 > highestCallChance) {
+ highestCallChance = 500;
+ }
+ botCallChance = highestCallChance;
+ Random callRandom = new Random();
+ int i = callRandom.nextInt(750);
+ if (botCallChance >= i) {
+ // bot calls
+ System.out.println("Bot calls. Bot chance of calling was " + botCallChance + ". The random was " + i);
+ event.getChannel().sendMessage("Bot calls.");
+ middleCard5 = randCards.nextInt(52);
+ for (int k = 0; k < usedCards.length; k++) {
+ if (usedCards[k] == middleCard5) {
+ isUsed = true;
+
+ }
+ while (isUsed == true) {
+ middleCard5 = randCards.nextInt(52);
+ isUsed = false;
+ }
+ }
+ usedCards[8] = middleCard5;
+ event.getChannel()
+ .sendMessage("The middle cards are now the " + cards[middleCard1] + ", the "
+ + cards[middleCard2] + ", the " + cards[middleCard3] + " , the "
+ + cards[middleCard4] + " and the " + cards[middleCard5]);
+
+ if (cards[middleCard5].contains("ace")) {
+ botAndMiddleCards[6] = "ace";
+ } else if (cards[middleCard5].contains("2")) {
+ botAndMiddleCards[6] = "2";
+ } else if (cards[middleCard5].contains("3")) {
+ botAndMiddleCards[6] = "3";
+ } else if (cards[middleCard5].contains("4")) {
+ botAndMiddleCards[6] = "4";
+ } else if (cards[middleCard5].contains("5")) {
+ botAndMiddleCards[6] = "5";
+ } else if (cards[middleCard5].contains("6")) {
+ botAndMiddleCards[6] = "6";
+ } else if (cards[middleCard5].contains("7")) {
+ botAndMiddleCards[6] = "7";
+ } else if (cards[middleCard5].contains("8")) {
+ botAndMiddleCards[6] = "8";
+ } else if (cards[middleCard5].contains("9")) {
+ botAndMiddleCards[6] = "9";
+ } else if (cards[middleCard5].contains("10")) {
+ botAndMiddleCards[6] = "10";
+ } else if (cards[middleCard5].contains("jack")) {
+ botAndMiddleCards[6] = "jack";
+ } else if (cards[middleCard5].contains("queen")) {
+ botAndMiddleCards[6] = "queen";
+ } else if (cards[middleCard5].contains("king")) {
+ botAndMiddleCards[6] = "king";
+ }
+ if (cards[middleCard5].contains("spades")) {
+ botSpades+=1;
+ }
+ else if(cards[middleCard5].contains("hearts")) {
+ botHearts+=1;
+ }
+ else if(cards[middleCard5].contains("diamonds")) {
+ botDiamonds+=1;
+ }
+ else if(cards[middleCard5].contains("clubs")) {
+ botClubs+=1;
+ }
+
+ System.out.println("The bot has "+botAndMiddleCards[0]+", "+botAndMiddleCards[1]
+ +", "+botAndMiddleCards[2]+", "+botAndMiddleCards[3]+", "+botAndMiddleCards[4]
+ +", "+botAndMiddleCards[5]+" and "+botAndMiddleCards[6]);
+ event.getChannel().sendMessage("Your hand is now the " +cards[playerCard1]+", "+cards[playerCard2]+", "+cards[middleCard1]+", "+cards[middleCard2]+", "+cards[middleCard3]+", "+cards[middleCard4]+", and "+cards[middleCard5]);
+ event.getChannel().sendMessage("How much would you like to bet?");
+ } else {
+ balance += totalBet * 2;
+ event.getChannel().sendMessage(
+ "The bot folded, you win " + ((totalBet * 2)-wager) + ". Your balance is now " + balance);
+ gameOver = true;
+ rewardGiven=true;
+ }
+ }
+ }else if (content.contains("bet") && river && !gameOver) {
+ content = content.replace("bet", "");
+ try {
+ wager = Integer.parseInt(content);
+ } catch (Exception e) {
+ event.getChannel().sendMessage("Choose a number after the command to gamble");
+ return;
+ }
+ System.out.println(totalBet);
+ if (balance-wager < 0) {
+ event.getChannel().sendMessage("You don't have enough money to wager that much.");
+ gameOver=true;
+ } else if(wager<0) {
+ event.getChannel().sendMessage("Choose a positive number.");
+ }
+ else {
+ river = false;
+ balance -= wager;
+ totalBet += wager;
+ event.getChannel().sendMessage("Your balance is " + balance);
+ event.getChannel().sendMessage("Bot calls.");
+
+ if (cards[middleCard1].contains("ace")) {
+ playerAndMiddleCards[0] = "ace";
+ } else if (cards[middleCard1].contains("2")) {
+ playerAndMiddleCards[0] = "2";
+ } else if (cards[middleCard1].contains("3")) {
+ playerAndMiddleCards[0] = "3";
+ } else if (cards[middleCard1].contains("4")) {
+ playerAndMiddleCards[0] = "4";
+ } else if (cards[middleCard1].contains("5")) {
+ playerAndMiddleCards[0] = "5";
+ } else if (cards[middleCard1].contains("6")) {
+ playerAndMiddleCards[0] = "6";
+ } else if (cards[middleCard1].contains("7")) {
+ playerAndMiddleCards[0] = "7";
+ } else if (cards[middleCard1].contains("8")) {
+ playerAndMiddleCards[0] = "8";
+ } else if (cards[middleCard1].contains("9")) {
+ playerAndMiddleCards[0] = "9";
+ } else if (cards[middleCard1].contains("10")) {
+ playerAndMiddleCards[0] = "10";
+ } else if (cards[middleCard1].contains("jack")) {
+ playerAndMiddleCards[0] = "jack";
+ } else if (cards[middleCard1].contains("queen")) {
+ playerAndMiddleCards[0] = "queen";
+ } else if (cards[middleCard1].contains("king")) {
+ playerAndMiddleCards[0] = "king";
+ }
+ if (cards[middleCard1].contains("spades")) {
+ playerSpades+=1;
+ }
+ else if(cards[middleCard1].contains("hearts")) {
+ playerHearts+=1;
+ }
+ else if(cards[middleCard1].contains("diamonds")) {
+ playerDiamonds+=1;
+ }
+ else if(cards[middleCard1].contains("clubs")) {
+ playerClubs+=1;
+ }
+
+ if (cards[middleCard2].contains("ace")) {
+ playerAndMiddleCards[1] = "ace";
+ } else if (cards[middleCard2].contains("2")) {
+ playerAndMiddleCards[1] = "2";
+ } else if (cards[middleCard2].contains("3")) {
+ playerAndMiddleCards[1] = "3";
+ } else if (cards[middleCard2].contains("4")) {
+ playerAndMiddleCards[1] = "4";
+ } else if (cards[middleCard2].contains("5")) {
+ playerAndMiddleCards[1] = "5";
+ } else if (cards[middleCard2].contains("6")) {
+ playerAndMiddleCards[1] = "6";
+ } else if (cards[middleCard2].contains("7")) {
+ playerAndMiddleCards[1] = "7";
+ } else if (cards[middleCard2].contains("8")) {
+ playerAndMiddleCards[1] = "8";
+ } else if (cards[middleCard2].contains("9")) {
+ playerAndMiddleCards[1] = "9";
+ } else if (cards[middleCard2].contains("10")) {
+ playerAndMiddleCards[1] = "10";
+ } else if (cards[middleCard2].contains("jack")) {
+ playerAndMiddleCards[1] = "jack";
+ } else if (cards[middleCard2].contains("queen")) {
+ playerAndMiddleCards[1] = "queen";
+ } else if (cards[middleCard2].contains("king")) {
+ playerAndMiddleCards[1] = "king";
+ }
+ if (cards[middleCard2].contains("spades")) {
+ playerSpades+=1;
+ }
+ else if(cards[middleCard2].contains("hearts")) {
+ playerHearts+=1;
+ }
+ else if(cards[middleCard2].contains("diamonds")) {
+ playerDiamonds+=1;
+ }
+ else if(cards[middleCard2].contains("clubs")) {
+ playerClubs+=1;
+ }
+ if (cards[middleCard3].contains("ace")) {
+ playerAndMiddleCards[2] = "ace";
+ } else if (cards[middleCard3].contains("2")) {
+ playerAndMiddleCards[2] = "2";
+ } else if (cards[middleCard3].contains("3")) {
+ playerAndMiddleCards[2] = "3";
+ } else if (cards[middleCard3].contains("4")) {
+ playerAndMiddleCards[2] = "4";
+ } else if (cards[middleCard3].contains("5")) {
+ playerAndMiddleCards[2] = "5";
+ } else if (cards[middleCard3].contains("6")) {
+ playerAndMiddleCards[2] = "6";
+ } else if (cards[middleCard3].contains("7")) {
+ playerAndMiddleCards[2] = "7";
+ } else if (cards[middleCard3].contains("8")) {
+ playerAndMiddleCards[2] = "8";
+ } else if (cards[middleCard3].contains("9")) {
+ playerAndMiddleCards[2] = "9";
+ } else if (cards[middleCard3].contains("10")) {
+ playerAndMiddleCards[2] = "10";
+ } else if (cards[middleCard3].contains("jack")) {
+ playerAndMiddleCards[2] = "jack";
+ } else if (cards[middleCard3].contains("queen")) {
+ playerAndMiddleCards[2] = "queen";
+ } else if (cards[middleCard3].contains("king")) {
+ playerAndMiddleCards[2] = "king";
+ }
+ if (cards[middleCard3].contains("spades")) {
+ playerSpades+=1;
+ }
+ else if(cards[middleCard3].contains("hearts")) {
+ playerHearts+=1;
+ }
+ else if(cards[middleCard3].contains("diamonds")) {
+ playerDiamonds+=1;
+ }
+ else if(cards[middleCard3].contains("clubs")) {
+ playerClubs+=1;
+ }
+ if (cards[playerCard1].contains("ace")) {
+ playerAndMiddleCards[3] = "ace";
+ } else if (cards[playerCard1].contains("2")) {
+ playerAndMiddleCards[3] = "2";
+ } else if (cards[playerCard1].contains("3")) {
+ playerAndMiddleCards[3] = "3";
+ } else if (cards[playerCard1].contains("4")) {
+ playerAndMiddleCards[3] = "4";
+ } else if (cards[playerCard1].contains("5")) {
+ playerAndMiddleCards[3] = "5";
+ } else if (cards[playerCard1].contains("6")) {
+ playerAndMiddleCards[3] = "6";
+ } else if (cards[playerCard1].contains("7")) {
+ playerAndMiddleCards[3] = "7";
+ } else if (cards[playerCard1].contains("8")) {
+ playerAndMiddleCards[3] = "8";
+ } else if (cards[playerCard1].contains("9")) {
+ playerAndMiddleCards[3] = "9";
+ } else if (cards[playerCard1].contains("10")) {
+ playerAndMiddleCards[3] = "10";
+ } else if (cards[playerCard1].contains("jack")) {
+ playerAndMiddleCards[3] = "jack";
+ } else if (cards[playerCard1].contains("queen")) {
+ playerAndMiddleCards[3] = "queen";
+ } else if (cards[playerCard1].contains("king")) {
+ playerAndMiddleCards[3] = "king";
+ }
+ if (cards[playerCard1].contains("spades")) {
+ playerSpades+=1;
+ }
+ else if(cards[playerCard1].contains("hearts")) {
+ playerHearts+=1;
+ }
+ else if(cards[playerCard1].contains("diamonds")) {
+ playerDiamonds+=1;
+ }
+ else if(cards[playerCard1].contains("clubs")) {
+ playerClubs+=1;
+ }
+ if (cards[playerCard2].contains("ace")) {
+ playerAndMiddleCards[4] = "ace";
+ } else if (cards[playerCard2].contains("2")) {
+ playerAndMiddleCards[4] = "2";
+ } else if (cards[playerCard2].contains("3")) {
+ playerAndMiddleCards[4] = "3";
+ } else if (cards[playerCard2].contains("4")) {
+ playerAndMiddleCards[4] = "4";
+ } else if (cards[playerCard2].contains("5")) {
+ playerAndMiddleCards[4] = "5";
+ } else if (cards[playerCard2].contains("6")) {
+ playerAndMiddleCards[4] = "6";
+ } else if (cards[playerCard2].contains("7")) {
+ playerAndMiddleCards[4] = "7";
+ } else if (cards[playerCard2].contains("8")) {
+ playerAndMiddleCards[4] = "8";
+ } else if (cards[playerCard2].contains("9")) {
+ playerAndMiddleCards[4] = "9";
+ } else if (cards[playerCard2].contains("10")) {
+ playerAndMiddleCards[4] = "10";
+ } else if (cards[playerCard2].contains("jack")) {
+ playerAndMiddleCards[4] = "jack";
+ } else if (cards[playerCard2].contains("queen")) {
+ playerAndMiddleCards[4] = "queen";
+ } else if (cards[playerCard2].contains("king")) {
+ playerAndMiddleCards[4] = "king";
+ }
+ if (cards[playerCard2].contains("spades")) {
+ playerSpades+=1;
+ }
+ else if(cards[playerCard2].contains("hearts")) {
+ playerHearts+=1;
+ }
+ else if(cards[playerCard2].contains("diamonds")) {
+ playerDiamonds+=1;
+ }
+ else if(cards[playerCard2].contains("clubs")) {
+ playerClubs+=1;
+ }
+ if (cards[middleCard4].contains("ace")) {
+ playerAndMiddleCards[5] = "ace";
+ } else if (cards[middleCard4].contains("2")) {
+ playerAndMiddleCards[5] = "2";
+ } else if (cards[middleCard4].contains("3")) {
+ playerAndMiddleCards[5] = "3";
+ } else if (cards[middleCard4].contains("4")) {
+ playerAndMiddleCards[5] = "4";
+ } else if (cards[middleCard4].contains("5")) {
+ playerAndMiddleCards[5] = "5";
+ } else if (cards[middleCard4].contains("6")) {
+ playerAndMiddleCards[5] = "6";
+ } else if (cards[middleCard4].contains("7")) {
+ playerAndMiddleCards[5] = "7";
+ } else if (cards[middleCard4].contains("8")) {
+ playerAndMiddleCards[5] = "8";
+ } else if (cards[middleCard4].contains("9")) {
+ playerAndMiddleCards[5] = "9";
+ } else if (cards[middleCard4].contains("10")) {
+ playerAndMiddleCards[5] = "10";
+ } else if (cards[middleCard4].contains("jack")) {
+ playerAndMiddleCards[5] = "jack";
+ } else if (cards[middleCard4].contains("queen")) {
+ playerAndMiddleCards[5] = "queen";
+ } else if (cards[middleCard4].contains("king")) {
+ playerAndMiddleCards[5] = "king";
+ }
+ if (cards[middleCard4].contains("spades")) {
+ playerSpades+=1;
+ }
+ else if(cards[middleCard4].contains("hearts")) {
+ playerHearts+=1;
+ }
+ else if(cards[middleCard4].contains("diamonds")) {
+ playerDiamonds+=1;
+ }
+ else if(cards[middleCard4].contains("clubs")) {
+ playerClubs+=1;
+ }
+ if (cards[middleCard5].contains("ace")) {
+ playerAndMiddleCards[6] = "ace";
+ } else if (cards[middleCard5].contains("2")) {
+ playerAndMiddleCards[6] = "2";
+ } else if (cards[middleCard5].contains("3")) {
+ playerAndMiddleCards[6] = "3";
+ } else if (cards[middleCard5].contains("4")) {
+ playerAndMiddleCards[6] = "4";
+ } else if (cards[middleCard5].contains("5")) {
+ playerAndMiddleCards[6] = "5";
+ } else if (cards[middleCard5].contains("6")) {
+ playerAndMiddleCards[6] = "6";
+ } else if (cards[middleCard5].contains("7")) {
+ playerAndMiddleCards[6] = "7";
+ } else if (cards[middleCard5].contains("8")) {
+ playerAndMiddleCards[6] = "8";
+ } else if (cards[middleCard5].contains("9")) {
+ playerAndMiddleCards[6] = "9";
+ } else if (cards[middleCard5].contains("10")) {
+ playerAndMiddleCards[6] = "10";
+ } else if (cards[middleCard5].contains("jack")) {
+ playerAndMiddleCards[6] = "jack";
+ } else if (cards[middleCard5].contains("queen")) {
+ playerAndMiddleCards[6] = "queen";
+ } else if (cards[middleCard5].contains("king")) {
+ playerAndMiddleCards[6] = "king";
+ }
+ if (cards[middleCard5].contains("spades")) {
+ playerSpades+=1;
+ }
+ else if(cards[middleCard5].contains("hearts")) {
+ playerHearts+=1;
+ }
+ else if(cards[middleCard5].contains("diamonds")) {
+ playerDiamonds+=1;
+ }
+ else if(cards[middleCard5].contains("clubs")) {
+ playerClubs+=1;
+ }
+
+ //test certain hands
+ /*botAndMiddleCards[0]="7";
+ botAndMiddleCards[1]="8";
+ botAndMiddleCards[2]="9";
+ botAndMiddleCards[3]="jack";
+ botAndMiddleCards[4]="queen";
+ botAndMiddleCards[5]="king";
+ botAndMiddleCards[6]="ace";
+
+ playerAndMiddleCards[0]="7";
+ playerAndMiddleCards[1]="8";
+ playerAndMiddleCards[2]="10";
+ playerAndMiddleCards[3]="jack";
+ playerAndMiddleCards[4]="queen";
+ playerAndMiddleCards[5]="king";
+ playerAndMiddleCards[6]="ace";
+ */
+
+
+ if(!rewardGiven) {
+ event.getChannel().sendMessage("Your hand is now the " +cards[playerCard1]+", "+cards[playerCard2]+", "+cards[middleCard1]+", "+cards[middleCard2]+", "+cards[middleCard3]+", "+cards[middleCard4]+", and "+cards[middleCard5]);
+ event.getChannel().sendMessage("The bot's final hand has the "+cards[botCard1]+", "+cards[botCard2]+", "+cards[middleCard1]+", "+cards[middleCard2]+", "+cards[middleCard3]+", "+cards[middleCard4]+", and "+cards[middleCard5]);
+ playerWon=playerWins(playerAndMiddleCards, botAndMiddleCards);
+ if(playerWon) {
+ balance += totalBet * 2;
+ event.getChannel().sendMessage(
+ "You have the better hand. You won " + ((totalBet * 2)) + ". Your balance is now " + balance);
+ gameOver = true;
+ }
+ else if(!playerWon) {
+ if(tie) {
+ balance+=totalBet;
+ event.getChannel().sendMessage("It is a tie. You get back "+totalBet+". Your balance is now "+balance);
+ }
+ else {
+ event.getChannel().sendMessage("The bot has the better hand. You win nothing. Your balance is now "+balance);
+ }
+ }
+ }
+ else {
+ System.out.println("error");
+ }
+ }
+ }
+ else if(event.getMessageContent().contains("work")) {
+ String work = event.getMessageContent().replaceAll(" ", "").replace("!gamble", "").replace("work", "");
+ try {
+ payment=Integer.parseInt(work);
+ }
+ catch (Exception e){
+ event.getChannel().sendMessage("Choose a number after the command to gamble");
+ return;
+ }
+ balance+=payment;
+ event.getChannel().sendMessage("Your balance is now "+balance);
+ }
+ }
+ }
+
+ public int botAlgorithm(String[] botAndMiddleCards, int suits) {
+ highestCallChance = 0;
+ numberSameCards = 0;
+ numberPairs=0;
+ highestPairValue=0;
+ lowestPairValue=0;
+ highestTripleValue=0;
+ highCard=0;
+ secondHighCard=0;
+ thirdHighCard=0;
+ fourthHighCard=0;
+ fifthHighCard=0;
+ highStraightCard=0;
+ straight=false;
+ ace=false;
+ two=false;
+ three=false;
+ four=false;
+ five=false;
+ six=false;
+ seven=false;
+ eight=false;
+ nine=false;
+ ten=false;
+ jack=false;
+ queen=false;
+ king=false;
+
+ for (int j = 0; j < botAndMiddleCards.length; j++) {
+ if(botAndMiddleCards[j]=="ace") {
+ ace=true;
+ }
+ else if(botAndMiddleCards[j]=="2") {
+ two=true;
+ }
+ else if(botAndMiddleCards[j]=="3") {
+ three=true;
+ }
+ else if(botAndMiddleCards[j]=="4") {
+ four=true;
+ }
+ else if(botAndMiddleCards[j]=="5") {
+ five=true;
+ }
+ else if(botAndMiddleCards[j]=="6") {
+ six=true;
+ }
+ else if(botAndMiddleCards[j]=="7") {
+ seven=true;
+ }
+ else if(botAndMiddleCards[j]=="8") {
+ eight=true;
+ }
+ else if(botAndMiddleCards[j]=="9") {
+ nine=true;
+ }
+ else if(botAndMiddleCards[j]=="10") {
+ ten=true;
+ }
+ else if(botAndMiddleCards[j]=="jack") {
+ jack=true;
+ }
+ else if(botAndMiddleCards[j]=="queen") {
+ queen=true;
+ }
+ else if(botAndMiddleCards[j]=="king") {
+ king=true;
+ }
+ if(ace) {
+ if(two) {
+ if(three) {
+ if(four) {
+ if(five) {
+ if(740>highestCallChance) {
+ highestCallChance=740;
+ straight=true;
+ highStraightCard=1;
+ }
+ }
+ }
+ }
+ }
+ }
+ else if(two) {
+ if(three) {
+ if(four) {
+ if(five) {
+ if(six) {
+ if(741>highestCallChance) {
+ highestCallChance=741;
+ straight=true;
+ highStraightCard=2;
+ }
+ }
+ }
+ }
+ }
+ }
+ else if(three) {
+ if(four) {
+ if(five) {
+ if(six) {
+ if(seven) {
+ if(742>highestCallChance) {
+ highestCallChance=742;
+ straight=true;
+ highStraightCard=3;
+ }
+ }
+ }
+ }
+ }
+ }
+ else if(four) {
+ if(five) {
+ if(six) {
+ if(seven) {
+ if(eight) {
+ if(743>highestCallChance) {
+ highestCallChance=743;
+ straight=true;
+ highStraightCard=4;
+ }
+ }
+ }
+ }
+ }
+ }
+ else if(five) {
+ if(six) {
+ if(seven) {
+ if(eight) {
+ if(nine) {
+ if(744>highestCallChance) {
+ highestCallChance=744;
+ straight=true;
+ highStraightCard=5;
+ }
+ }
+ }
+ }
+ }
+ }
+ else if(six) {
+ if(seven) {
+ if(eight) {
+ if(nine) {
+ if(ten) {
+ if(745>highestCallChance) {
+ highestCallChance=745;
+ straight=true;
+ highStraightCard=6;
+ }
+ }
+ }
+ }
+ }
+ }
+ else if(seven) {
+ if(eight) {
+ if(nine) {
+ if(ten) {
+ if(jack) {
+ if(746>highestCallChance) {
+ highestCallChance=746;
+ straight=true;
+ highStraightCard=7;
+ }
+ }
+ }
+ }
+ }
+ }
+ else if(eight) {
+ if(nine) {
+ if(ten) {
+ if(jack) {
+ if(queen) {
+ if(747>highestCallChance) {
+ highestCallChance=747;
+ straight=true;
+ highStraightCard=8;
+ }
+ }
+ }
+ }
+ }
+ }
+ else if(nine) {
+ if(ten) {
+ if(jack) {
+ if(queen) {
+ if(king) {
+ if(748>highestCallChance) {
+ highestCallChance=748;
+ straight=true;
+ highStraightCard=9;
+ }
+ }
+ }
+ }
+ }
+ }
+ else if(ten) {
+ if(jack) {
+ if(queen) {
+ if(king) {
+ if(ace) {
+ if(749>highestCallChance) {
+ highestCallChance=749;
+ straight=true;
+ highStraightCard=10;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+
+
+
+
+
+ for (int j = 0; j < botAndMiddleCards.length; j++) {
+ if(secondHighCard==12) {
+ System.out.println("");
+ }
+ if (botAndMiddleCards[j].equals("ace")) {
+ numberSameCards += 1;
+ if(13>highCard) {
+ highCard=13;
+ }
+ else if(13>secondHighCard) {
+ secondHighCard=13;
+ }
+ else if(13>thirdHighCard) {
+ thirdHighCard=13;
+ }
+ else if(13>fourthHighCard) {
+ fourthHighCard=13;
+ }
+ else if (13>fifthHighCard) {
+ fifthHighCard=13;
+ }
+ if(513>highestCallChance) {
+ highestCallChance=513;
+ }
+ }
+ }
+ if (numberSameCards == 2) {
+ if (712 > highestCallChance) {
+ highestCallChance = 712;
+ numberPairs+=1;
+ if(13>highestPairValue) {
+ highestPairValue=13;
+ }
+ else {
+ lowestPairValue=13;
+ }
+ }
+ } else if (numberSameCards == 3) {
+ highestCallChance = 739;
+ triple=true;
+ highestTripleValue=13;
+ }
+ else if(numberSameCards == 4) {
+ highestCallChance=790;
+ }
+
+ numberSameCards = 0;
+ for (int j = 0; j < botAndMiddleCards.length; j++) {
+ if (botAndMiddleCards[j].equals("king")) {
+ numberSameCards += 1;
+ if(12>highCard) {
+ highCard=12;
+ }
+ else if(12>secondHighCard) {
+ secondHighCard=12;
+ }
+ else if(12>thirdHighCard) {
+ thirdHighCard=12;
+ }
+ else if(12>fourthHighCard) {
+ fourthHighCard=12;
+ }
+ else if (12>fifthHighCard) {
+ fifthHighCard=12;
+ }
+ if(512>highestCallChance) {
+ highestCallChance=512;
+ }
+ }
+ }
+ if (numberSameCards == 2) {
+ if (711 > highestCallChance) {
+ highestCallChance = 711;
+ numberPairs+=1;
+ if(12>highestPairValue) {
+ highestPairValue=12;
+ }
+ else {
+ lowestPairValue=12;
+ }
+ }
+ } else if (numberSameCards == 3) {
+ highestCallChance = 738;
+ triple=true;
+ highestTripleValue=12;
+ }
+ else if(numberSameCards == 4) {
+ highestCallChance=789;
+ }
+
+ numberSameCards = 0;
+ for (int j = 0; j < botAndMiddleCards.length; j++) {
+ if (botAndMiddleCards[j].equals("queen")) {
+ numberSameCards += 1;
+ if(11>highCard) {
+ highCard=11;
+ }
+ else if(11>secondHighCard) {
+ secondHighCard=11;
+ }
+ else if(11>thirdHighCard) {
+ thirdHighCard=11;
+ }
+ else if(11>fourthHighCard) {
+ fourthHighCard=11;
+ }
+ else if (11>fifthHighCard) {
+ fifthHighCard=11;
+ }
+ if(511>highestCallChance) {
+ highestCallChance=511;
+ }
+ }
+ }
+ if (numberSameCards == 2) {
+ if (710 > highestCallChance) {
+ highestCallChance = 710;
+ numberPairs+=1;
+ if(11>highestPairValue) {
+ highestPairValue=11;
+ }
+ else {
+ lowestPairValue=11;
+ }
+ }
+ } else if (numberSameCards == 3) {
+ highestCallChance = 737;
+ triple=true;
+ highestTripleValue=11;
+ }
+ else if(numberSameCards == 4) {
+ highestCallChance=788;
+ }
+
+ numberSameCards = 0;
+ for (int j = 0; j < botAndMiddleCards.length; j++) {
+ if (botAndMiddleCards[j].equals("jack")) {
+ numberSameCards += 1;
+ if(10>highCard) {
+ highCard=10;
+ }
+ else if(10>secondHighCard) {
+ secondHighCard=10;
+ }
+ else if(10>thirdHighCard) {
+ thirdHighCard=10;
+ }
+ else if(10>fourthHighCard) {
+ fourthHighCard=10;
+ }
+ else if (10>fifthHighCard) {
+ fifthHighCard=10;
+ }
+ if(510>highestCallChance) {
+ highestCallChance=510;
+ }
+ }
+ }
+ if (numberSameCards == 2) {
+ if (709 > highestCallChance) {
+ highestCallChance = 709;
+ numberPairs+=1;
+ if(10>highestPairValue) {
+ highestPairValue=10;
+ }
+ else {
+ lowestPairValue=10;
+ }
+ }
+ } else if (numberSameCards == 3) {
+ highestCallChance = 736;
+ triple=true;
+ highestTripleValue=10;
+ }
+ else if(numberSameCards == 4) {
+ highestCallChance=787;
+ }
+
+ numberSameCards = 0;
+ for (int j = 0; j < botAndMiddleCards.length; j++) {
+ if (botAndMiddleCards[j].equals("10")) {
+ numberSameCards += 1;
+ if(9>highCard) {
+ highCard=9;
+ }
+ else if(9>secondHighCard) {
+ secondHighCard=9;
+ }
+ else if(9>thirdHighCard) {
+ thirdHighCard=9;
+ }
+ else if(9>fourthHighCard) {
+ fourthHighCard=9;
+ }
+ else if (9>fifthHighCard) {
+ fifthHighCard=9;
+ }
+ if(509>highestCallChance) {
+ highestCallChance=509;
+ }
+ }
+ }
+ if (numberSameCards == 2) {
+ if (708 > highestCallChance) {
+ highestCallChance = 708;
+ numberPairs+=1;
+ if(9>highestPairValue) {
+ highestPairValue=9;
+ }
+ else {
+ lowestPairValue=9;
+ }
+ }
+ } else if (numberSameCards == 3) {
+ highestCallChance = 735;
+ triple=true;
+ highestTripleValue=9;
+ }
+ else if(numberSameCards == 4) {
+ highestCallChance=786;
+ }
+
+ numberSameCards = 0;
+ for (int j = 0; j < botAndMiddleCards.length; j++) {
+ if (botAndMiddleCards[j].equals("9")) {
+ numberSameCards += 1;
+ if(8>highCard) {
+ highCard=8;
+ }
+ else if(8>secondHighCard) {
+ secondHighCard=8;
+ }
+ else if(8>thirdHighCard) {
+ thirdHighCard=8;
+ }
+ else if(8>fourthHighCard) {
+ fourthHighCard=8;
+ }
+ else if (8>fifthHighCard) {
+ fifthHighCard=8;
+ }
+ if(508>highestCallChance) {
+ highestCallChance=508;
+ }
+ }
+ }
+ if (numberSameCards == 2) {
+ if (707 > highestCallChance) {
+ highestCallChance = 707;
+ numberPairs+=1;
+ if(8>highestPairValue) {
+ highestPairValue=8;
+ }
+ else {
+ lowestPairValue=8;
+ }
+ }
+ } else if (numberSameCards == 3) {
+ highestCallChance = 734;
+ triple=true;
+ highestTripleValue=8;
+ }
+ else if(numberSameCards == 4) {
+ highestCallChance=785;
+ }
+
+ numberSameCards = 0;
+ for (int j = 0; j < botAndMiddleCards.length; j++) {
+ if (botAndMiddleCards[j].equals("8")) {
+ numberSameCards += 1;
+ if(7>highCard) {
+ highCard=7;
+ }
+ else if(7>secondHighCard) {
+ secondHighCard=7;
+ }
+ else if(7>thirdHighCard) {
+ thirdHighCard=7;
+ }
+ else if(7>fourthHighCard) {
+ fourthHighCard=7;
+ }
+ else if (7>fifthHighCard) {
+ fifthHighCard=7;
+ }
+ if(507>highestCallChance) {
+ highestCallChance=507;
+ }
+ }
+ }
+ if (numberSameCards == 2) {
+ if (706 > highestCallChance) {
+ highestCallChance = 706;
+ numberPairs+=1;
+ if(7>highestPairValue) {
+ highestPairValue=7;
+ }
+ else {
+ lowestPairValue=7;
+ }
+ }
+ } else if (numberSameCards == 3) {
+ highestCallChance = 733;
+ triple=true;
+ highestTripleValue=7;
+ }
+ else if(numberSameCards == 4) {
+ highestCallChance=784;
+ }
+
+ numberSameCards = 0;
+ for (int j = 0; j < botAndMiddleCards.length; j++) {
+ if (botAndMiddleCards[j].equals("7")) {
+ numberSameCards += 1;
+ if(6>highCard) {
+ highCard=6;
+ }
+ else if(6>secondHighCard) {
+ secondHighCard=6;
+ }
+ else if(6>thirdHighCard) {
+ thirdHighCard=6;
+ }
+ else if(6>fourthHighCard) {
+ fourthHighCard=6;
+ }
+ else if (6>fifthHighCard) {
+ fifthHighCard=6;
+ }
+ if(506>highestCallChance) {
+ highestCallChance=506;
+ }
+ }
+ }
+ if (numberSameCards == 2) {
+ if (705 > highestCallChance) {
+ highestCallChance = 705;
+ numberPairs+=1;
+ if(6>highestPairValue) {
+ highestPairValue=6;
+ }else {
+ lowestPairValue=6;
+ }
+ }
+ } else if (numberSameCards == 3) {
+ highestCallChance = 732;
+ triple=true;
+ highestTripleValue=6;
+ }
+ else if(numberSameCards == 4) {
+ highestCallChance=783;
+ }
+
+ numberSameCards = 0;
+ for (int j = 0; j < botAndMiddleCards.length; j++) {
+ if (botAndMiddleCards[j].equals("6")) {
+ numberSameCards += 1;
+ if(5>highCard) {
+ highCard=5;
+ }
+ else if(5>secondHighCard) {
+ secondHighCard=5;
+ }
+ else if(5>thirdHighCard) {
+ thirdHighCard=5;
+ }
+ else if(5>fourthHighCard) {
+ fourthHighCard=5;
+ }
+ else if (5>fifthHighCard) {
+ fifthHighCard=5;
+ }
+ if(505>highestCallChance) {
+ highestCallChance=505;
+ }
+ }
+ }
+ if (numberSameCards == 2) {
+ if (704 > highestCallChance) {
+ highestCallChance = 704;
+ numberPairs+=1;
+ if(5>highestPairValue) {
+ highestPairValue=5;
+ }
+ else {
+ lowestPairValue=5;
+ }
+ }
+ } else if (numberSameCards == 3) {
+ highestCallChance = 731;
+ triple=true;
+ highestTripleValue=5;
+ }
+ else if(numberSameCards == 4) {
+ highestCallChance=782;
+ }
+
+ numberSameCards = 0;
+ for (int j = 0; j < botAndMiddleCards.length; j++) {
+ if (botAndMiddleCards[j].equals("5")) {
+ numberSameCards += 1;
+ if(4>highCard) {
+ highCard=4;
+ }
+ else if(4>secondHighCard) {
+ secondHighCard=4;
+ }
+ else if(4>thirdHighCard) {
+ thirdHighCard=4;
+ }
+ else if(4>fourthHighCard) {
+ fourthHighCard=4;
+ }
+ else if (4>fifthHighCard) {
+ fifthHighCard=4;
+ }
+ if(504>highestCallChance) {
+ highestCallChance=504;
+ }
+ }
+ }
+ if (numberSameCards == 2) {
+ if (703 > highestCallChance) {
+ highestCallChance = 703;
+ numberPairs+=1;
+ if(4>highestPairValue) {
+ highestPairValue=4;
+ }
+ else {
+ lowestPairValue=4;
+ }
+ }
+ } else if (numberSameCards == 3) {
+ highestCallChance = 730;
+ triple=true;
+ highestTripleValue=4;
+ }
+ else if(numberSameCards == 4) {
+ highestCallChance=781;
+ }
+
+ numberSameCards = 0;
+ for (int j = 0; j < botAndMiddleCards.length; j++) {
+ if (botAndMiddleCards[j].equals("4")) {
+ numberSameCards += 1;
+ if(3>highCard) {
+ highCard=3;
+ }
+ else if(3>secondHighCard) {
+ secondHighCard=3;
+ }
+ else if(3>thirdHighCard) {
+ thirdHighCard=3;
+ }
+ else if(3>fourthHighCard) {
+ fourthHighCard=3;
+ }
+ else if (3>fifthHighCard) {
+ fifthHighCard=3;
+ }
+ if(503>highestCallChance) {
+ highestCallChance=503;
+ }
+ }
+ }
+ if (numberSameCards == 2) {
+ if (702 > highestCallChance) {
+ highestCallChance = 702;
+ numberPairs+=1;
+ if(3>highestPairValue) {
+ highestPairValue=3;
+ }
+ else {
+ lowestPairValue=3;
+ }
+ }
+ } else if (numberSameCards == 3) {
+ highestCallChance = 729;
+ triple=true;
+ highestTripleValue=3;
+ }
+ else if(numberSameCards == 4) {
+ highestCallChance=780;
+ }
+
+ numberSameCards = 0;
+ for (int j = 0; j < botAndMiddleCards.length; j++) {
+ if (botAndMiddleCards[j].equals("3")) {
+ numberSameCards += 1;
+ if(2>highCard) {
+ highCard=2;
+ }
+ else if(2>secondHighCard) {
+ secondHighCard=2;
+ }
+ else if(2>thirdHighCard) {
+ thirdHighCard=2;
+ }
+ else if(2>fourthHighCard) {
+ fourthHighCard=2;
+ }
+ else if (2>fifthHighCard) {
+ fifthHighCard=2;
+ }
+ if(502>highestCallChance) {
+ highestCallChance=502;
+ }
+ }
+ }
+ if (numberSameCards == 2) {
+ if (701 > highestCallChance) {
+ highestCallChance = 701;
+ numberPairs+=1;
+ if(2>highestPairValue) {
+ highestPairValue=2;
+ }
+ else {
+ lowestPairValue=2;
+ }
+ }
+ } else if (numberSameCards == 3) {
+ highestCallChance = 728;
+ triple=true;
+ highestTripleValue=2;
+ }
+ else if(numberSameCards == 4) {
+ highestCallChance=779;
+ }
+
+ numberSameCards = 0;
+ for (int j = 0; j < botAndMiddleCards.length; j++) {
+ if (botAndMiddleCards[j].equals("2")) {
+ numberSameCards += 1;
+ if(1>highCard) {
+ highCard=1;
+ }
+ else if(1>secondHighCard) {
+ secondHighCard=1;
+ }
+ else if(1>thirdHighCard) {
+ thirdHighCard=1;
+ }
+ else if(1>fourthHighCard) {
+ fourthHighCard=1;
+ }
+ else if (1>fifthHighCard) {
+ fifthHighCard=1;
+ }
+ if(501>highestCallChance) {
+ highestCallChance=501;
+ }
+ }
+ }
+ if (numberSameCards == 2) {
+ if (700 > highestCallChance) {
+ highestCallChance = 700;
+ numberPairs+=1;
+ if(1>highestPairValue) {
+ highestPairValue=1;
+ }
+ else {
+ lowestPairValue=1;
+ }
+ }
+ } else if (numberSameCards == 3) {
+ highestCallChance = 727;
+ triple=true;
+ highestTripleValue=1;
+ }
+ else if(numberSameCards == 4) {
+ highestCallChance=778;
+ }
+
+ if(numberPairs==2) {
+ highestCallChance=713+highestPairValue;
+ }
+ if(suits>=5) {
+ if(straight && 791+highStraightCard>highestCallChance) {
+ highestCallChance=791+highStraightCard;
+ }
+ else if((750+highCard)>highestCallChance) {
+ highestCallChance=750+highCard;
+ }
+ }
+ if(numberPairs==1 && triple) {
+ if(highestCallChance<764+highestTripleValue) {
+ highestCallChance=764+highestTripleValue;
+ }
+ }
+
+ return highestCallChance;
+ }
+ public boolean playerWins(String [] playerAndMiddleCards, String [] botAndMiddleCards) {
+ highestSuit=0;
+ playerPairValue=0;
+ botPairValue=0;
+ playerLowPair=0;
+ botLowPair=0;
+ highestSuit=playerSpades;
+ if(playerDiamonds>highestSuit) {
+ highestSuit=playerDiamonds;
+ }
+ if(playerHearts>highestSuit) {
+ highestSuit=playerHearts;
+ }
+ if(playerSpades>highestSuit) {
+ highestSuit=playerSpades;
+ }
+ if(playerClubs>highestSuit) {
+ highestSuit=playerClubs;
+ }
+
+ playerScore=botAlgorithm(playerAndMiddleCards, highestSuit);
+ playerPairValue=highestPairValue;
+ playerLowPair=lowestPairValue;
+ playerHighCard=highCard;
+ playerSecondHighCard=secondHighCard;
+ playerThirdHighCard=thirdHighCard;
+ playerFourthHighCard=fourthHighCard;
+ playerFifthHighCard=fifthHighCard;
+ highestSuit=0;
+ highestSuit=botSpades;
+ if(botDiamonds>highestSuit) {
+ highestSuit=botDiamonds;
+ }
+ if(botHearts>highestSuit) {
+ highestSuit=botHearts;
+ }
+ if(botSpades>highestSuit) {
+ highestSuit=botSpades;
+ }
+ if(botClubs>highestSuit) {
+ highestSuit=botClubs;
+ }
+ botScore=botAlgorithm(botAndMiddleCards, highestSuit);
+ botPairValue=highestPairValue;
+ botLowPair=lowestPairValue;
+ botHighCard=highCard;
+ botSecondHighCard=secondHighCard;
+ botThirdHighCard=thirdHighCard;
+ botFourthHighCard=fourthHighCard;
+ botFifthHighCard=fifthHighCard;
+ gameOver=true;
+ tie=false;
+ if(playerScore>botScore) {
+ return true;
+ }
+ else if(playerScore==botScore) {
+ if(playerPairValue>botPairValue) {
+ return true;
+ }
+ else if(playerPairValuebotLowPair) {
+ return true;
+ }
+ else if(playerLowPairbotHighCard) {
+ return true;
+ }
+ else if(playerHighCardbotSecondHighCard) {
+ return true;
+ }
+ else if(playerSecondHighCardbotThirdHighCard) {
+ return true;
+ }
+ else if(playerThirdHighCardbotFourthHighCard) {
+ return true;
+ }
+ else if(playerFourthHighCardbotFifthHighCard) {
+ return true;
+ }
+ else if(playerFifthHighCard 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();
+ System.out.println("exception");
+ }
+ return m;
+ }
+
+ private Parameters getParameters(String message) {
+ String messageContent = message;
+
+ 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 = "";
+
+ if(messageContent.contains(",")) {
+ option = messageContent.substring(0, messageContent.indexOf(',') + 1);
+ messageContent = messageContent.replace(option, "");
+ option = option.replace(",", "").trim();
+ options.add(option);
+ } else {
+ option = messageContent.substring(0, messageContent.length());
+ messageContent = messageContent.replace(option, "");
+ option.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
new file mode 100644
index 00000000..e0fc0118
--- /dev/null
+++ b/src/main/java/org/jointheleague/modules/Reminder.java
@@ -0,0 +1,128 @@
+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 org.jointheleague.modules.pojo.HelpEmbed;
+
+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 Reminder(String channelName) {
+ super(channelName);
+ helpEmbed = new HelpEmbed(REMIND_COMMAND,
+ "To use this command first type the '!setReminder' command, followed by the time you want to be reminded (In Military Time, in PST), a comma, then your remind message \nP.S. Make sure when you input your time use a colon between the hours and minutes");
+ }
+
+ @Override
+ public void handle(MessageCreateEvent event) throws APIException {
+
+ 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);
+
+ }
+ }
+ }
+
+}
diff --git a/src/main/java/org/jointheleague/modules/UnbeatableRockPaperScissors.java b/src/main/java/org/jointheleague/modules/UnbeatableRockPaperScissors.java
index 216e1dbe..f285296c 100644
--- a/src/main/java/org/jointheleague/modules/UnbeatableRockPaperScissors.java
+++ b/src/main/java/org/jointheleague/modules/UnbeatableRockPaperScissors.java
@@ -27,6 +27,8 @@ else if(cmd.equalsIgnoreCase("paper")) {
}
else if(cmd.equalsIgnoreCase("scissors")) {
event.getChannel().sendMessage("Rock");
+ }else {
+ //event.getChannel().sendMessage("Invalid Command");
}
}
diff --git a/src/main/java/org/jointheleague/modules/pojo/MarsImage/Camera.java b/src/main/java/org/jointheleague/modules/pojo/MarsImage/Camera.java
new file mode 100644
index 00000000..e59e0bc7
--- /dev/null
+++ b/src/main/java/org/jointheleague/modules/pojo/MarsImage/Camera.java
@@ -0,0 +1,56 @@
+
+package org.jointheleague.modules.pojo.MarsImage;
+
+import javax.annotation.Generated;
+import com.google.gson.annotations.Expose;
+import com.google.gson.annotations.SerializedName;
+
+@Generated("jsonschema2pojo")
+public class Camera {
+
+ @SerializedName("id")
+ @Expose
+ private Integer id;
+ @SerializedName("name")
+ @Expose
+ private String name;
+ @SerializedName("rover_id")
+ @Expose
+ private Integer roverId;
+ @SerializedName("full_name")
+ @Expose
+ private String fullName;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Integer getRoverId() {
+ return roverId;
+ }
+
+ public void setRoverId(Integer roverId) {
+ this.roverId = roverId;
+ }
+
+ public String getFullName() {
+ return fullName;
+ }
+
+ public void setFullName(String fullName) {
+ this.fullName = fullName;
+ }
+
+}
diff --git a/src/main/java/org/jointheleague/modules/pojo/MarsImage/MarsImageWrapper.java b/src/main/java/org/jointheleague/modules/pojo/MarsImage/MarsImageWrapper.java
new file mode 100644
index 00000000..6647ff30
--- /dev/null
+++ b/src/main/java/org/jointheleague/modules/pojo/MarsImage/MarsImageWrapper.java
@@ -0,0 +1,24 @@
+
+package org.jointheleague.modules.pojo.MarsImage;
+
+import java.util.List;
+import javax.annotation.Generated;
+import com.google.gson.annotations.Expose;
+import com.google.gson.annotations.SerializedName;
+
+@Generated("jsonschema2pojo")
+public class MarsImageWrapper {
+
+ @SerializedName("photos")
+ @Expose
+ private List photos = null;
+
+ public List getPhotos() {
+ return photos;
+ }
+
+ public void setPhotos(List photos) {
+ this.photos = photos;
+ }
+
+}
diff --git a/src/main/java/org/jointheleague/modules/pojo/MarsImage/Photo.java b/src/main/java/org/jointheleague/modules/pojo/MarsImage/Photo.java
new file mode 100644
index 00000000..7f9c1016
--- /dev/null
+++ b/src/main/java/org/jointheleague/modules/pojo/MarsImage/Photo.java
@@ -0,0 +1,78 @@
+
+package org.jointheleague.modules.pojo.MarsImage;
+
+import javax.annotation.Generated;
+import com.google.gson.annotations.Expose;
+import com.google.gson.annotations.SerializedName;
+
+@Generated("jsonschema2pojo")
+public class Photo {
+
+ @SerializedName("id")
+ @Expose
+ private Integer id;
+ @SerializedName("sol")
+ @Expose
+ private Integer sol;
+ @SerializedName("camera")
+ @Expose
+ private Camera camera;
+ @SerializedName("img_src")
+ @Expose
+ private String imgSrc;
+ @SerializedName("earth_date")
+ @Expose
+ private String earthDate;
+ @SerializedName("rover")
+ @Expose
+ private Rover rover;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public Integer getSol() {
+ return sol;
+ }
+
+ public void setSol(Integer sol) {
+ this.sol = sol;
+ }
+
+ public Camera getCamera() {
+ return camera;
+ }
+
+ public void setCamera(Camera camera) {
+ this.camera = camera;
+ }
+
+ public String getImgSrc() {
+ return imgSrc;
+ }
+
+ public void setImgSrc(String imgSrc) {
+ this.imgSrc = imgSrc;
+ }
+
+ public String getEarthDate() {
+ return earthDate;
+ }
+
+ public void setEarthDate(String earthDate) {
+ this.earthDate = earthDate;
+ }
+
+ public Rover getRover() {
+ return rover;
+ }
+
+ public void setRover(Rover rover) {
+ this.rover = rover;
+ }
+
+}
diff --git a/src/main/java/org/jointheleague/modules/pojo/MarsImage/Rover.java b/src/main/java/org/jointheleague/modules/pojo/MarsImage/Rover.java
new file mode 100644
index 00000000..014619f2
--- /dev/null
+++ b/src/main/java/org/jointheleague/modules/pojo/MarsImage/Rover.java
@@ -0,0 +1,74 @@
+
+package org.jointheleague.modules.pojo.MarsImage;
+
+import javax.annotation.Generated;
+import com.google.gson.annotations.Expose;
+import com.google.gson.annotations.SerializedName;
+
+@Generated("jsonschema2pojo")
+public class Rover {
+
+ @SerializedName("id")
+ @Expose
+ private Integer id;
+ @SerializedName("name")
+ @Expose
+ private String name;
+ @SerializedName("landing_date")
+ @Expose
+ private String landingDate;
+ @SerializedName("launch_date")
+ @Expose
+ private String launchDate;
+ @SerializedName("status")
+ @Expose
+ private String status;
+ @SerializedName("max_sol")
+ @Expose
+ private int maxSol;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getLandingDate() {
+ return landingDate;
+ }
+
+ public void setLandingDate(String landingDate) {
+ this.landingDate = landingDate;
+ }
+
+ public String getLaunchDate() {
+ return launchDate;
+ }
+
+ public void setLaunchDate(String launchDate) {
+ this.launchDate = launchDate;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public int getMaxSol() {
+ return maxSol;
+ }
+
+}
diff --git a/src/main/java/org/jointheleague/modules/pojo/MarsRover/Camera.java b/src/main/java/org/jointheleague/modules/pojo/MarsRover/Camera.java
new file mode 100644
index 00000000..ac1a8c62
--- /dev/null
+++ b/src/main/java/org/jointheleague/modules/pojo/MarsRover/Camera.java
@@ -0,0 +1,34 @@
+
+package org.jointheleague.modules.pojo.MarsRover;
+
+import javax.annotation.Generated;
+import com.google.gson.annotations.Expose;
+import com.google.gson.annotations.SerializedName;
+
+@Generated("jsonschema2pojo")
+public class Camera {
+
+ @SerializedName("name")
+ @Expose
+ private String name;
+ @SerializedName("full_name")
+ @Expose
+ private String fullName;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getFullName() {
+ return fullName;
+ }
+
+ public void setFullName(String fullName) {
+ this.fullName = fullName;
+ }
+
+}
diff --git a/src/main/java/org/jointheleague/modules/pojo/MarsRover/ManifestRover.java b/src/main/java/org/jointheleague/modules/pojo/MarsRover/ManifestRover.java
new file mode 100644
index 00000000..2232de5c
--- /dev/null
+++ b/src/main/java/org/jointheleague/modules/pojo/MarsRover/ManifestRover.java
@@ -0,0 +1,112 @@
+
+package org.jointheleague.modules.pojo.MarsRover;
+
+import java.util.List;
+import javax.annotation.Generated;
+import com.google.gson.annotations.Expose;
+import com.google.gson.annotations.SerializedName;
+
+@Generated("jsonschema2pojo")
+public class ManifestRover {
+
+ @SerializedName("id")
+ @Expose
+ private Integer id;
+ @SerializedName("name")
+ @Expose
+ private String name;
+ @SerializedName("landing_date")
+ @Expose
+ private String landingDate;
+ @SerializedName("launch_date")
+ @Expose
+ private String launchDate;
+ @SerializedName("status")
+ @Expose
+ private String status;
+ @SerializedName("max_sol")
+ @Expose
+ private Integer maxSol;
+ @SerializedName("max_date")
+ @Expose
+ private String maxDate;
+ @SerializedName("total_photos")
+ @Expose
+ private Integer totalPhotos;
+ @SerializedName("cameras")
+ @Expose
+ private List cameras = null;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getLandingDate() {
+ return landingDate;
+ }
+
+ public void setLandingDate(String landingDate) {
+ this.landingDate = landingDate;
+ }
+
+ public String getLaunchDate() {
+ return launchDate;
+ }
+
+ public void setLaunchDate(String launchDate) {
+ this.launchDate = launchDate;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public Integer getMaxSol() {
+ return maxSol;
+ }
+
+ public void setMaxSol(Integer maxSol) {
+ this.maxSol = maxSol;
+ }
+
+ public String getMaxDate() {
+ return maxDate;
+ }
+
+ public void setMaxDate(String maxDate) {
+ this.maxDate = maxDate;
+ }
+
+ public Integer getTotalPhotos() {
+ return totalPhotos;
+ }
+
+ public void setTotalPhotos(Integer totalPhotos) {
+ this.totalPhotos = totalPhotos;
+ }
+
+ public List getCameras() {
+ return cameras;
+ }
+
+ public void setCameras(List cameras) {
+ this.cameras = cameras;
+ }
+
+}
diff --git a/src/main/java/org/jointheleague/modules/pojo/MarsRover/MarsRoverWrapper.java b/src/main/java/org/jointheleague/modules/pojo/MarsRover/MarsRoverWrapper.java
new file mode 100644
index 00000000..b1a2686d
--- /dev/null
+++ b/src/main/java/org/jointheleague/modules/pojo/MarsRover/MarsRoverWrapper.java
@@ -0,0 +1,23 @@
+
+package org.jointheleague.modules.pojo.MarsRover;
+
+import javax.annotation.Generated;
+import com.google.gson.annotations.Expose;
+import com.google.gson.annotations.SerializedName;
+
+@Generated("jsonschema2pojo")
+public class MarsRoverWrapper {
+
+ @SerializedName("rover")
+ @Expose
+ private ManifestRover rover;
+
+ public ManifestRover getRover() {
+ return rover;
+ }
+
+ public void setRover(ManifestRover rover) {
+ this.rover = rover;
+ }
+
+}
diff --git a/src/main/java/org/jointheleague/modules/pojo/movieRecs/com/example/Movie2.java b/src/main/java/org/jointheleague/modules/pojo/movieRecs/com/example/Movie2.java
new file mode 100644
index 00000000..47f5500c
--- /dev/null
+++ b/src/main/java/org/jointheleague/modules/pojo/movieRecs/com/example/Movie2.java
@@ -0,0 +1,55 @@
+
+package org.jointheleague.modules.pojo.movieRecs.com.example;
+
+import java.util.List;
+import com.google.gson.annotations.Expose;
+import com.google.gson.annotations.SerializedName;
+
+public class Movie2 {
+
+ @SerializedName("page")
+ @Expose
+ private Integer page;
+ @SerializedName("results")
+ @Expose
+ private List results = null;
+ @SerializedName("total_pages")
+ @Expose
+ private Integer totalPages;
+ @SerializedName("total_results")
+ @Expose
+ private Integer totalResults;
+
+ public Integer getPage() {
+ return page;
+ }
+
+ public void setPage(Integer page) {
+ this.page = page;
+ }
+
+ public List getResults() {
+ return results;
+ }
+
+ public void setResults(List results) {
+ this.results = results;
+ }
+
+ public Integer getTotalPages() {
+ return totalPages;
+ }
+
+ public void setTotalPages(Integer totalPages) {
+ this.totalPages = totalPages;
+ }
+
+ public Integer getTotalResults() {
+ return totalResults;
+ }
+
+ public void setTotalResults(Integer totalResults) {
+ this.totalResults = totalResults;
+ }
+
+}
diff --git a/src/main/java/org/jointheleague/modules/pojo/movieRecs/com/example/Result.java b/src/main/java/org/jointheleague/modules/pojo/movieRecs/com/example/Result.java
new file mode 100644
index 00000000..6b2de8da
--- /dev/null
+++ b/src/main/java/org/jointheleague/modules/pojo/movieRecs/com/example/Result.java
@@ -0,0 +1,165 @@
+
+package org.jointheleague.modules.pojo.movieRecs.com.example;
+
+import java.util.List;
+import com.google.gson.annotations.Expose;
+import com.google.gson.annotations.SerializedName;
+
+public class Result {
+
+ @SerializedName("adult")
+ @Expose
+ private Boolean adult;
+ @SerializedName("backdrop_path")
+ @Expose
+ private String backdropPath;
+ @SerializedName("genre_ids")
+ @Expose
+ private List genreIds = null;
+ @SerializedName("id")
+ @Expose
+ private Integer id;
+ @SerializedName("original_language")
+ @Expose
+ private String originalLanguage;
+ @SerializedName("original_title")
+ @Expose
+ private String originalTitle;
+ @SerializedName("overview")
+ @Expose
+ private String overview;
+ @SerializedName("popularity")
+ @Expose
+ private Double popularity;
+ @SerializedName("poster_path")
+ @Expose
+ private String posterPath;
+ @SerializedName("release_date")
+ @Expose
+ private String releaseDate;
+ @SerializedName("title")
+ @Expose
+ private String title;
+ @SerializedName("video")
+ @Expose
+ private Boolean video;
+ @SerializedName("vote_average")
+ @Expose
+ private Double voteAverage;
+ @SerializedName("vote_count")
+ @Expose
+ private Integer voteCount;
+
+ public Boolean getAdult() {
+ return adult;
+ }
+
+ public void setAdult(Boolean adult) {
+ this.adult = adult;
+ }
+
+ public String getBackdropPath() {
+ return backdropPath;
+ }
+
+ public void setBackdropPath(String backdropPath) {
+ this.backdropPath = backdropPath;
+ }
+
+ public List getGenreIds() {
+ return genreIds;
+ }
+
+ public void setGenreIds(List genreIds) {
+ this.genreIds = genreIds;
+ }
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getOriginalLanguage() {
+ return originalLanguage;
+ }
+
+ public void setOriginalLanguage(String originalLanguage) {
+ this.originalLanguage = originalLanguage;
+ }
+
+ public String getOriginalTitle() {
+ return originalTitle;
+ }
+
+ public void setOriginalTitle(String originalTitle) {
+ this.originalTitle = originalTitle;
+ }
+
+ public String getOverview() {
+ return overview;
+ }
+
+ public void setOverview(String overview) {
+ this.overview = overview;
+ }
+
+ public Double getPopularity() {
+ return popularity;
+ }
+
+ public void setPopularity(Double popularity) {
+ this.popularity = popularity;
+ }
+
+ public String getPosterPath() {
+ return posterPath;
+ }
+
+ public void setPosterPath(String posterPath) {
+ this.posterPath = posterPath;
+ }
+
+ public String getReleaseDate() {
+ return releaseDate;
+ }
+
+ public void setReleaseDate(String releaseDate) {
+ this.releaseDate = releaseDate;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public Boolean getVideo() {
+ return video;
+ }
+
+ public void setVideo(Boolean video) {
+ this.video = video;
+ }
+
+ public Double getVoteAverage() {
+ return voteAverage;
+ }
+
+ public void setVoteAverage(Double voteAverage) {
+ this.voteAverage = voteAverage;
+ }
+
+ public Integer getVoteCount() {
+ return voteCount;
+ }
+
+ public void setVoteCount(Integer voteCount) {
+ this.voteCount = voteCount;
+ }
+
+}
diff --git a/src/main/resources/WolframAlpha-1.1.jar b/src/main/resources/WolframAlpha-1.1.jar
deleted file mode 100644
index 9b98a506..00000000
Binary files a/src/main/resources/WolframAlpha-1.1.jar and /dev/null differ
diff --git a/src/main/resources/config.json b/src/main/resources/config.json
deleted file mode 100644
index 0b58c8d9..00000000
--- a/src/main/resources/config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "channels": ["channelName"],
- "token": "discordToken"
-}