Skip to content

Instantly share code, notes, and snippets.

@TheGlitch76
Created July 3, 2018 19:40
Show Gist options
  • Save TheGlitch76/9604b57986385041cb2256e6b0b3811b to your computer and use it in GitHub Desktop.
Save TheGlitch76/9604b57986385041cb2256e6b0b3811b to your computer and use it in GitHub Desktop.
package io.github.theglitch76.glitchbot.listener;
import net.dv8tion.jda.core.EmbedBuilder;
import net.dv8tion.jda.core.entities.Message;
import net.dv8tion.jda.core.entities.TextChannel;
import net.dv8tion.jda.core.entities.User;
import net.dv8tion.jda.core.events.message.guild.react.GuildMessageReactionAddEvent;
import net.dv8tion.jda.core.hooks.ListenerAdapter;
import java.io.FileInputStream;
import java.io.IOException;
import java.time.Instant;
import java.util.Properties;
import java.util.concurrent.TimeUnit;
/**
* @author TheGlitch76
*/
public class StarboardListener extends ListenerAdapter {
private long last = 0;
@Override
public void onGuildMessageReactionAdd(GuildMessageReactionAddEvent event) {
if(event.getReactionEmote().getName().equals("⭐") || event.getReactionEmote().getName().equals("\uD83C\uDF1F") /*Exploding star*/
|| event.getReactionEmote().getName().equals("\uD83D\uDCAF")) {
Properties data = new Properties();
Message message = event.getChannel().getMessageById(event.getMessageId()).complete();
try {
data.load(new FileInputStream("data.dat"));
} catch (IOException e) {
//File doesn't exist/there was an error, no point in trying to process everything else
e.printStackTrace();
message.addReaction("\uD83C\uDDFD").complete();
message.clearReactions().queueAfter(3, TimeUnit.SECONDS);
return;
}
if(Instant.now().getEpochSecond() > last + 300) {
last = Instant.now().getEpochSecond();
User user = message.getAuthor();
if(data.getProperty("pP11kFs9") == null) {
message.addReaction("\uD83C\uDDFD").complete();
message.clearReactions().queueAfter(3, TimeUnit.SECONDS);
return;
}
TextChannel targetChannel = event.getJDA().getTextChannelById(data.getProperty("pP11kFs9"));
if(targetChannel == null) {
message.addReaction("\uD83C\uDDFD").complete();
message.clearReactions().queueAfter(3, TimeUnit.SECONDS);
} else {
EmbedBuilder builder = new EmbedBuilder();
builder.setTitle(user.getName());
builder.setAuthor("\uD83C\uDF1F");
builder.setDescription(message.getContentDisplay());
builder.setFooter("#" + event.getChannel().getName(), user.getAvatarUrl());
targetChannel.sendMessage(builder.build()).complete();
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment