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();
}
}
Aggregations