Files
KittyBot/src/commands/CommandCatch.java
T

72 lines
1.7 KiB
Java

package commands;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import core.Command;
import core.LocStrings;
import dataStructures.KittyChannel;
import dataStructures.KittyGuild;
import dataStructures.KittyRating;
import dataStructures.KittyRole;
import dataStructures.KittyUser;
import dataStructures.Response;
import dataStructures.UserInput;
import utils.ImageOverlayBuilder;
import utils.ImageUtils;
public class CommandCatch extends Command
{
// Required constructor
public CommandCatch(KittyRole level, KittyRating rating) { super(level, rating); }
private static Long num = 0l;
@Override
public String getHelpText() { return LocStrings.stub("CatchInfo"); }
// Called when the command is run!
@Override
public void onRun(KittyGuild guild, KittyChannel channel, KittyUser user, UserInput input, Response res)
{
String name = null;
File catchFile = null;
File catcheeFile = null;
synchronized(num)
{
name = "catch_" + num + ".gif";
++num;
}
try
{
KittyUser person = null;
if(input.mentions == null)
person = user;
else
person = input.mentions[0];
String catchFilename = ImageUtils.downloadFromURL(person.avatarID, ".png");
if(catchFilename == null)
return;
catcheeFile = new File(catchFilename);
ImageOverlayBuilder builder = new ImageOverlayBuilder("assets/catch/frames/", "catch ", 92, 18);
builder.overlay(ImageIO.read(catcheeFile), name);
}
catch (IOException e)
{
e.printStackTrace();
}
catchFile = new File (name);
res.sendFile(catchFile, "gif");
// Thread cleanup...
ImageUtils.blockingFileDelete(catchFile);
ImageUtils.blockingFileDelete(catcheeFile);
}
}