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
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ src/main/java/org.jointheleague.Launcher.java
run.sh
appspec.yml
.gradle/
/bin/
/build/
4 changes: 2 additions & 2 deletions src/main/java/org/jointheleague/Launcher.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ public class Launcher {
public static void main(String[] args) throws InterruptedException {

//Initialize variables
String channelName = System.getenv("CHANNEL_NAME");
String discordToken = System.getenv("DISCORD_TOKEN");
String channelName = "bob_bot";
String discordToken = "include token here";
boolean printDiscordInvite = true;

//Instantiate DiscordBot and connect
Expand Down
23 changes: 14 additions & 9 deletions src/main/java/org/jointheleague/discord_bot/DiscordBot.java
Original file line number Diff line number Diff line change
@@ -1,19 +1,22 @@
package org.jointheleague.discord_bot;

import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.JDABuilder;
import net.dv8tion.jda.api.requests.GatewayIntent;
import net.dv8tion.jda.api.utils.messages.MessageCreateBuilder;
import net.dv8tion.jda.api.utils.messages.MessageCreateData;
import java.util.Random;

import org.jointheleague.features.abstract_classes.Feature;
import org.jointheleague.features.examples.first_features.CurrentTime;
import org.jointheleague.features.examples.second_features.HighLowGame;
import org.jointheleague.features.examples.third_features.CatFactsApi;
import org.jointheleague.features.examples.third_features.NewsApi;
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.BananaSoftware;
import org.jointheleague.features.student.first_feature.FeatureOne;
import org.jointheleague.features.student.first_feature.WeatherAPI;

import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.JDABuilder;
import net.dv8tion.jda.api.requests.GatewayIntent;
import net.dv8tion.jda.api.utils.messages.MessageCreateBuilder;
import net.dv8tion.jda.api.utils.messages.MessageCreateData;

public class DiscordBot {

Expand Down Expand Up @@ -46,7 +49,7 @@ public void connect(boolean printInvite) throws InterruptedException {

//Send bot connected message in channel
MessageCreateData botConnected = new MessageCreateBuilder()
.addContent(api.getSelfUser().getName() + " has connected")
.addContent(""+new Random().nextInt())
.build();
api.getTextChannelsByName(channelName, true).forEach(e -> {
e.sendMessage(botConnected).submit().join();
Expand All @@ -56,7 +59,9 @@ public void connect(boolean printInvite) throws InterruptedException {
api.addEventListener(helpListener);

//add features
addFeature(new FeatureOne(channelName));
addFeature(new WeatherAPI(channelName));
addFeature(new FeatureOne(channelName, false));
addFeature(new BananaSoftware(channelName));
addFeature(new CurrentTime(channelName));
addFeature(new HighLowGame(channelName));
addFeature(new NewsApi(channelName));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ else if (messageContent.contains(COMMAND)
return;
}

if(guess > 100 || guess < 1) {
event.sendResponse("dang that guess was useless");
}

if (guess < numberToGuess) {
//tell them it's too low
event.sendResponse(guess + " is too low. Guess again!");
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,192 @@
package org.jointheleague.features.student.first_feature;

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;
import org.jointheleague.features.templates.FeatureTemplate;

import java.util.Random;
import java.util.Scanner;

public class BananaSoftware extends FeatureTemplate {

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

public final String COMMAND = "banana";
public final String password = "ON";

public boolean BananaMode = false;

static public Random r = new Random();

@Override
public void handle(ReceivedMessage event) {
String messageContent = event.getMessageContent();


if(messageContent.toLowerCase().startsWith(COMMAND) && messageContent.toUpperCase().contains(password)) {
if(BananaMode) {
event.sendResponse("Message received! BananaMode is already on.");
}
else {
event.sendResponse("Message received! BananaMode is now on.");
BananaMode = true;
startupSequence(event);
}
}

else if (messageContent.toLowerCase().startsWith(COMMAND) && !BananaMode) {
event.sendResponse("Message received! BananaMode remains off.");
}

else if(messageContent.toLowerCase().startsWith(COMMAND) && BananaMode) {

String t = messageContent.substring(7); // good
String[] things = t.trim().split(" ");

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

variables could be more specific


if(things.length <3 && !things[0].toUpperCase().equals("OFF")) event.sendResponse("So youre meant to *include* __both__ numbers in your argument");

switch(things[0].toLowerCase()) {

case "add":
String a;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

variables could be more specific

int b=0;
String c;
int d=0;
try {
a = things[1];
b = Integer.parseInt(a);
c = things[2];
d = Integer.parseInt(c);
event.sendResponse(b+d+"");
}
catch(Exception e){
event.sendResponse("hey i dont think thats an integer");
}

event.sendResponse("\n \nWhich one would you like to execute? [Add/Subt/Mult/Divi/OFF] Always start with the Banana keyword");
event.sendResponse("Form: [Add/Subt/Mult/Divi/OFF] [Number 1] [Number 2]");

break;

case "subt":
String aa;
int bb=0;
String cc;
int dd=0;
try {
aa = things[1];
bb = Integer.parseInt(aa);
cc = things[2];
dd = Integer.parseInt(cc);
event.sendResponse(bb-dd+"");
}
catch(Exception e){
event.sendResponse("hey i dont think thats an integer");
}

event.sendResponse("\n \nWhich one would you like to execute? [Add/Subt/Mult/Divi/OFF] Always start with the Banana keyword");
event.sendResponse("Form: [Add/Subt/Mult/Divi/OFF] [Number 1] [Number 2]");

break;

case "mult":
String aaa;
int bbb=0;
String ccc;
int ddd=0;
try {
aaa = things[1];
bbb = Integer.parseInt(aaa);
ccc = things[2];
ddd = Integer.parseInt(ccc);
event.sendResponse(bbb*ddd+"");
}
catch(Exception e){
event.sendResponse("hey i dont think thats an integer");
}

event.sendResponse("\n \nWhich one would you like to execute? [Add/Subt/Mult/Divi/OFF] Always start with the Banana keyword");
event.sendResponse("Form: [Add/Subt/Mult/Divi/OFF] [Number 1] [Number 2]");

break;

case "divi":

String aaaa;
int bbbb=0;
String cccc;
int dddd=0;
try {
aaaa = things[1];
bbbb = Integer.parseInt(aaaa);
cccc = things[2];
dddd = Integer.parseInt(cccc);
event.sendResponse(bbbb/dddd+"");
}
catch(ArithmeticException ae) {
event.sendResponse("bruh");
}
catch(Exception e){
event.sendResponse("hey i dont think thats an integer");
}

event.sendResponse("\n \nWhich one would you like to execute? [Add/Subt/Mult/Divi/OFF] Always start with the Banana keyword");
event.sendResponse("Form: [Add/Subt/Mult/Divi/OFF] [Number 1] [Number 2]");

break;
case "off":
BananaMode = false;
event.sendResponse("Got it. BananaMode is now off.");

break;
}

}
}

public void startupSequence(ReceivedMessage event) {

event.sendResponse("Loading JavaBanana Architecture... ");

try {
Thread.sleep(r.nextInt(3500)+500);

event.sendResponse("Loading... [--- ] 20%");

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this loading thing doesnt really show correctly on discord


Thread.sleep(r.nextInt(1500)+500);

event.sendResponse("Loading... [------ ] 40%");

Thread.sleep(r.nextInt(300)+100);

event.sendResponse("Loading... [-------- ] 60%");

Thread.sleep(300+r.nextInt(800));

event.sendResponse("Loading... [----------- ] 80%");

Thread.sleep(500+r.nextInt(3000));

event.sendResponse("Loading... [--------------] 100%");

Thread.sleep(500+r.nextInt(2000));

event.sendResponse("-------- \n\n");

Thread.sleep(200);

} catch (InterruptedException e) {
e.printStackTrace();
}

event.sendResponse("\n" + "JAVA BANANA SOFTWARE v1.0.0");

event.sendResponse("\nThe JavaBanana Calculator has many operations to help you with math homework. ");
event.sendResponse("\n \nWhich one would you like to execute? [Add/Subt/Mult/Divi/OFF] Always start with the Banana keyword");
event.sendResponse("Form: [Add/Subt/Mult/Divi/OFF] [Number 1] [Number 2]");
}

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

package org.jointheleague.features.student.first_feature;

import java.util.LinkedHashMap;
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({
"text",
"icon",
"code"
})
@Generated("jsonschema2pojo")
public class Condition {

@JsonProperty("text")
private String text;
@JsonProperty("icon")
private String icon;
@JsonProperty("code")
private Integer code;
@JsonIgnore
private Map<String, Object> additionalProperties = new LinkedHashMap<String, Object>();

@JsonProperty("text")
public String getText() {
return text;
}

@JsonProperty("text")
public void setText(String text) {
this.text = text;
}

@JsonProperty("icon")
public String getIcon() {
return icon;
}

@JsonProperty("icon")
public void setIcon(String icon) {
this.icon = icon;
}

@JsonProperty("code")
public Integer getCode() {
return code;
}

@JsonProperty("code")
public void setCode(Integer code) {
this.code = code;
}

@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(Condition.class.getName()).append('@').append(Integer.toHexString(System.identityHashCode(this))).append('[');
sb.append("text");
sb.append('=');
sb.append(((this.text == null)?"<null>":this.text));
sb.append(',');
sb.append("icon");
sb.append('=');
sb.append(((this.icon == null)?"<null>":this.icon));
sb.append(',');
sb.append("code");
sb.append('=');
sb.append(((this.code == null)?"<null>":this.code));
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