package io.shockah.skylark.commands;
import java.util.List;
import org.pircbotx.hooks.events.MessageEvent;
import org.pircbotx.hooks.events.NoticeEvent;
import org.pircbotx.hooks.events.PrivateMessageEvent;
import io.shockah.skylark.event.GenericUserMessageEvent;
public final class CommandCall {
public final GenericUserMessageEvent event;
public final Medium inputMedium;
public Medium outputMedium = null;
public CommandCall(GenericUserMessageEvent event) {
this.event = event;
if (event.getEvent() instanceof MessageEvent)
inputMedium = Medium.Channel;
else if (event.getEvent() instanceof PrivateMessageEvent)
inputMedium = Medium.Private;
else if (event.getEvent() instanceof NoticeEvent)
inputMedium = Medium.Notice;
else
throw new IllegalArgumentException();
}
public void respond(List<String> lines) {
Medium medium = outputMedium;
if (medium == null)
medium = inputMedium;
for (String line : lines) {
switch (medium) {
case Channel:
event.getChannel().send().message(line);
break;
case Private:
event.getUser().send().message(line);
break;
case Notice:
event.getUser().send().notice(line);
break;
}
}
}
public static enum Medium {
Channel, Private, Notice;
}
}