mirror of
https://github.com/DreamExposure/DisCal-Discord-Bot.git
synced 2026-02-08 04:19:06 -06:00
This should fix recent issues with event confirm
Errors are pointing to something related to event data being null. Possibly the event image link. Even tho this shouldn't be possible, this commit adds some null checks and will hopefully handle the issue without errors anymore.
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
package org.dreamexposure.discal.client.event;
|
||||
|
||||
import com.google.api.services.calendar.model.Event;
|
||||
|
||||
import discord4j.common.util.Snowflake;
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import org.dreamexposure.discal.client.message.EventMessageFormatter;
|
||||
import org.dreamexposure.discal.client.message.Messages;
|
||||
import org.dreamexposure.discal.core.crypto.KeyGenerator;
|
||||
@@ -13,15 +14,12 @@ import org.dreamexposure.discal.core.object.event.EventData;
|
||||
import org.dreamexposure.discal.core.object.event.PreEvent;
|
||||
import org.dreamexposure.discal.core.wrapper.google.CalendarWrapper;
|
||||
import org.dreamexposure.discal.core.wrapper.google.EventWrapper;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
import discord4j.common.util.Snowflake;
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
/**
|
||||
* Created by Nova Fox on 1/3/2017.
|
||||
* Website: www.cloudcraftgaming.com
|
||||
@@ -165,12 +163,7 @@ public class EventCreator {
|
||||
final EventCreatorResponse response = new EventCreatorResponse(true,
|
||||
confirmed, pre.getCreatorMessage(), false);
|
||||
|
||||
final EventData eventData = EventData.fromImage(
|
||||
settings.getGuildID(),
|
||||
confirmed.getId(),
|
||||
confirmed.getEnd().getDateTime().getValue(),
|
||||
pre.getEventData().getImageLink()
|
||||
);
|
||||
EventData eventData = handleEventData(pre, confirmed, settings);
|
||||
|
||||
this.terminate(settings.getGuildID());
|
||||
|
||||
@@ -188,12 +181,7 @@ public class EventCreator {
|
||||
final EventCreatorResponse response = new EventCreatorResponse(true,
|
||||
confirmed, pre.getCreatorMessage(), true);
|
||||
|
||||
final EventData eventData = EventData.fromImage(
|
||||
settings.getGuildID(),
|
||||
confirmed.getId(),
|
||||
confirmed.getEnd().getDateTime().getValue(),
|
||||
pre.getEventData().getImageLink()
|
||||
);
|
||||
EventData eventData = handleEventData(pre, confirmed, settings);
|
||||
|
||||
this.terminate(settings.getGuildID());
|
||||
|
||||
@@ -231,4 +219,23 @@ public class EventCreator {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
private EventData handleEventData(PreEvent pre, Event confirmed, GuildSettings settings) {
|
||||
try {
|
||||
if (pre.getEventData() != null && pre.getEventData().shouldBeSaved()) {
|
||||
|
||||
return EventData.fromImage(
|
||||
settings.getGuildID(),
|
||||
confirmed.getId(),
|
||||
confirmed.getEnd().getDateTime().getValue(),
|
||||
pre.getEventData().getImageLink()
|
||||
);
|
||||
} else {
|
||||
return EventData.empty();
|
||||
}
|
||||
} catch (NullPointerException ignore) {
|
||||
return EventData.empty();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,9 @@
|
||||
package org.dreamexposure.discal.core.database;
|
||||
|
||||
import discord4j.common.util.Snowflake;
|
||||
import io.r2dbc.pool.ConnectionPool;
|
||||
import io.r2dbc.pool.ConnectionPoolConfiguration;
|
||||
import io.r2dbc.spi.*;
|
||||
import org.dreamexposure.discal.core.crypto.KeyGenerator;
|
||||
import org.dreamexposure.discal.core.enums.announcement.AnnouncementModifier;
|
||||
import org.dreamexposure.discal.core.enums.announcement.AnnouncementType;
|
||||
@@ -14,6 +18,8 @@ import org.dreamexposure.discal.core.object.event.EventData;
|
||||
import org.dreamexposure.discal.core.object.event.RsvpData;
|
||||
import org.dreamexposure.discal.core.object.web.UserAPIAccount;
|
||||
import org.dreamexposure.novautils.database.DatabaseSettings;
|
||||
import reactor.core.publisher.Mono;
|
||||
import reactor.util.retry.Retry;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -22,26 +28,7 @@ import java.util.UUID;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.function.Function;
|
||||
|
||||
import discord4j.common.util.Snowflake;
|
||||
import io.r2dbc.pool.ConnectionPool;
|
||||
import io.r2dbc.pool.ConnectionPoolConfiguration;
|
||||
import io.r2dbc.spi.Connection;
|
||||
import io.r2dbc.spi.ConnectionFactories;
|
||||
import io.r2dbc.spi.ConnectionFactory;
|
||||
import io.r2dbc.spi.ConnectionFactoryOptions;
|
||||
import io.r2dbc.spi.Result;
|
||||
import io.r2dbc.spi.ValidationDepth;
|
||||
import reactor.core.publisher.Mono;
|
||||
import reactor.util.retry.Retry;
|
||||
|
||||
import static io.r2dbc.spi.ConnectionFactoryOptions.DATABASE;
|
||||
import static io.r2dbc.spi.ConnectionFactoryOptions.DRIVER;
|
||||
import static io.r2dbc.spi.ConnectionFactoryOptions.HOST;
|
||||
import static io.r2dbc.spi.ConnectionFactoryOptions.PASSWORD;
|
||||
import static io.r2dbc.spi.ConnectionFactoryOptions.PORT;
|
||||
import static io.r2dbc.spi.ConnectionFactoryOptions.PROTOCOL;
|
||||
import static io.r2dbc.spi.ConnectionFactoryOptions.SSL;
|
||||
import static io.r2dbc.spi.ConnectionFactoryOptions.USER;
|
||||
import static io.r2dbc.spi.ConnectionFactoryOptions.*;
|
||||
|
||||
/**
|
||||
* Created by Nova Fox on 11/10/17.
|
||||
@@ -362,6 +349,8 @@ public class DatabaseManager {
|
||||
}
|
||||
|
||||
public static Mono<Boolean> updateEventData(final EventData data) {
|
||||
if (!data.shouldBeSaved()) return Mono.just(false);
|
||||
|
||||
final String table = String.format("%sevents", settings.getPrefix());
|
||||
String id = data.getEventId();
|
||||
if (data.getEventId().contains("_")) {
|
||||
|
||||
Reference in New Issue
Block a user