Merge branch 'master' into hax-dev
This commit is contained in:
commit
fed24d2a7f
9 changed files with 242 additions and 9 deletions
10
pom.xml
10
pom.xml
|
|
@ -25,12 +25,12 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.dv8tion</groupId>
|
<groupId>net.dv8tion</groupId>
|
||||||
<artifactId>JDA</artifactId>
|
<artifactId>JDA</artifactId>
|
||||||
<version>4.0.0_61</version>
|
<version>4.0.0_62</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.json</groupId>
|
<groupId>org.json</groupId>
|
||||||
<artifactId>json</artifactId>
|
<artifactId>json</artifactId>
|
||||||
<version>LATEST</version>
|
<version>20190722</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.rethinkdb</groupId>
|
<groupId>com.rethinkdb</groupId>
|
||||||
|
|
@ -57,6 +57,12 @@
|
||||||
<artifactId>discord-webhooks</artifactId>
|
<artifactId>discord-webhooks</artifactId>
|
||||||
<version>0.1.8</version>
|
<version>0.1.8</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.kohsuke</groupId>
|
||||||
|
<artifactId>github-api</artifactId>
|
||||||
|
<version>1.99</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<repositories>
|
<repositories>
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,8 @@ public class Hadder {
|
||||||
new FeetCommand(),
|
new FeetCommand(),
|
||||||
new EroticCommand(),
|
new EroticCommand(),
|
||||||
new RoleCommand(),
|
new RoleCommand(),
|
||||||
|
new RulesCommand(),
|
||||||
|
new FeedbackCommand(),
|
||||||
new LinkCommand()), config, helpCommand);
|
new LinkCommand()), config, helpCommand);
|
||||||
|
|
||||||
builder.addEventListeners(
|
builder.addEventListeners(
|
||||||
|
|
@ -76,7 +78,9 @@ 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 RulesListener(rethink));
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
shardManager = builder.build();
|
shardManager = builder.build();
|
||||||
|
|
|
||||||
|
|
@ -143,11 +143,25 @@ public class Rethink {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String insertGuild(String id) {
|
public String insertGuild(String id) {
|
||||||
return this.insert("server", r.hashMap("id", id).with("prefix", "h.").with("links", "[]").with("linkchannel", ""));
|
return this.insert("server", r.hashMap("id", id).with("prefix", "h.").with("links", "[]").with("linkchannel", "").with("message_id", "").with("role_id", ""));
|
||||||
}
|
}
|
||||||
|
|
||||||
public String insertUser(String id) {
|
public String insertUser(String id) {
|
||||||
return this.insert("user", r.hashMap("id", id).with("prefix", "h."));
|
return this.insert("user", r.hashMap("id", id).with("prefix", "h."));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String updateRules(String guild_id, String message_id, String role_id) {
|
||||||
|
this.update("server", guild_id, "message_id", message_id);
|
||||||
|
this.update("server", guild_id, "role_id", role_id);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRulesMID(String guild_id) {
|
||||||
|
return (String) this.get("server", "id", guild_id, "message_id");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRulesRID(String guild_id) {
|
||||||
|
return (String) this.get("server", "id", guild_id, "role_id");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,64 @@
|
||||||
|
package com.bbn.hadder.commands.misc;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @author Skidder / GregTCLTK
|
||||||
|
*/
|
||||||
|
|
||||||
|
import com.bbn.hadder.commands.Command;
|
||||||
|
import com.bbn.hadder.commands.CommandEvent;
|
||||||
|
import com.bbn.hadder.utils.EventWaiter;
|
||||||
|
import com.bbn.hadder.utils.MessageEditor;
|
||||||
|
import net.dv8tion.jda.api.EmbedBuilder;
|
||||||
|
import org.kohsuke.github.GHIssue;
|
||||||
|
import org.kohsuke.github.GHRepository;
|
||||||
|
import org.kohsuke.github.GitHub;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
public class FeedbackCommand implements Command {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void executed(String[] args, CommandEvent event) {
|
||||||
|
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
|
||||||
|
.setTitle("Feedback Topic")
|
||||||
|
.setDescription("Please send me the feedback topic."))
|
||||||
|
.build()).queue();
|
||||||
|
new EventWaiter().newOnMessageEventWaiter(event1 -> {
|
||||||
|
String title = event1.getMessage().getContentDisplay();
|
||||||
|
event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
|
||||||
|
.setTitle("Feedback Description")
|
||||||
|
.setDescription("Please send me the feedback description now."))
|
||||||
|
.build()).queue();
|
||||||
|
new EventWaiter().newOnMessageEventWaiter(event2 -> {
|
||||||
|
String description = event2.getMessage().getContentDisplay();
|
||||||
|
try {
|
||||||
|
GitHub connection = GitHub.connectUsingOAuth(event.getConfig().getGitHubToken());
|
||||||
|
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();
|
||||||
|
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
|
||||||
|
.setTitle("Feedback successfully sent"))
|
||||||
|
.setDescription(issue.getHtmlUrl().toString())
|
||||||
|
.build()).queue();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}, event.getJDA(), event.getAuthor());
|
||||||
|
}, event.getJDA(), event.getAuthor());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String[] labels() {
|
||||||
|
return new String[]{"feedback"};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String description() {
|
||||||
|
return "Sends feedback directly to the developers.";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String usage() {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,97 @@
|
||||||
|
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.EventWaiter;
|
||||||
|
import com.bbn.hadder.utils.MessageEditor;
|
||||||
|
import net.dv8tion.jda.api.EmbedBuilder;
|
||||||
|
import net.dv8tion.jda.api.Permission;
|
||||||
|
import net.dv8tion.jda.api.entities.Message;
|
||||||
|
import net.dv8tion.jda.api.entities.Role;
|
||||||
|
import net.dv8tion.jda.api.entities.TextChannel;
|
||||||
|
|
||||||
|
public class RulesCommand implements Command {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void executed(String[] args, CommandEvent event) {
|
||||||
|
if (event.getMember().hasPermission(Permission.MANAGE_SERVER)) {
|
||||||
|
if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_ROLES)) {
|
||||||
|
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
|
||||||
|
.setTitle("Set up rules")
|
||||||
|
.setDescription("Please specify the channel on which I should send the rules. Your message should look like: #rules."))
|
||||||
|
.build()).queue();
|
||||||
|
new EventWaiter().newOnMessageEventWaiter(event1 -> {
|
||||||
|
if (event1.getMessage().getMentionedChannels().size() > 0) {
|
||||||
|
TextChannel channel = event1.getMessage().getMentionedChannels().get(0);
|
||||||
|
if (channel.getGuild().getId().equals(event1.getGuild().getId())) {
|
||||||
|
event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
|
||||||
|
.setTitle("Rules")
|
||||||
|
.setDescription("The channel was successfully set to " + channel.getName() + ". Please send me the rules now."))
|
||||||
|
.build()).queue();
|
||||||
|
new EventWaiter().newOnMessageEventWaiter(event2 -> {
|
||||||
|
String message = event2.getMessage().getContentDisplay();
|
||||||
|
event2.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
|
||||||
|
.setTitle("Role to assign"))
|
||||||
|
.setDescription("The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules.")
|
||||||
|
.build()).queue();
|
||||||
|
new EventWaiter().newOnMessageEventWaiter(event3 -> {
|
||||||
|
Role role = event3.getGuild().getRolesByName(event3.getMessage().getContentRaw(), true).get(0);
|
||||||
|
if (event3.getGuild().getSelfMember().canInteract(role)) {
|
||||||
|
event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
|
||||||
|
.setTitle("The role has been successfully set to " + role.getName() + "."))
|
||||||
|
.build()).queue();
|
||||||
|
Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
|
||||||
|
.setTitle("Rules"))
|
||||||
|
.setDescription(message)
|
||||||
|
.build()).complete();
|
||||||
|
rules.addReaction("✅").queue();
|
||||||
|
rules.addReaction("❌").queue();
|
||||||
|
event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId());
|
||||||
|
} else {
|
||||||
|
EmbedBuilder builder = new EmbedBuilder();
|
||||||
|
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue();
|
||||||
|
}
|
||||||
|
}, event.getJDA(), event.getAuthor());
|
||||||
|
}, event.getJDA(), event.getAuthor());
|
||||||
|
} else {
|
||||||
|
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, new EmbedBuilder()
|
||||||
|
.setTitle("Wrong Guild")
|
||||||
|
.setDescription("The mentioned channel must be on this guid!"))
|
||||||
|
.build()).queue();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, new EmbedBuilder()
|
||||||
|
.setTitle("No Channel mentioned"))
|
||||||
|
.setDescription("Please mention a channel. This should look like #rules")
|
||||||
|
.build()).queue();
|
||||||
|
}
|
||||||
|
}, event.getJDA(), event.getAuthor());
|
||||||
|
} else {
|
||||||
|
EmbedBuilder builder = new EmbedBuilder();
|
||||||
|
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
EmbedBuilder builder = new EmbedBuilder();
|
||||||
|
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder).build()).queue();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String[] labels() {
|
||||||
|
return new String[]{"rules"};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String description() {
|
||||||
|
return "Setup the rules on your Discord server";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String usage() {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -2,9 +2,6 @@ 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 net.dv8tion.jda.api.entities.Activity;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @author Skidder / GregTCLTK
|
* @author Skidder / GregTCLTK
|
||||||
|
|
|
||||||
|
|
@ -94,6 +94,10 @@ public class Config {
|
||||||
return config.getJSONObject("Tokens").getString("Giphy");
|
return config.getJSONObject("Tokens").getString("Giphy");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getGitHubToken() {
|
||||||
|
return config.getJSONObject("Tokens").getString("GitHub");
|
||||||
|
}
|
||||||
|
|
||||||
public String getMythicalBotListToken() {
|
public String getMythicalBotListToken() {
|
||||||
return config.getJSONObject("Tokens").getString("MythicalBotList");
|
return config.getJSONObject("Tokens").getString("MythicalBotList");
|
||||||
}
|
}
|
||||||
|
|
@ -121,4 +125,8 @@ public class Config {
|
||||||
public String getDiscordExtremeListToken() {
|
public String getDiscordExtremeListToken() {
|
||||||
return config.getJSONObject("Tokens").getString("DiscordExtremeList");
|
return config.getJSONObject("Tokens").getString("DiscordExtremeList");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getDiscordBotReviewsToken() {
|
||||||
|
return config.getJSONObject("Tokens").getString("DiscordBotReviews");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
27
src/main/java/com/bbn/hadder/listener/RulesListener.java
Normal file
27
src/main/java/com/bbn/hadder/listener/RulesListener.java
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
package com.bbn.hadder.listener;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @author Skidder / GregTCLTK
|
||||||
|
*/
|
||||||
|
|
||||||
|
import com.bbn.hadder.Rethink;
|
||||||
|
import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent;
|
||||||
|
import net.dv8tion.jda.api.hooks.ListenerAdapter;
|
||||||
|
|
||||||
|
public class RulesListener extends ListenerAdapter {
|
||||||
|
|
||||||
|
private Rethink rethink;
|
||||||
|
|
||||||
|
public RulesListener(Rethink rethink) {
|
||||||
|
this.rethink = rethink;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onMessageReactionAdd(MessageReactionAddEvent event) {
|
||||||
|
if (event.getMessageId().equals(rethink.getRulesMID(event.getGuild().getId()))) {
|
||||||
|
if (!event.getMember().getUser().isBot()) {
|
||||||
|
event.getGuild().addRoleToMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).queue();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -25,6 +25,7 @@ public class BotList {
|
||||||
private static String DiscordBoats = "https://discord.boats/api/bot/637002314162372639";
|
private static String DiscordBoats = "https://discord.boats/api/bot/637002314162372639";
|
||||||
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 Config config;
|
private Config config;
|
||||||
|
|
||||||
|
|
@ -137,7 +138,7 @@ public class BotList {
|
||||||
Request discordextremelist = new Request.Builder()
|
Request discordextremelist = new Request.Builder()
|
||||||
.url(DiscordExtremeList)
|
.url(DiscordExtremeList)
|
||||||
.post(body)
|
.post(body)
|
||||||
.addHeader("Authorizaion", config.getDiscordExtremeListToken())
|
.addHeader("Authorization", config.getDiscordExtremeListToken())
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
@ -146,6 +147,21 @@ public class BotList {
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Discord Bot Reviews
|
||||||
|
|
||||||
|
Request discordbotreviews = new Request.Builder()
|
||||||
|
.url(DiscordBotReviews)
|
||||||
|
.post(body)
|
||||||
|
.addHeader("Authorization", config.getDiscordBotReviewsToken())
|
||||||
|
.build();
|
||||||
|
|
||||||
|
try {
|
||||||
|
new OkHttpClient().newCall(discordbotreviews).execute().close();
|
||||||
|
System.out.println("Successfully posted count to Discord Bot Reviews!");
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue