Fixed Perm error, Finished Starboard
This commit is contained in:
parent
ad6a6487c9
commit
931e16c2da
5 changed files with 82 additions and 36 deletions
|
|
@ -87,7 +87,7 @@ public class Hadder {
|
||||||
new RegionChangeCommand(),
|
new RegionChangeCommand(),
|
||||||
new AboutCommand(),
|
new AboutCommand(),
|
||||||
new LanguageCommand(),
|
new LanguageCommand(),
|
||||||
new SetStarBoardCommand()), config, helpCommand);
|
new StarBoardCommand()), config, helpCommand);
|
||||||
|
|
||||||
builder.addEventListeners(
|
builder.addEventListeners(
|
||||||
new MentionListener(rethink),
|
new MentionListener(rethink),
|
||||||
|
|
|
||||||
|
|
@ -81,6 +81,10 @@ public class Rethink {
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void remove(String table, String where, String wherevalue) {
|
||||||
|
r.table(table).filter(row -> row.g(where.toLowerCase()).eq(wherevalue)).delete().run(conn);
|
||||||
|
}
|
||||||
|
|
||||||
public void setup() {
|
public void setup() {
|
||||||
try {
|
try {
|
||||||
r.dbCreate("Hadder").run(conn);
|
r.dbCreate("Hadder").run(conn);
|
||||||
|
|
@ -156,15 +160,19 @@ public class Rethink {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void insertStarboardMessage(String messageid, String guildid, String starboardmessageid) {
|
public void insertStarboardMessage(String messageid, String guildid, String starboardmessageid) {
|
||||||
this.insert("stars", r.hashMap("msg", messageid).with("guild", guildid).with("starboardmsg", starboardmessageid));
|
this.insert("stars", r.hashMap("id", messageid).with("guild", guildid).with("starboardmsg", starboardmessageid));
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getStarboardMessage(String messageid) {
|
public String getStarboardMessage(String messageid) {
|
||||||
return (String) this.get("stars", "msg", messageid, "starboardmsg");
|
return (String) this.get("stars", "id", messageid, "starboardmsg");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeStarboardMessage(String messageid) {
|
||||||
|
this.remove("stars", "id", messageid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasStarboardMessage(String messageid) {
|
public boolean hasStarboardMessage(String messageid) {
|
||||||
return this.get("stars", "msg", messageid, "guild") != null;
|
return this.get("stars", "id", messageid, "guild") != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateRules(String guild_id, String message_id, String role_id, String accept_emote, String decline_emote) {
|
public void updateRules(String guild_id, String message_id, String role_id, String accept_emote, String decline_emote) {
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import com.bbn.hadder.utils.MessageEditor;
|
||||||
import net.dv8tion.jda.api.EmbedBuilder;
|
import net.dv8tion.jda.api.EmbedBuilder;
|
||||||
import net.dv8tion.jda.api.entities.TextChannel;
|
import net.dv8tion.jda.api.entities.TextChannel;
|
||||||
|
|
||||||
public class SetStarBoardCommand implements Command {
|
public class StarBoardCommand implements Command {
|
||||||
@Override
|
@Override
|
||||||
public void executed(String[] args, CommandEvent event) {
|
public void executed(String[] args, CommandEvent event) {
|
||||||
if (event.getMessage().getMentionedChannels().size()==1) {
|
if (event.getMessage().getMentionedChannels().size()==1) {
|
||||||
|
|
@ -30,12 +30,14 @@ public class SetStarBoardCommand implements Command {
|
||||||
|
|
||||||
if (args.length==2) {
|
if (args.length==2) {
|
||||||
event.getRethink().setNeededstars(args[1], event.getGuild().getId());
|
event.getRethink().setNeededstars(args[1], event.getGuild().getId());
|
||||||
|
} else {
|
||||||
|
event.getRethink().setNeededstars("4", event.getGuild().getId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String[] labels() {
|
public String[] labels() {
|
||||||
return new String[]{"setstarboard"};
|
return new String[]{"starboard"};
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -37,8 +37,8 @@ public class CommandHandler {
|
||||||
|
|
||||||
CommandEvent commandEvent = new CommandEvent(event.getJDA(), event.getResponseNumber(), event.getMessage(), rethink,
|
CommandEvent commandEvent = new CommandEvent(event.getJDA(), event.getResponseNumber(), event.getMessage(), rethink,
|
||||||
config, this, helpCommand, new MessageEditor(rethink, event.getAuthor()));
|
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()) {
|
for (Perm perm : cmd.getClass().getAnnotation(Perms.class).value()) {
|
||||||
if (!perm.check(commandEvent)) {
|
if (!perm.check(commandEvent)) {
|
||||||
commandEvent.getTextChannel()
|
commandEvent.getTextChannel()
|
||||||
|
|
@ -48,6 +48,7 @@ public class CommandHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
cmd.executed(args, commandEvent);
|
cmd.executed(args, commandEvent);
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package com.bbn.hadder.listener;
|
||||||
import com.bbn.hadder.Rethink;
|
import com.bbn.hadder.Rethink;
|
||||||
import net.dv8tion.jda.api.EmbedBuilder;
|
import net.dv8tion.jda.api.EmbedBuilder;
|
||||||
import net.dv8tion.jda.api.MessageBuilder;
|
import net.dv8tion.jda.api.MessageBuilder;
|
||||||
|
import net.dv8tion.jda.api.entities.MessageReaction;
|
||||||
import net.dv8tion.jda.api.events.message.react.GenericMessageReactionEvent;
|
import net.dv8tion.jda.api.events.message.react.GenericMessageReactionEvent;
|
||||||
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.events.message.react.MessageReactionRemoveEvent;
|
||||||
|
|
@ -33,34 +34,68 @@ public class StarboardListener extends ListenerAdapter {
|
||||||
if (event.getReaction().getReactionEmote().getName().equals("⭐")) {
|
if (event.getReaction().getReactionEmote().getName().equals("⭐")) {
|
||||||
if (!rethink.hasStarboardMessage(event.getMessageId())) {
|
if (!rethink.hasStarboardMessage(event.getMessageId())) {
|
||||||
if (rethink.hasStarboardChannel(event.getGuild().getId())) {
|
if (rethink.hasStarboardChannel(event.getGuild().getId())) {
|
||||||
event.getChannel().retrieveMessageById(event.getMessageId()).queue(msg -> {
|
|
||||||
|
event.getTextChannel().retrieveMessageById(event.getMessageId()).queue(
|
||||||
|
msg -> {
|
||||||
|
Integer stars = 0;
|
||||||
|
for (MessageReaction reaction : msg.getReactions()) {
|
||||||
|
if (reaction.getReactionEmote().getName().equals("⭐")) {
|
||||||
|
stars = reaction.getCount();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Integer.parseInt(rethink.getNeededstars(event.getGuild().getId())) <= stars) {
|
||||||
event.getGuild().getTextChannelById(rethink.getStarboardChannel(event.getGuild().getId()))
|
event.getGuild().getTextChannelById(rethink.getStarboardChannel(event.getGuild().getId()))
|
||||||
.sendMessage(new MessageBuilder()
|
.sendMessage(new MessageBuilder()
|
||||||
.setContent("⭐ 1" + " " + event.getTextChannel().getAsMention())
|
.setContent("⭐ 1" + " " + event.getTextChannel().getAsMention())
|
||||||
.setEmbed(
|
.setEmbed(
|
||||||
new EmbedBuilder()
|
new EmbedBuilder()
|
||||||
.setAuthor(event.getUser().getAsTag())
|
.setAuthor(msg.getAuthor().getAsTag())
|
||||||
.setDescription(msg.getContentRaw())
|
.setDescription(msg.getContentRaw())
|
||||||
.setTimestamp(msg.getTimeCreated()).build()).build()).queue(
|
.setTimestamp(msg.getTimeCreated()).build()).build()).queue(
|
||||||
starboardmsg -> {
|
starboardmsg -> {
|
||||||
rethink.insertStarboardMessage(msg.getId(), event.getGuild().getId(), starboardmsg.getId());
|
rethink.insertStarboardMessage(msg.getId(), event.getGuild().getId(), starboardmsg.getId());
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
event.getGuild().getTextChannelById(rethink.getStarboardChannel(event.getGuild().getId()))
|
|
||||||
.retrieveMessageById(rethink.getStarboardMessage(event.getMessageId())).queue(
|
|
||||||
msg -> {
|
|
||||||
msg.editMessage(new MessageBuilder()
|
|
||||||
.setContent("⭐" + event.getReaction().getCount() + " " + event.getTextChannel().getAsMention())
|
|
||||||
.setEmbed(
|
|
||||||
new EmbedBuilder()
|
|
||||||
.setAuthor(event.getUser().getAsTag())
|
|
||||||
.setDescription(msg.getContentRaw())
|
|
||||||
.setTimestamp(msg.getTimeCreated()).build()).build()).queue();
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
|
||||||
|
event.getTextChannel().retrieveMessageById(event.getMessageId()).queue(
|
||||||
|
msg -> {
|
||||||
|
Integer stars = 0;
|
||||||
|
for (MessageReaction reaction : msg.getReactions()) {
|
||||||
|
if (reaction.getReactionEmote().getName().equals("⭐")) {
|
||||||
|
stars = reaction.getCount();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Integer finalStars = stars;
|
||||||
|
event.getGuild().getTextChannelById(rethink.getStarboardChannel(event.getGuild().getId()))
|
||||||
|
.retrieveMessageById(rethink.getStarboardMessage(event.getMessageId())).queue(
|
||||||
|
msg2 -> {
|
||||||
|
|
||||||
|
if (Integer.parseInt(rethink.getNeededstars(event.getGuild().getId())) <= finalStars) {
|
||||||
|
msg2.editMessage(new MessageBuilder()
|
||||||
|
.setContent("⭐ " + finalStars + " " + event.getTextChannel().getAsMention())
|
||||||
|
.setEmbed(
|
||||||
|
new EmbedBuilder()
|
||||||
|
.setAuthor(msg.getAuthor().getAsTag())
|
||||||
|
.setDescription(msg.getContentRaw())
|
||||||
|
.setTimestamp(msg.getTimeCreated()).build()).build()).queue();
|
||||||
|
} else {
|
||||||
|
msg2.delete().queue();
|
||||||
|
rethink.removeStarboardMessage(msg.getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue