Merge pull request #98 from BigBotNetwork/greg-dev

Greg dev
This commit is contained in:
Skidder 2019-11-24 11:03:23 -08:00 committed by GitHub
commit 07c26845ec
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 314 additions and 109 deletions

View file

@ -62,6 +62,11 @@
<artifactId>github-api</artifactId>
<version>1.99</version>
</dependency>
<dependency>
<groupId>com.sedmelluq</groupId>
<artifactId>lavaplayer</artifactId>
<version>1.3.27</version>
</dependency>
</dependencies>

View file

@ -7,6 +7,7 @@ import com.bbn.hadder.commands.nsfw.*;
import com.bbn.hadder.commands.owner.*;
import com.bbn.hadder.commands.fun.*;
import com.bbn.hadder.commands.settings.*;
import com.bbn.hadder.commands.music.*;
import com.bbn.hadder.core.*;
import com.bbn.hadder.listener.*;
import net.dv8tion.jda.api.entities.Activity;
@ -18,7 +19,7 @@ import java.util.List;
public class Hadder {
public static ShardManager shardManager;
public static ShardManager shardManager;
public static void main(String[] args) {
startBot();
@ -72,6 +73,9 @@ public class Hadder {
new FeedbackCommand(),
new AvatarCommand(),
new EvalCommand(),
new JoinCommand(),
new LeaveCommand(),
new GuildLeaveCommand(),
new LinkCommand()), config, helpCommand);
builder.addEventListeners(
@ -83,7 +87,6 @@ public class Hadder {
new LinkListener(rethink),
new RulesListener(rethink));
try {
shardManager = builder.build();
} catch (LoginException e) {

View file

@ -22,136 +22,150 @@ public class RulesCommand implements Command {
if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_ROLES)) {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("Set up rules")
.setDescription("Please specify the channel on which I should send the rules. Your message should look like: #rules."))
.setDescription("Welcome to the Hadder rules setup. Please mention the channel in which I should send the rules. Your message should look like: #rules or #verify."))
.build()).queue();
new EventWaiter().newOnMessageEventWaiter(event1 -> {
if (event1.getMessage().getMentionedChannels().size() == 1) {
TextChannel channel = event1.getMessage().getMentionedChannels().get(0);
if (channel.getGuild().getId().equals(event1.getGuild().getId())) {
if (event.getGuild().getSelfMember().hasPermission(channel, Permission.MESSAGE_WRITE)) {
event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("Rules")
.setDescription("The channel was successfully set to " + channel.getName() + ". Please send me the rules now."))
.build()).queue();
new EventWaiter().newOnMessageEventWaiter(event2 -> {
String message = event2.getMessage().getContentDisplay();
event2.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("Role to assign"))
.setDescription("The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules.")
try {
TextChannel channel = event1.getMessage().getMentionedChannels().get(0);
if (channel.getGuild().getId().equals(event1.getGuild().getId())) {
if (event.getGuild().getSelfMember().hasPermission(channel, Permission.MESSAGE_WRITE)) {
event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("Rules")
.setDescription("The channel was successfully set to " + channel.getName() + ". Please send me the rules now."))
.build()).queue();
new EventWaiter().newOnMessageEventWaiter(event3 -> {
if (event.getMessage().getMentionedRoles().size() == 1) {
Role role = event.getMessage().getMentionedRoles().get(0);
if (event3.getGuild().getSelfMember().canInteract(role)) {
event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("The role has been successfully set to " + role.getName() + "."))
.build()).queue();
Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("Rules"))
.setDescription(message)
.build()).complete();
rules.addReaction("").queue();
rules.addReaction("").queue();
event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId());
new EventWaiter().newOnMessageEventWaiter(event2 -> {
String message = event2.getMessage().getContentDisplay();
event2.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("Role to assign"))
.setDescription("The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules.")
.build()).queue();
new EventWaiter().newOnMessageEventWaiter(event3 -> {
if (event.getMessage().getMentionedRoles().size() == 1) {
Role role = event.getMessage().getMentionedRoles().get(0);
if (event3.getGuild().getSelfMember().canInteract(role)) {
event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("The role has been successfully set to " + role.getName() + "."))
.build()).queue();
Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("Rules"))
.setDescription(message)
.build()).complete();
rules.addReaction("").queue();
rules.addReaction("").queue();
event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId());
} 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.NO_SELF_PERMISSION, builder).build()).queue();
Role role = event3.getGuild().getRolesByName(event3.getMessage().getContentStripped(), true).get(0);
if (event3.getGuild().getSelfMember().canInteract(role)) {
event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("The role has been successfully set to " + role.getName() + "."))
.build()).queue();
Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("Rules"))
.setDescription(message)
.build()).complete();
rules.addReaction("").queue();
rules.addReaction("").queue();
event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId());
} else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue();
}
}
} else {
Role role = event3.getGuild().getRolesByName(event3.getMessage().getContentRaw().replace("h.rules ", ""), true).get(0);
if (event3.getGuild().getSelfMember().canInteract(role)) {
event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("The role has been successfully set to " + role.getName() + "."))
.build()).queue();
Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("Rules"))
.setDescription(message)
.build()).complete();
rules.addReaction("").queue();
rules.addReaction("").queue();
event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId());
} else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue();
}
}
}, event.getJDA(), event.getAuthor());
}, event.getJDA(), event.getAuthor());
}, event.getJDA(), event.getAuthor());
} else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder)
.build()).queue();
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, new EmbedBuilder()
.setTitle("Wrong Guild")
.setDescription("The mentioned channel must be on this guid!"))
.build()).queue();
}
} else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder)
} catch (Exception e) {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder()
.setTitle("Channel not found")
.setDescription("I can't find the specified channel. Please start the setup again."))
.build()).queue();
}
} else {
TextChannel channel = event1.getGuild().getTextChannelsByName(event1.getMessage().getContentRaw(), true).get(0);
if (channel.getGuild().getId().equals(event1.getGuild().getId())) {
if (event.getGuild().getSelfMember().hasPermission(channel, Permission.MESSAGE_WRITE)) {
event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("Rules")
.setDescription("The channel was successfully set to " + channel.getName() + ". Please send me the rules now."))
.build()).queue();
new EventWaiter().newOnMessageEventWaiter(event2 -> {
String message = event2.getMessage().getContentDisplay();
event2.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("Role to assign"))
.setDescription("The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules.")
try {
TextChannel channel = event1.getGuild().getTextChannelsByName(event1.getMessage().getContentRaw(), true).get(0);
if (channel.getGuild().getId().equals(event1.getGuild().getId())) {
if (event.getGuild().getSelfMember().hasPermission(channel, Permission.MESSAGE_WRITE)) {
event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("Rules")
.setDescription("The channel was successfully set to " + channel.getName() + ". Please send me the rules now."))
.build()).queue();
new EventWaiter().newOnMessageEventWaiter(event3 -> {
if (event.getMessage().getMentionedRoles().size() == 1) {
Role role = event.getMessage().getMentionedRoles().get(0);
if (event3.getGuild().getSelfMember().canInteract(role)) {
event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("The role has been successfully set to " + role.getName() + "."))
.build()).queue();
Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("Rules"))
.setDescription(message)
.build()).complete();
rules.addReaction("").queue();
rules.addReaction("").queue();
event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId());
new EventWaiter().newOnMessageEventWaiter(event2 -> {
String message = event2.getMessage().getContentDisplay();
event2.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("Role to assign"))
.setDescription("The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules.")
.build()).queue();
new EventWaiter().newOnMessageEventWaiter(event3 -> {
if (event.getMessage().getMentionedRoles().size() == 1) {
Role role = event.getMessage().getMentionedRoles().get(0);
if (event3.getGuild().getSelfMember().canInteract(role)) {
event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("The role has been successfully set to " + role.getName() + "."))
.build()).queue();
Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("Rules"))
.setDescription(message)
.build()).complete();
rules.addReaction("").queue();
rules.addReaction("").queue();
event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId());
} 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.NO_SELF_PERMISSION, builder).build()).queue();
Role role = event3.getGuild().getRolesByName(event3.getMessage().getContentStripped(), true).get(0);
if (event3.getGuild().getSelfMember().canInteract(role)) {
event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("The role has been successfully set to " + role.getName() + "."))
.build()).queue();
Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("Rules"))
.setDescription(message)
.build()).complete();
rules.addReaction("").queue();
rules.addReaction("").queue();
event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId());
} else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue();
}
}
} else {
Role role = event3.getGuild().getRolesByName(event3.getMessage().getContentRaw(), true).get(0);
if (event3.getGuild().getSelfMember().canInteract(role)) {
event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("The role has been successfully set to " + role.getName() + "."))
.build()).queue();
Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("Rules"))
.setDescription(message)
.build()).complete();
rules.addReaction("").queue();
rules.addReaction("").queue();
event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId());
} else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue();
}
}
}, event.getJDA(), event.getAuthor());
}, event.getJDA(), event.getAuthor());
}, event.getJDA(), event.getAuthor());
} else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder)
.build()).queue();
}
} else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder)
.build()).queue();
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, new EmbedBuilder()
.setTitle("Wrong Guild")
.setDescription("The mentioned channel must be on this guid!"))
.build()).queue();
}
} catch (Exception e) {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder()
.setTitle("Channel not found")
.setDescription("I can't find the specified channel. Please start the setup again."))
.build()).queue();
}
}
}, event.getJDA(), event.getAuthor());
} else {
EmbedBuilder builder = new EmbedBuilder();
@ -165,7 +179,7 @@ public class RulesCommand implements Command {
@Override
public String[] labels() {
return new String[]{"rules", "rule"};
return new String[]{"rules", "rule", "setup"};
}
@Override

View file

@ -0,0 +1,64 @@
package com.bbn.hadder.commands.music;
/*
* @author Skidder / GregTCLTK
*/
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.VoiceChannel;
import net.dv8tion.jda.api.managers.AudioManager;
public class JoinCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (event.getMember().getVoiceState().inVoiceChannel()) {
AudioManager audioManager = event.getGuild().getAudioManager();
if(!audioManager.isAttemptingToConnect()) {
VoiceChannel vc = event.getMember().getVoiceState().getChannel();
if (vc.getMemberPermissionOverrides().contains(Permission.VOICE_CONNECT)) {
event.getGuild().getAudioManager().openAudioConnection(vc);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("Successfully connected"))
.setDescription("I successfully connected to " + vc.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("Already trying to connect")
.setDescription("Hadder is already trying to connect. Please wait a moment.")
.build()).queue();
}
} else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder)
.setTitle("No Voice Channel")
.setDescription("You aren't in a Voice Channel.")
.build()).queue();
}
}
@Override
public String[] labels() {
return new String[]{"join"};
}
@Override
public String description() {
return "Joins your voice channel";
}
@Override
public String usage() {
return "";
}
}

View file

@ -0,0 +1,46 @@
package com.bbn.hadder.commands.music;
/*
* @author Skidder / GregTCLTK
*/
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
public class LeaveCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (event.getGuild().getSelfMember().getVoiceState().inVoiceChannel()) {
event.getGuild().getAudioManager().closeAudioConnection();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("Successfully disconnected")
.setDescription("I successfully disconnected from the Voice Channel"))
.build()).queue();
} else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder)
.setTitle("Not connected")
.setDescription("I'm currently in no Voice Channel on this Guild")
.build()).queue();
}
}
@Override
public String[] labels() {
return new String[]{"leave"};
}
@Override
public String description() {
return "Leaves a voice channel";
}
@Override
public String usage() {
return "";
}
}

View file

@ -0,0 +1,48 @@
package com.bbn.hadder.commands.owner;
/*
* @author Skidder / GregTCLTK
*/
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.entities.Guild;
public class GuildLeaveCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {
if (args.length > 0) {
Guild guild = event.getJDA().getGuildById(args[0]);
guild.leave().queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("Successfully left")
.setDescription("I successfully left " + guild.getName()))
.build()).queue();
} else {
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
}
} else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder).build()).queue();
}
}
@Override
public String[] labels() {
return new String[]{"guildleave"};
}
@Override
public String description() {
return "Quit from a guild";
}
@Override
public String usage() {
return "<Guild-ID>";
}
}

View file

@ -12,7 +12,6 @@ import net.dv8tion.jda.api.EmbedBuilder;
public class RebootCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {
@ -25,7 +24,7 @@ public class RebootCommand implements Command {
@Override
public String[] labels() {
return new String[]{"restart"};
return new String[]{"restart", "restart"};
}
@Override

View file

@ -10,6 +10,7 @@ import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
public class ShutdownCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {
@ -26,7 +27,7 @@ public class ShutdownCommand implements Command {
@Override
public String[] labels() {
return new String[]{"shutdown"};
return new String[]{"shutdown", "exit"};
}
@Override

View file

@ -0,0 +1,25 @@
package com.bbn.hadder.utils;
/*
* @author Skidder / GregTCLTK
*/
import net.dv8tion.jda.api.audio.AudioSendHandler;
import javax.annotation.Nullable;
import java.nio.ByteBuffer;
public class AudioPlayerSendHandler implements AudioSendHandler {
@Override
public boolean canProvide() {
return false;
}
@Nullable
@Override
public ByteBuffer provide20MsAudio() {
return null;
}
}