Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ src/main/java/org.jointheleague.Launcher.java
run.sh
appspec.yml
.gradle/
/build/
2 changes: 2 additions & 0 deletions bin/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/main/
/test/
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-webflux:2.4.1'
testImplementation "org.junit.jupiter:junit-jupiter:${jupiterVersion}"
testImplementation "org.junit.jupiter:junit-jupiter-migrationsupport:${jupiterVersion}"
implementation 'org.apache.commons:commons-text:1.11.0'
}

group = 'org.jointheleague'
Expand Down
11 changes: 6 additions & 5 deletions src/main/java/org/jointheleague/discord_bot/DiscordBot.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,10 @@
import org.jointheleague.features.examples.first_features.CurrentTime;
import org.jointheleague.features.examples.first_features.RandomNumber;
import org.jointheleague.features.help_embed.HelpListener;
import org.jointheleague.features.student.first_feature.CookieClicker;
import org.jointheleague.features.student.first_feature.FeatureOne;
import org.jointheleague.features.student.first_feature.FishingFrenzy;
import org.jointheleague.features.student.first_feature.TriviaAPI;

public class DiscordBot {

Expand Down Expand Up @@ -56,11 +59,9 @@ public void connect(boolean printInvite) throws InterruptedException {
api.addEventListener(helpListener);

//add features
addFeature(new FeatureOne(channelName));
addFeature(new CurrentTime(channelName));
addFeature(new HighLowGame(channelName));
addFeature(new NewsApi(channelName));
addFeature(new CatFactsApi(channelName));
addFeature(new FishingFrenzy(channelName));
addFeature(new CookieClicker(channelName));
addFeature(new TriviaAPI(channelName));
}

private void addFeature(Feature feature){
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package org.jointheleague.features.examples.help_embed;

import java.util.ArrayList;
import java.util.List;

import org.jointheleague.features.help_embed.plain_old_java_objects.help_embed.HelpEmbed;
import org.jointheleague.api_wrapper.ReceivedMessage;
import org.jointheleague.features.abstract_classes.Feature;

public class HelpListener extends Feature {

public final String COMMAND = "!help";
private List<HelpEmbed> helpEmbeds = new ArrayList<>();

public HelpListener(String channelName) {
super(channelName);
}

@Override
public void handle(ReceivedMessage event) {
if(event.getMessageContent().equalsIgnoreCase(COMMAND)) {
for(HelpEmbed helpEmbed : helpEmbeds) {
event.sendResponse(helpEmbed.getEmbed());
}
}
}

public void addHelpEmbed(HelpEmbed helpEmbed) {
helpEmbeds.add(helpEmbed);
}


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package org.jointheleague.features.student.first_feature;

import org.jointheleague.api_wrapper.ReceivedMessage;
import org.jointheleague.features.abstract_classes.Feature;
import org.jointheleague.features.help_embed.plain_old_java_objects.help_embed.HelpEmbed;

public class CookieClicker extends Feature {

public final String COMMAND = "!cookieClicker";
int cookies = 0;
int click = 1;
public CookieClicker(String channelName) {
super(channelName);

//Create a help embed to describe feature when !help command is sent
helpEmbed = new HelpEmbed(
COMMAND,
"Bake cookies, buy upgrades, and climb the leaderboard to become the ultimate baker!"
);
}

@Override
public void handle(ReceivedMessage event) {
String messageContent = event.getMessageContent();
if (messageContent.equals(COMMAND)) {
event.sendResponse("Please type something after the command.");
}
else if (messageContent.equals("!cookieClicker help")) {
//respond to message here
event.sendResponse("Commands:\n`!cookieCliker click` to bake a cookie.\n`!cookieClicker cookies` to see how much cookies you have.\n`!cookieClicker upgrades` to buy upgrades.");
}
else if (messageContent.equals("!cookieClicker click")) {
cookies += click;
event.sendResponse("You gained " + click + " cookie");
}
else if (messageContent.equals("!cookieClicker cookies")) {
event.sendResponse("You have " + cookies + " cookies in total.");
}
else if (messageContent.equals("!cookieClicker upgrades")) {
event.sendResponse("Upgrades: Increases cookies per click. To buy, just type `!cookieClicker [upgrade name]`\nCursor (+1): 10 cookies\nGramma (+5): 50 cookies\nFarm (+10): 100 cookies\nMine (+50): 300 cookies");
}
else if (messageContent.equals("!cookieClicker cursor")) {
click += 1;
cookies -= 10;
}
else if (messageContent.equals("!cookieClicker gramma")) {
click += 5;
cookies -= 50;
}
else if (messageContent.equals("!cookieClicker farm")) {
click += 10;
cookies -= 100;
}
else if (messageContent.equals("!cookieClicker mine")) {
click += 50;
cookies -= 300;
}
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
package org.jointheleague.features.student.first_feature;

import org.jointheleague.api_wrapper.ReceivedMessage;

import org.jointheleague.features.abstract_classes.Feature;
import org.jointheleague.features.help_embed.plain_old_java_objects.help_embed.HelpEmbed;

import net.dv8tion.jda.api.EmbedBuilder;

import java.util.Random;
public class FishingFrenzy extends Feature {
public int coins = 0;
public final String COMMAND = "!fishingFrenzy";

public FishingFrenzy(String channelName) {
super(channelName);

//Create a help embed to describe feature when !help command is sent
helpEmbed = new HelpEmbed(
COMMAND,
"Cast your line and catch all kinds of fish — from common to legendary! Earn coins, buy upgrades, and compete on the leaderboard."
);
}

@Override
public void handle(ReceivedMessage event) {
String messageContent = event.getMessageContent();
if (messageContent.equals("!fishingFrenzy help")) {
//respond to message here
event.sendResponse("Commands:\n`!fishingFrenzy cast` to cast your line.\n`!fishingFrenzy balance` to see how much coins you have. ");
}
else if (messageContent.equals("!fishingFrenzy fish")) {
Random r = new Random();
double randomNumber = r.nextDouble() * 100;
fishdrops(event, randomNumber);
}
else if (messageContent.equals("!fishingFrenzy balance")) {
event.sendResponse("You have " + coins + " coins.");
}
}

public void fishdrops(ReceivedMessage event, double randomNumber) {
if (randomNumber < 1) {
event.sendResponse("You caught a Dragonfish! (Legendary: 1%)\nYou gained 750 coins!");
coins+=750;
} else if (randomNumber < 5){
event.sendResponse("You caught a Golden Koi! (Mythic: 4%)\nYou gained 300 coins!");
coins+=300;
}
else if (randomNumber < 15) {
event.sendResponse("You caught a Swordfish! (Epic: 10%)\nYou gained 150 coins!");
coins+=150;
}
else if (randomNumber < 30) {
event.sendResponse("You caught a Salmon! (Rare: 15%)\nYou gained 75 coins!");
coins+=75;
}
else if (randomNumber < 55) {
event.sendResponse("You caught a Mackeral! (Uncommon: 25%)\nYou gained 30 coins!");
coins+=30;
}
else {
event.sendResponse("You caught a Carp! (Common: 45%)\nYou gained 10 coins!");
coins+=10;
}
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@

package org.jointheleague.features.student.first_feature;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"type",
"difficulty",
"category",
"question",
"correct_answer",
"incorrect_answers"
})
@Generated("jsonschema2pojo")
public class Question {

@JsonProperty("type")
private String type;
@JsonProperty("difficulty")
private String difficulty;
@JsonProperty("category")
private String category;
@JsonProperty("question")
public String question;
@JsonProperty("correct_answer")
public String correctAnswer;
@JsonProperty("incorrect_answers")
private List<String> incorrectAnswers;
@JsonIgnore
private Map<String, Object> additionalProperties = new LinkedHashMap<String, Object>();

@JsonProperty("type")
public String getType() {
return type;
}

@JsonProperty("type")
public void setType(String type) {
this.type = type;
}

@JsonProperty("difficulty")
public String getDifficulty() {
return difficulty;
}

@JsonProperty("difficulty")
public void setDifficulty(String difficulty) {
this.difficulty = difficulty;
}

@JsonProperty("category")
public String getCategory() {
return category;
}

@JsonProperty("category")
public void setCategory(String category) {
this.category = category;
}

@JsonProperty("question")
public String getQuestion() {
return question;
}

@JsonProperty("question")
public void setQuestion(String question) {
this.question = question;
}

@JsonProperty("correct_answer")
public String getCorrectAnswer() {
return correctAnswer;
}

@JsonProperty("correct_answer")
public void setCorrectAnswer(String correctAnswer) {
this.correctAnswer = correctAnswer;
}

@JsonProperty("incorrect_answers")
public List<String> getIncorrectAnswers() {
return incorrectAnswers;
}

@JsonProperty("incorrect_answers")
public void setIncorrectAnswers(List<String> incorrectAnswers) {
this.incorrectAnswers = incorrectAnswers;
}

@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}

@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}

@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(Question.class.getName()).append('@').append(Integer.toHexString(System.identityHashCode(this))).append('[');
sb.append("type");
sb.append('=');
sb.append(((this.type == null)?"<null>":this.type));
sb.append(',');
sb.append("difficulty");
sb.append('=');
sb.append(((this.difficulty == null)?"<null>":this.difficulty));
sb.append(',');
sb.append("category");
sb.append('=');
sb.append(((this.category == null)?"<null>":this.category));
sb.append(',');
sb.append("question");
sb.append('=');
sb.append(((this.question == null)?"<null>":this.question));
sb.append(',');
sb.append("correctAnswer");
sb.append('=');
sb.append(((this.correctAnswer == null)?"<null>":this.correctAnswer));
sb.append(',');
sb.append("incorrectAnswers");
sb.append('=');
sb.append(((this.incorrectAnswers == null)?"<null>":this.incorrectAnswers));
sb.append(',');
sb.append("additionalProperties");
sb.append('=');
sb.append(((this.additionalProperties == null)?"<null>":this.additionalProperties));
sb.append(',');
if (sb.charAt((sb.length()- 1)) == ',') {
sb.setCharAt((sb.length()- 1), ']');
} else {
sb.append(']');
}
return sb.toString();
}

}
Loading