Merge pull request #140 from BigBotNetwork/greg-dev

Greg dev
This commit is contained in:
Skidder 2019-12-02 21:57:06 -08:00 committed by GitHub
commit 8fa008baaa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
55 changed files with 1185 additions and 451 deletions

28
.gitattributes vendored Normal file
View file

@ -0,0 +1,28 @@
# Java sources
*.java text diff=java
*.gradle text diff=java
*.gradle.kts text diff=java
# These files are text and should be normalized (Convert crlf => lf)
*.css text diff=css
*.df text
*.htm text diff=html
*.html text diff=html
*.js text
*.jsp text
*.jspf text
*.jspx text
*.properties text
*.tld text
*.tag text
*.tagx text
*.xml text
# These files are binary and should be left untouched
# (binary is a macro for -text -diff)
*.class binary
*.dll binary
*.ear binary
*.jar binary
*.so binary
*.war binary

34
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View file

@ -0,0 +1,34 @@
---
name: Bug report
about: Create a report to help us improve
title: Bug report
labels: bug
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- Discord version: [e.g. Discord PTB]
**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
**Additional context**
Add any other context about the problem here.

View file

@ -3,7 +3,7 @@ name: Hadder
on: [push] on: [push]
jobs: jobs:
test: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v1
@ -16,7 +16,7 @@ jobs:
deploy: deploy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: test needs: build
if: github.ref == 'refs/heads/master' if: github.ref == 'refs/heads/master'
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v1

View file

@ -1,8 +1,11 @@
# Hadder # Hadder
The Hadder Discord bot is a multi-purpose Discord Bot. The Hadder Discord Bot is a multi-purpose Discord Bot.
<a href="https://discord.gg/58My2dM"><img src="https://discordapp.com/api/guilds/448554629282922527/embed.png"/></a> <a href="https://discord.gg/58My2dM"><img src="https://discordapp.com/api/guilds/448554629282922527/embed.png"/></a>
[![Build Status](https://github.com/BigBotNetwork/Hadder/workflows/Hadder/badge.svg)](https://github.com/BigBotNetwork/Hadder) [![Build Status](https://github.com/BigBotNetwork/Hadder/workflows/Hadder/badge.svg)](https://github.com/BigBotNetwork/Hadder)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/ddb8cb7ec85f467caa691c175e1f01b5)](https://www.codacy.com/gh/BigBotNetwork/Hadder?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=BigBotNetwork/Hadder&amp;utm_campaign=Badge_Grade)
<a href="https://discordextremelist.xyz/bots/Hadder"><img src="https://discordextremelist.xyz/api/bot/637002314162372639/widget"/></a> <a href="https://discordextremelist.xyz/bots/Hadder"><img src="https://discordextremelist.xyz/api/bot/637002314162372639/widget"/></a>
[![Discord Bots](https://top.gg/api/widget/637002314162372639.svg)](https://top.gg/bot/637002314162372639)
[![Hadder's Widget](https://api.botlist.space/widget/637002314162372639/2 "Hadder's Widget")](https://botlist.space/bot/637002314162372639?utm_source=bls&utm_medium=widget&utm_campaign=637002314162372639)

24
example-config.json Normal file
View file

@ -0,0 +1,24 @@
{
"Owners":
[],
"Database":{"IP":"",
"Port": 6775,
"DBName": "",
"Username": "",
"Password": ""},
"Tokens": {
"BotToken": "",
"Giphy": "",
"GitHub": "",
"MythicalBotList": "",
"BotsForDiscord": "",
"DiscordBotList": "",
"DiscordBestBots": "",
"DiscordBoats": "",
"YetAnotherBotList": "",
"DiscordExtremeList": "",
"DiscordBotReviews": "",
"DiscordBots": "",
"BotListSpace": ""
}
}

19
pom.xml
View file

@ -5,7 +5,7 @@
<groupId>Hadder</groupId> <groupId>Hadder</groupId>
<artifactId>Hadder</artifactId> <artifactId>Hadder</artifactId>
<version>0.7.1-ALPHA</version> <version>0.8-ALPHA</version>
<name>Hadder</name> <name>Hadder</name>
@ -25,7 +25,7 @@
<dependency> <dependency>
<groupId>net.dv8tion</groupId> <groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId> <artifactId>JDA</artifactId>
<version>4.0.0_62</version> <version>4.0.0_69</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.json</groupId> <groupId>org.json</groupId>
@ -60,7 +60,12 @@
<dependency> <dependency>
<groupId>org.kohsuke</groupId> <groupId>org.kohsuke</groupId>
<artifactId>github-api</artifactId> <artifactId>github-api</artifactId>
<version>1.99</version> <version>1.101</version>
</dependency>
<dependency>
<groupId>com.sedmelluq</groupId>
<artifactId>lavaplayer</artifactId>
<version>1.3.32</version>
</dependency> </dependency>
</dependencies> </dependencies>
@ -131,14 +136,6 @@
<target>13</target> <target>13</target>
</configuration> </configuration>
</plugin> </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>12</source>
<target>12</target>
</configuration>
</plugin>
<plugin> <plugin>
<artifactId>maven-assembly-plugin</artifactId> <artifactId>maven-assembly-plugin</artifactId>
<configuration> <configuration>

View file

@ -7,6 +7,7 @@ import com.bbn.hadder.commands.nsfw.*;
import com.bbn.hadder.commands.owner.*; import com.bbn.hadder.commands.owner.*;
import com.bbn.hadder.commands.fun.*; import com.bbn.hadder.commands.fun.*;
import com.bbn.hadder.commands.settings.*; import com.bbn.hadder.commands.settings.*;
import com.bbn.hadder.commands.music.*;
import com.bbn.hadder.core.*; import com.bbn.hadder.core.*;
import com.bbn.hadder.listener.*; import com.bbn.hadder.listener.*;
import net.dv8tion.jda.api.entities.Activity; import net.dv8tion.jda.api.entities.Activity;
@ -34,6 +35,7 @@ public class Hadder {
DefaultShardManagerBuilder builder = new DefaultShardManagerBuilder(); DefaultShardManagerBuilder builder = new DefaultShardManagerBuilder();
builder.setAutoReconnect(true);
builder.setShardsTotal(1); builder.setShardsTotal(1);
builder.setActivity(Activity.streaming("on the BigBotNetwork", "https://twitch.tv/BigBotNetwork")); builder.setActivity(Activity.streaming("on the BigBotNetwork", "https://twitch.tv/BigBotNetwork"));
builder.setToken(config.getBotToken()); builder.setToken(config.getBotToken());
@ -52,7 +54,7 @@ public class Hadder {
new GifCommand(), new GifCommand(),
new ClearCommand(), new ClearCommand(),
new GitHubCommand(), new GitHubCommand(),
new ScreenshareCommand(), new ScreenShareCommand(),
new RebootCommand(), new RebootCommand(),
new EqualsCommand(), new EqualsCommand(),
new InviteCommand(), new InviteCommand(),
@ -70,6 +72,13 @@ public class Hadder {
new RoleCommand(), new RoleCommand(),
new RulesCommand(), new RulesCommand(),
new FeedbackCommand(), new FeedbackCommand(),
new AvatarCommand(),
new EvalCommand(),
new JoinCommand(),
new LeaveCommand(),
new GuildLeaveCommand(),
new MemeCommand(),
new InviteDetectCommand(),
new LinkCommand()), config, helpCommand); new LinkCommand()), config, helpCommand);
builder.addEventListeners( builder.addEventListeners(
@ -78,10 +87,10 @@ public class Hadder {
new CommandListener(rethink, commandHandler), new CommandListener(rethink, commandHandler),
new GuildListener(rethink, config), new GuildListener(rethink, config),
new ReadyListener(rethink, config), new ReadyListener(rethink, config),
new LinkListener(rethink), //new LinkListener(rethink),
new InviteLinkListener(rethink),
new RulesListener(rethink)); new RulesListener(rethink));
try { try {
shardManager = builder.build(); shardManager = builder.build();
} catch (LoginException e) { } catch (LoginException e) {

View file

@ -32,7 +32,7 @@ public class Rethink {
.connect(); .connect();
System.out.println("DB CONNECTED"); System.out.println("DB CONNECTED");
} catch (Exception e) { } catch (Exception e) {
System.out.println(e.toString()); e.printStackTrace();
System.out.println("DB CONNECTION FAILED"); System.out.println("DB CONNECTION FAILED");
} }
} }
@ -59,7 +59,7 @@ public class Rethink {
} }
private String update(String table, String wherevalue, String what, String whatvalue) { private String update(String table, String wherevalue, String what, String whatvalue) {
String out=""; String out = "";
try { try {
Cursor cursor = r.table(table).get(wherevalue).update(r.hashMap(what, whatvalue)).run(conn); Cursor cursor = r.table(table).get(wherevalue).update(r.hashMap(what, whatvalue)).run(conn);
out=cursor.toString(); out=cursor.toString();
@ -95,16 +95,16 @@ public class Rethink {
} }
public String setUserPrefix(String prefix, String userid) { public void setUserPrefix(String prefix, String userid) {
return this.update("user", userid, "prefix", prefix); this.update("user", userid, "prefix", prefix);
} }
public String getUserPrefix(String id) { public String getUserPrefix(String id) {
return (String) this.get("user", "id", id, "prefix"); return (String) this.get("user", "id", id, "prefix");
} }
public String setGuildPrefix(String prefix, String guildid) { public void setGuildPrefix(String prefix, String guildid) {
return this.update("server", guildid, "prefix", prefix); this.update("server", guildid, "prefix", prefix);
} }
public String getGuildPrefix(String id) { public String getGuildPrefix(String id) {
@ -115,12 +115,12 @@ public class Rethink {
return new JSONArray((String) this.get("server", "id", id, "links")); return new JSONArray((String) this.get("server", "id", id, "links"));
} }
public String addLinkedGuild(String guildid, String linkid) { public void addLinkedGuild(String guildid, String linkid) {
JSONArray links = getLinks(guildid); JSONArray links = getLinks(guildid);
for (int i = 0; links.length()>i; i++) { for (int i = 0; links.length()>i; i++) {
if (links.getString(i).equals(linkid)) return null; if (links.getString(i).equals(linkid)) return;
} }
return this.update("server", guildid, "links", this.getLinks(guildid).put(linkid).toString()); this.update("server", guildid, "links", this.getLinks(guildid).put(linkid).toString());
} }
public String removeLinkedGuild(String guildid, String linkid) { public String removeLinkedGuild(String guildid, String linkid) {
@ -134,26 +134,27 @@ public class Rethink {
return this.update("server", guildid, "links", linkedguildslist.toString()); return this.update("server", guildid, "links", linkedguildslist.toString());
} }
public String setLinkChannel(String guildid, String channelid) { public void setLinkChannel(String guildid, String channelid) {
return this.update("server", guildid, "linkchannel", channelid); this.update("server", guildid, "linkchannel", channelid);
} }
public String getLinkChannel(String guildid) { public String getLinkChannel(String guildid) {
return (String) this.get("server", "id", guildid, "linkchannel"); return (String) this.get("server", "id", guildid, "linkchannel");
} }
public String insertGuild(String id) { public void insertGuild(String id) {
return this.insert("server", r.hashMap("id", id).with("prefix", "h.").with("links", "[]").with("linkchannel", "").with("message_id", "").with("role_id", "")); this.insert("server", r.hashMap("id", id).with("prefix", "h.").with("links", "[]").with("linkchannel", "").with("message_id", "").with("role_id", "").with("invite_detect", false));
} }
public String insertUser(String id) { public void insertUser(String id) {
return this.insert("user", r.hashMap("id", id).with("prefix", "h.")); this.insert("user", r.hashMap("id", id).with("prefix", "h."));
} }
public String updateRules(String guild_id, String message_id, String role_id) { public void updateRules(String guild_id, String message_id, String role_id, String accept_emote, String decline_emote) {
this.update("server", guild_id, "message_id", message_id); this.update("server", guild_id, "message_id", message_id);
this.update("server", guild_id, "role_id", role_id); this.update("server", guild_id, "role_id", role_id);
return null; this.update("server", guild_id, "accept_emote", accept_emote);
this.update("server", guild_id, "decline_emote", decline_emote);
} }
public String getRulesMID(String guild_id) { public String getRulesMID(String guild_id) {
@ -164,4 +165,24 @@ public class Rethink {
return (String) this.get("server", "id", guild_id, "role_id"); return (String) this.get("server", "id", guild_id, "role_id");
} }
public String getRulesAEmote(String guild_id) {
return (String) this.get("server", "id", guild_id, "accept_emote");
}
public String getRulesDEmote(String guild_id) {
return (String) this.get("server", "id", guild_id, "decline_emote");
}
public void setInviteDetection(String guild_id, boolean b) {
try {
r.table("server").get(guild_id).update(r.hashMap("invite_detect", b)).run(conn);
} catch (ClassCastException e) {
e.printStackTrace();
}
}
public Boolean getInviteDetection(String guild_id) {
return (Boolean) this.get("server", "id", guild_id, "invite_detect");
}
} }

View file

@ -0,0 +1,56 @@
package com.bbn.hadder.commands.fun;
/*
* @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.entities.Member;
public class AvatarCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (args.length == 0) {
Member member = event.getMember();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Avatar of " + member.getUser().getAsTag())
.setImage(member.getUser().getAvatarUrl())
.setFooter(member.getUser().getAsTag())
.build()).queue();
} else if (event.getMessage().getMentionedMembers().size() == 1) {
Member member = event.getMessage().getMentionedMembers().get(0);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Avatar of " + member.getUser().getAsTag())
.setImage(member.getUser().getAvatarUrl())
.setFooter(member.getUser().getAsTag())
.build()).queue();
} else if (args[0].length() == 18){
Member member = event.getGuild().getMemberById(args[0]);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Avatar of " + member.getUser().getAsTag())
.setImage(member.getUser().getAvatarUrl())
.setFooter(member.getUser().getAsTag())
.build()).queue();
} else {
event.getHelpCommand().sendHelp(this , event.getRethink(), event.getAuthor(), event.getTextChannel());
}
}
@Override
public String[] labels() {
return new String[]{"avatar"};
}
@Override
public String description() {
return "Sends the avatar of the specified member.";
}
@Override
public String usage() {
return "<@User>/<ID>";
}
}

View file

@ -6,9 +6,7 @@ package com.bbn.hadder.commands.fun;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.core.Config;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import okhttp3.Request; import okhttp3.Request;
import okhttp3.Response; import okhttp3.Response;
@ -28,19 +26,18 @@ public class GifCommand implements Command {
query = new StringBuilder(query.substring(0, query.length() - 1)); query = new StringBuilder(query.substring(0, query.length() - 1));
} }
OkHttpClient caller = new OkHttpClient(); OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url("http://api.giphy.com/v1/gifs/search?q=" + query + "&api_key=" + event.getConfig().getGiphyToken()).build(); Request request = new Request.Builder().url("http://api.giphy.com/v1/gifs/search?q=" + query + "&api_key=" + event.getConfig().getGiphyToken()).build();
try { try {
Random rand = new Random(); Random rand = new Random();
Response response = caller.newCall(request).execute(); Response response = client.newCall(request).execute();
JSONObject json = new JSONObject(response.body().string()); JSONObject json = new JSONObject(response.body().string());
JSONArray array = json.getJSONArray("data"); JSONArray array = json.getJSONArray("data");
int gifIndex = rand.nextInt(array.length()); int gifIndex = rand.nextInt(array.length());
String url = array.getJSONObject(gifIndex).get("url").toString(); String url = array.getJSONObject(gifIndex).get("url").toString();
event.getTextChannel().sendMessage(url).queue(); event.getTextChannel().sendMessage(url).queue();
} catch (Exception e) { } catch (Exception e) {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR).setTitle("Error").setDescription("Please try again with another term.").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, builder).setTitle("Error").setDescription("Please try again with another term.").build()).queue();
} }
} else { } else {
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());

View file

@ -0,0 +1,58 @@
package com.bbn.hadder.commands.fun;
/*
* @author Skidder / GregTCLTK
*/
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.json.JSONObject;
import java.awt.*;
import java.io.IOException;
public class MemeCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url("https://some-random-api.ml/meme").build();
try {
Response response = client.newCall(request).execute();
JSONObject json = new JSONObject(response.body().string());
String url = json.get("image").toString();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Your random meme")
.setImage(url)
.build()).queue();
} catch (IOException e) {
e.printStackTrace();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR)
.setTitle("Error!")
.setDescription("The request to the meme API could not be processed. Please try it again later.")
.setColor(Color.RED)
.build()).queue();
}
}
@Override
public String[] labels() {
return new String[]{"meme"};
}
@Override
public String description() {
return "Sends you a random meme.";
}
@Override
public String usage() {
return "";
}
}

View file

@ -1,10 +1,13 @@
package com.bbn.hadder.commands.misc; package com.bbn.hadder.commands.general;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.EventWaiter; import com.bbn.hadder.utils.EventWaiter;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
/*
* @author Skidder / GregTCLTK
*/
public class EqualsCommand implements Command { public class EqualsCommand implements Command {
@ -12,32 +15,24 @@ public class EqualsCommand implements Command {
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
event.getChannel().sendMessage( event.getChannel().sendMessage(
new MessageEditor() new MessageEditor()
.setDefaultSettings( .setDefaultSettings(MessageEditor.MessageType.INFO)
MessageEditor.MessageType.INFO,
new EmbedBuilder()
.setTitle("Please send me the first String") .setTitle("Please send me the first String")
).build() .build()).queue();
).queue();
new EventWaiter().newOnMessageEventWaiter(msgevent -> { new EventWaiter().newOnMessageEventWaiter(msgevent -> {
String firstString = msgevent.getMessage().getContentRaw(); String firstString = msgevent.getMessage().getContentRaw();
event.getChannel().sendMessage( event.getChannel().sendMessage(
new MessageEditor() new MessageEditor()
.setDefaultSettings( .setDefaultSettings(
MessageEditor.MessageType.INFO, MessageEditor.MessageType.INFO).setTitle("Please send me the second String").build()).queue();
new EmbedBuilder()
.setTitle("Please send me the second String")
).build()
).queue();
new EventWaiter().newOnMessageEventWaiter(msgevent2 -> { new EventWaiter().newOnMessageEventWaiter(msgevent2 -> {
String secondString = msgevent2.getMessage().getContentRaw(); String secondString = msgevent2.getMessage().getContentRaw();
event.getChannel().sendMessage( event.getChannel().sendMessage(
new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle((firstString.equals(secondString)) ? "Yes! The first string equals the second string!" : "Well yes, but actually No. This isn't the same.") .setTitle((firstString.equals(secondString)) ? "Yes! The first string equals the second string!" : "Well yes, but actually No. This isn't the same.")
.addField("First String", firstString, false) .addField("First String", firstString, false)
.addField("Second String", secondString, false) .addField("Second String", secondString, false)
.addField("Result", String.valueOf(firstString.equals(secondString)), false) .addField("Result", String.valueOf(firstString.equals(secondString)), false)
).build() .build()).queue();
).queue();
}, event.getJDA(), event.getAuthor()); }, event.getJDA(), event.getAuthor());
}, event.getJDA(), event.getAuthor()); }, event.getJDA(), event.getAuthor());
} }

View file

@ -42,12 +42,12 @@ public class HelpCommand implements Command {
eb.addField(ps[ps.length - 1], sb.toString(), false); eb.addField(ps[ps.length - 1], sb.toString(), false);
} }
} }
new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, eb); new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO);
event.getChannel().sendMessage(eb.build()).queue(); event.getChannel().sendMessage(eb.build()).queue();
} else { } else {
for (Command cmd : event.getCommandHandler().getCommandList()) { for (Command cmd : event.getCommandHandler().getCommandList()) {
for (String label : cmd.labels()) { for (String label : cmd.labels()) {
if (label.toLowerCase().equals(args[0])) { if (label.equalsIgnoreCase(args[0])) {
sendHelp(cmd, event.getRethink(), event.getAuthor(), event.getTextChannel()); sendHelp(cmd, event.getRethink(), event.getAuthor(), event.getTextChannel());
} }
} }
@ -65,7 +65,7 @@ public class HelpCommand implements Command {
String name = cmd.labels()[0]; String name = cmd.labels()[0];
eb.setDescription(cmd.description()).setTitle(name.replaceFirst(String.valueOf(name.charAt(0)), String.valueOf(name.charAt(0)).toUpperCase())); eb.setDescription(cmd.description()).setTitle(name.replaceFirst(String.valueOf(name.charAt(0)), String.valueOf(name.charAt(0)).toUpperCase()));
eb.addField("Usage", rethink.getUserPrefix(author.getId()) + cmd.labels()[0] + " " + cmd.usage(), false); eb.addField("Usage", rethink.getUserPrefix(author.getId()) + cmd.labels()[0] + " " + cmd.usage(), false);
new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, eb); new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO);
channel.sendMessage(eb.build()).queue(); channel.sendMessage(eb.build()).queue();
} }
} }

View file

@ -1,4 +1,4 @@
package com.bbn.hadder.commands.misc; package com.bbn.hadder.commands.general;
/* /*
* @author Skidder / GregTCLTK * @author Skidder / GregTCLTK
@ -8,14 +8,19 @@ import com.bbn.hadder.Hadder;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
/*
* @author Skidder / GregTCLTK
*/
public class InviteCommand implements Command { public class InviteCommand implements Command {
@Override @Override
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("Invite me!").setDescription("[Invite me here!](https://discordapp.com/oauth2/authorize?client_id=" + Hadder.shardManager.getGuilds().get(0).getSelfMember().getId() + "&scope=bot&permissions=470133879)").build()).queue(); .setTitle("Invite me!")
.setDescription("[Invite me here!](https://discordapp.com/oauth2/authorize?client_id=" + Hadder.shardManager.getGuilds().get(0).getSelfMember().getId() + "&scope=bot&permissions=470133879)")
.build()).queue();
} }
@Override @Override

View file

@ -7,14 +7,12 @@ package com.bbn.hadder.commands.general;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
public class PingCommand implements Command { public class PingCommand implements Command {
@Override @Override
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
EmbedBuilder builder = new EmbedBuilder(); event.getJDA().getRestPing().queue(ping -> event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("Ping").setDescription(String.valueOf(ping)).build()).queue());
event.getJDA().getRestPing().queue(ping -> event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("Ping").setDescription(String.valueOf(ping)).build()).queue());
} }
@Override @Override

View file

@ -8,7 +8,6 @@ import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.EventWaiter; import com.bbn.hadder.utils.EventWaiter;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import org.kohsuke.github.GHIssue; import org.kohsuke.github.GHIssue;
import org.kohsuke.github.GHRepository; import org.kohsuke.github.GHRepository;
import org.kohsuke.github.GitHub; import org.kohsuke.github.GitHub;
@ -19,15 +18,15 @@ public class FeedbackCommand implements Command {
@Override @Override
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Feedback Topic") .setTitle("Feedback Topic")
.setDescription("Please send me the feedback topic.")) .setDescription("Please send me the feedback topic.")
.build()).queue(); .build()).queue();
new EventWaiter().newOnMessageEventWaiter(event1 -> { new EventWaiter().newOnMessageEventWaiter(event1 -> {
String title = event1.getMessage().getContentDisplay(); String title = event1.getMessage().getContentDisplay();
event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Feedback Description") .setTitle("Feedback Description")
.setDescription("Please send me the feedback description now.")) .setDescription("Please send me the feedback description now.")
.build()).queue(); .build()).queue();
new EventWaiter().newOnMessageEventWaiter(event2 -> { new EventWaiter().newOnMessageEventWaiter(event2 -> {
String description = event2.getMessage().getContentDisplay(); String description = event2.getMessage().getContentDisplay();
@ -35,8 +34,8 @@ public class FeedbackCommand implements Command {
GitHub connection = GitHub.connectUsingOAuth(event.getConfig().getGitHubToken()); GitHub connection = GitHub.connectUsingOAuth(event.getConfig().getGitHubToken());
GHRepository Hadder = connection.getOrganization("BigBotNetwork").getRepository("Hadder"); GHRepository Hadder = connection.getOrganization("BigBotNetwork").getRepository("Hadder");
GHIssue issue = Hadder.createIssue(title).body("<strong>Feedback by " + event.getAuthor().getAsTag() + "</strong><br>" + description).label("feedback").create(); GHIssue issue = Hadder.createIssue(title).body("<strong>Feedback by " + event.getAuthor().getAsTag() + "</strong><br>" + description).label("feedback").create();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Feedback successfully sent")) .setTitle("Feedback successfully sent")
.setDescription(issue.getHtmlUrl().toString()) .setDescription(issue.getHtmlUrl().toString())
.build()).queue(); .build()).queue();
} catch (IOException e) { } catch (IOException e) {

View file

@ -7,7 +7,6 @@ package com.bbn.hadder.commands.misc;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import okhttp3.Request; import okhttp3.Request;
import okhttp3.Response; import okhttp3.Response;
@ -22,8 +21,7 @@ public class GitHubCommand implements Command {
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
if (args.length > 0) { if (args.length > 0) {
if (args[0].equals("link")) { if (args[0].equals("link")) {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("Link your GitHub Account").setDescription("https://github.com/login/oauth/authorize?client_id=25321f690bb1b6952942").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("Link your GitHub Account").setDescription("https://github.com/login/oauth/authorize?client_id=25321f690bb1b6952942").build()).queue();
} else { } else {
Request request = new Request.Builder().url("https://api.github.com/users/" + args[0]).build(); Request request = new Request.Builder().url("https://api.github.com/users/" + args[0]).build();
try { try {
@ -46,8 +44,7 @@ public class GitHubCommand implements Command {
if (!json.getString("blog").equals("")) website = json.getString("blog"); if (!json.getString("blog").equals("")) website = json.getString("blog");
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder)
.setAuthor("Information about " + nickname + " (" + args[0] + ")", "https://github.com/" + args[0] + "", "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png") .setAuthor("Information about " + nickname + " (" + args[0] + ")", "https://github.com/" + args[0] + "", "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png")
.setThumbnail(json.getString("avatar_url")) .setThumbnail(json.getString("avatar_url"))
.addField("User bio", bio, false) .addField("User bio", bio, false)
@ -60,15 +57,16 @@ public class GitHubCommand implements Command {
.build()).queue(); .build()).queue();
} catch (IOException | NullPointerException e) { } catch (IOException | NullPointerException e) {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR).setDescription("The GitHub API might be down at the moment!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, builder).setDescription("The GitHub API might be down at the moment!").build()).queue();
} catch (JSONException e) { } catch (JSONException e) {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("This user does not exist!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("This user does not exist!").build()).queue();
} }
} }
} else { } else {
event.getTextChannel().sendMessage("SOON").queue(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Connect you GH account")
.setDescription("[Please connect your GitHub account here](https://github.com/login/oauth/authorize?client_id=25321f690bb1b6952942)")
.build()).queue();
} }
} }

View file

@ -9,7 +9,8 @@ import net.dv8tion.jda.api.entities.VoiceChannel;
import java.util.List; import java.util.List;
public class ScreenshareCommand implements Command { public class ScreenShareCommand implements Command {
@Override @Override
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
if (args.length>0) { if (args.length>0) {
@ -17,15 +18,15 @@ public class ScreenshareCommand implements Command {
for (VoiceChannel vc : event.getGuild().getVoiceChannels()) { for (VoiceChannel vc : event.getGuild().getVoiceChannels()) {
try { try {
if (vc.getIdLong() == Long.parseLong(args[0])) { if (vc.getIdLong() == Long.parseLong(args[0])) {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Here's your Url to share your Screen") .setTitle("Here's your Url to share your Screen")
.setDescription("http://discordapp.com/channels/" + event.getGuild().getId() + "/" + vc.getId() + "/")).build()).queue(); .setDescription("http://discordapp.com/channels/" + event.getGuild().getId() + "/" + vc.getId() + "/").build()).queue();
return; return;
} }
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder() event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR)
.setTitle("Wait, that's illegal") .setTitle("Wait, that's illegal")
.setDescription("This ID is invalid. \nMaybe you entered a wrong ID? \n\nNote: Make sure the Voice Channel is on this Guild.")).build()).queue(); .setDescription("This ID is invalid. \nMaybe you entered a wrong ID? \n\nNote: Make sure the Voice Channel is on this Guild.").build()).queue();
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
return; return;
} }
@ -40,38 +41,40 @@ public class ScreenshareCommand implements Command {
VoiceChannel voiceChannel = vcs.get(i); VoiceChannel voiceChannel = vcs.get(i);
eb.addField(i + ": " + voiceChannel.getName(), voiceChannel.getId(), false); eb.addField(i + ": " + voiceChannel.getName(), voiceChannel.getId(), false);
} }
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, eb).build()).queue(); event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).build()).queue();
new EventWaiter().newOnMessageEventWaiter(msgevent -> { new EventWaiter().newOnMessageEventWaiter(msgevent -> {
try { try {
int i = Integer.parseInt(msgevent.getMessage().getContentRaw()); int i = Integer.parseInt(msgevent.getMessage().getContentRaw());
if (vcs.size() > i) { if (vcs.size() > i) {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Here's your Url to share your Screen") .setTitle("Here's your Url to share your Screen")
.setDescription("http://discordapp.com/channels/" + event.getGuild().getId() + "/" + vcs.get(i).getId() + "/")).build()).queue(); .setDescription("http://discordapp.com/channels/" + event.getGuild().getId() + "/" + vcs.get(i).getId() + "/").build()).queue();
} else { } else {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder() event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR)
.setTitle("You specified a wrong number!")).build()).queue(); .setTitle("You specified a wrong number!").build()).queue();
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
} }
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder() event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR)
.setTitle("Wait, that's illegal") .setTitle("Wait, that's illegal")
.setDescription("This isn't a Number.")).build()).queue(); .setDescription("This isn't a Number.").build()).queue();
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
} }
}, event.getJDA(), event.getAuthor()); }, event.getJDA(), event.getAuthor());
} else if (vcs.size()==0) { } else if (vcs.size()==0) {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder() event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR)
.setTitle("Hol' up") .setTitle("Hol' up")
.setDescription("There is no Voice Channel named like this. \n\nNote: Make sure the Voice Channel is on this Guild.")).build()).queue(); .setDescription("There is no Voice Channel named like this. \n\nNote: Make sure the Voice Channel is on this Guild.").build()).queue();
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
} else { } else {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Here's your Url to share your Screen") .setTitle("Here's your Url to share your Screen")
.setDescription("http://discordapp.com/channels/" + event.getGuild().getId() + "/" + vcs.get(0).getId() + "/")).build()).queue(); .setDescription("http://discordapp.com/channels/" + event.getGuild().getId() + "/" + vcs.get(0).getId() + "/").build()).queue();
} }
} }
} else {
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
} }
} }

View file

@ -7,7 +7,6 @@ package com.bbn.hadder.commands.moderation;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
@ -15,30 +14,24 @@ public class BanCommand implements Command {
@Override @Override
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.BAN_MEMBERS) || event.getGuild().getOwner().getId().equals(event.getAuthor().getId())) { if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.BAN_MEMBERS) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {
if (event.getMessage().getMentionedMembers().size() == 1) { if (event.getMessage().getMentionedMembers().size() == 1) {
Member victim = event.getMessage().getMentionedMembers().get(0); Member victim = event.getMessage().getMentionedMembers().get(0);
if (!event.getAuthor().getId().equals(victim.getId())) { if (!event.getAuthor().getId().equals(victim.getId())) {
if (!event.getJDA().getSelfUser().getId().equals(victim.getId())) { if (!event.getJDA().getSelfUser().getId().equals(victim.getId())) {
if (event.getGuild().getSelfMember().canInteract(victim)) { if (event.getGuild().getSelfMember().canInteract(victim)) {
event.getGuild().ban(victim, 0, "Banned by " + event.getAuthor().getAsTag()).queue(); event.getGuild().ban(victim, 0, "Banned by " + event.getAuthor().getAsTag()).queue();
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully banned ✅").setDescription("I successfully baned " + victim.getUser().getName() + ".").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("✅ Successfully banned ✅").setDescription("I successfully baned " + victim.getUser().getName() + ".").build()).queue();
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue();
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("I can not ban myself").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("I can not ban myself").build()).queue();
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle("Not possible").setDescription("You can't ban yourself.").build()).queue();
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) { } 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 at least one user!").build()).queue();
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
} else if (event.getMessage().getMentionedMembers().size() > 1) { } else if (event.getMessage().getMentionedMembers().size() > 1) {
for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) { for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) {
@ -48,24 +41,19 @@ public class BanCommand implements Command {
if (event.getGuild().getSelfMember().canInteract(member)) { if (event.getGuild().getSelfMember().canInteract(member)) {
event.getGuild().ban(member, 0).reason("Mass Ban by " + event.getAuthor().getAsTag()).queue(); event.getGuild().ban(member, 0).reason("Mass Ban by " + event.getAuthor().getAsTag()).queue();
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue();
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("I can not ban myself!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("I can not ban myself!").build()).queue();
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("You can't ban yourself.").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You can't ban yourself.").build()).queue();
} }
} }
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully banned ✅").setDescription("I successfully banned " + event.getMessage().getMentionedMembers().size() + " Members!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("✅ Successfully banned ✅").setDescription("I successfully banned " + event.getMessage().getMentionedMembers().size() + " Members!").build()).queue();
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder).build()).queue();
} }
} }

View file

@ -7,7 +7,6 @@ package com.bbn.hadder.commands.moderation;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.Message;
@ -20,37 +19,29 @@ public class ClearCommand implements Command {
@Override @Override
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
if (args.length > 0) { if (args.length > 0) {
if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.MESSAGE_MANAGE) || event.getGuild().getOwnerId().equals(event.getAuthor().getId())) { if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.MESSAGE_MANAGE) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {
if (event.getGuild().getMemberById(event.getJDA().getSelfUser().getId()).hasPermission(Permission.MESSAGE_MANAGE)) { if (event.getGuild().getMemberById(event.getJDA().getSelfUser().getId()).hasPermission(Permission.MESSAGE_MANAGE)) {
try { try {
int nbToDelete = Integer.parseInt(args[0]); int nbToDelete = Integer.parseInt(args[0]);
if(nbToDelete < 1 || nbToDelete > 200) { if(nbToDelete < 1 || nbToDelete > 200) {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("You have to choose a number between 1 and 200!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to choose a number between 1 and 200!").build()).queue();
return; return;
} }
List<Message> history = event.getTextChannel().getHistory().retrievePast(nbToDelete +1).complete(); List<Message> history = event.getTextChannel().getHistory().retrievePast(nbToDelete +1).complete();
List<Message> msgToDelete = new ArrayList<>(); List<Message> msgToDelete = new ArrayList<>();
msgToDelete.addAll(history); msgToDelete.addAll(history);
event.getTextChannel().deleteMessages(msgToDelete).queue(); event.getTextChannel().deleteMessages(msgToDelete).queue();
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setDescription("Successfully deleted " + nbToDelete + " messages.").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setDescription("Successfully deleted " + nbToDelete + " messages.").build()).queue();
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to specify a number!").build()).queue();
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue();
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder).build()).queue();
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to specify a number!").build()).queue();
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
} }
} }

View file

@ -3,34 +3,26 @@ package com.bbn.hadder.commands.moderation;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
public class GuildPrefixCommand implements Command { public class GuildPrefixCommand implements Command {
@Override @Override
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.MANAGE_SERVER) || event.getGuild().getOwnerId().equals(event.getAuthor().getId())) { if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {
if (args.length == 1) { if (args.length == 1) {
if (!args[0].contains("\"")) { if (!args[0].contains("\"")) {
event.getRethink().setGuildPrefix(args[0], event.getGuild().getId()); event.getRethink().setGuildPrefix(args[0], event.getGuild().getId());
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully set ✅").setDescription("I successfully set the new prefix for the guild to " + args[0]).build()).queue();
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("✅ Successfully set ✅").setDescription("I successfully set the new prefix for you to " + args[0]).build()).queue();
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("The prefix must not contain **\"**").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("The prefix must not contain **\"**").build()).queue();
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to set a prefix.").build()).queue();
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder).build()).queue();
} }
} }

View file

@ -0,0 +1,72 @@
package com.bbn.hadder.commands.moderation;
/*
* @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.Permission;
public class InviteDetectCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (args.length == 1) {
if (event.getMember().hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {
String opinion = args[0].toLowerCase();
switch (opinion) {
case "on":
if (!event.getRethink().getInviteDetection(event.getGuild().getId())) {
event.getRethink().setInviteDetection(event.getGuild().getId(), true);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully activated")
.setDescription("I successfully activated the invite link detection for this guild.")
.build()).queue();
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING)
.setTitle("Already activated")
.setDescription("The invite link detection is already activated on this guild.")
.build()).queue();
}
break;
case "off":
if (event.getRethink().getInviteDetection(event.getGuild().getId())) {
event.getRethink().setInviteDetection(event.getGuild().getId(), false);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully deactivated")
.setDescription("I successfully deactivated the invite link detection for this guild.")
.build()).queue();
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING)
.setTitle("Already deactivated")
.setDescription("The invite link detection is already deactivated on this guild.")
.build()).queue();
}
break;
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
}
} else {
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
}
}
@Override
public String[] labels() {
return new String[]{"invitedetect", "detectinvite"};
}
@Override
public String description() {
return "Activate or deactivate the Discord invite link detection.";
}
@Override
public String usage() {
return "<on/off>";
}
}

View file

@ -7,7 +7,6 @@ package com.bbn.hadder.commands.moderation;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
@ -16,30 +15,24 @@ public class KickCommand implements Command {
@Override @Override
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.KICK_MEMBERS) || event.getGuild().getOwnerId().equals(event.getAuthor().getId())) { if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.KICK_MEMBERS) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {
if (event.getMessage().getMentionedMembers().size() == 1) { if (event.getMessage().getMentionedMembers().size() == 1) {
Member victim = event.getMessage().getMentionedMembers().get(0); Member victim = event.getMessage().getMentionedMembers().get(0);
if (!event.getAuthor().getId().equals(victim.getId())) { if (!event.getAuthor().getId().equals(victim.getId())) {
if (!event.getJDA().getSelfUser().getId().equals(victim.getId())) { if (!event.getJDA().getSelfUser().getId().equals(victim.getId())) {
if (event.getGuild().getSelfMember().canInteract(victim)) { if (event.getGuild().getSelfMember().canInteract(victim)) {
event.getGuild().kick(victim, "Kicked by " + event.getAuthor().getAsTag()).queue(); event.getGuild().kick(victim, "Kicked by " + event.getAuthor().getAsTag()).queue();
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully kicked ✅").setDescription("I successfully kicked " + victim.getUser().getName() + ".").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("✅ Successfully kicked ✅").setDescription("I successfully kicked " + victim.getUser().getName() + ".").build()).queue();
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue();
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("I can not kick myself!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("I can not kick myself!").build()).queue();
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("You can't kick yourself.").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You can't kick yourself.").build()).queue();
} }
} else if (event.getMessage().getMentionedMembers().size() == 0) { } 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 at least one user!").build()).queue();
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
} else if (event.getMessage().getMentionedMembers().size() > 1) { } else if (event.getMessage().getMentionedMembers().size() > 1) {
for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) { for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) {
@ -49,20 +42,16 @@ public class KickCommand implements Command {
if (event.getGuild().getSelfMember().canInteract(member)) { if (event.getGuild().getSelfMember().canInteract(member)) {
event.getGuild().kick(member).reason("Mass Kicked by " + event.getAuthor().getAsTag()).queue(); event.getGuild().kick(member).reason("Mass Kicked by " + event.getAuthor().getAsTag()).queue();
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue();
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("I can not kick myself!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("I can not kick myself!").build()).queue();
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("You can't kick yourself.").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You can't kick yourself.").build()).queue();
} }
} }
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully kicked ✅").setDescription("I successfully kicked " + event.getMessage().getMentionedMembers().size() + " Members!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("✅ Successfully kicked ✅").setDescription("I successfully kicked " + event.getMessage().getMentionedMembers().size() + " Members!").build()).queue();
} }
} }
} }

View file

@ -10,13 +10,12 @@ public class LinkCommand implements Command {
@Override @Override
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
if (args.length == 0) event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); if (args.length == 0) event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
switch (args[0]) { switch (args[0].toLowerCase()) {
case "add": case "add":
if (args.length != 2) return; if (args.length != 2) return;
String linkid = args[1]; String linkid = args[1];
// Check if guild is existing // Check if guild exists
boolean found = false; boolean found = false;
Guild linkguild = null; Guild linkguild = null;
for (Guild g : event.getJDA().getGuilds()) { for (Guild g : event.getJDA().getGuilds()) {
@ -27,17 +26,17 @@ public class LinkCommand implements Command {
} }
if (!found) { if (!found) {
event.getChannel().sendMessage( event.getChannel().sendMessage(
new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
new EmbedBuilder().setTitle("Success!").setDescription("If i'm on this guild i sent a message to accept the link.") .setTitle("Success!").setDescription("If i'm on this guild i sent a message to accept the link.")
).build()).queue(); .build()).queue();
return; return;
} }
// Check if the guild is the same // Check if the guild is the same
if (event.getGuild().getId().equals(args[1])) { if (event.getGuild().getId().equals(args[1])) {
event.getChannel().sendMessage( event.getChannel().sendMessage(
new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR)
new EmbedBuilder().setTitle("Wait thats illegal.").setDescription("You specified the same guild as the guild on which you're reading this")).build()).queue(); .setTitle("Wait thats illegal.").setDescription("You specified the same guild as the guild on which you're reading this").build()).queue();
return; return;
} }
@ -49,9 +48,9 @@ public class LinkCommand implements Command {
} }
// Send Request to link Guild // Send Request to link Guild
event.getJDA().getTextChannelById(event.getRethink().getLinkChannel(linkid)).sendMessage( event.getJDA().getTextChannelById(event.getRethink().getLinkChannel(linkid)).sendMessage(
new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
new EmbedBuilder().setTitle(event.getGuild().getName() + " (" + event.getGuild().getId() + ") wants to link guilds!") .setTitle(event.getGuild().getName() + " (" + event.getGuild().getId() + ") wants to link guilds!")
.setDescription("React with the reactions to accept or decline it")).build() .setDescription("React with the reactions to accept or decline it").build()
).queue( ).queue(
msg -> { msg -> {
msg.addReaction("").queue(); msg.addReaction("").queue();
@ -62,9 +61,9 @@ public class LinkCommand implements Command {
event.getChannel().sendMessage( event.getChannel().sendMessage(
new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
new EmbedBuilder().setTitle("Success!").setDescription("If i'm on this guild i sent a message to accept the link.") .setTitle("Success!").setDescription("If i'm on this guild i sent a message to accept the link.")
).build()).queue(); .build()).queue();
break; break;

View file

@ -7,7 +7,6 @@ package com.bbn.hadder.commands.moderation;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
@ -15,7 +14,7 @@ public class NickCommand implements Command {
@Override @Override
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
if (event.getMember().hasPermission(Permission.NICKNAME_MANAGE) || event.getGuild().getOwnerId().equals(event.getMember().getId())) { if (event.getMember().hasPermission(Permission.NICKNAME_MANAGE) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {
if (event.getGuild().getSelfMember().hasPermission(Permission.NICKNAME_MANAGE)) { if (event.getGuild().getSelfMember().hasPermission(Permission.NICKNAME_MANAGE)) {
if (event.getMessage().getMentionedMembers().size() == 1) { if (event.getMessage().getMentionedMembers().size() == 1) {
if (!event.getMessage().getMentionedMembers().get(0).getId().equals(event.getGuild().getSelfMember().getId())) { if (!event.getMessage().getMentionedMembers().get(0).getId().equals(event.getGuild().getSelfMember().getId())) {
@ -23,36 +22,27 @@ public class NickCommand implements Command {
if (args.length > 1) { if (args.length > 1) {
if (event.getMessage().getContentRaw().startsWith(event.getRethink().getUserPrefix(event.getMember().getId()))) { if (event.getMessage().getContentRaw().startsWith(event.getRethink().getUserPrefix(event.getMember().getId()))) {
event.getGuild().modifyNickname(event.getMessage().getMentionedMembers().get(0), event.getMessage().getContentRaw().replaceFirst(event.getRethink().getUserPrefix(event.getMember().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); event.getGuild().modifyNickname(event.getMessage().getMentionedMembers().get(0), event.getMessage().getContentRaw().replaceFirst(event.getRethink().getUserPrefix(event.getMember().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue();
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully nicked ✅").setDescription("I successfully nicked " + event.getMessage().getMentionedMembers().get(0).getUser().getAsTag() + ".").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("✅ Successfully nicked ✅").setDescription("I successfully nicked " + event.getMessage().getMentionedMembers().get(0).getUser().getAsTag() + ".").build()).queue();
} else if (event.getMessage().getContentRaw().startsWith(event.getRethink().getGuildPrefix(event.getGuild().getId()))) { } else if (event.getMessage().getContentRaw().startsWith(event.getRethink().getGuildPrefix(event.getGuild().getId()))) {
event.getGuild().modifyNickname(event.getMessage().getMentionedMembers().get(0), event.getMessage().getContentRaw().replaceFirst(event.getRethink().getGuildPrefix(event.getGuild().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); event.getGuild().modifyNickname(event.getMessage().getMentionedMembers().get(0), event.getMessage().getContentRaw().replaceFirst(event.getRethink().getGuildPrefix(event.getGuild().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue();
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully nicked ✅").setDescription("I successfully nicked " + event.getMessage().getMentionedMembers().get(0).getUser().getAsTag() + ".").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("✅ Successfully nicked ✅").setDescription("I successfully nicked " + event.getMessage().getMentionedMembers().get(0).getUser().getAsTag() + ".").build()).queue();
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setTitle("Missing arguments").setDescription("You have to specify a new nickname for the user(s).").build()).queue();
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue();
} }
} else { } else {
if (event.getMessage().getContentRaw().startsWith(event.getRethink().getUserPrefix(event.getMember().getId()))) { if (event.getMessage().getContentRaw().startsWith(event.getRethink().getUserPrefix(event.getMember().getId()))) {
event.getGuild().getSelfMember().modifyNickname(event.getMessage().getContentRaw().replaceFirst(event.getRethink().getUserPrefix(event.getMember().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); event.getGuild().getSelfMember().modifyNickname(event.getMessage().getContentRaw().replaceFirst(event.getRethink().getUserPrefix(event.getMember().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue();
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully nicked ✅").setDescription("I successfully changed my nickname.").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("✅ Successfully nicked ✅").setDescription("I successfully changed my nickname.").build()).queue();
} else if (event.getMessage().getContentRaw().startsWith(event.getRethink().getGuildPrefix(event.getGuild().getId()))) { } else if (event.getMessage().getContentRaw().startsWith(event.getRethink().getGuildPrefix(event.getGuild().getId()))) {
event.getGuild().getSelfMember().modifyNickname(event.getMessage().getContentRaw().replaceFirst(event.getRethink().getGuildPrefix(event.getGuild().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); event.getGuild().getSelfMember().modifyNickname(event.getMessage().getContentRaw().replaceFirst(event.getRethink().getGuildPrefix(event.getGuild().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue();
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully nicked ✅").setDescription("I successfully changed my nickname.").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("✅ Successfully nicked ✅").setDescription("I successfully changed my nickname.").build()).queue();
} }
} }
} else if (event.getMessage().getMentionedMembers().size() == 0) { } 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 at least one user!").build()).queue();
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
} else { } else {
for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) { for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) {
@ -63,16 +53,13 @@ public class NickCommand implements Command {
event.getGuild().getSelfMember().modifyNickname(args[args.length - 1]).reason("Mass Nicked by " + event.getAuthor().getAsTag()).queue(); event.getGuild().getSelfMember().modifyNickname(args[args.length - 1]).reason("Mass Nicked by " + event.getAuthor().getAsTag()).queue();
} }
} }
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully nicked ✅").setDescription("I successfully nicked " + event.getMessage().getMentionedMembers().size() + " Members!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("✅ Successfully nicked ✅").setDescription("I successfully nicked " + event.getMessage().getMentionedMembers().size() + " Members!").build()).queue();
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue();
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder).build()).queue();
} }
} }

View file

@ -3,7 +3,6 @@ package com.bbn.hadder.commands.moderation;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.Role;
@ -14,8 +13,9 @@ public class RoleCommand implements Command {
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
if (args.length > 0) { if (args.length > 0) {
if (event.getMember().hasPermission(Permission.MANAGE_ROLES)) { if (event.getMember().hasPermission(Permission.MANAGE_ROLES)) {
if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_ROLES)) { if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_ROLES) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {
switch (args[0].toLowerCase()) { String action = args[0].toLowerCase();
switch (action) {
case "add": case "add":
if (event.getMessage().getMentionedMembers().size() > 0 && event.getMessage().getMentionedRoles().size() > 0) { if (event.getMessage().getMentionedMembers().size() > 0 && event.getMessage().getMentionedRoles().size() > 0) {
for (Member member : event.getMessage().getMentionedMembers()) { for (Member member : event.getMessage().getMentionedMembers()) {
@ -24,17 +24,14 @@ public class RoleCommand implements Command {
if (event.getGuild().getSelfMember().canInteract(role)) { if (event.getGuild().getSelfMember().canInteract(role)) {
event.getGuild().addRoleToMember(member, role).reason("Role added by " + event.getAuthor().getAsTag()).queue(); event.getGuild().addRoleToMember(member, role).reason("Role added by " + event.getAuthor().getAsTag()).queue();
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue();
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue();
} }
} }
} }
EmbedBuilder builder = new EmbedBuilder(); event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder)
.setTitle("✅ Successfully added role(s) ✅") .setTitle("✅ Successfully added role(s) ✅")
.setDescription("I successfully added " + event.getMessage().getMentionedRoles().size() + " roles to " + event.getMessage().getMentionedMembers().size() + " members.") .setDescription("I successfully added " + event.getMessage().getMentionedRoles().size() + " roles to " + event.getMessage().getMentionedMembers().size() + " members.")
.build()).queue(); .build()).queue();
@ -42,19 +39,35 @@ public class RoleCommand implements Command {
break; break;
case "remove": case "remove":
event.getTextChannel().sendMessage("SOON").queue(); if (event.getMessage().getMentionedMembers().size() > 0 && event.getMessage().getMentionedRoles().size() > 0) {
for (Member member : event.getMessage().getMentionedMembers()) {
for (Role role : event.getMessage().getMentionedRoles()) {
if (event.getGuild().getSelfMember().canInteract(member)) {
if (event.getGuild().getSelfMember().canInteract(role)) {
event.getGuild().removeRoleFromMember(member, role).reason("Role removed by " + event.getAuthor().getAsTag()).queue();
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
}
}
}
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("✅ Successfully removed role(s) ✅")
.setDescription("I successfully removed " + event.getMessage().getMentionedRoles().size() + " roles from " + event.getMessage().getMentionedMembers().size() + " members.")
.build()).queue();
}
break; break;
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue();
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder).build()).queue();
} }
} else { } else {
event.getTextChannel().sendMessage("Missing args").queue(); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
} }
} }
@ -70,6 +83,6 @@ public class RoleCommand implements Command {
@Override @Override
public String usage() { public String usage() {
return "<@role> <@user>"; return "add/remove <@role> <@user>";
} }
} }

View file

@ -8,81 +8,176 @@ import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.EventWaiter; import com.bbn.hadder.utils.EventWaiter;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.Emote;
import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.Message;
import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.Role;
import net.dv8tion.jda.api.entities.TextChannel; import net.dv8tion.jda.api.entities.TextChannel;
import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent;
public class RulesCommand implements Command { public class RulesCommand implements Command {
@Override @Override
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
if (event.getMember().hasPermission(Permission.MANAGE_SERVER)) { if (event.getMember().hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {
if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_ROLES)) { if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_ROLES)) {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Set up rules") .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(); .build()).queue();
new EventWaiter().newOnMessageEventWaiter(event1 -> { new EventWaiter().newOnMessageEventWaiter(event1 -> {
if (event1.getMessage().getMentionedChannels().size() > 0) { if (event1.getMessage().getMentionedChannels().size() == 1) {
try {
TextChannel channel = event1.getMessage().getMentionedChannels().get(0); TextChannel channel = event1.getMessage().getMentionedChannels().get(0);
createRules(event, event1, channel);
} catch (Exception e) {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR)
.setTitle("Channel not found")
.setDescription("I can't find the specified channel. Please start the setup again.")
.build()).queue();
}
} else {
try {
TextChannel channel = event1.getGuild().getTextChannelsByName(event1.getMessage().getContentRaw(), true).get(0);
createRules(event, event1, channel);
} catch (Exception e) {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR)
.setTitle("Channel not found")
.setDescription("I can't find the specified channel. Please start the setup again.")
.build()).queue();
}
}
}, event.getJDA(), event.getAuthor());
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
}
}
public void createRules(CommandEvent event, GuildMessageReceivedEvent event1, TextChannel channel) {
if (channel.getGuild().getId().equals(event1.getGuild().getId())) { if (channel.getGuild().getId().equals(event1.getGuild().getId())) {
event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() if (event.getGuild().getSelfMember().hasPermission(channel, Permission.MESSAGE_WRITE)) {
event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Rules") .setTitle("Rules")
.setDescription("The channel was successfully set to " + channel.getName() + ". Please send me the rules now.")) .setDescription("The channel was successfully set to " + channel.getName() + ". Please send me the rules now.")
.build()).queue(); .build()).queue();
new EventWaiter().newOnMessageEventWaiter(event2 -> { new EventWaiter().newOnMessageEventWaiter(event2 -> {
String message = event2.getMessage().getContentDisplay(); String message = event2.getMessage().getContentDisplay();
event2.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() event2.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Role to assign")) .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.") .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(); .build()).queue();
new EventWaiter().newOnMessageEventWaiter(event3 -> { new EventWaiter().newOnMessageEventWaiter(event3 -> {
Role role = event3.getGuild().getRolesByName(event3.getMessage().getContentRaw(), true).get(0); if (event.getMessage().getMentionedRoles().size() == 1) {
if (event3.getGuild().getSelfMember().canInteract(role)) { Role role = event.getMessage().getMentionedRoles().get(0);
event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() setRole(event, channel, message, event3, role);
.setTitle("The role has been successfully set to " + role.getName() + ".")) } else {
Role role = event3.getGuild().getRolesByName(event3.getMessage().getContentStripped(), true).get(0);
setRole(event, channel, message, event3, role);
}
}, event.getJDA(), event.getAuthor());
}, event.getJDA(), event.getAuthor());
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION)
.build()).queue(); .build()).queue();
Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() }
.setTitle("Rules")) } else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING)
.setTitle("Wrong Guild")
.setDescription("The mentioned channel must be on this guid!")
.build()).queue();
}
}
public void setRole(CommandEvent event, TextChannel channel, String message, GuildMessageReceivedEvent event3, Role role) {
if (event3.getGuild().getSelfMember().canInteract(role)) {
event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Custom Accept Emote")
.setDescription("The role has been successfully set to " + role.getName() + ". Now send me the emote on which your user should react to to get verified.")
.build()).queue();
new EventWaiter().newOnMessageEventWaiter(event4 -> {
if (event4.getMessage().getEmotes().size() == 1) {
Emote aemote = event4.getMessage().getEmotes().get(0);
event4.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Custom Decline Emote")
.setDescription("The first emote has been successfully set to " + aemote + ". Please send me now the decline emote.")
.build()).queue();
new EventWaiter().newOnMessageEventWaiter(event5 -> {
Emote demote = event5.getMessage().getEmotes().get(0);
if (!aemote.equals(demote)) {
Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Rules")
.setDescription(message) .setDescription(message)
.build()).complete(); .build()).complete();
rules.addReaction("").queue(); try {
rules.addReaction("").queue(); rules.addReaction(aemote).queue();
event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId()); rules.addReaction(demote).queue();
} else { event5.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
EmbedBuilder builder = new EmbedBuilder(); .setTitle("Successfully set the rules")
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); .setDescription("I successfully send the rules in " + channel.getAsMention() + ".")
}
}, event.getJDA(), event.getAuthor());
}, event.getJDA(), event.getAuthor());
} 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(); .build()).queue();
} catch (Exception e) {
event5.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR)
.setTitle("Error")
.setDescription("I can not access the custom emote(s),")
.build()).queue();
e.printStackTrace();
} }
event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId(), aemote.toString(), demote.toString());
} else { } else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, new EmbedBuilder() event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING)
.setTitle("No Channel mentioned")) .setTitle("Emotes are equal")
.setDescription("Please mention a channel. This should look like #rules") .setDescription("The 1st and 2nd emote equals each other.")
.build()).queue(); .build()).queue();
} }
}, event.getJDA(), event.getAuthor()); }, event.getJDA(), event.getAuthor());
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); String aemote = event4.getMessage().getContentRaw();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); event4.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Custom Decline Emote")
.setDescription("The first emote has been successfully set. Please send me now the decline emote.")
.build()).queue();
new EventWaiter().newOnMessageEventWaiter(event5 -> {
String demote = event5.getMessage().getContentRaw();
if (!aemote.equals(demote)) {
Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Rules")
.setDescription(message)
.build()).complete();
try {
rules.addReaction(aemote).queue();
rules.addReaction(demote).queue();
event5.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully set the rules")
.setDescription("I successfully send the rules in " + channel.getAsMention() + ".")
.build()).queue();
} catch (Exception e) {
event5.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR)
.setTitle("Error")
.setDescription("The given emote can't be used.")
.build()).queue();
e.printStackTrace();
} }
event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId(), aemote, demote);
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING)
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder).build()).queue(); .setTitle("Emotes are equal")
.setDescription("The 1st and 2nd emote equals each other.")
.build()).queue();
}
}, event.getJDA(), event.getAuthor());
}
}, event.getJDA(), event.getAuthor());
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
} }
} }
@Override @Override
public String[] labels() { public String[] labels() {
return new String[]{"rules"}; return new String[]{"rules", "rule", "setup"};
} }
@Override @Override

View file

@ -0,0 +1,55 @@
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.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();
event.getGuild().getAudioManager().openAudioConnection(vc);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully connected")
.setDescription("I successfully connected to " + vc.getName() + ".")
.build()).queue();
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING)
.setTitle("Already trying to connect")
.setDescription("Hadder is already trying to connect. Please wait a moment.")
.build()).queue();
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING)
.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,43 @@
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;
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)
.setTitle("Successfully disconnected")
.setDescription("I successfully disconnected from the Voice Channel")
.build()).queue();
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING)
.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

@ -7,13 +7,11 @@ package com.bbn.hadder.commands.nsfw;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import okhttp3.Request; import okhttp3.Request;
import okhttp3.Response; import okhttp3.Response;
import java.io.IOException; import java.io.IOException;
import java.time.Instant;
public class AnalCommand implements Command { public class AnalCommand implements Command {
@ -29,11 +27,9 @@ public class AnalCommand implements Command {
Response response = caller.newCall(request).execute(); Response response = caller.newCall(request).execute();
String url = response.body().string().replace("{\"url\":\"", ""); String url = response.body().string().replace("{\"url\":\"", "");
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder)
.setAuthor("GIF not showing? Click here", url.replace("\"}", "")) .setAuthor("GIF not showing? Click here", url.replace("\"}", ""))
.setImage(url.replace("\"}", "")) .setImage(url.replace("\"}", ""))
.setTimestamp(Instant.now())
.setFooter("Anal") .setFooter("Anal")
.build()).queue(); .build()).queue();
@ -42,8 +38,7 @@ public class AnalCommand implements Command {
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue();
} }
} }

View file

@ -7,13 +7,11 @@ package com.bbn.hadder.commands.nsfw;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import okhttp3.Request; import okhttp3.Request;
import okhttp3.Response; import okhttp3.Response;
import java.io.IOException; import java.io.IOException;
import java.time.Instant;
public class BlowjobCommand implements Command { public class BlowjobCommand implements Command {
@ -29,11 +27,9 @@ public class BlowjobCommand implements Command {
Response response = caller.newCall(request).execute(); Response response = caller.newCall(request).execute();
String url = response.body().string().replace("{\"url\":\"", ""); String url = response.body().string().replace("{\"url\":\"", "");
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder)
.setAuthor("Image not showing? Click here", url.replace("\"}", "")) .setAuthor("Image not showing? Click here", url.replace("\"}", ""))
.setImage(url.replace("\"}", "")) .setImage(url.replace("\"}", ""))
.setTimestamp(Instant.now())
.setFooter("Blowjob") .setFooter("Blowjob")
.build()).queue(); .build()).queue();
@ -42,8 +38,7 @@ public class BlowjobCommand implements Command {
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue();
} }
} }

View file

@ -7,13 +7,11 @@ package com.bbn.hadder.commands.nsfw;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import okhttp3.Request; import okhttp3.Request;
import okhttp3.Response; import okhttp3.Response;
import java.io.IOException; import java.io.IOException;
import java.time.Instant;
public class BoobsCommand implements Command { public class BoobsCommand implements Command {
@ -29,11 +27,9 @@ public class BoobsCommand implements Command {
Response response = caller.newCall(request).execute(); Response response = caller.newCall(request).execute();
String url = response.body().string().replace("{\"url\":\"", ""); String url = response.body().string().replace("{\"url\":\"", "");
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder)
.setAuthor("GIF not showing? Click here", url.replace("\"}", "")) .setAuthor("GIF not showing? Click here", url.replace("\"}", ""))
.setImage(url.replace("\"}", "")) .setImage(url.replace("\"}", ""))
.setTimestamp(Instant.now())
.setFooter("Boobs") .setFooter("Boobs")
.build()).queue(); .build()).queue();
@ -42,8 +38,7 @@ public class BoobsCommand implements Command {
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue();
} }
} }

View file

@ -7,13 +7,11 @@ package com.bbn.hadder.commands.nsfw;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import okhttp3.Request; import okhttp3.Request;
import okhttp3.Response; import okhttp3.Response;
import java.io.IOException; import java.io.IOException;
import java.time.Instant;
public class CumCommand implements Command { public class CumCommand implements Command {
@ -29,11 +27,9 @@ public class CumCommand implements Command {
Response response = caller.newCall(request).execute(); Response response = caller.newCall(request).execute();
String url = response.body().string().replace("{\"url\":\"", ""); String url = response.body().string().replace("{\"url\":\"", "");
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder)
.setAuthor("GIF not showing? Click here", url.replace("\"}", "")) .setAuthor("GIF not showing? Click here", url.replace("\"}", ""))
.setImage(url.replace("\"}", "")) .setImage(url.replace("\"}", ""))
.setTimestamp(Instant.now())
.setFooter("Cum") .setFooter("Cum")
.build()).queue(); .build()).queue();
@ -42,8 +38,7 @@ public class CumCommand implements Command {
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue();
} }
} }

View file

@ -7,13 +7,11 @@ package com.bbn.hadder.commands.nsfw;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import okhttp3.Request; import okhttp3.Request;
import okhttp3.Response; import okhttp3.Response;
import java.io.IOException; import java.io.IOException;
import java.time.Instant;
public class EroticCommand implements Command { public class EroticCommand implements Command {
@ -29,11 +27,9 @@ public class EroticCommand implements Command {
Response response = caller.newCall(request).execute(); Response response = caller.newCall(request).execute();
String url = response.body().string().replace("{\"url\":\"", ""); String url = response.body().string().replace("{\"url\":\"", "");
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder)
.setAuthor("Image not showing? Click here", url.replace("\"}", "")) .setAuthor("Image not showing? Click here", url.replace("\"}", ""))
.setImage(url.replace("\"}", "")) .setImage(url.replace("\"}", ""))
.setTimestamp(Instant.now())
.setFooter("Erotic") .setFooter("Erotic")
.build()).queue(); .build()).queue();
@ -42,8 +38,7 @@ public class EroticCommand implements Command {
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue();
} }
} }

View file

@ -7,13 +7,11 @@ package com.bbn.hadder.commands.nsfw;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import okhttp3.Request; import okhttp3.Request;
import okhttp3.Response; import okhttp3.Response;
import java.io.IOException; import java.io.IOException;
import java.time.Instant;
public class FeetCommand implements Command { public class FeetCommand implements Command {
@ -29,11 +27,9 @@ public class FeetCommand implements Command {
Response response = caller.newCall(request).execute(); Response response = caller.newCall(request).execute();
String url = response.body().string().replace("{\"url\":\"", ""); String url = response.body().string().replace("{\"url\":\"", "");
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder)
.setAuthor("Image not showing? Click here", url.replace("\"}", "")) .setAuthor("Image not showing? Click here", url.replace("\"}", ""))
.setImage(url.replace("\"}", "")) .setImage(url.replace("\"}", ""))
.setTimestamp(Instant.now())
.setFooter("Feet") .setFooter("Feet")
.build()).queue(); .build()).queue();
@ -42,8 +38,7 @@ public class FeetCommand implements Command {
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue();
} }
} }

View file

@ -7,13 +7,11 @@ package com.bbn.hadder.commands.nsfw;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import okhttp3.Request; import okhttp3.Request;
import okhttp3.Response; import okhttp3.Response;
import java.io.IOException; import java.io.IOException;
import java.time.Instant;
public class PornCommand implements Command { public class PornCommand implements Command {
@ -29,11 +27,9 @@ public class PornCommand implements Command {
Response response = caller.newCall(request).execute(); Response response = caller.newCall(request).execute();
String url = response.body().string().replace("{\"url\":\"", ""); String url = response.body().string().replace("{\"url\":\"", "");
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder)
.setAuthor("GIF not showing? Click here", url.replace("\"}", "")) .setAuthor("GIF not showing? Click here", url.replace("\"}", ""))
.setImage(url.replace("\"}", "")) .setImage(url.replace("\"}", ""))
.setTimestamp(Instant.now())
.setFooter("Porn") .setFooter("Porn")
.build()).queue(); .build()).queue();
@ -42,8 +38,7 @@ public class PornCommand implements Command {
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue();
} }
} }

View file

@ -7,13 +7,11 @@ package com.bbn.hadder.commands.nsfw;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import okhttp3.Request; import okhttp3.Request;
import okhttp3.Response; import okhttp3.Response;
import java.io.IOException; import java.io.IOException;
import java.time.Instant;
public class PussyCommand implements Command { public class PussyCommand implements Command {
@ -29,11 +27,9 @@ public class PussyCommand implements Command {
Response response = caller.newCall(request).execute(); Response response = caller.newCall(request).execute();
String url = response.body().string().replace("{\"url\":\"", ""); String url = response.body().string().replace("{\"url\":\"", "");
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder)
.setAuthor("GIF not showing? Click here", url.replace("\"}", "")) .setAuthor("GIF not showing? Click here", url.replace("\"}", ""))
.setImage(url.replace("\"}", "")) .setImage(url.replace("\"}", ""))
.setTimestamp(Instant.now())
.setFooter("Pussy") .setFooter("Pussy")
.build()).queue(); .build()).queue();
@ -42,8 +38,7 @@ public class PussyCommand implements Command {
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue();
} }
} }

View file

@ -7,13 +7,11 @@ package com.bbn.hadder.commands.nsfw;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import okhttp3.Request; import okhttp3.Request;
import okhttp3.Response; import okhttp3.Response;
import java.io.IOException; import java.io.IOException;
import java.time.Instant;
public class TransCommand implements Command { public class TransCommand implements Command {
@ -29,11 +27,9 @@ public class TransCommand implements Command {
Response response = caller.newCall(request).execute(); Response response = caller.newCall(request).execute();
String url = response.body().string().replace("{\"url\":\"", ""); String url = response.body().string().replace("{\"url\":\"", "");
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder)
.setAuthor("Image not showing? Click here", url.replace("\"}", "")) .setAuthor("Image not showing? Click here", url.replace("\"}", ""))
.setImage(url.replace("\"}", "")) .setImage(url.replace("\"}", ""))
.setTimestamp(Instant.now())
.setFooter("Trans") .setFooter("Trans")
.build()).queue(); .build()).queue();
@ -42,8 +38,7 @@ public class TransCommand implements Command {
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue();
} }
} }

View file

@ -0,0 +1,101 @@
package com.bbn.hadder.commands.owner;
/*
* @author Skidder / GregTCLTK
*/
import com.bbn.hadder.Hadder;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class EvalCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {
if (args.length > 0) {
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
try {
engine.eval("var imports = new JavaImporter(java.io, java.lang, java.util);");
} catch (ScriptException ex) {
ex.printStackTrace();
}
engine.put("msg", event.getMessage());
engine.put("shradmanager", Hadder.shardManager);
engine.put("rethink", event.getRethink());
engine.put("event", event);
engine.put("jda", event.getJDA());
engine.put("message", event.getMessage());
engine.put("guild", event.getGuild());
engine.put("channel", event.getChannel());
engine.put("author", event.getAuthor());
engine.put("member", event.getMember());
engine.put("self", event.getGuild().getSelfMember());
ScheduledExecutorService service = Executors.newScheduledThreadPool(1);
service.schedule(() -> {
long startExec = System.currentTimeMillis();
Object out;
try {
String script = "";
for (int i = 0; i < args.length; i++) {
args[i] = args[i].replace("```java", "").replace("```", "");
script += i == args.length-1 ? args[i]:args[i]+" ";
}
out = engine.eval(script);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Eval Command")
.addField("Input", "```java\n\n" + script + "```", false)
.addField("Output", "```java\n\n" + out.toString() + "```", false)
.addField("Timing", System.currentTimeMillis()-startExec + " milliseconds", false)
.build()).queue();
} catch (Exception ex) {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Eval Command")
.addField("Error", "```java\n\n" + ex.getMessage() + "```", false)
.addField("Timing", System.currentTimeMillis()-startExec + " milliseconds", false)
.build()).queue();
}
service.shutdownNow();
}, 0, TimeUnit.MILLISECONDS);
} else {
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
}
}
@Override
public String[] labels() {
return new String[]{"eval"};
}
@Override
public String description() {
return "Execute the given code";
}
@Override
public String usage() {
return "<Code to execute>";
}
}

View file

@ -0,0 +1,46 @@
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.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)
.setTitle("Successfully left")
.setDescription("I successfully left " + guild.getName())
.build()).queue();
} else {
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).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

@ -7,25 +7,22 @@ package com.bbn.hadder.commands.owner;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
public class RebootCommand implements Command { public class RebootCommand implements Command {
@Override @Override
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
if (event.getAuthor().getId().equals("477141528981012511") || event.getAuthor().getId().equals("261083609148948488")) { if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {
Runtime.getRuntime().exit(69);
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder).build()).queue();
} }
} }
@Override @Override
public String[] labels() { public String[] labels() {
return new String[]{"restart"}; return new String[]{"restart", "restart"};
} }
@Override @Override

View file

@ -7,26 +7,24 @@ package com.bbn.hadder.commands.owner;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
public class ShutdownCommand implements Command { public class ShutdownCommand implements Command {
@Override @Override
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
if (event.getAuthor().getId().equals("477141528981012511") || event.getAuthor().getId().equals("261083609148948488")) { if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("Shutdown").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("Shutdown").build()).queue();
event.getJDA().getShardManager().shutdown(); event.getJDA().getShardManager().shutdown();
System.out.println("Bot shut down via Command..."); System.out.println("Bot shut down via Command...");
System.exit(0); Runtime.getRuntime().exit(69);
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder).build()).queue();
} }
} }
@Override @Override
public String[] labels() { public String[] labels() {
return new String[]{"shutdown"}; return new String[]{"shutdown", "exit"};
} }
@Override @Override

View file

@ -7,7 +7,6 @@ package com.bbn.hadder.commands.settings;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
public class PrefixCommand implements Command { public class PrefixCommand implements Command {
@ -15,11 +14,8 @@ public class PrefixCommand implements Command {
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
if (args.length == 1) { if (args.length == 1) {
event.getRethink().setUserPrefix(args[0], event.getAuthor().getId()); event.getRethink().setUserPrefix(args[0], event.getAuthor().getId());
EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully set ✅").setDescription("I successfully set the new prefix for you to " + args[0]).build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("✅ Successfully set ✅").setDescription("I successfully set the new prefix for you to " + args[0]).build()).queue();
} else { } else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to set a prefix.").build()).queue();
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
} }
} }

View file

@ -59,6 +59,10 @@ public class Config {
.key("DiscordBotList").value(null) .key("DiscordBotList").value(null)
.key("DiscordBestBots").value(null) .key("DiscordBestBots").value(null)
.key("DiscordBoats").value(null) .key("DiscordBoats").value(null)
.key("YetAnotherBotList").value(null)
.value("DiscordExtremeList").value(null)
.value("DiscordBotReviews").value(null)
.value("DiscordBots").value(null)
.endObject().endObject().toString(); .endObject().endObject().toString();
} }
@ -129,4 +133,12 @@ public class Config {
public String getDiscordBotReviewsToken() { public String getDiscordBotReviewsToken() {
return config.getJSONObject("Tokens").getString("DiscordBotReviews"); return config.getJSONObject("Tokens").getString("DiscordBotReviews");
} }
public String getDiscordBotsToken() {
return config.getJSONObject("Tokens").getString("DiscordBots");
}
public String getBotListSpaceToken() {
return config.getJSONObject("Tokens").getString("BotListSpace");
}
} }

View file

@ -25,7 +25,7 @@ public class LinkUtils {
private void send(Message message, TextChannel channel, User user, List<String> reactions, boolean usedmessagebuilder) { private void send(Message message, TextChannel channel, User user, List<String> reactions, boolean usedmessagebuilder) {
if (!channel.getGuild().getSelfMember().hasPermission(Permission.MANAGE_WEBHOOKS)) { if (!channel.getGuild().getSelfMember().hasPermission(Permission.MANAGE_WEBHOOKS)) {
channel.sendMessage(new EmbedBuilder().setTitle("Wait a sec").setDescription("Please contact the owner of the server to give me the manage webhook permission").build()).queue(); channel.sendMessage(new EmbedBuilder().setTitle("Wait a sec").setDescription("Please contact the owner of the server to give me the Manage Webhooks permission").build()).queue();
} else { } else {
channel.retrieveWebhooks().queue( channel.retrieveWebhooks().queue(
webhooks -> { webhooks -> {
@ -87,9 +87,7 @@ public class LinkUtils {
} }
} }
); );
} catch (InterruptedException e) { } catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace(); e.printStackTrace();
} }
} }

View file

@ -22,9 +22,8 @@ public class CommandListener extends ListenerAdapter {
@Override @Override
public void onMessageReceived(MessageReceivedEvent event) { public void onMessageReceived(MessageReceivedEvent event) {
if (event.isFromType(ChannelType.TEXT)) { if (event.isFromType(ChannelType.TEXT) && !event.getAuthor().isBot()) {
if (!event.getAuthor().isBot()) { String[] prefixes = {rethink.getUserPrefix(event.getAuthor().getId()), rethink.getGuildPrefix(event.getGuild().getId()), event.getGuild().getSelfMember().getAsMention() + " ", event.getGuild().getSelfMember().getAsMention()};
String[] prefixes = {rethink.getUserPrefix(event.getAuthor().getId()), rethink.getGuildPrefix(event.getGuild().getId()), event.getGuild().getSelfMember().getAsMention()+" ", event.getGuild().getSelfMember().getAsMention()};
for (String prefix : prefixes) { for (String prefix : prefixes) {
if (event.getMessage().getContentRaw().startsWith(prefix)) { if (event.getMessage().getContentRaw().startsWith(prefix)) {
handler.handle(event, rethink, prefix); handler.handle(event, rethink, prefix);
@ -33,5 +32,4 @@ public class CommandListener extends ListenerAdapter {
} }
} }
} }
}
} }

View file

@ -8,7 +8,6 @@ import com.bbn.hadder.Rethink;
import com.bbn.hadder.core.Config; import com.bbn.hadder.core.Config;
import com.bbn.hadder.utils.BotList; import com.bbn.hadder.utils.BotList;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.events.guild.GuildJoinEvent; import net.dv8tion.jda.api.events.guild.GuildJoinEvent;
import net.dv8tion.jda.api.events.guild.GuildLeaveEvent; import net.dv8tion.jda.api.events.guild.GuildLeaveEvent;
@ -37,8 +36,7 @@ public class GuildListener extends ListenerAdapter {
}).start(); }).start();
rethink.insertGuild(event.getGuild().getId()); rethink.insertGuild(event.getGuild().getId());
EmbedBuilder builder = new EmbedBuilder(); event.getJDA().getTextChannelById("475722540140986369").sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
event.getJDA().getTextChannelById("475722540140986369").sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder)
.setTitle("Joined Server") .setTitle("Joined Server")
.setThumbnail(event.getGuild().getIconUrl()) .setThumbnail(event.getGuild().getIconUrl())
.addField("Name", event.getGuild().getName(), true) .addField("Name", event.getGuild().getName(), true)
@ -53,8 +51,7 @@ public class GuildListener extends ListenerAdapter {
} }
public void onGuildLeave(GuildLeaveEvent event) { public void onGuildLeave(GuildLeaveEvent event) {
EmbedBuilder builder = new EmbedBuilder(); event.getJDA().getTextChannelById("475722540140986369").sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
event.getJDA().getTextChannelById("475722540140986369").sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder)
.setTitle("Left Server") .setTitle("Left Server")
.setThumbnail(event.getGuild().getIconUrl()) .setThumbnail(event.getGuild().getIconUrl())
.addField("Name", event.getGuild().getName(), true) .addField("Name", event.getGuild().getName(), true)

View file

@ -0,0 +1,97 @@
package com.bbn.hadder.listener;
/*
* @author Skidder / GregTCLTK
*/
import com.bbn.hadder.Rethink;
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.events.message.MessageUpdateEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.json.JSONObject;
import javax.annotation.Nonnull;
public class InviteLinkListener extends ListenerAdapter {
private Rethink rethink;
public InviteLinkListener(Rethink rethink) {
this.rethink = rethink;
}
@Override
public void onMessageReceived(@Nonnull MessageReceivedEvent event) {
if (event.isFromType(ChannelType.TEXT)) {
if (event.getMessage().getContentRaw().contains("discord.gg/")) {
if (!event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId())) {
String split = event.getMessage().getContentRaw().split("discord.gg/", 10)[1];
String invite = split.split(" ")[0];
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build();
try {
Response response = client.newCall(request).execute();
JSONObject json = new JSONObject(response.body().string());
if (!json.toString().contains("\"message\":")) {
event.getMessage().delete().reason("Invite Link detected").queue();
}
} catch (Exception e) {
e.printStackTrace();
}
}
} else if (event.getMessage().getContentRaw().contains("discordapp.com/invite") && !event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId())) {
String split = event.getMessage().getContentRaw().split("discordapp.com/invite/", 10)[1];
String invite = split.split(" ")[0];
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build();
try {
Response response = client.newCall(request).execute();
JSONObject json = new JSONObject(response.body().string());
if (!json.toString().contains("\"message\":")) {
event.getMessage().delete().reason("Invite Link detected").queue();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
@Override
public void onMessageUpdate(@Nonnull MessageUpdateEvent event) {
if (event.isFromType(ChannelType.TEXT) && event.getMessage().getContentRaw().contains("discord.gg/") && !event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId())) {
String split = event.getMessage().getContentRaw().split("discord.gg/", 10)[1];
String invite = split.split(" ")[0];
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build();
try {
Response response = client.newCall(request).execute();
JSONObject json = new JSONObject(response.body().string());
if (!json.toString().contains("\"message\":")) {
event.getMessage().delete().reason("Invite Link detected").queue();
}
} catch (Exception e) {
e.printStackTrace();
}
} else if (event.getMessage().getContentRaw().contains("discordapp.com/invite") && !event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId())) {
String split = event.getMessage().getContentRaw().split("discordapp.com/invite/", 10)[1];
String invite = split.split(" ")[0];
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build();
try {
Response response = client.newCall(request).execute();
JSONObject json = new JSONObject(response.body().string());
if (!json.toString().contains("\"message\":")) {
event.getMessage().delete().reason("Invite Link detected").queue();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}

View file

@ -3,8 +3,8 @@ package com.bbn.hadder.listener;
import com.bbn.hadder.Rethink; import com.bbn.hadder.Rethink;
import com.bbn.hadder.core.LinkUtils; import com.bbn.hadder.core.LinkUtils;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.ChannelType;
import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.MessageEmbed;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent; import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent;
@ -15,7 +15,7 @@ import java.util.ArrayList;
public class LinkListener extends ListenerAdapter { public class LinkListener extends ListenerAdapter {
Rethink rethink; private Rethink rethink;
public LinkListener(Rethink rethink) { public LinkListener(Rethink rethink) {
this.rethink = rethink; this.rethink = rethink;
@ -25,12 +25,8 @@ public class LinkListener extends ListenerAdapter {
public void onMessageReactionAdd(@Nonnull MessageReactionAddEvent event) { public void onMessageReactionAdd(@Nonnull MessageReactionAddEvent event) {
event.getChannel().retrieveMessageById(event.getMessageId()).queue( event.getChannel().retrieveMessageById(event.getMessageId()).queue(
msg -> { msg -> {
if (!event.getMember().getUser().equals(event.getJDA().getSelfUser()) && msg.getAuthor().equals(event.getJDA().getSelfUser()) && msg.getEmbeds().size() == 1 && msg.getEmbeds().get(0).getFooter() == null && msg.getEmbeds().get(0).getTitle().endsWith(") wants to link guilds!")) {
if (event.getMember().hasPermission(Permission.MANAGE_CHANNEL)) { if (event.getMember().hasPermission(Permission.MANAGE_CHANNEL)) {
if (!event.getMember().getUser().equals(event.getJDA().getSelfUser())) {
if (msg.getAuthor().equals(event.getJDA().getSelfUser())) {
if (msg.getEmbeds().size() == 1) {
if (msg.getEmbeds().get(0).getFooter() == null) {
if (msg.getEmbeds().get(0).getTitle().endsWith(") wants to link guilds!")) {
String requestguild = msg.getEmbeds().get(0).getTitle().replaceAll("\\) wants to link guilds!", ""); String requestguild = msg.getEmbeds().get(0).getTitle().replaceAll("\\) wants to link guilds!", "");
String requestguildid = null; String requestguildid = null;
for (int i = requestguild.length() - 1; i >= 0; i--) { for (int i = requestguild.length() - 1; i >= 0; i--) {
@ -46,23 +42,21 @@ public class LinkListener extends ListenerAdapter {
msg.delete().queue(); msg.delete().queue();
MessageEmbed msgembed = new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, MessageEmbed msgembed = new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
new EmbedBuilder().setTitle("Guilds linked!").setDescription("The Guild allowed the link. Have fun!")).build(); .setTitle("Guilds linked!").setDescription("The Guild allowed the link. Have fun!").build();
event.getChannel().sendMessage(msgembed).queue(); event.getChannel().sendMessage(msgembed).queue();
event.getJDA().getTextChannelById(rethink.getLinkChannel(requestguildid)).sendMessage(msgembed).queue(); event.getJDA().getTextChannelById(rethink.getLinkChannel(requestguildid)).sendMessage(msgembed).queue();
} else if (event.getReactionEmote().getName().equals("")) { } else if (event.getReactionEmote().getName().equals("")) {
msg.delete().queue(); msg.delete().queue();
MessageEmbed msgembed = new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, MessageEmbed msgembed = new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
new EmbedBuilder().setTitle("Guild linking denied.").setDescription("The Guild denied the link. :(")).build(); .setTitle("Guild linking denied.").setDescription("The Guild denied the linking. :(").build();
event.getChannel().sendMessage(msgembed).queue(); event.getChannel().sendMessage(msgembed).queue();
event.getJDA().getTextChannelById(rethink.getLinkChannel(requestguildid)).sendMessage(msgembed).queue(); event.getJDA().getTextChannelById(rethink.getLinkChannel(requestguildid)).sendMessage(msgembed).queue();
} }
} }
} } else {
} event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
}
}
} }
} }
} }
@ -71,11 +65,9 @@ public class LinkListener extends ListenerAdapter {
@Override @Override
public void onMessageReceived(@Nonnull MessageReceivedEvent event) { public void onMessageReceived(@Nonnull MessageReceivedEvent event) {
if (!event.isWebhookMessage()) { if (!event.isWebhookMessage() && event.getChannel().getId().equals(rethink.getLinkChannel(event.getGuild().getId())) && event.isFromType(ChannelType.TEXT)) {
if (event.getChannel().getId().equals(rethink.getLinkChannel(event.getGuild().getId()))) {
new LinkUtils().sendAll(rethink.getLinks(event.getGuild().getId()), event.getJDA(), event.getMessage(), event.getAuthor(), new ArrayList<>() { new LinkUtils().sendAll(rethink.getLinks(event.getGuild().getId()), event.getJDA(), event.getMessage(), event.getAuthor(), new ArrayList<>() {
}, rethink, false); }, rethink, false);
} }
} }
}
} }

View file

@ -2,7 +2,6 @@ package com.bbn.hadder.listener;
import com.bbn.hadder.Rethink; import com.bbn.hadder.Rethink;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.ChannelType;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter; import net.dv8tion.jda.api.hooks.ListenerAdapter;
@ -19,17 +18,15 @@ public class MentionListener extends ListenerAdapter {
@Override @Override
public void onMessageReceived(@Nonnull MessageReceivedEvent event) { public void onMessageReceived(@Nonnull MessageReceivedEvent event) {
if (event.isFromType(ChannelType.TEXT)) { if (event.isFromType(ChannelType.TEXT) && event.getMessage().getContentRaw().equals(event.getGuild().getSelfMember().getAsMention())) {
if (event.getMessage().getContentRaw().equals(event.getGuild().getSelfMember().getAsMention())) { event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
EmbedBuilder builder = new EmbedBuilder()
.setTitle("Hello I'm Hadder.") .setTitle("Hello I'm Hadder.")
.setAuthor(event.getJDA().getSelfUser().getName(), event.getJDA().getSelfUser().getAvatarUrl(), event.getJDA().getSelfUser().getAvatarUrl()) .setAuthor(event.getJDA().getSelfUser().getName(), event.getJDA().getSelfUser().getAvatarUrl(), event.getJDA().getSelfUser().getAvatarUrl())
.addField("Users", String.valueOf(event.getJDA().getUsers().size()), false) .addField("Users", String.valueOf(event.getJDA().getUsers().size()), false)
.addField("Guilds", String.valueOf(event.getJDA().getGuilds().size()), false) .addField("Guilds", String.valueOf(event.getJDA().getGuilds().size()), false)
.addField("Prefix (User)", rethink.getUserPrefix(event.getAuthor().getId()), false) .addField("Prefix (User)", rethink.getUserPrefix(event.getAuthor().getId()), false)
.addField("Prefix (Guild)", rethink.getGuildPrefix(event.getGuild().getId()), false); .addField("Prefix (Guild)", rethink.getGuildPrefix(event.getGuild().getId()), false)
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).build()).queue(); .build()).queue();
}
} }
} }
} }

View file

@ -5,7 +5,6 @@ package com.bbn.hadder.listener;
*/ */
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.ChannelType;
import net.dv8tion.jda.api.entities.PrivateChannel; import net.dv8tion.jda.api.entities.PrivateChannel;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
@ -16,21 +15,22 @@ import java.time.Instant;
public class PrivateMessageListener extends ListenerAdapter { public class PrivateMessageListener extends ListenerAdapter {
public void onMessageReceived(MessageReceivedEvent event) { public void onMessageReceived(MessageReceivedEvent event) {
if (event.isFromType(ChannelType.PRIVATE)) { if (event.isFromType(ChannelType.PRIVATE) && !event.getAuthor().getId().equals(event.getJDA().getSelfUser().getId())) {
if (!event.getAuthor().getId().equals(event.getJDA().getSelfUser().getId())) {
PrivateChannel Skidder = event.getJDA().getUserById("477141528981012511").openPrivateChannel().complete(); PrivateChannel Skidder = event.getJDA().getUserById("477141528981012511").openPrivateChannel().complete();
PrivateChannel Hax = event.getJDA().getUserById("261083609148948488").openPrivateChannel().complete(); PrivateChannel Hax = event.getJDA().getUserById("261083609148948488").openPrivateChannel().complete();
EmbedBuilder message = new EmbedBuilder() Skidder.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("New DM by " + event.getAuthor().getAsTag()) .setTitle("New DM by " + event.getAuthor().getAsTag())
.setAuthor(event.getAuthor().getName(), event.getAuthor().getAvatarUrl(), event.getAuthor().getAvatarUrl()) .setAuthor(event.getAuthor().getName(), event.getAuthor().getAvatarUrl(), event.getAuthor().getAvatarUrl())
.setDescription(event.getMessage().getContentRaw()) .setDescription(event.getMessage().getContentRaw())
.setTimestamp(Instant.now()); .setTimestamp(Instant.now())
.build()).queue();
Skidder.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, message).build()).queue(); Hax.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
Hax.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, message).build()).queue(); .setTitle("New DM by " + event.getAuthor().getAsTag())
} .setAuthor(event.getAuthor().getName(), event.getAuthor().getAvatarUrl(), event.getAuthor().getAvatarUrl())
.setDescription(event.getMessage().getContentRaw())
.setTimestamp(Instant.now())
.build()).queue();
} }
} }
} }

View file

@ -6,6 +6,7 @@ package com.bbn.hadder.listener;
import com.bbn.hadder.Rethink; import com.bbn.hadder.Rethink;
import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent; import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent;
import net.dv8tion.jda.api.events.message.react.MessageReactionRemoveEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter; import net.dv8tion.jda.api.hooks.ListenerAdapter;
public class RulesListener extends ListenerAdapter { public class RulesListener extends ListenerAdapter {
@ -18,10 +19,33 @@ public class RulesListener extends ListenerAdapter {
@Override @Override
public void onMessageReactionAdd(MessageReactionAddEvent event) { public void onMessageReactionAdd(MessageReactionAddEvent event) {
if (event.getMessageId().equals(rethink.getRulesMID(event.getGuild().getId()))) { if (event.getMessageId().equals(rethink.getRulesMID(event.getGuild().getId())) && !event.getMember().getUser().isBot()) {
if (!event.getMember().getUser().isBot()) { if (event.getReactionEmote().isEmote()) {
event.getGuild().addRoleToMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).queue(); if (rethink.getRulesAEmote(event.getGuild().getId()).contains(event.getReactionEmote().getId())) {
event.getGuild().addRoleToMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).reason("Accepted rules").queue();
} else if (rethink.getRulesDEmote(event.getGuild().getId()).contains(event.getReactionEmote().getId())) {
event.getReaction().removeReaction(event.getUser()).queue();
if (event.getGuild().getSelfMember().canInteract(event.getMember())) {
event.getMember().kick().reason("Declined the rules");
} }
} }
} else {
if (event.getReactionEmote().getEmoji().equals(rethink.getRulesAEmote(event.getGuild().getId()))) {
event.getGuild().addRoleToMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).reason("Accepted rules").queue();
} else if (event.getReactionEmote().getEmoji().equals(rethink.getRulesDEmote(event.getGuild().getId()))) {
event.getReaction().removeReaction(event.getUser()).queue();
if (event.getGuild().getSelfMember().canInteract(event.getMember())) {
event.getMember().kick().reason("Declined the rules");
}
}
}
}
}
@Override
public void onMessageReactionRemove(MessageReactionRemoveEvent event) {
if (event.getMessageId().equals(rethink.getRulesMID(event.getGuild().getId())) && !event.getMember().getUser().isBot()) {
event.getGuild().removeRoleFromMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).reason("Withdrawal of the acceptance of the rules").queue();
}
} }
} }

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;
}
}

View file

@ -26,6 +26,8 @@ public class BotList {
private static String YetAnotherBotList = "https://yabl.xyz/api/bot/637002314162372639/stats"; private static String YetAnotherBotList = "https://yabl.xyz/api/bot/637002314162372639/stats";
private static String DiscordExtremeList = "https://discordextremelist.xyz/api/bot/637002314162372639"; private static String DiscordExtremeList = "https://discordextremelist.xyz/api/bot/637002314162372639";
private static String DiscordBotReviews = "https://discordbotreviews.xyz/api/bot/637002314162372639/stats"; private static String DiscordBotReviews = "https://discordbotreviews.xyz/api/bot/637002314162372639/stats";
private static String DiscordBots = "https://top.gg/api/bots/637002314162372639/stats";
private static String BotListSpace = "https://api.botlist.space/v1/bots/637002314162372639";
private Config config; private Config config;
@ -40,6 +42,7 @@ public class BotList {
json.put("guildCount", Hadder.shardManager.getGuilds().size()); json.put("guildCount", Hadder.shardManager.getGuilds().size());
json.put("guilds", Hadder.shardManager.getGuilds().size()); json.put("guilds", Hadder.shardManager.getGuilds().size());
json.put("users", Hadder.shardManager.getUsers().size()); json.put("users", Hadder.shardManager.getUsers().size());
json.put("shard_count", Hadder.shardManager.getShards().size());
RequestBody body = RequestBody.create(MediaType.parse("application/json"), json.toString()); RequestBody body = RequestBody.create(MediaType.parse("application/json"), json.toString());
@ -143,7 +146,7 @@ public class BotList {
try { try {
new OkHttpClient().newCall(discordextremelist).execute().close(); new OkHttpClient().newCall(discordextremelist).execute().close();
System.out.println("Successfully posted count to the Discord Extreme List!"); System.out.println("Successfully posted count for the Discord Extreme List!");
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
@ -162,7 +165,36 @@ public class BotList {
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
}
// Discord Bots
Request discordbots = new Request.Builder()
.url(DiscordBots)
.post(body)
.addHeader("Authorization", config.getDiscordBotsToken())
.build();
try {
new OkHttpClient().newCall(discordbots).execute().close();
System.out.println("Successfully posted count to Discord Bots!");
} catch (IOException e) {
e.printStackTrace();
} }
// BotListSpace
Request botlistspace = new Request.Builder()
.url(BotListSpace)
.post(body)
.addHeader("Authorization", config.getBotListSpaceToken())
.build();
try {
new OkHttpClient().newCall(botlistspace).execute().close();
System.out.println("Successfully posted count to BotList.Space!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
} }

View file

@ -3,32 +3,53 @@ package com.bbn.hadder.utils;
import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.EmbedBuilder;
import java.awt.*; import java.awt.*;
import java.time.Instant;
public class MessageEditor { public class MessageEditor {
public EmbedBuilder setDefaultSettings(MessageType type, EmbedBuilder embedBuilder) { public EmbedBuilder setDefaultSettings(MessageType type) {
EmbedBuilder builder = new EmbedBuilder();
switch (type) { switch (type) {
case INFO: case INFO:
embedBuilder.setColor(new Color(47,94,105)); builder
.setColor(new Color(47, 94, 105))
.setFooter("Hadder", "https://bigbotnetwork.com/images/Hadder.png")
.setTimestamp(Instant.now());
break; break;
case ERROR: case ERROR:
embedBuilder.setColor(Color.RED); builder
.setColor(Color.RED)
.setFooter("Hadder", "https://bigbotnetwork.com/images/Hadder.png")
.setTimestamp(Instant.now());
break; break;
case WARNING: case WARNING:
embedBuilder.setColor(Color.ORANGE); builder
.setColor(Color.ORANGE)
.setFooter("Hadder", "https://bigbotnetwork.com/images/Hadder.png")
.setTimestamp(Instant.now());
break; break;
case NO_PERMISSION: case NO_PERMISSION:
embedBuilder.setTitle("⛔ No Permission ⛔").setDescription("You are not authorized to execute this command!").setColor(Color.RED); builder
.setTitle("⛔ No Permission ⛔")
.setDescription("You are not authorized to execute this command!")
.setColor(Color.RED)
.setFooter("Hadder", "https://bigbotnetwork.com/images/Hadder.png")
.setTimestamp(Instant.now());
break; break;
case NO_SELF_PERMISSION: case NO_SELF_PERMISSION:
embedBuilder.setTitle("⛔ No Permission ⛔").setDescription("Unfortunately, I do not have the required rights to perform this action").setColor(Color.RED); builder
.setTitle("⛔ No Permission ⛔")
.setDescription("Unfortunately, I do not have the required rights to perform this action")
.setColor(Color.RED)
.setFooter("Hadder", "https://bigbotnetwork.com/images/Hadder.png")
.setTimestamp(Instant.now());
break; break;
} }
return embedBuilder; return builder;
} }
public enum MessageType { public enum MessageType {
@ -38,5 +59,4 @@ public class MessageEditor {
NO_PERMISSION, NO_PERMISSION,
NO_SELF_PERMISSION NO_SELF_PERMISSION
} }
} }