mirror of
https://github.com/Noratrieb/killua-bot.git
synced 2026-01-14 15:15:01 +01:00
trivia good
This commit is contained in:
parent
381081fc81
commit
8aaa8702fb
6 changed files with 114 additions and 62 deletions
|
|
@ -1,9 +1,13 @@
|
||||||
package com.github.nilstrieb.commands.fun;
|
package com.github.nilstrieb.commands.fun;
|
||||||
|
|
||||||
|
import com.github.nilstrieb.cofig.Config;
|
||||||
import com.github.nilstrieb.commands.handler.Command;
|
import com.github.nilstrieb.commands.handler.Command;
|
||||||
import com.github.nilstrieb.sections.ChannelMessageEventManager;
|
import com.github.nilstrieb.sections.ChannelMessageEventManager;
|
||||||
import com.github.nilstrieb.sections.Section;
|
import com.github.nilstrieb.sections.Section;
|
||||||
|
import com.github.nilstrieb.util.trivia.Arc;
|
||||||
|
import com.github.nilstrieb.util.trivia.TriviaQuestion;
|
||||||
import com.github.nilstrieb.util.trivia.TriviaQuestionData;
|
import com.github.nilstrieb.util.trivia.TriviaQuestionData;
|
||||||
|
import net.dv8tion.jda.api.EmbedBuilder;
|
||||||
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
||||||
|
|
||||||
public class TriviaCommand extends Command {
|
public class TriviaCommand extends Command {
|
||||||
|
|
@ -19,26 +23,68 @@ public class TriviaCommand extends Command {
|
||||||
3 Yorknew City arc
|
3 Yorknew City arc
|
||||||
4 Greed Island arc
|
4 Greed Island arc
|
||||||
5 Chimera Ant arc
|
5 Chimera Ant arc
|
||||||
6 Election arc""
|
6 Election arc
|
||||||
""");
|
""");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void called(MessageReceivedEvent event, String args) {
|
public void called(MessageReceivedEvent event, String args) {
|
||||||
int arc = 6;
|
int arc = 0;
|
||||||
try {
|
try {
|
||||||
arc = Integer.parseInt(args);
|
arc = Integer.parseInt(args);
|
||||||
} catch (NumberFormatException ignored) {
|
} catch (NumberFormatException ignored) {
|
||||||
}
|
}
|
||||||
|
|
||||||
reply(event, TriviaQuestionData.getQuestion(arc).getQuestion());
|
TriviaQuestion question = TriviaQuestionData.getQuestion(arc);
|
||||||
|
StringBuilder answers = new StringBuilder();
|
||||||
|
for (int i = 0; i < question.getAnswers().length; i++) {
|
||||||
|
answers.append(i).append(". ").append(question.getAnswers()[i]).append("\n");
|
||||||
|
}
|
||||||
|
EmbedBuilder builder = Config.getDefaultEmbed(event)
|
||||||
|
.addField(question.getQuestion(), answers.toString(), false);
|
||||||
|
|
||||||
new Section(event.getTextChannel().getIdLong(), 414755070161453076L) {
|
reply(event, builder.build());
|
||||||
@Override
|
new TriviaSection(event.getTextChannel().getIdLong(), event.getAuthor().getIdLong(), question);
|
||||||
public void messageReceived(MessageReceivedEvent event) {
|
}
|
||||||
event.getTextChannel().sendMessage("hallo ich bin killua").queue();
|
|
||||||
ChannelMessageEventManager.removeListener(this);
|
|
||||||
|
private static class TriviaSection extends Section {
|
||||||
|
private final TriviaQuestion question;
|
||||||
|
|
||||||
|
public TriviaSection(long textChannelID, long userID, TriviaQuestion question) {
|
||||||
|
super(textChannelID, userID);
|
||||||
|
this.question = question;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void messageReceived(MessageReceivedEvent event) {
|
||||||
|
String msg = event.getMessage().getContentRaw().toLowerCase();
|
||||||
|
String answer;
|
||||||
|
|
||||||
|
String correctAnswer = question.getAnswers()[question.getCorrectAnswer()];
|
||||||
|
if (correctAnswer.equals(msg) || msg.equals(question.getCorrectAnswer() + ".")) {
|
||||||
|
answer = "Correct!";
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
if (Integer.parseInt(msg) == question.getCorrectAnswer()) {
|
||||||
|
answer = "Correct!";
|
||||||
|
} else {
|
||||||
|
answer = "False!";
|
||||||
|
}
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
answer = "False!";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
EmbedBuilder builder = Config.getDefaultEmbed(event)
|
||||||
|
.setTitle(answer)
|
||||||
|
.setThumbnail(null)
|
||||||
|
.addField("Correct answer", correctAnswer, false);
|
||||||
|
if (question.getArc() == Arc.EXAM) {
|
||||||
|
builder.setFooter("Tip: Use " + Config.PREFIX + "help trivia for more questions.");
|
||||||
|
}
|
||||||
|
reply(event, builder.build());
|
||||||
|
ChannelMessageEventManager.removeListener(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
||||||
import java.util.Timer;
|
import java.util.Timer;
|
||||||
import java.util.TimerTask;
|
import java.util.TimerTask;
|
||||||
|
|
||||||
public abstract class Command {
|
public abstract class Command extends MessageSender{
|
||||||
private final String name;
|
private final String name;
|
||||||
private final String description;
|
private final String description;
|
||||||
private final String exampleUsage;
|
private final String exampleUsage;
|
||||||
|
|
@ -75,47 +75,6 @@ public abstract class Command {
|
||||||
*/
|
*/
|
||||||
public abstract void called(MessageReceivedEvent event, String args);
|
public abstract void called(MessageReceivedEvent event, String args);
|
||||||
|
|
||||||
protected void reply(MessageReceivedEvent event, String message) {
|
|
||||||
if (!message.equals("")) {
|
|
||||||
event.getTextChannel().sendMessage(message).queue();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
protected void reply(MessageReceivedEvent event, MessageEmbed embed) {
|
|
||||||
if (!embed.isEmpty()) {
|
|
||||||
event.getTextChannel().sendMessage(embed).queue();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void reply(MessageReceivedEvent event, MessageEmbed... embeds) {
|
|
||||||
if (!embeds[0].isEmpty()) {
|
|
||||||
event.getTextChannel().sendMessage(embeds[0]).queue(message -> new MultiPageEmbed(message, embeds));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void reply(MessageReceivedEvent event, String emote1, String emote2, MessageEmbed... embeds) {
|
|
||||||
if (!embeds[0].isEmpty()) {
|
|
||||||
event.getTextChannel().sendMessage(embeds[0]).queue(message -> new MultiPageEmbed(message, emote1, emote2, embeds));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void deleteMsg(MessageReceivedEvent event, long delay) {
|
|
||||||
new Timer().schedule(
|
|
||||||
new TimerTask() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
event.getMessage().delete().queue();
|
|
||||||
}
|
|
||||||
}, delay
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void deleteMsg(MessageReceivedEvent event) {
|
|
||||||
event.getMessage().delete().queue();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
package com.github.nilstrieb.commands.handler;
|
||||||
|
|
||||||
|
import com.github.nilstrieb.util.MultiPageEmbed;
|
||||||
|
import net.dv8tion.jda.api.entities.MessageEmbed;
|
||||||
|
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
||||||
|
|
||||||
|
import java.util.Timer;
|
||||||
|
import java.util.TimerTask;
|
||||||
|
|
||||||
|
public abstract class MessageSender {
|
||||||
|
|
||||||
|
protected void reply(MessageReceivedEvent event, String message) {
|
||||||
|
if (!message.equals("")) {
|
||||||
|
event.getTextChannel().sendMessage(message).queue();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void reply(MessageReceivedEvent event, MessageEmbed embed) {
|
||||||
|
if (!embed.isEmpty()) {
|
||||||
|
event.getTextChannel().sendMessage(embed).queue();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void reply(MessageReceivedEvent event, MessageEmbed... embeds) {
|
||||||
|
if (!embeds[0].isEmpty()) {
|
||||||
|
event.getTextChannel().sendMessage(embeds[0]).queue(message -> new MultiPageEmbed(message, embeds));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void reply(MessageReceivedEvent event, String emote1, String emote2, MessageEmbed... embeds) {
|
||||||
|
if (!embeds[0].isEmpty()) {
|
||||||
|
event.getTextChannel().sendMessage(embeds[0]).queue(message -> new MultiPageEmbed(message, emote1, emote2, embeds));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void deleteMsg(MessageReceivedEvent event, long delay) {
|
||||||
|
new Timer().schedule(
|
||||||
|
new TimerTask() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
event.getMessage().delete().queue();
|
||||||
|
}
|
||||||
|
}, delay
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void deleteMsg(MessageReceivedEvent event) {
|
||||||
|
event.getMessage().delete().queue();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -10,7 +10,8 @@ public class CommandListener extends ListenerAdapter {
|
||||||
@Override
|
@Override
|
||||||
public void onMessageReceived(@NotNull MessageReceivedEvent event) {
|
public void onMessageReceived(@NotNull MessageReceivedEvent event) {
|
||||||
if (!event.getAuthor().isBot()) {
|
if (!event.getAuthor().isBot()) {
|
||||||
System.out.println(ConsoleColors.CYAN + "[CListener] Received message: '" + event.getMessage().getContentRaw() + "'" + ConsoleColors.RESET);
|
System.out.println(ConsoleColors.CYAN + "[CListener] Received message: '" +
|
||||||
|
event.getMessage().getContentRaw() + "' by " + event.getAuthor().getAsTag() + ConsoleColors.RESET);
|
||||||
CommandHandler.call(event);
|
CommandHandler.call(event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,25 +1,21 @@
|
||||||
package com.github.nilstrieb.sections;
|
package com.github.nilstrieb.sections;
|
||||||
|
|
||||||
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
import com.github.nilstrieb.commands.handler.MessageSender;
|
||||||
|
|
||||||
import java.util.HashMap;
|
public abstract class Section extends MessageSender implements ChannelListener{
|
||||||
|
private final long textChannelID;
|
||||||
public abstract class Section implements ChannelListener{
|
private final long userID;
|
||||||
private long textChannelID;
|
|
||||||
private long userID;
|
|
||||||
private boolean multiUser;
|
|
||||||
|
|
||||||
public Section(long textChannelID, long userID) {
|
public Section(long textChannelID, long userID) {
|
||||||
this.textChannelID = textChannelID;
|
this.textChannelID = textChannelID;
|
||||||
this.userID = userID;
|
this.userID = userID;
|
||||||
this.multiUser = false;
|
|
||||||
|
|
||||||
ChannelMessageEventManager.addListener(this, textChannelID);
|
ChannelMessageEventManager.addListener(this, textChannelID);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Section(long textChannelID) {
|
public Section(long textChannelID) {
|
||||||
this.textChannelID = textChannelID;
|
this.textChannelID = textChannelID;
|
||||||
this.multiUser = true;
|
this.userID = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ public class TriviaQuestionData {
|
||||||
"He didn't die on Greed Island", "Hisoka killed him with a card to the neck", "He lost too muich blood when Genthru blew his arm of", "He killed himself after Killuas death"));
|
"He didn't die on Greed Island", "Hisoka killed him with a card to the neck", "He lost too muich blood when Genthru blew his arm of", "He killed himself after Killuas death"));
|
||||||
add(new TriviaQuestion("How many doors are there at the Testing Gate of the Zoldyck Family?", 0, Arc.ZOLDYCK_FAMILY,
|
add(new TriviaQuestion("How many doors are there at the Testing Gate of the Zoldyck Family?", 0, Arc.ZOLDYCK_FAMILY,
|
||||||
"7", "5", "12", "8"));
|
"7", "5", "12", "8"));
|
||||||
add(new TriviaQuestion("What was Gon's aim after Killua left him alone playing with the Chairman Netero", 1, Arc.EXAM,
|
add(new TriviaQuestion("What was Gon's aim after Killua left him alone playing with the Chairman Netero?", 1, Arc.EXAM,
|
||||||
"Get the ball", "Make Netero use his right hand", "Make Netero use his left leg", "Let Netero drop the ball"));
|
"Get the ball", "Make Netero use his right hand", "Make Netero use his left leg", "Let Netero drop the ball"));
|
||||||
add(new TriviaQuestion("What did Tonpa mix into the drink?", 2, Arc.EXAM,
|
add(new TriviaQuestion("What did Tonpa mix into the drink?", 2, Arc.EXAM,
|
||||||
"Sleeping pills", "Headache tabletsschla", "Laxative", "Rat poison"));
|
"Sleeping pills", "Headache tabletsschla", "Laxative", "Rat poison"));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue