From 7a10f28d04895fa6e90a14023f2a7add0783fff1 Mon Sep 17 00:00:00 2001 From: SeahawksRawesome Date: Sun, 1 Aug 2021 18:00:35 -0700 Subject: [PATCH 1/3] Added my two features back. --- .../discord_bot_example/Bot.java | 22 ++++++--- .../jointheleague/modules/GuessTheNumber.java | 45 +++++++++++++++++++ .../jointheleague/modules/LeagueChamp.java | 44 ++++++++++++++++++ .../org/jointheleague/modules/MazeGame.java | 4 +- src/main/resources/config.json | 4 +- 5 files changed, 109 insertions(+), 10 deletions(-) create mode 100644 src/main/java/org/jointheleague/modules/GuessTheNumber.java create mode 100644 src/main/java/org/jointheleague/modules/LeagueChamp.java diff --git a/src/main/java/org/jointheleague/discord_bot_example/Bot.java b/src/main/java/org/jointheleague/discord_bot_example/Bot.java index 0dac01fb..b4bad2f8 100644 --- a/src/main/java/org/jointheleague/discord_bot_example/Bot.java +++ b/src/main/java/org/jointheleague/discord_bot_example/Bot.java @@ -51,9 +51,9 @@ public void connect(boolean printInvite) { api.addMessageCreateListener(list); helpListener.addHelpEmbed(list.getHelpEmbed()); - MazeGame maze = new MazeGame(channelName); - api.addMessageCreateListener(maze); - helpListener.addHelpEmbed(maze.getHelpEmbed()); +// MazeGame maze = new MazeGame(channelName); +// api.addMessageCreateListener(maze); +// helpListener.addHelpEmbed(maze.getHelpEmbed()); MarsPictures marsPictures = new MarsPictures(channelName); api.addMessageCreateListener(marsPictures); @@ -160,9 +160,17 @@ public void connect(boolean printInvite) { api.addMessageCreateListener(depress); helpListener.addHelpEmbed(depress.getHelpEmbed()); - Depression depress = new Depression(channelName); - api.addMessageCreateListener(depress); - helpListener.addHelpEmbed(depress.getHelpEmbed()); + LeagueChamp leagueChamp = new LeagueChamp(channelName); + api.addMessageCreateListener(leagueChamp); + helpListener.addHelpEmbed(leagueChamp.getHelpEmbed()); + + GuessTheNumber guessNum = new GuessTheNumber(channelName); + api.addMessageCreateListener(guessNum); + helpListener.addHelpEmbed(guessNum.getHelpEmbed()); + +// Depression depress = new Depression(channelName); +// api.addMessageCreateListener(depress); +// helpListener.addHelpEmbed(depress.getHelpEmbed()); // old way to add listeners api.addMessageCreateListener(helpListener); @@ -208,5 +216,7 @@ public void connect(boolean printInvite) { api.addMessageCreateListener(new RandomCase(channelName)); api.addMessageCreateListener(new GetTime(channelName)); api.addMessageCreateListener(new ScreenCapture(channelName)); + api.addMessageCreateListener(new LeagueChamp(channelName)); + api.addMessageCreateListener(new GuessTheNumber(channelName)); } } \ No newline at end of file diff --git a/src/main/java/org/jointheleague/modules/GuessTheNumber.java b/src/main/java/org/jointheleague/modules/GuessTheNumber.java new file mode 100644 index 00000000..fa5cf7b8 --- /dev/null +++ b/src/main/java/org/jointheleague/modules/GuessTheNumber.java @@ -0,0 +1,45 @@ +package org.jointheleague.modules; + +import java.util.Random; + +import org.javacord.api.event.message.MessageCreateEvent; + +public class GuessTheNumber extends CustomMessageCreateListener { + + int range = 100; + int randomNum = 0; + + public GuessTheNumber(String channelName) { + super(channelName); + // TODO Auto-generated constructor stub + } + + private static final String COMMAND = "!GuessNumber"; + + @Override + public void handle(MessageCreateEvent event) { + // TODO Auto-generated method stub + Random rand = new Random(); + if (event.getMessageContent().equals("!GuessNumber help") + || event.getMessageContent().equals("!GuessNumber Help")) { + event.getChannel().sendMessage( + "Guess the Number is a guessing game to see if you can guess the number the computer has. The number is generated randomly between 1-100 by default. To change parameters, do !GuessNumber range (number)"); + } else if (event.getMessageContent().startsWith("!GuessNumber range")) { + String str = event.getMessageContent(); str = str.replace("!GuessNumber range ", ""); + // System.out.println("LINE" + str); + int number = Integer.parseInt(str); range = number; + event.getChannel().sendMessage("Range has been changed to " + range); + } else if (event.getMessageContent().startsWith("!GuessNumber")) { + String str = event.getMessageContent(); + str = str.replace("!GuessNumber ", ""); + int number = Integer.parseInt(str); + randomNum = rand.nextInt(range); + if (number == randomNum) { + event.getChannel().sendMessage("Nice, you guessed the number, which was " + randomNum); + } + else { event.getChannel().sendMessage("Nope, bad guess! The number you guessed was, " + number + " but the answer was " + randomNum);} + } + + } + +} diff --git a/src/main/java/org/jointheleague/modules/LeagueChamp.java b/src/main/java/org/jointheleague/modules/LeagueChamp.java new file mode 100644 index 00000000..5b525cdb --- /dev/null +++ b/src/main/java/org/jointheleague/modules/LeagueChamp.java @@ -0,0 +1,44 @@ +package org.jointheleague.modules; + +import java.util.Random; + +import org.javacord.api.event.message.MessageCreateEvent; + +import net.aksingh.owmjapis.api.APIException; + +public class LeagueChamp extends CustomMessageCreateListener { + + final String[] champions = {"Aatrox", "Ekko", "Jinx", "Miss Fortune", "Shen", "Varus", "Ahri", "Akali", "Evelynn", "Karma", "Morgana", "Singed", "Veigar", + "Ahri", "Elise", "Kalista", "Mordekaiser", "Shyvana", "Vayne", "Alistar", "Ezreal", "Karthus", "Nami", "Sion", "Vel'Koz", "Amumu", "Fiddlesticks", "Kassadin", "Nasus", "Sivir", "Vi", "Anivia", "Fiora", "Katarina", "Nautilus", + "Skarner", "Viktor", "Annie", "Fizz", "Kayle", "Nidalee", "Sona", "Vladmir", "Ashe", "Galio", "Kennen", "Nocturne", "Soraka", "Volibear", "Aurelion Sol", "Gangplank", "Kha'Zix", "Nunu", "Swain", "Warwick", "Azir", "Garen", "Kindred", "Olaf", + "Syndra", "Wukong", "Bard", "Gnar", "Kled", "Orianna", "Tahm Kench", "Xerath", "Blitzcrank", "Gragas", "Kog'Maw", "Pantheon", "Taliyah", "Xin Zhao", "Brand", "Graves", + "Leblanc", "Poppy", "Talon", "Yasuo", "Braum", "Hecarim", "Lee sin", "Quinn", "Taric", "Yorick", "Caitlyn", "Heimerdinger", "Leona", "Rammus", "Teemo", "Zac", "Camille", "Illaoi", "Lissandra", "Rek'Sai", "Thresh", "Zed", "Cassiopeia" , + "Irelia", "Lucian", "Renekton", "Tristana", "Ziggs", "Cho'Gath", "Ivern", "Lulu", "Rengar", "Trundle", "Zilean", "Corki", "Janna", "Lux", "Riven", "Tryndamere", "Zyra", "Darius", "Jarvan IV", "Malphite ", "Rumble", "Twisted Fate", "Diana", + "Jax", "Malzahar", "Ryze", "Twitch", "Dr. Mundo", "Jayce", "Maokai", "Sejuani", "Udyr", "Draven", "Jhin", "Master Yi", "Shaco", "Urgot"}; + + public LeagueChamp(String channelName) { + super(channelName); + + // TODO Auto-generated constructor stub + } + + + private static final String COMMAND = "!randChamp"; + + @Override + public void handle(MessageCreateEvent event) { + // TODO Auto-generated method stub + Random rand = new Random(); + if(event.getMessageContent().startsWith(COMMAND)) { + event.getChannel().sendMessage("Your champion is: " + champions[rand.nextInt(champions.length)]); + } + } + +} + + + + + + + diff --git a/src/main/java/org/jointheleague/modules/MazeGame.java b/src/main/java/org/jointheleague/modules/MazeGame.java index 76e1f77c..24acb906 100644 --- a/src/main/java/org/jointheleague/modules/MazeGame.java +++ b/src/main/java/org/jointheleague/modules/MazeGame.java @@ -27,7 +27,7 @@ public MazeGame(String channelName) { @Override // listens for command and parses parameters public void handle(MessageCreateEvent event) throws APIException { - System.out.println("Heard message: " + event.getMessageContent()); + /*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(); @@ -82,7 +82,7 @@ public void handle(MessageCreateEvent event) throws APIException { } - } + }*/ } /* diff --git a/src/main/resources/config.json b/src/main/resources/config.json index 4dd58050..9e55461e 100644 --- a/src/main/resources/config.json +++ b/src/main/resources/config.json @@ -1,4 +1,4 @@ { - "channels": [""], - "token": "" + "channels": ["brandon_p"], + "token": "ODAwNTM5Njg1NTk1MTE5NjQ2.YATmrg.Ee4J0bZuxpAywKx3ByZt7QUccmc" } From 0f44a03e0896c0209fd2340b4757ab70effaba66 Mon Sep 17 00:00:00 2001 From: SeahawksRawesome Date: Sun, 1 Aug 2021 18:01:36 -0700 Subject: [PATCH 2/3] Added my two features back. --- .idea/.gitignore | 3 +++ .idea/compiler.xml | 13 +++++++++++++ .idea/encodings.xml | 7 +++++++ .idea/jarRepositories.xml | 20 ++++++++++++++++++++ .idea/misc.xml | 12 ++++++++++++ .idea/runConfigurations.xml | 10 ++++++++++ .idea/vcs.xml | 6 ++++++ 7 files changed, 71 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/runConfigurations.xml create mode 100644 .idea/vcs.xml 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..ab42f915 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 00000000..797acea5 --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,10 @@ + + + + + + \ 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 From 984b20f783598ad1394bcb592608fae20890bdeb Mon Sep 17 00:00:00 2001 From: SeahawksRawesome Date: Sun, 12 Sep 2021 16:38:50 -0700 Subject: [PATCH 3/3] Finished level 3 feature ^ --- .../discord_bot_example/Bot.java | 5 + .../org/jointheleague/modules/NumberVs.java | 97 +++++++++++++++++++ src/main/resources/config.json | 2 +- 3 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 src/main/java/org/jointheleague/modules/NumberVs.java diff --git a/src/main/java/org/jointheleague/discord_bot_example/Bot.java b/src/main/java/org/jointheleague/discord_bot_example/Bot.java index b4bad2f8..e2604111 100644 --- a/src/main/java/org/jointheleague/discord_bot_example/Bot.java +++ b/src/main/java/org/jointheleague/discord_bot_example/Bot.java @@ -168,6 +168,10 @@ public void connect(boolean printInvite) { api.addMessageCreateListener(guessNum); helpListener.addHelpEmbed(guessNum.getHelpEmbed()); + NumberVs numberVs = new NumberVs(channelName); + api.addMessageCreateListener(numberVs); + helpListener.addHelpEmbed(numberVs.getHelpEmbed()); + // Depression depress = new Depression(channelName); // api.addMessageCreateListener(depress); // helpListener.addHelpEmbed(depress.getHelpEmbed()); @@ -218,5 +222,6 @@ public void connect(boolean printInvite) { api.addMessageCreateListener(new ScreenCapture(channelName)); api.addMessageCreateListener(new LeagueChamp(channelName)); api.addMessageCreateListener(new GuessTheNumber(channelName)); + api.addMessageCreateListener(new NumberVs(channelName)); } } \ No newline at end of file diff --git a/src/main/java/org/jointheleague/modules/NumberVs.java b/src/main/java/org/jointheleague/modules/NumberVs.java new file mode 100644 index 00000000..a6ec5872 --- /dev/null +++ b/src/main/java/org/jointheleague/modules/NumberVs.java @@ -0,0 +1,97 @@ +package org.jointheleague.modules; + +import java.util.Random; +import java.util.concurrent.TimeUnit; + +import org.javacord.api.event.message.MessageCreateEvent; +public class NumberVs extends CustomMessageCreateListener { + //Level 3 Discord Feature. NumberVs is a game played against the computer. The computer gives you a range of numbers. You and the computer both guess a number. Whoever is closer gets the point. The goal is to get more + //points than the computer after x number of rounds. + + //Important Vars + int range = 100; int playerScore = 0; int compScore = 0; + //Limit to score to. Thinking 40 as default. + int scoreLim = 10; + //State Machine + int state = 0; + //Temp Vars + int number = 0; String str = ""; + int randomNum = 0; Random random = new Random(); + int compTarget = 0; int compGuess = 0; + //default state 0, start state 1, game state 2 + + public NumberVs(String channelName) { + super(channelName); + } + + + private static final String COMMAND = "!GuessVs"; + + @Override + public void handle(MessageCreateEvent event) { + // TODO Auto-generated method stub + //use instead String message = event.getMessageContent(); + if (state == 0) { + if (event.getMessageContent().equals("!GuessVs help") || event.getMessageContent().equals("!GuessVs Help")) { + event.getChannel().sendMessage( + "To play, the computer will tell you a range of numbers. You will guess a number against the computer. Whoever is closer gets a pont. If you guess the number exactly, " + + "you get 5 extra points. Important commands(always include '!GuessVs '): range x --> specifies range, with x being maximum. start --> goes to game. score --> sets score to play to."); + + } else if (event.getMessageContent().startsWith("!GuessVs range")) { + str = event.getMessageContent(); str = str.replace("!GuessVs range ", ""); + number = Integer.parseInt(str); range = number; + event.getChannel().sendMessage("New Range: 0 to " + range); + + } else if (event.getMessageContent().startsWith("!GuessVs Range")) { + str = event.getMessageContent(); str = str.replace("!GuessVs Range", ""); + number = Integer.parseInt(str); range = number; + event.getChannel().sendMessage("New Range: 0 to " + range); + + } else if (event.getMessageContent().startsWith("!GuessVs Start") || event.getMessageContent().startsWith("!GuessVs start")) { + event.getChannel().sendMessage("Time to Guess!! Type 'Guess x', with x being a number. Your range is from 0 " + range); + state = 1; + + } else if (event.getMessageContent().startsWith("!GuessVs score") || event.getMessageContent().startsWith("!GuessVs score")){ + str = event.getMessageContent(); str = str.replace("!GuessVs score ", ""); + number = Integer.parseInt(str); scoreLim = number; + event.getChannel().sendMessage("New Score range: " + scoreLim); + } + } else if (state == 1) { + //Guessing state. Allow player to fight against computer. + if(playerScore >= scoreLim){ event.getChannel().sendMessage("Congrats, you won... exiting game"); resetScores(); state = 0; } + else if (compScore >= scoreLim){ event.getChannel().sendMessage("Congrats, you lost :( ... exiting game"); resetScores(); state = 0;} + else if (event.getMessageContent().startsWith("Guess ")) { + + str = event.getMessageContent(); str = str.replace("Guess ", ""); + number = Integer.parseInt(str); compGuess = random.nextInt(range); compTarget = random.nextInt(range); + // if the abs value of number - comptarget is lower than abs value of compguess - comptarget, player wins and vice versa + event.getChannel().sendMessage("Your number was " + number + ". The computers was " + compGuess + ". The actual number was " + compTarget + "."); + if (Math.abs(number - compTarget) < Math.abs(compGuess - compTarget)) { + + if (number == compTarget) { playerScore += 5; event.getChannel().sendMessage("Nice! You guessed the number exactly! Plus 5 points!"); } + else { playerScore++; event.getChannel().sendMessage("Nice, you guessed closer! You get a point!"); } + + } else if(Math.abs(number - compTarget) > Math.abs(compGuess - compTarget)){ + + if (compGuess == compTarget) { compScore += 5; event.getChannel().sendMessage("Too bad! The computer guessed exactly! Plus 5 points :("); } + else { event.getChannel().sendMessage("Yikes, a computer beat you and guessed closer... it gets one point!"); compScore++; } + + } else { + event.getChannel().sendMessage("You guessed the same as the computer, which was " + number + ". You each get two points."); + event.getChannel().sendMessage("New Round: Scores are: " + "Player: " + playerScore + "Computer: " + compScore); + } + event.getChannel().sendMessage("Your score: " + playerScore + ". Computer score: " + compScore + "."); + } + //Exits state machine 1, back to 0. + else if(event.getMessageContent().startsWith("Exit")){ + event.getChannel().sendMessage("Exiting game."); + state = 0; + } + } + } + + public void resetScores(){ + playerScore = 0; + compScore = 0; + } +} diff --git a/src/main/resources/config.json b/src/main/resources/config.json index 9e55461e..8db79039 100644 --- a/src/main/resources/config.json +++ b/src/main/resources/config.json @@ -1,4 +1,4 @@ { "channels": ["brandon_p"], - "token": "ODAwNTM5Njg1NTk1MTE5NjQ2.YATmrg.Ee4J0bZuxpAywKx3ByZt7QUccmc" + "token": "ODAwNTM5Njg1NTk1MTE5NjQ2.YATmrg.IbaqolKV-F9OynbznOhXGaOOP7w" }