emote steal final

This commit is contained in:
nora 2021-03-15 15:34:46 +01:00
parent 0d7e01fd49
commit dffc5c1aa4

View file

@ -11,7 +11,6 @@ import javax.imageio.ImageIO;
import java.awt.*; import java.awt.*;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.*; import java.io.*;
import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.util.List; import java.util.List;
@ -29,7 +28,13 @@ public class EmoteAddCommand extends Command {
@Override @Override
public void called(String args) { public void called(String args) {
List<Message.Attachment> attachments = event.getMessage().getAttachments(); List<Message.Attachment> attachments = event.getMessage().getAttachments();
Member author = event.getGuild().retrieveMember(event.getAuthor()).complete(); Member author = event.getMember();
if (author == null) {
System.err.println("Author of emote add Message is null");
reply("Error while adding emote. Pleasy try again.");
return;
}
if (!author.getPermissions().contains(Permission.MANAGE_EMOTES)) { if (!author.getPermissions().contains(Permission.MANAGE_EMOTES)) {
reply("You don't have the permissions to do that."); reply("You don't have the permissions to do that.");
@ -65,25 +70,14 @@ public class EmoteAddCommand extends Command {
Emote emote = event.getMessage().getEmotes().get(0); Emote emote = event.getMessage().getEmotes().get(0);
URL url = new URL(emote.getImageUrl()); URL url = new URL(emote.getImageUrl());
byte[] data = readUrl(url); byte[] data = readUrl(url);
uploadEmote(data, event.getMessage().getContentRaw()); uploadEmote(data, emote.getName());
} }
private void uploadEmote(byte[] bytes, String name) { private void uploadEmote(byte[] bytes, String name) {
Icon icon = Icon.from(bytes); Icon icon = Icon.from(bytes);
event.getGuild().createEmote(name, icon).queue(emote -> reply("Successfully added emote: " + emote.getAsMention())); event.getGuild().createEmote(name, icon).queue(emote -> reply("Successfully added emote: " + emote.getAsMention()));
} }
private boolean messageContainsEmote() {
return !event.getMessage().getEmotes().isEmpty();
}
private boolean emoteLimitReached() {
int max = event.getGuild().getMaxEmotes();
int count = event.getGuild().retrieveEmotes().complete().size();
return max == count;
}
private byte[] readImage(Message.Attachment image) throws IOException { private byte[] readImage(Message.Attachment image) throws IOException {
String urlString = image.getUrl(); String urlString = image.getUrl();
@ -106,6 +100,17 @@ public class EmoteAddCommand extends Command {
return out.toByteArray(); return out.toByteArray();
} }
private boolean messageContainsEmote() {
return !event.getMessage().getEmotes().isEmpty();
}
private boolean emoteLimitReached() {
int max = event.getGuild().getMaxEmotes();
int count = event.getGuild().retrieveEmotes().complete().size();
return max == count;
}
private byte[] resizeImage(byte[] bytes, String format, int size) throws IOException { private byte[] resizeImage(byte[] bytes, String format, int size) throws IOException {
reply("Image size too big (" + bytes.length / 1000 + "kB). Resizing image..."); reply("Image size too big (" + bytes.length / 1000 + "kB). Resizing image...");
Image image = ImageIO.read(new ByteArrayInputStream(bytes)); Image image = ImageIO.read(new ByteArrayInputStream(bytes));