Merge pull request #228 from BigBotNetwork/greg-dev

Merged!
This commit is contained in:
Skidder 2019-12-21 18:10:28 +01:00 committed by GitHub
commit bc566fc234
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
31 changed files with 682 additions and 604 deletions

View file

@ -7,6 +7,8 @@ Hadder Discord is a multi-purpose Discord bot with 100% uptime.
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/ddb8cb7ec85f467caa691c175e1f01b5)](https://www.codacy.com/gh/BigBotNetwork/Hadder?utm_source=github.com&utm_medium=referral&utm_content=BigBotNetwork/Hadder&utm_campaign=Badge_Grade)
[![CodeFactor](https://www.codefactor.io/repository/github/bigbotnetwork/hadder/badge)](https://www.codefactor.io/repository/github/bigbotnetwork/hadder)
[![Crowdin](https://badges.crowdin.net/e/bc0babde730eb3eada34778502a31b03/localized.svg)](https://bbn.crowdin.com/hadder)
[![GitHub issues](https://img.shields.io/github/issues/BigBotNetwork/Hadder)](https://github.com/BigBotNetwork/Hadder/issues)
[![GitHub license](https://img.shields.io/github/license/BigBotNetwork/Hadder)](https://github.com/BigBotNetwork/Hadder/blob/master/LICENSE)
<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)

View file

@ -20,5 +20,6 @@
"DiscordBotReviews": "",
"DiscordBots": "",
"BotListSpace": ""
}
},
"Clyde": ""
}

View file

@ -83,6 +83,10 @@
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>

View file

@ -47,7 +47,7 @@ public class Hadder {
helpCommand,
new TestCommand(),
new BanCommand(),
new PrefixCommand(),
new UserPrefixCommand(),
new ShutdownCommand(),
new KickCommand(),
new PingCommand(),
@ -58,7 +58,7 @@ public class Hadder {
new EqualsCommand(),
new InviteCommand(),
new NickCommand(),
new GuildPrefixCommand(),
new PrefixCommand(),
new BlowjobCommand(),
new PornCommand(),
new AnalCommand(),
@ -87,6 +87,7 @@ public class Hadder {
new RegionChangeCommand(),
new AboutCommand(),
new LanguageCommand(),
new ClydeCommand(),
new StarBoardCommand()), config, helpCommand);
builder.addEventListeners(

View file

@ -1,67 +0,0 @@
/*
* @author Hax / Hax6775 / Schlauer_Hax
*/
package com.bbn.hadder.commands;
import net.dv8tion.jda.api.Permission;
public enum Perm {
BOT_OWNER() {
@Override
public boolean check(CommandEvent commandEvent) {
return commandEvent.getConfig().getOwners().contains(commandEvent.getAuthor().getIdLong());
}
},
MANAGE_MESSAGES {
@Override
public boolean check(CommandEvent commandEvent) {
return commandEvent.getMember().hasPermission(Permission.MESSAGE_MANAGE);
}
},
EMBED_MESSAGES {
@Override
public boolean check(CommandEvent commandEvent) {
return commandEvent.getMember().hasPermission(Permission.MESSAGE_EMBED_LINKS);
}
},
BAN_MEMBERS {
@Override
public boolean check(CommandEvent commandEvent) {
return commandEvent.getMember().hasPermission(Permission.BAN_MEMBERS);
}
},
KICK_MEMBERS {
@Override
public boolean check(CommandEvent commandEvent) {
return commandEvent.getMember().hasPermission(Permission.KICK_MEMBERS);
}
},
MANAGE_SERVER {
@Override
public boolean check(CommandEvent commandEvent) {
return commandEvent.getMember().hasPermission(Permission.MANAGE_SERVER);
}
},
MANAGE_ROLES {
@Override
public boolean check(CommandEvent commandEvent) {
return commandEvent.getMember().hasPermission(Permission.MANAGE_ROLES);
}
},
CHANGE_NICKNAME {
@Override
public boolean check(CommandEvent commandEvent) {
return commandEvent.getMember().hasPermission(Permission.NICKNAME_CHANGE);
}
},
ADMIN_PERMISSIONS {
@Override
public boolean check(CommandEvent commandEvent) {
return commandEvent.getMember().hasPermission(Permission.ADMINISTRATOR);
}
};
public abstract boolean check(CommandEvent commandEvent);
}

View file

@ -19,7 +19,9 @@ public class AvatarCommand implements Command {
event.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO,
"commands.fun.avatar.success.title",
member.getUser().getAsTag())
member.getUser().getAsTag(),
"",
"")
.setImage(member.getUser().getAvatarUrl())
.setFooter(member.getUser().getAsTag())
.build()).queue();

View file

@ -0,0 +1,77 @@
package com.bbn.hadder.commands.fun;
/*
* @author Skidder / GregTCLTK
*/
import club.minnced.discord.webhook.WebhookClient;
import club.minnced.discord.webhook.WebhookClientBuilder;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.core.Perm;
import com.bbn.hadder.core.Perms;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.Icon;
import net.dv8tion.jda.api.entities.TextChannel;
import net.dv8tion.jda.api.entities.Webhook;
import java.io.InputStream;
import java.net.URL;
import java.util.concurrent.TimeUnit;
@Perms(Perm.MANAGE_WEBHOOKS)
public class ClydeCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (args.length > 0) {
if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_WEBHOOKS)) {
TextChannel channel = event.getMessage().getTextChannel();
String content = event.getMessage().getContentRaw().replace(event.getRethink().getGuildPrefix(event.getGuild().getId()), "").replace(event.getRethink().getUserPrefix(event.getAuthor().getId()), "").replace("clyde", "");
Webhook webhook = channel.createWebhook(event.getConfig().getClydeName()).complete();
try {
InputStream s = new URL("https://discordapp.com/assets/f78426a064bc9dd24847519259bc42af.png").openStream();
webhook.getManager().setAvatar(Icon.from(s)).queue();
WebhookClientBuilder builder = new WebhookClientBuilder(webhook.getUrl());
WebhookClient client = builder.build();
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
client.send(content);
} catch (Exception e) {
e.printStackTrace();
}
try {
TimeUnit.SECONDS.sleep(2);
} catch (InterruptedException e) {
e.printStackTrace();
}
webhook.delete().queue();
} else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
}
} else event.getHelpCommand().sendHelp(this, event);
}
@Override
public String[] labels() {
return new String[]{"clyde"};
}
@Override
public String description() {
return "commands.fun.clyde.help.description";
}
@Override
public String usage() {
return "content";
}
}

View file

@ -6,15 +6,16 @@ package com.bbn.hadder.commands.moderation;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.core.Perm;
import com.bbn.hadder.core.Perms;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.Member;
@Perms(Perm.BAN_MEMBERS)
public class BanCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
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) {
Member victim = event.getMessage().getMentionedMembers().get(0);
if (!event.getAuthor().getId().equals(victim.getId())) {
@ -77,9 +78,6 @@ public class BanCommand implements Command {
"commands.moderation.ban.massban.success.description",
String.valueOf(event.getMessage().getMentionedMembers().size())).build()).queue();
}
} else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
}
}
@Override
@ -94,6 +92,6 @@ public class BanCommand implements Command {
@Override
public String usage() {
return "<@User>";
return "user";
}
}

View file

@ -6,6 +6,8 @@ package com.bbn.hadder.commands.moderation;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.core.Perm;
import com.bbn.hadder.core.Perms;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.Message;
@ -14,14 +16,13 @@ import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
@Perms(Perm.MANAGE_MESSAGES)
public class ClearCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (args.length > 0) {
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().getSelfMember().hasPermission(Permission.MESSAGE_MANAGE)) {
if (args[0].equals("all")) {
List<Message> msg = event.getTextChannel().getIterableHistory().complete();
for (Message message : msg) {
@ -67,9 +68,6 @@ public class ClearCommand implements Command {
} else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
}
} else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
}
} else {
event.getHelpCommand().sendHelp(this, event);
}

View file

@ -1,53 +0,0 @@
package com.bbn.hadder.commands.moderation;
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 GuildPrefixCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
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[0].contains("\"")) {
event.getRethink().setGuildPrefix(args[0], event.getGuild().getId());
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO,
"commands.moderation.prefix.success.title",
"",
"commands.moderation.prefix.success.description",
args[0]).build()
).queue();
} else {
event.getTextChannel().sendMessage(
event.getMessageEditor().getMessage(
MessageEditor.MessageType.WARNING,
"",
"commands.moderation.prefix.error.description").build()).queue();
}
} else {
event.getHelpCommand().sendHelp(this, event);
}
} else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
}
}
@Override
public String[] labels() {
return new String[]{"guildprefix"};
}
@Override
public String description() {
return "commands.moderation.prefix.help.description";
}
@Override
public String usage() {
return "guildprefix";
}
}

View file

@ -6,15 +6,17 @@ package com.bbn.hadder.commands.moderation;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.core.Perm;
import com.bbn.hadder.core.Perms;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.Permission;
@Perms(Perm.MANAGE_SERVER)
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":
@ -52,9 +54,6 @@ public class InviteDetectCommand implements Command {
}
break;
}
} else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
}
} else {
event.getHelpCommand().sendHelp(this, event);
}

View file

@ -6,16 +6,16 @@ package com.bbn.hadder.commands.moderation;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.core.Perm;
import com.bbn.hadder.core.Perms;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.Member;
@Perms(Perm.KICK_MEMBERS)
public class KickCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
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) {
Member victim = event.getMessage().getMentionedMembers().get(0);
if (!event.getAuthor().getId().equals(victim.getId())) {
@ -55,14 +55,13 @@ public class KickCommand implements Command {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
}
} else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.moderation.kick.error.title","commands.moderation.kick.myself.error.description").build()).queue();
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.moderation.kick.error.title", "commands.moderation.kick.myself.error.description").build()).queue();
}
} else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.moderation.kick.error.title", "commands.moderation.kick.yourself.error.description").build()).queue();
}
}
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO,"commands.moderation.kick.success.title", "","commands.moderation.kick.masskick.success.description", String.valueOf(event.getMessage().getMentionedMembers().size())).build()).queue();
}
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "commands.moderation.kick.success.title", "", "commands.moderation.kick.masskick.success.description", String.valueOf(event.getMessage().getMentionedMembers().size())).build()).queue();
}
}
@ -78,6 +77,6 @@ public class KickCommand implements Command {
@Override
public String usage() {
return "<@User>";
return "user";
}
}

View file

@ -6,15 +6,17 @@ package com.bbn.hadder.commands.moderation;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.core.Perm;
import com.bbn.hadder.core.Perms;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.Member;
@Perms(Perm.CHANGE_NICKNAME)
public class NickCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
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.getMessage().getMentionedMembers().size() == 1) {
if (!event.getMessage().getMentionedMembers().get(0).getId().equals(event.getGuild().getSelfMember().getId())) {
@ -89,9 +91,6 @@ public class NickCommand implements Command {
} else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
}
} else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
}
}
@Override

View file

@ -0,0 +1,52 @@
package com.bbn.hadder.commands.moderation;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.core.Perm;
import com.bbn.hadder.core.Perms;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.Permission;
@Perms(Perm.MANAGE_SERVER)
public class PrefixCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (args.length == 1) {
if (!args[0].contains("\"")) {
event.getRethink().setGuildPrefix(args[0], event.getGuild().getId());
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO,
"commands.moderation.prefix.success.title",
"",
"commands.moderation.prefix.success.description",
args[0]).build()
).queue();
} else {
event.getTextChannel().sendMessage(
event.getMessageEditor().getMessage(
MessageEditor.MessageType.WARNING,
"",
"commands.moderation.prefix.error.description").build()).queue();
}
} else {
event.getHelpCommand().sendHelp(this, event);
}
}
@Override
public String[] labels() {
return new String[]{"prefix"};
}
@Override
public String description() {
return "commands.moderation.prefix.help.description";
}
@Override
public String usage() {
return "prefix";
}
}

View file

@ -6,16 +6,18 @@ package com.bbn.hadder.commands.moderation;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.core.Perm;
import com.bbn.hadder.core.Perms;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.Region;
@Perms(Perm.MANAGE_SERVER)
public class RegionChangeCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (args.length == 1) {
if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_SERVER)) {
if (event.getMember().hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {
switch (args[0].toLowerCase()) {
case "amsterdam":
@ -82,8 +84,8 @@ public class RegionChangeCommand implements Command {
.build()).queue();
break;
}
} else event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
} else event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
} else
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
} else event.getTextChannel().sendMessage(
event.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO,

View file

@ -2,18 +2,21 @@ package com.bbn.hadder.commands.moderation;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.core.Perm;
import com.bbn.hadder.core.Perms;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.Role;
@Perms(Perm.MANAGE_ROLES)
public class RoleCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (args.length > 0) {
if (event.getMember().hasPermission(Permission.MANAGE_ROLES)) {
if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_ROLES) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {
String action = args[0].toLowerCase();
switch (action) {
case "add":
@ -75,9 +78,6 @@ public class RoleCommand implements Command {
} else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
}
} else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
}
} else {
event.getHelpCommand().sendHelp(this, event);
}

View file

@ -6,6 +6,8 @@ package com.bbn.hadder.commands.moderation;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.core.Perm;
import com.bbn.hadder.core.Perms;
import com.bbn.hadder.utils.EventWaiter;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.Permission;
@ -15,11 +17,11 @@ import net.dv8tion.jda.api.entities.Role;
import net.dv8tion.jda.api.entities.TextChannel;
import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent;
@Perms(Perm.MANAGE_SERVER)
public class RulesCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (event.getMember().hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {
if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_ROLES)) {
event.getTextChannel().sendMessage(
event.getMessageEditor().getMessage(
@ -55,9 +57,6 @@ public class RulesCommand implements Command {
} else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
}
} else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
}
}
public void createRules(CommandEvent event, GuildMessageReceivedEvent event1, TextChannel channel) {

View file

@ -6,6 +6,7 @@ import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.entities.TextChannel;
public class StarBoardCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (event.getMessage().getMentionedChannels().size()==1) {

View file

@ -7,8 +7,8 @@ package com.bbn.hadder.commands.owner;
import com.bbn.hadder.Hadder;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.commands.Perm;
import com.bbn.hadder.commands.Perms;
import com.bbn.hadder.core.Perm;
import com.bbn.hadder.core.Perms;
import com.bbn.hadder.utils.MessageEditor;
import javax.script.ScriptEngine;

View file

@ -6,8 +6,8 @@ package com.bbn.hadder.commands.owner;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.commands.Perm;
import com.bbn.hadder.commands.Perms;
import com.bbn.hadder.core.Perm;
import com.bbn.hadder.core.Perms;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.entities.Guild;
@ -16,7 +16,6 @@ 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]);
try {
@ -33,17 +32,6 @@ public class GuildLeaveCommand implements Command {
} else {
event.getHelpCommand().sendHelp(this, event);
}
} else {
event.getTextChannel()
.sendMessage(event.getMessageEditor()
.getMessage(MessageEditor.MessageType.INFO, "commands.owner.guildleave.success.title",
"", "commands.owner.guildleave.success.description", guild.getName())
.build())
.queue();
} else {
event.getHelpCommand().sendHelp(this, event);
}
}
@Override

View file

@ -6,9 +6,8 @@ package com.bbn.hadder.commands.owner;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.commands.Perm;
import com.bbn.hadder.commands.Perms;
import com.bbn.hadder.utils.MessageEditor;
import com.bbn.hadder.core.Perm;
import com.bbn.hadder.core.Perms;
@Perms(Perm.BOT_OWNER)
public class RebootCommand implements Command {

View file

@ -6,8 +6,8 @@ package com.bbn.hadder.commands.owner;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.commands.Perm;
import com.bbn.hadder.commands.Perms;
import com.bbn.hadder.core.Perm;
import com.bbn.hadder.core.Perms;
import com.bbn.hadder.utils.MessageEditor;
@Perms(Perm.BOT_OWNER)

View file

@ -2,18 +2,14 @@ package com.bbn.hadder.commands.owner;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.commands.Perm;
import com.bbn.hadder.commands.Perms;
import com.bbn.hadder.utils.MessageEditor;
import com.bbn.hadder.core.Perm;
import com.bbn.hadder.core.Perms;
import com.bbn.hadder.utils.MessageEditor.MessageType;
import static com.bbn.hadder.commands.Perm.BOT_OWNER;
/*
* @author Skidder / GregTCLTK
*/
@Perms(Perm.BOT_OWNER)
public class TestCommand implements Command {
@Override

View file

@ -8,7 +8,7 @@ import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
public class PrefixCommand implements Command {
public class UserPrefixCommand implements Command {
public void executed(String[] args, CommandEvent event) {
if (args.length == 1) {
@ -26,7 +26,7 @@ public class PrefixCommand implements Command {
@Override
public String[] labels() {
return new String[] { "prefix" };
return new String[] { "userprefix" };
}
@Override
@ -36,6 +36,6 @@ public class PrefixCommand implements Command {
@Override
public String usage() {
return "prefix";
return "userprefix";
}
}

View file

@ -3,8 +3,6 @@ package com.bbn.hadder.core;
import com.bbn.hadder.Rethink;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.commands.Perm;
import com.bbn.hadder.commands.Perms;
import com.bbn.hadder.commands.general.HelpCommand;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
@ -38,7 +36,7 @@ public class CommandHandler {
CommandEvent commandEvent = new CommandEvent(event.getJDA(), event.getResponseNumber(), event.getMessage(), rethink,
config, this, helpCommand, new MessageEditor(rethink, event.getAuthor()));
if (cmd.getClass().getAnnotations().length>0) {
if (Arrays.asList(cmd.getClass().getAnnotations()).contains(Perms.class)) {
if (!Arrays.asList(cmd.getClass().getAnnotations()).contains(Perms.class)) {
for (Perm perm : cmd.getClass().getAnnotation(Perms.class).value()) {
if (!perm.check(commandEvent)) {
commandEvent.getTextChannel()

View file

@ -63,6 +63,7 @@ public class Config {
.value("DiscordExtremeList").value(null)
.value("DiscordBotReviews").value(null)
.value("DiscordBots").value(null)
.value("BotListSpace").value(null)
.endObject().endObject().toString();
}
@ -141,4 +142,8 @@ public class Config {
public String getBotListSpaceToken() {
return config.getJSONObject("Tokens").getString("BotListSpace");
}
public String getClydeName() {
return config.getString("Clyde");
}
}

View file

@ -0,0 +1,75 @@
package com.bbn.hadder.core;
import com.bbn.hadder.commands.CommandEvent;
import net.dv8tion.jda.api.Permission;
/**
* @author Skidder / GregTCLTK
* @author Hax / Hax6775 / Schlauer_Hax
*/
public enum Perm {
BOT_OWNER() {
@Override
public boolean check(CommandEvent event) {
return event.getConfig().getOwners().contains(event.getAuthor().getIdLong());
}
},
MANAGE_MESSAGES {
@Override
public boolean check(CommandEvent event) {
return event.getMember().hasPermission(Permission.MESSAGE_MANAGE) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong());
}
},
EMBED_MESSAGES {
@Override
public boolean check(CommandEvent event) {
return event.getMember().hasPermission(Permission.MESSAGE_EMBED_LINKS) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong());
}
},
BAN_MEMBERS {
@Override
public boolean check(CommandEvent event) {
return event.getMember().hasPermission(Permission.BAN_MEMBERS) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong());
}
},
KICK_MEMBERS {
@Override
public boolean check(CommandEvent event) {
return event.getMember().hasPermission(Permission.KICK_MEMBERS) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong());
}
},
MANAGE_SERVER {
@Override
public boolean check(CommandEvent event) {
return event.getMember().hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong());
}
},
MANAGE_ROLES {
@Override
public boolean check(CommandEvent event) {
return event.getMember().hasPermission(Permission.MANAGE_ROLES) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong());
}
},
CHANGE_NICKNAME {
@Override
public boolean check(CommandEvent event) {
return event.getMember().hasPermission(Permission.NICKNAME_CHANGE) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong());
}
},
ADMINISTRATOR {
@Override
public boolean check(CommandEvent event) {
return event.getMember().hasPermission(Permission.ADMINISTRATOR) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong());
}
},
MANAGE_WEBHOOKS {
@Override
public boolean check(CommandEvent event) {
return event.getMember().hasPermission(Permission.MANAGE_WEBHOOKS) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong());
}
};
public abstract boolean check(CommandEvent event);
}

View file

@ -1,12 +1,13 @@
/*
* @author Hax / Hax6775 / Schlauer_Hax
*/
package com.bbn.hadder.commands;
package com.bbn.hadder.core;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**
* @author Skidder / GregTCLTK
* @author Hax / Hax6775 / Schlauer_Hax
*/
@Retention(RetentionPolicy.RUNTIME)
public @interface Perms {
Perm[] value() default {};

View file

@ -10,7 +10,6 @@ import net.dv8tion.jda.api.events.message.react.MessageReactionRemoveEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
import javax.annotation.Nonnull;
import java.time.format.DateTimeFormatter;
public class StarboardListener extends ListenerAdapter {

View file

@ -35,7 +35,7 @@ public class MessageEditor {
public EmbedBuilder getMessage(MessageType type, String title_language_string, String title_extra, String title_extra_two,
String description_language_string, String description_extra, String description_extra_two) {
String language = rethink.getLanguage(this.user.getId());
String language = (this.user!=null) ? rethink.getLanguage(this.user.getId()) : null;
EmbedBuilder eb = this.getDefaultSettings(type);
if (!title_language_string.equals("")) eb.setTitle(this.handle(language, title_language_string, title_extra, title_extra_two));
if (!description_language_string.equals("")) eb.setDescription(this.handle(language, description_language_string, description_extra, description_extra_two));

View file

@ -4,15 +4,17 @@
Hadder = Hadder
user = <@User>
searchterm = <SearchTerm>
username = <Username>
number = <Number>/all
guildprefix = <New Guild-Prefix>
prefix = <New Prefix>
userprefix = <New User-Prefix>
vc-name/id = <VoiceChannelID|VoiceChannelName>
user+nickname = <@user> <New Nickname>
region = <region>
guildid = <Guild-ID>
content = <Message-content>
error = Error
none = None
@ -25,6 +27,7 @@ commands.fun.gif.help.description = Look for a GIF on Giphy
commands.fun.meme.success.title = Your random meme
commands.fun.meme.api.error = The request to the meme API could not be processed. Please try it again later.
commands.fun.meme.help.description = Sends you a random meme.
commands.fun.clyde.help.description = Send a message as a webhook named Clyde.
commands.general.about.success.title = Hadder - About
commands.general.about.success.description = Hadder is an open source Discord bot.
@ -94,7 +97,7 @@ commands.moderation.clear.message.error.title = No messages!
commands.moderation.clear.message.error.description = There are no messages in this channel.
commands.moderation.clear.help.description = Deletes the specified number of messages.
commands.moderation.prefix.success.title = %extra% Successfully set %extra%
commands.moderation.prefix.success.description = I successfully set the new prefix for the guild to %extra%
commands.moderation.prefix.success.description = I successfully set the new prefix for the guild to `%extra%`.
commands.moderation.prefix.error.description = The prefix must not contain **"**
commands.moderation.prefix.help.description = Sets the Guild-Prefix.
commands.moderation.invitedetect.activate.success.title = Successfully activated
@ -212,9 +215,9 @@ commands.owner.test.success = TEST my friends
commands.owner.test.help.description = Just a little Test Command
commands.settings.language.success.title = Language set
commands.settings.language.success.description = %extra% is your new language now.
commands.settings.language.success.description = `%extra%` is your new language now.
commands.settings.language.help.description = Sets the new primary language for a user.
commands.settings.language.help.usage = <Language code>
commands.settings.prefix.success.title = %extra% Successfully set %extra%
commands.settings.prefix.success.description = I successfully set the new prefix for you to %extra%.
commands.settings.prefix.success.description = I successfully set the new prefix for you to `%extra%`.
commands.settings.prefix.help.description = Sets a new Prefix