Greg dev #74

Merged
greg6775 merged 8 commits from greg-dev into master 2019-11-17 01:33:22 +01:00
23 changed files with 384 additions and 142 deletions
Showing only changes of commit 48c582da29 - Show all commits

55
.github/workflows/maven.yml vendored Normal file
View file

@ -0,0 +1,55 @@
name: Hadder
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Set up JDK 1.13
uses: actions/setup-java@v1
with:
java-version: 1.13
- name: Build with Maven
run: mvn -B package --file pom.xml
deploy:
runs-on: ubuntu-latest
needs: test
if: github.ref == 'refs/heads/master'
steps:
- uses: actions/checkout@v1
- name: Set up JDK 1.13
uses: actions/setup-java@v1
with:
java-version: 1.13
- name: Build Final Jar
run: mvn clean compile assembly:single
- name: Copy folder content recursively to remote
uses: garygrossgarten/github-action-scp@release
with:
local: ./target/Hadder-Build.jar
remote: /home/Bots/Hadder-Build.jar
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWORD }}
- name: executing remote ssh commands using password
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWORD }}
port: ${{ secrets.PORT }}
script: /home/Bots/deploy.sh
- name: Send Webhook Notification
if: always()
env:
JOB_STATUS: ${{ job.status }}
WEBHOOK_URL: ${{ secrets.WEBHOOK_URL }}
HOOK_OS_NAME: ${{ runner.os }}
WORKFLOW_NAME: ${{ github.workflow }}
run: |
git clone https://github.com/DiscordHooks/github-actions-discord-webhook.git webhook
bash webhook/send.sh $JOB_STATUS $WEBHOOK_URL
shell: bash

View file

@ -1,24 +0,0 @@
language: java
jdk:
- openjdk12
addons:
apt:
packages:
- sshpass
after_success:
- wget https://raw.githubusercontent.com/DiscordHooks/travis-ci-discord-webhook/master/send.sh
- chmod +x send.sh
- ./send.sh success $WEBHOOK_URL
- mvn clean compile assembly:single
- cd target
- sshpass -p $SFTP_PASSWORD scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -r Hadder-Build.jar $SFTP_USER@$SFTP_IP:/home/Bots/Hadder-Build.jar
- echo $?
- sshpass -p $SFTP_PASSWORD ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null $SFTP_IP /home/Bots/deploy.sh
- echo $?
after_failure:
- wget https://raw.githubusercontent.com/DiscordHooks/travis-ci-discord-webhook/master/send.sh
- chmod +x send.sh
- ./send.sh failure $WEBHOOK_URL

View file

@ -1,3 +1,8 @@
# Hadder
[![Build Status](https://travis-ci.com/BigBotNetwork/Hadder.svg?branch=master)](https://travis-ci.com/BigBotNetwork/Hadder)
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>
[![Build Status](https://github.com/BigBotNetwork/Hadder/workflows/Hadder/badge.svg)](https://github.com/BigBotNetwork/Hadder)
<a href="https://discordextremelist.xyz/bots/Hadder"><img src="https://discordextremelist.xyz/api/bot/637002314162372639/widget"/></a>

View file

@ -5,7 +5,7 @@
<groupId>Hadder</groupId>
<artifactId>Hadder</artifactId>
<version>0.7-ALPHA</version>
<version>0.7.1-ALPHA</version>
<name>Hadder</name>
@ -25,7 +25,7 @@
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>4.0.0_56</version>
<version>4.0.0_61</version>
</dependency>
<dependency>
<groupId>org.json</groupId>

View file

@ -23,7 +23,7 @@ public class Hadder {
startBot();
}
public static void startBot() {
private static void startBot() {
Config config = new Config("./config.json");
if (!config.fileExists()) config.create();
config.load();
@ -47,12 +47,14 @@ public class Hadder {
new ShutdownCommand(),
new KickCommand(),
new PingCommand(),
new GifCommand(config),
new GifCommand(),
new ClearCommand(),
new GitHubCommand(),
new ScreenshareCommand(),
new RebootCommand(),
new EqualsCommand(),
new InviteCommand(),
new NickCommand(),
new GuildPrefixCommand()), config);
builder.addEventListeners(

View file

@ -18,11 +18,11 @@ public class Rethink {
private Connection conn;
private Config config;
public Rethink(Config config) {
Rethink(Config config) {
this.config = config;
}
public boolean connect() {
public void connect() {
try {
conn = r.connection()
.hostname(config.getDatabaseIP())
@ -35,7 +35,6 @@ public class Rethink {
System.out.println(e.toString());
System.out.println("DB CONNECTION FAILED");
}
return true;
}
public void disconnect() {
@ -46,8 +45,7 @@ public class Rethink {
private JSONArray getAsArray(String table, String where, String value) {
try {
String string = r.table(table).filter(row -> row.g(where.toLowerCase()).eq(value)).coerceTo("array").toJson().run(conn);
JSONArray jsonArray = new JSONArray(string);
return jsonArray;
return new JSONArray(string);
} catch (NoSuchElementException e) {
return null;
} catch (Exception e) {
@ -105,15 +103,15 @@ public class Rethink {
return this.get("user", "id", id, "prefix");
}
public String setServerPrefix(String prefix, String guildid) {
public String setGuildPrefix(String prefix, String guildid) {
return this.update("server", guildid, "prefix", prefix);
}
public String getServerPrefix(String id) {
public String getGuildPrefix(String id) {
return this.get("server", "id", id, "prefix");
}
public String insertServer(String id) {
public String insertGuild(String id) {
return this.insert("server", r.hashMap("id", id).with("prefix", "h."));
}

View file

@ -19,12 +19,6 @@ import java.util.Random;
public class GifCommand implements Command {
private Config config;
public GifCommand(Config config) {
this.config = config;
}
@Override
public void executed(String[] args, CommandEvent event) {
if (args.length > 0) {
@ -35,7 +29,7 @@ public class GifCommand implements Command {
}
OkHttpClient caller = new OkHttpClient();
Request request = new Request.Builder().url("http://api.giphy.com/v1/gifs/search?q=" + query + "&api_key=" + config.getGiphyToken()).build();
Request request = new Request.Builder().url("http://api.giphy.com/v1/gifs/search?q=" + query + "&api_key=" + event.getConfig().getGiphyToken()).build();
try {
Random rand = new Random();
Response response = caller.newCall(request).execute();

View file

@ -4,6 +4,7 @@ import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.Permission;
import java.util.ArrayList;
import java.util.HashMap;
@ -13,47 +14,51 @@ public class HelpCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (args.length == 0) {
HashMap<String, ArrayList<Command>> hashMap = new HashMap<>();
for (Command cmd : event.getCommandHandler().getCommandList()) {
if (!hashMap.containsKey(cmd.getClass().getPackageName())) {
ArrayList<Command> cmdlist = new ArrayList<>();
cmdlist.add(cmd);
hashMap.put(cmd.getClass().getPackageName(), cmdlist);
} else {
hashMap.get(cmd.getClass().getPackageName()).add(cmd);
}
}
EmbedBuilder eb = new EmbedBuilder();
for (Map.Entry<String, ArrayList<Command>> entry : hashMap.entrySet()) {
if (!entry.getKey().endsWith("owner") || (entry.getKey().endsWith("owner") && (event.getAuthor().getId().equals("477141528981012511") || event.getAuthor().getId().equals("261083609148948488")))) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < entry.getValue().size(); i++) {
Command cmd = entry.getValue().get(i);
sb.append("`" + cmd.labels()[0] + "`");
if (i < entry.getValue().size() - 1) sb.append(", ");
if (event.getGuild().getSelfMember().hasPermission(Permission.MESSAGE_EMBED_LINKS)) {
if (args.length == 0) {
HashMap<String, ArrayList<Command>> hashMap = new HashMap<>();
for (Command cmd : event.getCommandHandler().getCommandList()) {
if (!hashMap.containsKey(cmd.getClass().getPackageName())) {
ArrayList<Command> cmdlist = new ArrayList<>();
cmdlist.add(cmd);
hashMap.put(cmd.getClass().getPackageName(), cmdlist);
} else {
hashMap.get(cmd.getClass().getPackageName()).add(cmd);
}
String[] packagesplit = entry.getKey().split("\\.");
eb.addField(packagesplit[packagesplit.length - 1], sb.toString(), false);
}
}
new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, eb);
event.getChannel().sendMessage(eb.build()).queue();
} else {
for (Command cmd : event.getCommandHandler().getCommandList()) {
for (String label : cmd.labels()) {
if (label.toLowerCase().equals(args[0])) {
if (!cmd.getClass().getPackageName().endsWith("owner") || (cmd.getClass().getPackageName().endsWith("owner") && (event.getAuthor().getId().equals("477141528981012511") || event.getAuthor().getId().equals("261083609148948488")))) {
EmbedBuilder eb = new EmbedBuilder();
String name = cmd.labels()[0];
eb.setDescription(cmd.description()).setTitle(name.replaceFirst(String.valueOf(name.charAt(0)), String.valueOf(name.charAt(0)).toUpperCase()));
eb.addField("Usage", event.getRethink().getUserPrefix(event.getAuthor().getId()) + cmd.labels()[0] + " " + cmd.usage(), false);
new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, eb);
event.getChannel().sendMessage(eb.build()).queue();
EmbedBuilder eb = new EmbedBuilder();
for (Map.Entry<String, ArrayList<Command>> entry : hashMap.entrySet()) {
if (!entry.getKey().endsWith("owner") || (entry.getKey().endsWith("owner") && (event.getAuthor().getId().equals("477141528981012511") || event.getAuthor().getId().equals("261083609148948488")))) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < entry.getValue().size(); i++) {
Command cmd = entry.getValue().get(i);
sb.append("`").append(cmd.labels()[0]).append("`");
if (i < entry.getValue().size() - 1) sb.append(", ");
}
String[] packagesplit = entry.getKey().split("\\.");
eb.addField(packagesplit[packagesplit.length - 1], sb.toString(), false);
}
}
new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, eb);
event.getChannel().sendMessage(eb.build()).queue();
} else {
for (Command cmd : event.getCommandHandler().getCommandList()) {
for (String label : cmd.labels()) {
if (label.toLowerCase().equals(args[0])) {
if (!cmd.getClass().getPackageName().endsWith("owner") || (cmd.getClass().getPackageName().endsWith("owner") && (event.getAuthor().getId().equals("477141528981012511") || event.getAuthor().getId().equals("261083609148948488")))) {
EmbedBuilder eb = new EmbedBuilder();
String name = cmd.labels()[0];
eb.setDescription(cmd.description()).setTitle(name.replaceFirst(String.valueOf(name.charAt(0)), String.valueOf(name.charAt(0)).toUpperCase()));
eb.addField("Usage", event.getRethink().getUserPrefix(event.getAuthor().getId()) + cmd.labels()[0] + " " + cmd.usage(), false);
new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, eb);
event.getChannel().sendMessage(eb.build()).queue();
}
}
}
}
}
} else {
event.getTextChannel().sendMessage("I need the Embed Links Permission to send the Help Menu!").queue();
}
}

View file

@ -21,52 +21,54 @@ public class GitHubCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (args.length > 0) {
Request request = new Request.Builder().url("https://api.github.com/users/" + args[0]).build();
try {
Response response = new OkHttpClient().newCall(request).execute();
JSONObject json = new JSONObject(response.body().string());
String nickname = json.getString("name");
String bio = "None";
String location = "Unknown";
String website = "None";
if (args[0].equals("link")) {
EmbedBuilder builder = new EmbedBuilder();
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 {
Request request = new Request.Builder().url("https://api.github.com/users/" + args[0]).build();
try {
bio = json.getString("bio");
Response response = new OkHttpClient().newCall(request).execute();
JSONObject json = new JSONObject(response.body().string());
String nickname = json.getString("name");
String bio = "None";
String location = "Unknown";
String website = "None";
try {
bio = json.getString("bio");
} catch (JSONException ignored) {
}
try {
location = json.getString("location");
} catch (JSONException ignored) {
}
if (!json.getString("blog").equals("")) website = json.getString("blog");
EmbedBuilder builder = new EmbedBuilder();
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")
.setThumbnail(json.getString("avatar_url"))
.addField("User bio", bio, false)
.addField("Location", location, true)
.addField("Website", website, true)
.addField("Public repositories", String.valueOf(json.getInt("public_repos")), true)
.addField("Public gists", String.valueOf(json.getInt("public_gists")), true)
.addField("Followers", String.valueOf(json.getInt("followers")), true)
.addField("Following", String.valueOf(json.getInt("following")), true)
.build()).queue();
} catch (IOException | NullPointerException e) {
EmbedBuilder builder = new EmbedBuilder();
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) {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setDescription("This user does not exist!").build()).queue();
}
try {
location = json.getString("location");
} catch (JSONException e) {
}
if(!json.getString("blog").equals("")) website = json.getString("blog");
EmbedBuilder builder = new EmbedBuilder();
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")
.setThumbnail(json.getString("avatar_url"))
.addField("User bio", bio, false)
.addField("Location", location, true)
.addField("Website", website, true)
.addField("Public repositories", String.valueOf(json.getInt("public_repos")), true)
.addField("Public gists", String.valueOf(json.getInt("public_gists")), true)
.addField("Followers", String.valueOf(json.getInt("followers")), true)
.addField("Following", String.valueOf(json.getInt("following")), true)
.build()).queue();
} catch (IOException | NullPointerException e) {
EmbedBuilder builder = new EmbedBuilder();
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) {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setDescription("This user does not exist!").build()).queue();
}
} else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setDescription("You have to specify a user!").build()).queue();
event.getTextChannel().sendMessage("SOON").queue();
}
}

View file

@ -0,0 +1,35 @@
package com.bbn.hadder.commands.misc;
/*
* @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 net.dv8tion.jda.api.EmbedBuilder;
public class InviteCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, builder).setTitle("Invite me!").setDescription("[Invite me here!](discordapp.com/oauth2/authorize?client_id=" + Hadder.shardManager.getGuilds().get(0).getSelfMember().getId() + "&scope=bot&permissions=470133879)").build()).queue();
}
@Override
public String[] labels() {
return new String[]{"invite"};
}
@Override
public String description() {
return "Hadder Bot Invite";
}
@Override
public String usage() {
return "";
}
}

View file

@ -33,7 +33,7 @@ public class ScreenshareCommand implements Command {
List<VoiceChannel> vcs = event.getGuild().getVoiceChannelsByName(String.join(" ", args), true);
if (vcs.size() > 1) {
EmbedBuilder eb = new EmbedBuilder()
.setTitle("Please Choose a Voicechannel")
.setTitle("Please Choose a Voice Channel")
.setDescription("There is more than one channel with this name");
for (int i = 0; i < vcs.size(); i++) {
VoiceChannel voiceChannel = vcs.get(i);
@ -54,14 +54,14 @@ public class ScreenshareCommand implements Command {
}
} catch (NumberFormatException e) {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.ERROR, new EmbedBuilder()
.setTitle("Wait, thats illegal")
.setTitle("Wait, that's illegal")
.setDescription("This isn't a Number.")).build()).queue();
}
}, event.getJDA(), event.getAuthor());
} else if (vcs.size()==0) {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.ERROR, new EmbedBuilder()
.setTitle("Hol' up")
.setDescription("There is no Voicechannel named like this. \n\nNote: Make sure the Voicechannel 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();
} else {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, new EmbedBuilder()
.setTitle("Here's your Url to share your Screen")

View file

@ -38,10 +38,29 @@ public class BanCommand implements Command {
}
} else if (event.getMessage().getMentionedMembers().size() == 0) {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setDescription("You have to mention a user!").build()).queue();
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setDescription("You have to mention at least one user!").build()).queue();
} else if (event.getMessage().getMentionedMembers().size() > 1) {
for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) {
Member member = event.getMessage().getMentionedMembers().get(i);
if (!event.getAuthor().getId().equals(member.getId())) {
if (!event.getJDA().getSelfUser().getId().equals(member.getId())) {
if (event.getGuild().getSelfMember().canInteract(member)) {
event.getGuild().ban(member, 0).reason("Mass Ban by " + event.getAuthor().getAsTag()).queue();
} else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.NO_SELF_PERMISSION, builder).build()).queue();
}
} else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setDescription("I can not ban myself!").build()).queue();
}
} else {
EmbedBuilder builder = new EmbedBuilder();
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.WARNING, builder).setDescription("We will be adding multiple banning within a command in the future.").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 {
EmbedBuilder builder = new EmbedBuilder();

View file

@ -14,7 +14,7 @@ public class GuildPrefixCommand implements Command {
if (args.length == 1) {
if (!args[0].contains("\"")) {
event.getRethink().setServerPrefix(args[0], event.getGuild().getId());
event.getRethink().setGuildPrefix(args[0], event.getGuild().getId());
EmbedBuilder builder = new EmbedBuilder();

View file

@ -11,6 +11,7 @@ import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.Member;
public class KickCommand implements Command {
@Override
@ -30,18 +31,37 @@ public class KickCommand implements Command {
}
} else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).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 {
EmbedBuilder builder = new EmbedBuilder();
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) {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setDescription("You have to mention a user!").build()).queue();
} else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setDescription("We will be adding multiple kicking within a command in the future.").build()).queue();
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();
} else if (event.getMessage().getMentionedMembers().size() > 1) {
for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) {
Member member = event.getMessage().getMentionedMembers().get(i);
if (!event.getAuthor().getId().equals(member.getId())) {
if (!event.getJDA().getSelfUser().getId().equals(member.getId())) {
if (event.getGuild().getSelfMember().canInteract(member)) {
event.getGuild().kick(member).reason("Mass Kicked by " + event.getAuthor().getAsTag()).queue();
} else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.NO_SELF_PERMISSION, builder).build()).queue();
}
} else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setDescription("I can not kick myself!").build()).queue();
}
} else {
EmbedBuilder builder = new EmbedBuilder();
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, builder).setTitle("✅ Successfully kicked ✅").setDescription("I successfully kicked " + event.getMessage().getMentionedMembers().size() + " Members!").build()).queue();
}
}
}

View file

@ -0,0 +1,91 @@
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.EmbedBuilder;
import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.Member;
public class NickCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (event.getMember().hasPermission(Permission.NICKNAME_MANAGE) || event.getGuild().getOwnerId().equals(event.getMember().getId())) {
if (event.getGuild().getSelfMember().hasPermission(Permission.NICKNAME_MANAGE)) {
if (event.getMessage().getMentionedMembers().size() == 1) {
if (!event.getMessage().getMentionedMembers().get(0).getId().equals(event.getGuild().getSelfMember().getId())) {
if (event.getGuild().getSelfMember().canInteract(event.getMessage().getMentionedMembers().get(0))) {
if (args.length > 1) {
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();
EmbedBuilder builder = new EmbedBuilder();
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()))) {
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, builder).setTitle("✅ Successfully nicked ✅").setDescription("I successfully nicked " + event.getMessage().getMentionedMembers().get(0).getUser().getAsTag() + ".").build()).queue();
}
} 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();
}
} else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.NO_SELF_PERMISSION, builder).build()).queue();
}
} else {
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();
EmbedBuilder builder = new EmbedBuilder();
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()))) {
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, builder).setTitle("✅ Successfully nicked ✅").setDescription("I successfully changed my nickname.").build()).queue();
}
}
} else if (event.getMessage().getMentionedMembers().size() == 0) {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setDescription("You have to mention at least one user!").build()).queue();
} else {
for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) {
Member member = event.getMessage().getMentionedMembers().get(i);
if (!event.getJDA().getSelfUser().getId().equals(member.getId())) {
event.getGuild().modifyNickname(member, args[args.length - 1]).reason("Mass Nicked by " + event.getAuthor().getAsTag()).queue();
} else {
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, builder).setTitle("✅ Successfully nicked ✅").setDescription("I successfully nicked " + event.getMessage().getMentionedMembers().size() + " Members!").build()).queue();
}
} else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.NO_SELF_PERMISSION, builder).build()).queue();
}
} else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.NO_PERMISSION, builder).build()).queue();
}
}
@Override
public String[] labels() {
return new String[]{"nick"};
}
@Override
public String description() {
return "Rename a user";
}
@Override
public String usage() {
return "<@user> <New Nickname>";
}
}

View file

@ -12,10 +12,11 @@ import net.dv8tion.jda.api.EmbedBuilder;
public class RebootCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (event.getAuthor().getId().equals("477141528981012511") || event.getAuthor().getId().equals("261083609148948488")) {
} else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.NO_PERMISSION, builder).build()).queue();

View file

@ -9,8 +9,8 @@ import java.util.List;
public class CommandHandler {
List<Command> commandList;
Config config;
private List<Command> commandList;
private Config config;
public CommandHandler(List<Command> commandList, Config config) {
this.commandList = commandList;
@ -18,7 +18,6 @@ public class CommandHandler {
}
public void handle(MessageReceivedEvent event, Rethink rethink, String prefix) {
StringBuilder regexBuilder = new StringBuilder().append("\\").append(prefix);
String invoke = event.getMessage().getContentRaw().replaceFirst(prefix, "").split(" ")[0];
for (Command cmd : commandList) {
for (String label : cmd.labels()) {

View file

@ -33,7 +33,7 @@ public class Config {
public void create() {
try {
if (Files.notExists(file)) {
file = Files.createFile(file);
Files.createFile(file);
}
Files.write(file, defaultConfigContent().getBytes());
} catch (IOException e) {
@ -113,4 +113,12 @@ public class Config {
public String getDiscordBoatsToken() {
return config.getJSONObject("Tokens").getString("DiscordBoats");
}
public String getYetAnotherBotListToken() {
return config.getJSONObject("Tokens").getString("YetAnotherBotList");
}
public String getDiscordExtremeListToken() {
return config.getJSONObject("Tokens").getString("DiscordExtremeList");
}
}

View file

@ -24,7 +24,7 @@ public class CommandListener extends ListenerAdapter {
public void onMessageReceived(MessageReceivedEvent event) {
if (event.isFromType(ChannelType.TEXT)) {
if (!event.getAuthor().isBot()) {
String[] prefixes = {rethink.getUserPrefix(event.getAuthor().getId()), rethink.getServerPrefix(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) {
if (event.getMessage().getContentRaw().startsWith(prefix)) {
handler.handle(event, rethink, prefix);

View file

@ -34,7 +34,7 @@ public class GuildListener extends ListenerAdapter {
}
}
rethink.insertServer(event.getGuild().getId());
rethink.insertGuild(event.getGuild().getId());
EmbedBuilder builder = new EmbedBuilder();
event.getJDA().getTextChannelById("475722540140986369").sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, builder)
.setTitle("Joined Server")

View file

@ -27,7 +27,7 @@ public class MentionListener extends ListenerAdapter {
.addField("Users", String.valueOf(event.getJDA().getUsers().size()), false)
.addField("Guilds", String.valueOf(event.getJDA().getGuilds().size()), false)
.addField("Prefix (User)", rethink.getUserPrefix(event.getAuthor().getId()), false)
.addField("Prefix (Guild)", rethink.getServerPrefix(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();
}
}

View file

@ -29,7 +29,7 @@ public class ReadyListener extends ListenerAdapter {
}
}
for (Guild g : event.getJDA().getGuilds()) {
rethink.insertServer(g.getId());
rethink.insertGuild(g.getId());
}
new BotList(config).post();

View file

@ -23,6 +23,8 @@ public class BotList {
private static String DiscordBotList = "https://discordbotlist.com/api/bots/637002314162372639/stats";
private static String DiscordBestBots = "https://discordsbestbots.xyz/api/bots/637002314162372639/stats";
private static String DiscordBoats = "https://discord.boats/api/bot/637002314162372639";
private static String YetAnotherBotList = "https://yabl.xyz/api/bot/637002314162372639/stats";
private static String DiscordExtremeList = "https://discordextremelist.xyz/api/bot/637002314162372639";
private Config config;
@ -34,6 +36,7 @@ public class BotList {
if (Files.notExists(Paths.get("./DEBUG"))) {
JSONObject json = new JSONObject();
json.put("server_count", Hadder.shardManager.getGuilds().size());
json.put("guildCount", Hadder.shardManager.getGuilds().size());
json.put("guilds", Hadder.shardManager.getGuilds().size());
json.put("users", Hadder.shardManager.getUsers().size());
@ -113,6 +116,35 @@ public class BotList {
} catch (IOException e) {
e.printStackTrace();
}
// Yet Another Bot List
Request yetanotherbotlist = new Request.Builder()
.url(YetAnotherBotList)
.post(body)
.addHeader("Authorization", config.getYetAnotherBotListToken())
.build();
try {
new OkHttpClient().newCall(yetanotherbotlist).execute().close();
System.out.println("Successfully posted count to Yet Another Bot List!");
} catch (IOException e) {
e.printStackTrace();
}
// Discord Extreme List
Request discordextremelist = new Request.Builder()
.url(DiscordExtremeList)
.post(body)
.addHeader("Authorizaion", config.getDiscordExtremeListToken())
.build();
try {
new OkHttpClient().newCall(discordextremelist).execute().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}