package me.desht.scrollingmenusign.expector;
import me.desht.dhutils.DHUtilsException;
import me.desht.dhutils.MiscUtil;
import me.desht.scrollingmenusign.SMSException;
import me.desht.scrollingmenusign.SMSMenu;
import me.desht.scrollingmenusign.ScrollingMenuSign;
import me.desht.scrollingmenusign.views.SMSView;
import me.desht.scrollingmenusign.views.ViewManager;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import java.util.UUID;
public class ExpectViewCreation extends ExpectLocation {
private final String viewName;
private final SMSMenu menu;
private final String arg;
public ExpectViewCreation(String viewName, SMSMenu menu, String arg) {
this.viewName = viewName;
this.menu = menu;
this.arg = arg;
}
@Override
public void doResponse(UUID playerId) {
SMSView view = null;
ViewManager vm = ScrollingMenuSign.getInstance().getViewManager();
Player player = Bukkit.getPlayer(playerId);
try {
// TODO: code smell
if (arg.equals("sign")) {
view = vm.addSignToMenu(viewName, menu, getLocation(), player);
} else if (arg.equals("redstone")) {
view = vm.addRedstoneViewToMenu(viewName, menu, getLocation(), player);
} else if (arg.equals("multisign")) {
view = vm.addMultiSignToMenu(viewName, menu, getLocation(), player);
} else if (arg.equals("holopub")) {
view = vm.addPublicHoloViewToMenu(viewName, menu, getLocation(), player);
}
} catch (SMSException e) {
throw new DHUtilsException(e.getMessage());
}
if (view != null && player != null) {
MiscUtil.statusMessage(player, String.format("Added %s view &e%s&- to menu &e%s&-.",
view.getType(), view.getName(), menu.getName()));
}
}
}