package net.mms_projects.copy_it.ui.interactive_shell.commands;
import net.mms_projects.copy_it.ClipboardManager;
import net.mms_projects.copy_it.SyncListener;
import net.mms_projects.copy_it.SyncManager;
import net.mms_projects.irc.channel_bots.pb.Command;
import net.mms_projects.irc.channel_bots.pb.CommandHandler;
import java.util.Date;
import java.util.concurrent.CountDownLatch;
public class PasteIt extends Command {
private final SyncManager syncManager;
private final ClipboardManager clipboardManager;
public PasteIt(CommandHandler commandHandler, SyncManager syncManager, ClipboardManager clipboardManager) {
super("pasteit", "Pulls content from the server", commandHandler);
this.syncManager = syncManager;
this.clipboardManager = clipboardManager;
this.addHelp();
}
@Override
public void run(String rawdata) {
final CountDownLatch countDownLatch = new CountDownLatch(1);
final String[] clipboardContent = {null};
this.syncManager.addListener(new SyncListener() {
@Override
public void onRemoteContentChange(String content, Date date) {
clipboardContent[0] = content;
countDownLatch.countDown();
}
});
this.syncManager.requestRemoteContentAsync();
try {
countDownLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
this.clipboardManager.setContent(clipboardContent[0]);
this.reply(clipboardContent[0]);
}
}