Merge pull request #3 from BigBotNetwork/greg-dev
Command stuff and Ban/Test Command
This commit is contained in:
commit
29de913971
12 changed files with 214 additions and 4 deletions
0
src/main/Translations/DE_TRANSLATION.properties
Normal file
0
src/main/Translations/DE_TRANSLATION.properties
Normal file
0
src/main/Translations/EN_TRANSLATION.properties
Normal file
0
src/main/Translations/EN_TRANSLATION.properties
Normal file
|
|
@ -1,5 +1,9 @@
|
|||
package com.bbn.hadder;
|
||||
|
||||
import com.bbn.hadder.commands.Command;
|
||||
import com.bbn.hadder.commands.TestCommand;
|
||||
import com.bbn.hadder.commands.moderation.BanCommand;
|
||||
import com.bbn.hadder.core.CommandHandler;
|
||||
import com.bbn.hadder.listener.*;
|
||||
import net.dv8tion.jda.api.entities.Activity;
|
||||
import net.dv8tion.jda.api.sharding.DefaultShardManagerBuilder;
|
||||
|
|
@ -35,7 +39,13 @@ public class Hadder {
|
|||
builder.setActivity(Activity.streaming("auf dem BigBotNetwork", "https://twitch.tv/BigBotNetwork"));
|
||||
builder.setToken(config.getString("Token"));
|
||||
|
||||
builder.addEventListeners(new MentionListener(), new PrivateMessageListener());
|
||||
CommandHandler.cmdlist.put("test", new TestCommand());
|
||||
CommandHandler.cmdlist.put("ban", new BanCommand());
|
||||
|
||||
builder.addEventListeners(
|
||||
new MentionListener(),
|
||||
new PrivateMessageListener(),
|
||||
new CommandListener());
|
||||
|
||||
try {
|
||||
ShardManager shardManager = builder.build();
|
||||
|
|
|
|||
11
src/main/java/com/bbn/hadder/commands/Command.java
Normal file
11
src/main/java/com/bbn/hadder/commands/Command.java
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
package com.bbn.hadder.commands;
|
||||
|
||||
/*
|
||||
* @author Skidder / GregTCLTK
|
||||
*/
|
||||
|
||||
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
||||
|
||||
public interface Command {
|
||||
void executed(MessageReceivedEvent event);
|
||||
}
|
||||
14
src/main/java/com/bbn/hadder/commands/TestCommand.java
Normal file
14
src/main/java/com/bbn/hadder/commands/TestCommand.java
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
package com.bbn.hadder.commands;
|
||||
|
||||
/*
|
||||
* @author Skidder / GregTCLTK
|
||||
*/
|
||||
|
||||
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
||||
|
||||
public class TestCommand implements Command {
|
||||
|
||||
public void executed(MessageReceivedEvent event) {
|
||||
event.getTextChannel().sendMessage("TEST my friends").queue();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
package com.bbn.hadder.commands.moderation;
|
||||
|
||||
/*
|
||||
* @author Skidder / GregTCLTK
|
||||
*/
|
||||
|
||||
import com.bbn.hadder.commands.Command;
|
||||
import com.bbn.hadder.utils.MessageEditor;
|
||||
import net.dv8tion.jda.api.EmbedBuilder;
|
||||
import net.dv8tion.jda.api.Permission;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
||||
|
||||
public class BanCommand implements Command {
|
||||
|
||||
public void executed(MessageReceivedEvent event) {
|
||||
if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.BAN_MEMBERS) || event.getGuild().getOwner().getId().equals(event.getAuthor().getId())) {
|
||||
if (event.getMessage().getMentionedMembers().size() == 1) {
|
||||
Member victim = event.getMessage().getMentionedMembers().get(0);
|
||||
if (!event.getAuthor().getId().equals(victim.getId())) {
|
||||
if (event.getGuild().getSelfMember().canInteract(victim)) {
|
||||
event.getGuild().ban(victim, 0, "Banned by " + event.getAuthor().getAsTag()).queue();
|
||||
EmbedBuilder builder = new EmbedBuilder();
|
||||
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, builder).setTitle("✅ Successfully banned ✅").setDescription("I successfully baned " + victim.getUser().getName() + ".").build()).queue();
|
||||
} else {
|
||||
EmbedBuilder builder = new EmbedBuilder();
|
||||
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.NO_SELF_PERMISSION, builder).build()).queue();
|
||||
}
|
||||
} else {
|
||||
EmbedBuilder builder = new EmbedBuilder();
|
||||
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setTitle("Not possible").setDescription("You can't ban yourself.").build()).queue();
|
||||
}
|
||||
} else if (event.getMessage().getMentionedMembers().size() == 0) {
|
||||
EmbedBuilder builder = new EmbedBuilder();
|
||||
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setDescription("You have to mention a user!").build()).queue();
|
||||
} else {
|
||||
EmbedBuilder builder = new EmbedBuilder();
|
||||
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setDescription("We will be adding multiple banning within a command in the future.").build()).queue();
|
||||
}
|
||||
|
||||
} else {
|
||||
EmbedBuilder builder = new EmbedBuilder();
|
||||
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.NO_PERMISSION, builder).build()).queue();
|
||||
}
|
||||
}
|
||||
}
|
||||
21
src/main/java/com/bbn/hadder/core/CommandHandler.java
Normal file
21
src/main/java/com/bbn/hadder/core/CommandHandler.java
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
package com.bbn.hadder.core;
|
||||
|
||||
/*
|
||||
* @author Skidder / GregTCLTK
|
||||
*/
|
||||
|
||||
import com.bbn.hadder.commands.Command;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
public class CommandHandler {
|
||||
|
||||
public static HashMap<String, Command> cmdlist = new HashMap<>();
|
||||
|
||||
public static void handleCommand(CommandParser.commandContainer cmd) {
|
||||
if(cmdlist.containsKey(cmd.invoke)) {
|
||||
cmdlist.get(cmd.invoke).executed(cmd.event);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
45
src/main/java/com/bbn/hadder/core/CommandParser.java
Normal file
45
src/main/java/com/bbn/hadder/core/CommandParser.java
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
package com.bbn.hadder.core;
|
||||
|
||||
/*
|
||||
* @author Skidder / GregTCLTK
|
||||
*/
|
||||
|
||||
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
|
||||
public class CommandParser {
|
||||
public static commandContainer parser(String raw, MessageReceivedEvent event) {
|
||||
|
||||
String cmd = raw.replaceFirst("h.", "");
|
||||
String[] cmdsplit = cmd.split(" ");
|
||||
String invoke = cmdsplit[0];
|
||||
ArrayList<String> split = new ArrayList<>();
|
||||
Collections.addAll(split, cmdsplit);
|
||||
String[] args = new String[split.size() - 1];
|
||||
split.subList(1, split.size()).toArray(args);
|
||||
|
||||
return new commandContainer(raw, cmd, cmdsplit, invoke, args, event);
|
||||
}
|
||||
|
||||
static class commandContainer {
|
||||
|
||||
final String raw;
|
||||
final String cmd;
|
||||
final String[] cmdsplit;
|
||||
final String invoke;
|
||||
final String[] args;
|
||||
final MessageReceivedEvent event;
|
||||
|
||||
commandContainer(String rw, String cmd, String[] cmdsplit, String invoke, String[] args, MessageReceivedEvent event) {
|
||||
this.raw = rw;
|
||||
this.cmd = cmd;
|
||||
this.cmdsplit = cmdsplit;
|
||||
this.invoke = invoke;
|
||||
this.args = args;
|
||||
this.event = event;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
23
src/main/java/com/bbn/hadder/listener/BotListListener.java
Normal file
23
src/main/java/com/bbn/hadder/listener/BotListListener.java
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
package com.bbn.hadder.listener;
|
||||
|
||||
/*
|
||||
* @author Skidder / GregTCLTK
|
||||
*/
|
||||
|
||||
import net.dv8tion.jda.api.events.guild.GuildJoinEvent;
|
||||
import net.dv8tion.jda.api.events.guild.GuildLeaveEvent;
|
||||
import net.dv8tion.jda.api.hooks.ListenerAdapter;
|
||||
|
||||
public class BotListListener extends ListenerAdapter {
|
||||
|
||||
public void onGuildJoin(GuildJoinEvent event) {
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void onGuildLeave(GuildLeaveEvent event) {
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
30
src/main/java/com/bbn/hadder/listener/CommandListener.java
Normal file
30
src/main/java/com/bbn/hadder/listener/CommandListener.java
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
package com.bbn.hadder.listener;
|
||||
|
||||
import com.bbn.hadder.core.CommandHandler;
|
||||
import com.bbn.hadder.core.CommandParser;
|
||||
import net.dv8tion.jda.api.Permission;
|
||||
import net.dv8tion.jda.api.entities.ChannelType;
|
||||
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
||||
import net.dv8tion.jda.api.hooks.ListenerAdapter;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
/*
|
||||
* @author Skidder / GregTCLTK
|
||||
*/
|
||||
|
||||
public class CommandListener extends ListenerAdapter {
|
||||
|
||||
@Override
|
||||
public void onMessageReceived(@Nonnull MessageReceivedEvent event) {
|
||||
if (event.isFromType(ChannelType.TEXT)) {
|
||||
if (event.getMessage().getContentRaw().startsWith("h.")) {
|
||||
if (!event.getAuthor().isBot()) {
|
||||
CommandHandler.handleCommand(CommandParser.parser(event.getMessage().getContentRaw(), event));
|
||||
} else if (event.getGuild().getSelfMember().hasPermission(Permission.MESSAGE_ADD_REACTION)) {
|
||||
event.getMessage().addReaction("🙅").queue();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -13,7 +13,7 @@ public class MentionListener extends ListenerAdapter {
|
|||
@Override
|
||||
public void onMessageReceived(@Nonnull MessageReceivedEvent event) {
|
||||
if (event.isFromType(ChannelType.TEXT)) {
|
||||
if (event.getMessage().getMentionedMembers().contains(event.getGuild().getSelfMember())) {
|
||||
if (event.getMessage().getContentRaw().equals("<@!" + event.getJDA().getSelfUser().getId() + ">")) {
|
||||
EmbedBuilder builder = new EmbedBuilder()
|
||||
.setTitle("Hello I'm Hadder.")
|
||||
.setAuthor(event.getJDA().getSelfUser().getName(), event.getJDA().getSelfUser().getAvatarUrl(), event.getJDA().getSelfUser().getAvatarUrl())
|
||||
|
|
|
|||
|
|
@ -17,7 +17,15 @@ public class MessageEditor {
|
|||
break;
|
||||
|
||||
case WARNING:
|
||||
embedBuilder.setColor(Color.ORANGE);
|
||||
embedBuilder.setTitle("⚠ Warning ⚠").setColor(Color.ORANGE);
|
||||
break;
|
||||
|
||||
case NO_PERMISSION:
|
||||
embedBuilder.setTitle("⛔ No Permission ⛔").setDescription("You are not authorized to execute this command!").setColor(Color.RED);
|
||||
break;
|
||||
|
||||
case NO_SELF_PERMISSION:
|
||||
embedBuilder.setTitle("⛔ No Permission ⛔").setDescription("Unfortunately, I do not have the required ban rights to perform this action").setColor(Color.RED);
|
||||
break;
|
||||
}
|
||||
return embedBuilder;
|
||||
|
|
@ -26,7 +34,9 @@ public class MessageEditor {
|
|||
public enum Messagetype {
|
||||
ERROR,
|
||||
WARNING,
|
||||
INFO
|
||||
INFO,
|
||||
NO_PERMISSION,
|
||||
NO_SELF_PERMISSION
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue