package commands.config; import commands.model.AbstractCommand; import discord4j.core.object.entity.Guild; import discord4j.core.object.entity.Message; import discord4j.core.object.entity.MessageChannel; import discord4j.core.object.util.Snowflake; import enums.Language; import exceptions.BasicDiscordException; import finders.AlmanaxCalendar; import util.Translator; import java.util.regex.Matcher; /** * Created by steve on 14/07/2016. */ public class AlmanaxAutoCommand extends AbstractCommand { public AlmanaxAutoCommand(){ super("almanax-auto", "(\\s+true|\\s+false|\\s+0|\\s+1|\\s+on|\\s+off)"); setUsableInMP(false); } @Override public void request(Message message, Matcher m, Language lg) { if (isUserHasEnoughRights(message)) { String guildId = message.getGuild().blockOptional() .map(Guild::getId).map(Snowflake::asString).orElse(""); String channelId = message.getChannel().blockOptional() .map(MessageChannel::getId).map(Snowflake::asString).orElse(""); if (m.group(1).matches("\\s+true") || m.group(1).matches("\\s+0") || m.group(1).matches("\\s+on")) if (!AlmanaxCalendar.getAlmanaxCalendars().containsKey(channelId)) { new AlmanaxCalendar(guildId, channelId).addToDatabase(); message.getChannel().flatMap(chan -> chan .createMessage(Translator.getLabel(lg, "almanax-auto.request.1"))) .subscribe(); } else message.getChannel().flatMap(chan -> chan .createMessage(Translator.getLabel(lg, "almanax-auto.request.2"))) .subscribe(); else if (m.group(1).matches("\\s+false") || m.group(1).matches("\\s+1") || m.group(1).matches("\\s+off")) if (AlmanaxCalendar.getAlmanaxCalendars().containsKey(channelId)) { AlmanaxCalendar.getAlmanaxCalendars().get(channelId).removeToDatabase(); message.getChannel().flatMap(chan -> chan .createMessage(Translator.getLabel(lg, "almanax-auto.request.3"))) .subscribe(); } else message.getChannel().flatMap(chan -> chan .createMessage(Translator.getLabel(lg, "almanax-auto.request.4"))) .subscribe(); } else BasicDiscordException.NO_ENOUGH_RIGHTS.throwException(message, this, lg); } @Override public String help(Language lg, String prefixe) { return "**" + prefixe + name + "** " + Translator.getLabel(lg, "almanax-auto.help"); } @Override public String helpDetailed(Language lg, String prefixe) { return help(lg, prefixe) + "\n`" + prefixe + name + " true` : " + Translator.getLabel(lg, "almanax-auto.help.detailed.1") + "\n`" + prefixe + name + " false` : " + Translator.getLabel(lg, "almanax-auto.help.detailed.2") + "\n"; } }