Skip to content

Commit 6b9c16b

Browse files
committed
Update POM, fix doom writer not accessing bot.properties properly. Add GM's ID in bot.properties instead of in code.
1 parent 4be57de commit 6b9c16b

File tree

3 files changed

+87
-34
lines changed

3 files changed

+87
-34
lines changed

pom.xml

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,35 @@
110110
<artifactId>sdcf4j-javacord</artifactId>
111111
<version>v1.0.10</version>
112112
</dependency>
113-
113+
<dependency>
114+
<groupId>org.junit.jupiter</groupId>
115+
<artifactId>junit-jupiter-api</artifactId>
116+
<version>5.0.3</version>
117+
<scope>test</scope>
118+
</dependency>
119+
<dependency>
120+
<groupId>org.junit.jupiter</groupId>
121+
<artifactId>junit-jupiter-api</artifactId>
122+
<version>5.0.3</version>
123+
<scope>test</scope>
124+
</dependency>
125+
<dependency>
126+
<groupId>org.junit.platform</groupId>
127+
<artifactId>junit-platform-commons</artifactId>
128+
<version>1.3.0</version>
129+
<scope>compile</scope>
130+
</dependency>
131+
<dependency>
132+
<groupId>org.junit.platform</groupId>
133+
<artifactId>junit-platform-commons</artifactId>
134+
<version>1.3.0</version>
135+
<scope>compile</scope>
136+
</dependency>
137+
<dependency>
138+
<groupId>org.apache.commons</groupId>
139+
<artifactId>commons-lang3</artifactId>
140+
<version>3.4</version>
141+
</dependency>
114142

115143

116144
</dependencies>

src/main/java/logic/CommandHandler.java

Lines changed: 31 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,12 @@
88
import org.javacord.api.entity.message.embed.EmbedBuilder;
99
import sheets.SheetsQuickstart;
1010

11+
import java.io.FileInputStream;
1112
import java.io.IOException;
1213
import java.security.GeneralSecurityException;
1314
import java.util.List;
15+
import java.util.Properties;
16+
import java.util.concurrent.ExecutionException;
1417

1518
public class CommandHandler {
1619

@@ -93,31 +96,38 @@ private EmbedBuilder commandSelector(String message) {
9396
case "~r":
9497
case "~roll":
9598
//Special case for GM
96-
if (author.equals(api.getUserById("73478860120797184"))){
97-
if (commandContainsPlotDice(message)){
98-
DoomWriter writer = new DoomWriter();
99-
writer.addDoom(getPlotPointsSpent(message) * -1);
100-
writer.generateDoomEmbed();
99+
try {
100+
Properties prop = new Properties();
101+
prop.load(new FileInputStream("resources/bot.properties"));
102+
if (author.getIdAsString().equals(prop.getProperty("gameMaster"))){
103+
if (commandContainsPlotDice(message)){
104+
DoomWriter writer = new DoomWriter();
105+
writer.addDoom(getPlotPointsSpent(message) * -1);
106+
EmbedBuilder doomEmbed = writer.generateDoomEmbed();
107+
channel.sendMessage(doomEmbed);
108+
}
101109
}
102-
}
103-
else {
104-
message = handleCommand();
105-
assert message != null;
106-
DiceRoller diceRoller = new DiceRoller(message);
107-
deductPlotPoints(message);
108-
109-
new MessageBuilder()
110-
.setEmbed(diceRoller.generateResults(author))
111-
.send(channel);
112-
EmbedBuilder doomEmbed = diceRoller.addPlotPoints(author, api);
113-
if (doomEmbed != null) {
114-
new MessageBuilder()
115-
.setEmbed(doomEmbed)
116-
.send(channel);
110+
else {
111+
message = handleCommand();
112+
assert message != null;
113+
DiceRoller diceRoller = new DiceRoller(message);
114+
deductPlotPoints(message);
115+
117116
new MessageBuilder()
118-
.setEmbed(diceRoller.addDoom(diceRoller.getDoom()))
117+
.setEmbed(diceRoller.generateResults(author))
119118
.send(channel);
119+
EmbedBuilder doomEmbed = diceRoller.addPlotPoints(author, api);
120+
if (doomEmbed != null) {
121+
new MessageBuilder()
122+
.setEmbed(doomEmbed)
123+
.send(channel);
124+
new MessageBuilder()
125+
.setEmbed(diceRoller.addDoom(diceRoller.getDoom()))
126+
.send(channel);
127+
}
120128
}
129+
} catch (IOException e) {
130+
e.printStackTrace();
121131
}
122132

123133
break;

src/main/java/logic/DoomWriter.java

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@ public class DoomWriter {
1414

1515
public DoomWriter() {
1616
prop = new Properties();
17+
try {
18+
prop.load(new FileInputStream("resources/bot.properties"));
19+
} catch (IOException e) {
20+
e.printStackTrace();
21+
}
1722
}
1823

1924
public EmbedBuilder addDoom(int doomVal) {
@@ -28,26 +33,36 @@ public EmbedBuilder generateDoomEmbed() {
2833
return new EmbedBuilder()
2934
.setTitle("Doom!")
3035
.setDescription(String.valueOf(getDoom()))
31-
.setColor(new Color(doomVal, doomVal, doomVal));
36+
.setColor(new Color(Integer.max(doomVal, 255)));
3237
}
3338

3439
public int getDoom() {
35-
try {
36-
prop.load(new FileInputStream("resources/bot.properties"));
37-
} catch (IOException e) {
38-
e.printStackTrace();
39-
}
4040
return Integer.parseInt(prop.getProperty("doom"));
4141
}
4242

43+
/**
44+
* Sets the doom on the properties file. If doom points would drop below 0, return an error.
45+
* @param newDoom
46+
* @return The embed with a new doom value
47+
*/
4348
public EmbedBuilder setDoom(int newDoom) {
44-
prop.setProperty("doom", String.valueOf(newDoom));
45-
try {
46-
prop.store(new FileOutputStream("resources/bot.properties"), null);
47-
} catch (IOException e) {
48-
e.printStackTrace();
49+
if (newDoom < 0){
50+
return generateInvalidDoomEmbed();
4951
}
50-
return generateDoomEmbed();
52+
else {
53+
prop.setProperty("doom", String.valueOf(newDoom));
54+
try {
55+
prop.store(new FileOutputStream("resources/bot.properties"), null);
56+
} catch (IOException e) {
57+
e.printStackTrace();
58+
}
59+
return generateDoomEmbed();
60+
}
61+
}
62+
63+
private EmbedBuilder generateInvalidDoomEmbed() {
64+
return new EmbedBuilder()
65+
.setTitle("Not enough doom points!");
5166
}
5267

5368
}

0 commit comments

Comments
 (0)