Search in sources :

Example 1 with Game

use of enums.Game in project KaellyBot by Kaysoro.

the class ServerCommand method request.

@Override
public void request(MessageCreateEvent event, Message message, Matcher m, Language lg) {
    Guild guild = Guild.getGuild(message.getGuild().block());
    MessageChannel channel = message.getChannel().block();
    if (m.group(1) != null) {
        String serverName = m.group(1).toLowerCase().trim();
        if (serverName.equals("-list")) {
            String sb = Translator.getLabel(lg, "server.list") + "\n" + getServersList(lg);
            message.getChannel().flatMap(chan -> chan.createMessage(sb)).subscribe();
            return;
        }
        if (isUserHasEnoughRights(message)) {
            if (!serverName.startsWith("-channel")) {
                ServerUtils.ServerQuery query = ServerUtils.getServerDofusFromName(serverName, lg);
                if (query.hasSucceed()) {
                    guild.setServer(query.getServer());
                    message.getChannel().flatMap(chan -> chan.createMessage(Translator.getLabel(lg, "server.request.1").replace("{game}", Constants.game.getName()) + " " + guild.getName() + " " + Translator.getLabel(lg, "server.request.2") + " " + query.getServer().getLabel(lg) + ".")).subscribe();
                } else
                    query.getExceptions().forEach(exception -> exception.throwException(message, this, lg, query.getServersFound()));
            } else {
                ServerUtils.ServerQuery query = ServerUtils.getServerDofusFromName(serverName.replace("-channel", "").trim(), lg);
                ChannelServer channelServer = ChannelServer.getChannelServers().get(channel.getId().asLong());
                if (query.hasSucceed()) {
                    if (channelServer != null) {
                        if (channelServer.getServer().getName().equals(query.getServer().getName())) {
                            channelServer.removeToDatabase();
                            channel.createMessage(((GuildMessageChannel) channel).getName() + " " + Translator.getLabel(lg, "server.request.4").replace("{server}", guild.getServerDofus().toString())).subscribe();
                        } else {
                            channelServer.setServer(query.getServer());
                            message.getChannel().flatMap(salon -> salon.createMessage(((GuildMessageChannel) channel).getName() + " " + Translator.getLabel(lg, "server.request.4").replace("{server}", query.getServer().toString()))).subscribe();
                        }
                    } else {
                        final ChannelServer CHAN = new ChannelServer(query.getServer(), channel.getId().asLong());
                        CHAN.addToDatabase();
                        message.getChannel().flatMap(salon -> salon.createMessage(((GuildMessageChannel) channel).getName() + " " + Translator.getLabel(lg, "server.request.4").replace("{server}", query.getServer().toString()))).subscribe();
                    }
                } else
                    query.getExceptions().forEach(exception -> exception.throwException(message, this, lg, query.getServersFound()));
            }
        } else
            BasicDiscordException.NO_ENOUGH_RIGHTS.throwException(message, this, lg);
    } else {
        String text = "**" + guild.getName() + "** " + (guild.getServerDofus() != null ? Translator.getLabel(lg, "server.request.4").replace("{server}", guild.getServerDofus().getLabel(lg)) : Translator.getLabel(lg, "server.request.5")).replace("{game}", Constants.game.getName());
        ChannelServer channelServer = ChannelServer.getChannelServers().get(channel.getId().asLong());
        if (channelServer != null)
            text += "\n" + Translator.getLabel(lg, "server.request.6").replace("{channel}", ((GuildMessageChannel) channel).getName()).replace("{server}", channelServer.getServer().getLabel(lg));
        channel.createMessage(text).subscribe();
    }
}
Also used : Language(enums.Language) MessageCreateEvent(discord4j.core.event.domain.message.MessageCreateEvent) AbstractCommand(commands.model.AbstractCommand) MessageChannel(discord4j.core.object.entity.channel.MessageChannel) data(data) ServerUtils(util.ServerUtils) Collectors(java.util.stream.Collectors) List(java.util.List) GuildMessageChannel(discord4j.core.object.entity.channel.GuildMessageChannel) Matcher(java.util.regex.Matcher) Message(discord4j.core.object.entity.Message) Game(enums.Game) BasicDiscordException(exceptions.BasicDiscordException) Translator(util.Translator) MessageChannel(discord4j.core.object.entity.channel.MessageChannel) GuildMessageChannel(discord4j.core.object.entity.channel.GuildMessageChannel) ServerUtils(util.ServerUtils) GuildMessageChannel(discord4j.core.object.entity.channel.GuildMessageChannel)

Aggregations

AbstractCommand (commands.model.AbstractCommand)1 data (data)1 MessageCreateEvent (discord4j.core.event.domain.message.MessageCreateEvent)1 Message (discord4j.core.object.entity.Message)1 GuildMessageChannel (discord4j.core.object.entity.channel.GuildMessageChannel)1 MessageChannel (discord4j.core.object.entity.channel.MessageChannel)1 Game (enums.Game)1 Language (enums.Language)1 BasicDiscordException (exceptions.BasicDiscordException)1 List (java.util.List)1 Matcher (java.util.regex.Matcher)1 Collectors (java.util.stream.Collectors)1 ServerUtils (util.ServerUtils)1 Translator (util.Translator)1