summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler Murphy <tylermurphy534@gmail.com>2022-10-05 18:56:44 -0400
committerTyler Murphy <tylermurphy534@gmail.com>2022-10-05 18:56:44 -0400
commitb4495281f19dfc7f13bd0a1d5344bd7e73a5f03f (patch)
tree79cd4437d92c9dd200346b5c8e0958e6103a7bd8
parentakinator (diff)
downloadken-b4495281f19dfc7f13bd0a1d5344bd7e73a5f03f.tar.gz
ken-b4495281f19dfc7f13bd0a1d5344bd7e73a5f03f.tar.bz2
ken-b4495281f19dfc7f13bd0a1d5344bd7e73a5f03f.zip
finish akinator
Diffstat (limited to '')
-rw-r--r--src/main/java/net/tylermurphy/ken/command/Responder.java5
-rw-r--r--src/main/java/net/tylermurphy/ken/command/game/Akinator.java33
2 files changed, 25 insertions, 13 deletions
diff --git a/src/main/java/net/tylermurphy/ken/command/Responder.java b/src/main/java/net/tylermurphy/ken/command/Responder.java
index c8d3967..259b41a 100644
--- a/src/main/java/net/tylermurphy/ken/command/Responder.java
+++ b/src/main/java/net/tylermurphy/ken/command/Responder.java
@@ -296,11 +296,14 @@ public class Responder extends ListenerAdapter {
} else {
hook.editOriginal(response.getMessage()).queue();
}
- if(response.hasSelectMenu() || response.hasButtons()) {
+ if((response.hasSelectMenu() || response.hasButtons() && !response.hasNoComponents())) {
List<LayoutComponent> components = new ArrayList<>();
if(response.hasButtons()) components.add(ActionRow.of(response.getButtons()));
if(response.hasSelectMenu()) components.add(ActionRow.of(response.getSelectMenu()));
hook.editOriginalComponents(components).queue();
+ } else if(response.hasNoComponents()) {
+ List<LayoutComponent> components = new ArrayList<>();
+ hook.editOriginalComponents(components).queue();
}
}
}
diff --git a/src/main/java/net/tylermurphy/ken/command/game/Akinator.java b/src/main/java/net/tylermurphy/ken/command/game/Akinator.java
index b86d99b..cb1bd6d 100644
--- a/src/main/java/net/tylermurphy/ken/command/game/Akinator.java
+++ b/src/main/java/net/tylermurphy/ken/command/game/Akinator.java
@@ -16,6 +16,7 @@ import net.tylermurphy.ken.command.Response;
import net.tylermurphy.ken.command.annotation.ButtonCallback;
import net.tylermurphy.ken.command.annotation.Command;
import net.tylermurphy.ken.util.Checks;
+import org.json.JSONException;
import java.awt.*;
import java.util.*;
@@ -162,18 +163,25 @@ class AkinatorGame {
}
private Response respondQuestion(String label) {
- switch (label) {
- case "yes":
- wrapper.answer(Akiwrapper.Answer.YES);
- break;
- case "no":
- wrapper.answer(Akiwrapper.Answer.NO);
- break;
- case "idk":
- wrapper.answer(Akiwrapper.Answer.DONT_KNOW);
- break;
- case "back":
- return back();
+ try {
+ switch (label) {
+ case "yes":
+ wrapper.answer(Akiwrapper.Answer.YES);
+ break;
+ case "no":
+ wrapper.answer(Akiwrapper.Answer.NO);
+ break;
+ case "idk":
+ wrapper.answer(Akiwrapper.Answer.DONT_KNOW);
+ break;
+ case "back":
+ return back();
+ }
+ } catch (JSONException e) {
+ // JSONEXception when aki cant make more questions
+ container.games.remove(gameId);
+ container.gameMappings.remove(userId);
+ return sendWin();
}
return next();
}
@@ -184,6 +192,7 @@ class AkinatorGame {
if(guess.isPresent()) {
status = AkiStatus.GUESS;
sequence.add(guess.get());
+ guesses.add(guess.get().getId());
attemptedGuesses++;
return sendGuess(guess.get());
} else {