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 void onCommand(CommandContext ctx) { // TODO: Might need some logic help...
|
||||
public void onCommand(CommandContext ctx) {
|
||||
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.
|
||||
return;
|
||||
}
|
||||
if (ctx.getArgs().length != 1) {
|
||||
if (ctx.getArgs().length < 1) {
|
||||
ctx.reply("Args are incorrect");
|
||||
return;
|
||||
}
|
||||
@ -50,27 +50,25 @@ public class CreateGalleryCommand extends Command { // TODO: This command needs
|
||||
|
||||
String tag = ctx.getArgs()[0];
|
||||
|
||||
GalleryChannel gallery = new GalleryChannel();
|
||||
gallery.channelId = channelId;
|
||||
gallery.tag = tag;
|
||||
gallery.emoji = ":heartpulse:";
|
||||
GalleryChannel.GalleryBuilder galleryBuilder = new GalleryChannel.GalleryBuilder();
|
||||
galleryBuilder.setChannelId(channelId);
|
||||
galleryBuilder.setTag(tag);
|
||||
galleryBuilder.setEmoji(":heartpulse:");
|
||||
|
||||
ctx.getServer().ifPresent(server -> {
|
||||
gallery.serverId = server.getIdAsString();
|
||||
gallery.serverName = server.getName();
|
||||
galleryBuilder.setServerId(server.getIdAsString());
|
||||
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
|
||||
|
||||
EmbedBuilder embed = new EmbedBuilder()
|
||||
.setColor(Color.GREEN)
|
||||
.addField("Success", "Gallery has been created:")
|
||||
.addField("Channel Name:", gallery.channelName)
|
||||
.addField("Channel Id:", gallery.channelId)
|
||||
.addField("Channel Id:", gallery.getChannelId())
|
||||
.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));
|
||||
ctx.getChannel().sendMessage(embed);
|
||||
}
|
||||
|
@ -57,14 +57,13 @@ public class GalleryController {
|
||||
}
|
||||
// TODO: Refactor for proper Java-ing, add GalleryBuilder
|
||||
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(?, ?, ?, ?, ?)",
|
||||
gallery.serverId,
|
||||
gallery.serverName,
|
||||
gallery.channelId,
|
||||
gallery.channelName,
|
||||
gallery.tag,
|
||||
gallery.emoji
|
||||
gallery.getServerId(),
|
||||
gallery.getChannelId(),
|
||||
gallery.getChannelId(),
|
||||
gallery.getTag(),
|
||||
gallery.getEmoji()
|
||||
);
|
||||
}
|
||||
|
||||
@ -105,14 +104,12 @@ public class GalleryController {
|
||||
}
|
||||
|
||||
private static GalleryChannel mapObject(ResultSet rs) throws SQLException { // TODO: Builder this
|
||||
GalleryChannel gallery = new GalleryChannel();
|
||||
gallery.serverId = rs.getString("server_id");
|
||||
gallery.serverName = rs.getString("server_name");
|
||||
gallery.channelId = rs.getString("channel_id");
|
||||
gallery.channelName = rs.getString("channel_name");
|
||||
gallery.tag = rs.getString("tag");
|
||||
gallery.emoji = rs.getString("emoji");
|
||||
|
||||
return gallery;
|
||||
return new GalleryChannel.GalleryBuilder()
|
||||
.setServerId(rs.getString("server_id"))
|
||||
.setServerName(rs.getString("server_name"))
|
||||
.setChannelId(rs.getString("channel_id"))
|
||||
.setTag(rs.getString("tag"))
|
||||
.setEmoji(rs.getString("emoji"))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
@ -8,18 +8,21 @@ package dev.salmonllama.fsbot.database.models;
|
||||
import dev.salmonllama.fsbot.database.DatabaseModel;
|
||||
|
||||
public class GalleryChannel extends DatabaseModel {
|
||||
public String serverId;
|
||||
public String serverName;
|
||||
public String channelId;
|
||||
public String channelName;
|
||||
public String tag;
|
||||
private final String serverId;
|
||||
private final String serverName;
|
||||
private final String channelId;
|
||||
private final String tag;
|
||||
// Normal emojis will be stored in plain text as :emoji:
|
||||
// Server emojis will be stored in plain text as <:emoji:emoji-id>
|
||||
// This can be acquired through CustomEmoji#getMentionTag()
|
||||
public String emoji;
|
||||
|
||||
public GalleryChannel() {
|
||||
private final String emoji;
|
||||
|
||||
public GalleryChannel(GalleryBuilder builder) {
|
||||
serverId = builder.serverId;
|
||||
serverName = builder.serverName;
|
||||
channelId = builder.channelId;
|
||||
tag = builder.tag;
|
||||
emoji = builder.emoji;
|
||||
}
|
||||
|
||||
public String getServerId() {
|
||||
@ -34,9 +37,6 @@ public class GalleryChannel extends DatabaseModel {
|
||||
return channelId;
|
||||
}
|
||||
|
||||
public String getChannelName() {
|
||||
return channelName;
|
||||
}
|
||||
|
||||
public String getTag() {
|
||||
return tag;
|
||||
@ -50,15 +50,54 @@ public class GalleryChannel extends DatabaseModel {
|
||||
return "CREATE TABLE IF NOT EXISTS galleries (" +
|
||||
"server_id TEXT," +
|
||||
"server_name TEXT," +
|
||||
"channel_id TEXT," + // TODO: PRIMARY KEY? There can only be one gallery per channel.
|
||||
"channel_name TEXT," +
|
||||
"channel_id TEXT," +
|
||||
"emoji TEXT," +
|
||||
"tag TEXT)";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("Gallery: [server id: %s, server name: %s, channel id: %s, channel name: %s, tag: %s, emoji: %s]",
|
||||
serverId, serverName, channelId, channelName, tag, emoji);
|
||||
return String.format("Gallery: [server id: %s, server name: %s, channel id: %s, tag: %s, emoji: %s]",
|
||||
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