Reformat Galleries with a builder
This commit is contained in:
parent
7ce2f97acf
commit
7abd82f77a
@ -29,12 +29,12 @@ public class CreateGalleryCommand extends Command { // TODO: This command needs
|
|||||||
@Override public Collection<String> aliases() { return new ArrayList<>(Arrays.asList("creategallery", "addgallery", "newgallery")); }
|
@Override public Collection<String> aliases() { return new ArrayList<>(Arrays.asList("creategallery", "addgallery", "newgallery")); }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCommand(CommandContext ctx) { // TODO: Might need some logic help...
|
public void onCommand(CommandContext ctx) {
|
||||||
if (ctx.isPrivateMessage()) {
|
if (ctx.isPrivateMessage()) {
|
||||||
ctx.reply("This command can only be used in a server!"); // TODO: Stop this. Turn this into a preset no-no embed.
|
ctx.reply("This command can only be used in a server!"); // TODO: Stop this. Turn this into a preset no-no embed.
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (ctx.getArgs().length != 1) {
|
if (ctx.getArgs().length < 1) {
|
||||||
ctx.reply("Args are incorrect");
|
ctx.reply("Args are incorrect");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -50,27 +50,25 @@ public class CreateGalleryCommand extends Command { // TODO: This command needs
|
|||||||
|
|
||||||
String tag = ctx.getArgs()[0];
|
String tag = ctx.getArgs()[0];
|
||||||
|
|
||||||
GalleryChannel gallery = new GalleryChannel();
|
GalleryChannel.GalleryBuilder galleryBuilder = new GalleryChannel.GalleryBuilder();
|
||||||
gallery.channelId = channelId;
|
galleryBuilder.setChannelId(channelId);
|
||||||
gallery.tag = tag;
|
galleryBuilder.setTag(tag);
|
||||||
gallery.emoji = ":heartpulse:";
|
galleryBuilder.setEmoji(":heartpulse:");
|
||||||
|
|
||||||
ctx.getServer().ifPresent(server -> {
|
ctx.getServer().ifPresent(server -> {
|
||||||
gallery.serverId = server.getIdAsString();
|
galleryBuilder.setServerId(server.getIdAsString());
|
||||||
gallery.serverName = server.getName();
|
galleryBuilder.setServerName(server.getName());
|
||||||
});
|
});
|
||||||
|
|
||||||
ctx.getChannel().asServerTextChannel().ifPresent(channel -> gallery.channelName = channel.getName());
|
GalleryChannel gallery = galleryBuilder.build();
|
||||||
|
|
||||||
GalleryController.insert(gallery).exceptionally(ExceptionLogger.get()); // TODO: Make a discord exception logger for the thingos
|
GalleryController.insert(gallery).exceptionally(ExceptionLogger.get()); // TODO: Make a discord exception logger for the thingos
|
||||||
|
|
||||||
EmbedBuilder embed = new EmbedBuilder()
|
EmbedBuilder embed = new EmbedBuilder()
|
||||||
.setColor(Color.GREEN)
|
.setColor(Color.GREEN)
|
||||||
.addField("Success", "Gallery has been created:")
|
.addField("Success", "Gallery has been created:")
|
||||||
.addField("Channel Name:", gallery.channelName)
|
.addField("Channel Id:", gallery.getChannelId())
|
||||||
.addField("Channel Id:", gallery.channelId)
|
|
||||||
.addField("Tag:", tag)
|
.addField("Tag:", tag)
|
||||||
.addField("Emoji:", EmojiManager.getByUnicode(gallery.emoji).toString())
|
.addField("Emoji:", EmojiManager.getByUnicode(gallery.getEmoji()).toString())
|
||||||
.addField("End:", String.format("This channel is now being tracked under: %s", tag));
|
.addField("End:", String.format("This channel is now being tracked under: %s", tag));
|
||||||
ctx.getChannel().sendMessage(embed);
|
ctx.getChannel().sendMessage(embed);
|
||||||
}
|
}
|
||||||
|
@ -57,14 +57,13 @@ public class GalleryController {
|
|||||||
}
|
}
|
||||||
// TODO: Refactor for proper Java-ing, add GalleryBuilder
|
// TODO: Refactor for proper Java-ing, add GalleryBuilder
|
||||||
private static void insertExec(GalleryChannel gallery) throws SQLException {
|
private static void insertExec(GalleryChannel gallery) throws SQLException {
|
||||||
FSDB.get().insert("INSERT INTO galleries('server_id', 'server_name', 'channel_id', 'channel_name', 'tag', 'emoji')" +
|
FSDB.get().insert("INSERT INTO galleries('server_id', 'server_name', 'channel_id', 'tag', 'emoji')" +
|
||||||
"VALUES(?, ?, ?, ?, ?)",
|
"VALUES(?, ?, ?, ?, ?)",
|
||||||
gallery.serverId,
|
gallery.getServerId(),
|
||||||
gallery.serverName,
|
gallery.getChannelId(),
|
||||||
gallery.channelId,
|
gallery.getChannelId(),
|
||||||
gallery.channelName,
|
gallery.getTag(),
|
||||||
gallery.tag,
|
gallery.getEmoji()
|
||||||
gallery.emoji
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,14 +104,12 @@ public class GalleryController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static GalleryChannel mapObject(ResultSet rs) throws SQLException { // TODO: Builder this
|
private static GalleryChannel mapObject(ResultSet rs) throws SQLException { // TODO: Builder this
|
||||||
GalleryChannel gallery = new GalleryChannel();
|
return new GalleryChannel.GalleryBuilder()
|
||||||
gallery.serverId = rs.getString("server_id");
|
.setServerId(rs.getString("server_id"))
|
||||||
gallery.serverName = rs.getString("server_name");
|
.setServerName(rs.getString("server_name"))
|
||||||
gallery.channelId = rs.getString("channel_id");
|
.setChannelId(rs.getString("channel_id"))
|
||||||
gallery.channelName = rs.getString("channel_name");
|
.setTag(rs.getString("tag"))
|
||||||
gallery.tag = rs.getString("tag");
|
.setEmoji(rs.getString("emoji"))
|
||||||
gallery.emoji = rs.getString("emoji");
|
.build();
|
||||||
|
|
||||||
return gallery;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,18 +8,21 @@ package dev.salmonllama.fsbot.database.models;
|
|||||||
import dev.salmonllama.fsbot.database.DatabaseModel;
|
import dev.salmonllama.fsbot.database.DatabaseModel;
|
||||||
|
|
||||||
public class GalleryChannel extends DatabaseModel {
|
public class GalleryChannel extends DatabaseModel {
|
||||||
public String serverId;
|
private final String serverId;
|
||||||
public String serverName;
|
private final String serverName;
|
||||||
public String channelId;
|
private final String channelId;
|
||||||
public String channelName;
|
private final String tag;
|
||||||
public String tag;
|
|
||||||
// Normal emojis will be stored in plain text as :emoji:
|
// Normal emojis will be stored in plain text as :emoji:
|
||||||
// Server emojis will be stored in plain text as <:emoji:emoji-id>
|
// Server emojis will be stored in plain text as <:emoji:emoji-id>
|
||||||
// This can be acquired through CustomEmoji#getMentionTag()
|
// This can be acquired through CustomEmoji#getMentionTag()
|
||||||
public String emoji;
|
private final String emoji;
|
||||||
|
|
||||||
public GalleryChannel() {
|
|
||||||
|
|
||||||
|
public GalleryChannel(GalleryBuilder builder) {
|
||||||
|
serverId = builder.serverId;
|
||||||
|
serverName = builder.serverName;
|
||||||
|
channelId = builder.channelId;
|
||||||
|
tag = builder.tag;
|
||||||
|
emoji = builder.emoji;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getServerId() {
|
public String getServerId() {
|
||||||
@ -34,9 +37,6 @@ public class GalleryChannel extends DatabaseModel {
|
|||||||
return channelId;
|
return channelId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getChannelName() {
|
|
||||||
return channelName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTag() {
|
public String getTag() {
|
||||||
return tag;
|
return tag;
|
||||||
@ -50,15 +50,54 @@ public class GalleryChannel extends DatabaseModel {
|
|||||||
return "CREATE TABLE IF NOT EXISTS galleries (" +
|
return "CREATE TABLE IF NOT EXISTS galleries (" +
|
||||||
"server_id TEXT," +
|
"server_id TEXT," +
|
||||||
"server_name TEXT," +
|
"server_name TEXT," +
|
||||||
"channel_id TEXT," + // TODO: PRIMARY KEY? There can only be one gallery per channel.
|
"channel_id TEXT," +
|
||||||
"channel_name TEXT," +
|
|
||||||
"emoji TEXT," +
|
"emoji TEXT," +
|
||||||
"tag TEXT)";
|
"tag TEXT)";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return String.format("Gallery: [server id: %s, server name: %s, channel id: %s, channel name: %s, tag: %s, emoji: %s]",
|
return String.format("Gallery: [server id: %s, server name: %s, channel id: %s, tag: %s, emoji: %s]",
|
||||||
serverId, serverName, channelId, channelName, tag, emoji);
|
serverId, serverName, channelId, tag, emoji);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class GalleryBuilder {
|
||||||
|
private String serverId;
|
||||||
|
private String serverName;
|
||||||
|
private String channelId;
|
||||||
|
private String tag;
|
||||||
|
private String emoji;
|
||||||
|
|
||||||
|
public GalleryBuilder() {
|
||||||
|
|
||||||
|
}
|
||||||
|
public GalleryBuilder setServerId(String serverId) {
|
||||||
|
this.serverId = serverId;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GalleryBuilder setServerName(String serverName) {
|
||||||
|
this.serverName = serverName;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GalleryBuilder setChannelId(String channelId) {
|
||||||
|
this.channelId = channelId;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GalleryBuilder setTag(String tag) {
|
||||||
|
this.tag = tag;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GalleryBuilder setEmoji(String emoji) {
|
||||||
|
this.emoji = emoji;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GalleryChannel build() {
|
||||||
|
return new GalleryChannel(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user