added some utility methods to bot service

reworked message cache to not be jda messages, but own objects: cachedMessages, jda messages should not be kept around
added listener to listen for message links, to represent them in an embed (or embeds)
added offsetDateTime handling for gson
introduced a way on how to handle async transaction handling for suggestions and message loading (self reference with another method with transactional)
added timestamp support to embeds
This commit is contained in:
Sheldan
2020-03-24 20:36:36 +01:00
parent 8cd9068cfc
commit 7d63f6b8af
43 changed files with 696 additions and 136 deletions

View File

@@ -0,0 +1,13 @@
package dev.sheldan.abstracto.templating.embed;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class EmbedAuthor {
private String name;
private String url;
private String avatar;
}

View File

@@ -0,0 +1,12 @@
package dev.sheldan.abstracto.templating.embed;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class EmbedColor {
private Integer r;
private Integer g;
private Integer b;
}

View File

@@ -0,0 +1,21 @@
package dev.sheldan.abstracto.templating.embed;
import lombok.Getter;
import lombok.Setter;
import java.time.OffsetDateTime;
import java.util.List;
@Getter
@Setter
public class EmbedConfiguration {
private EmbedAuthor author;
private EmbedTitle title;
private EmbedColor color;
private String description;
private String thumbnail;
private String imageUrl;
private List<EmbedField> fields;
private EmbedFooter footer;
private OffsetDateTime timeStamp;
}

View File

@@ -0,0 +1,12 @@
package dev.sheldan.abstracto.templating.embed;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class EmbedField {
private String name;
private String value;
private Boolean inline;
}

View File

@@ -0,0 +1,11 @@
package dev.sheldan.abstracto.templating.embed;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class EmbedFooter {
private String text;
private String icon;
}

View File

@@ -0,0 +1,11 @@
package dev.sheldan.abstracto.templating.embed;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class EmbedTitle {
private String title;
private String url;
}