Merge pull request #29 from Salmonllama/dev

First round of bugfixes
This commit is contained in:
Aleksei Gryczewski 2020-07-30 19:08:40 -04:00 committed by GitHub
commit 999663eeb7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 71 additions and 56 deletions

View File

@ -9,7 +9,7 @@ plugins {
} }
group 'dev.salmonllama' group 'dev.salmonllama'
version '2.0.0' version '2.0.1'
sourceCompatibility = 11 sourceCompatibility = 11

View File

@ -37,8 +37,8 @@ public class Main {
api.addMessageCreateListener(new AchievementListener()); api.addMessageCreateListener(new AchievementListener());
api.addMessageCreateListener(new ReportListener()); api.addMessageCreateListener(new ReportListener());
System.out.println(String.format("Bot invite: %s", api.createBotInvite())); System.out.printf("Bot invite: %s%n", api.createBotInvite());
System.out.println(String.format("Logged in as %s", api.getYourself().getDiscriminatedName())); System.out.printf("Logged in as %s%n", api.getYourself().getDiscriminatedName());
}); });
} }
} }

View File

@ -5,7 +5,6 @@
package dev.salmonllama.fsbot.commands.staff; package dev.salmonllama.fsbot.commands.staff;
import dev.salmonllama.fsbot.config.BotConfig;
import dev.salmonllama.fsbot.database.controllers.OutfitController; import dev.salmonllama.fsbot.database.controllers.OutfitController;
import dev.salmonllama.fsbot.guthix.Command; import dev.salmonllama.fsbot.guthix.Command;
import dev.salmonllama.fsbot.guthix.CommandContext; import dev.salmonllama.fsbot.guthix.CommandContext;

View File

@ -71,8 +71,9 @@ public class RemoveOutfitCommand extends Command {
EmbedBuilder response = new EmbedBuilder() EmbedBuilder response = new EmbedBuilder()
.setTitle("Deletion Successful!") .setTitle("Deletion Successful!")
.setDescription(String.format("Outfit %s marked as deleted", outfit.getId())); .setDescription(String.format("Outfit %s marked as deleted", outfit.getId()));
msg.delete();
ctx.reply(response); ctx.reply(response);
// TODO: Log the action in FSBot-Log
EmbedBuilder log = new EmbedBuilder() EmbedBuilder log = new EmbedBuilder()
.setTitle("Outfit Marked as Deleted") .setTitle("Outfit Marked as Deleted")

View File

@ -79,7 +79,6 @@ public class RetagCommand extends Command {
msg.delete(); msg.delete();
ctx.reply(embed); ctx.reply(embed);
// TODO: Log the action in FSBot-log
EmbedBuilder log = new EmbedBuilder() EmbedBuilder log = new EmbedBuilder()
.setTitle("Outfit Retagged") .setTitle("Outfit Retagged")

View File

@ -13,6 +13,7 @@ import dev.salmonllama.fsbot.guthix.CommandContext;
import dev.salmonllama.fsbot.guthix.CommandPermission; import dev.salmonllama.fsbot.guthix.CommandPermission;
import dev.salmonllama.fsbot.guthix.PermissionType; import dev.salmonllama.fsbot.guthix.PermissionType;
import org.javacord.api.entity.message.embed.EmbedBuilder; import org.javacord.api.entity.message.embed.EmbedBuilder;
import org.javacord.api.util.logging.ExceptionLogger;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@ -42,61 +43,72 @@ public class WelcomeMessageCommand extends Command {
switch (args[0]) { switch (args[0]) {
case "get": case "get":
get(ctx); get(ctx);
break;
case "set": // TODO: check for args here case "set": // TODO: check for args here
set(ctx, args[1]); String newMsg = String.join(" ", Arrays.copyOfRange(args, 1, args.length));
set(ctx, newMsg);
break;
default:
ctx.reply("You used this command incorrectly.");
} }
} }
private void get(CommandContext ctx) { private void get(CommandContext ctx) {
ServerConfigController.get(ctx.getServer().get().getIdAsString()).thenAcceptAsync(possibleConf -> { ctx.getServer().ifPresent( // If server is present (not private message) get the server config
possibleConf.ifPresentOrElse(conf -> { server -> ServerConfigController.get(server.getIdAsString()).thenAcceptAsync(
EmbedBuilder response = new EmbedBuilder() possibleConf -> possibleConf.ifPresentOrElse( // Check for current server config
.setTitle("Current Welcome Message") conf -> ctx.reply(getMsg(conf)), // Fetch and send the current welcome message
.setDescription(conf.getWelcomeMessage()); () -> ctx.reply(notFound()) // No welcome message exists, sorrynotsorry
)
));
}
ctx.reply(response); private EmbedBuilder getMsg(ServerConfig config) {
}, () -> { return new EmbedBuilder()
EmbedBuilder response = new EmbedBuilder() .setTitle("Current Welcome Message")
.setTitle("Does not exist!") .setDescription(config.getWelcomeMessage());
.setDescription("No welcome message was found! use `~wmsg set` to set one!"); }
ctx.reply(response); private EmbedBuilder notFound() {
}); return new EmbedBuilder()
}); .setTitle("Does not exist!")
.setDescription("No welcome message was found! use `~wmsg set` to set one!");
} }
private void set(CommandContext ctx, String newMsg) { private void set(CommandContext ctx, String newMsg) {
ServerConfigController.get(ctx.getServer().get().getIdAsString()).thenAcceptAsync(possibleConf -> { ctx.getServer().ifPresent( // If server is present (private msg check) get the server's config
possibleConf.ifPresentOrElse(conf -> { server -> ServerConfigController.get(server.getIdAsString()).thenAcceptAsync( // Check for a current server config
// Update the config possibleConf -> possibleConf.ifPresentOrElse(
ServerConfig config = new ServerConfig.ServerConfigBuilder().from(conf) conf -> ctx.reply(updateMsg(conf, newMsg)), // Config exists, update with new welcome message
.setWelcomeMessage(newMsg) () -> ctx.reply(setNewMsg(server.getIdAsString(), newMsg))))); // Config does not exist, init and add new welcome message
.build(); }
ServerConfigController.update(config); private EmbedBuilder updateMsg(ServerConfig conf, String newMsg) {
// Updates a welcome message from an already existing server config
ServerConfig config = new ServerConfig.ServerConfigBuilder().from(conf)
.setWelcomeMessage(newMsg)
.build();
EmbedBuilder response = new EmbedBuilder() ServerConfigController.update(config).exceptionally(ExceptionLogger.get()); // TODO: Write a discord Throwable consumer like this
.setTitle("Welcome Message Set")
.addField("New Welcome Message:", config.getWelcomeMessage());
ctx.reply(response); return new EmbedBuilder()
}, () -> { .setTitle("Welcome Message Set")
// Create a config and set the welcome message .addField("New Welcome Message:", config.getWelcomeMessage());
ServerConfig config = new ServerConfig.ServerConfigBuilder() }
.setId(ctx.getServer().get().getIdAsString())
.setPrefix(BotConfig.DEFAULT_PREFIX)
.setWelcomeMessage(newMsg)
.build();
ServerConfigController.insert(config); private EmbedBuilder setNewMsg(String serverId, String newMsg) {
// Creates a new server config and adds a welcome message
ServerConfig config = new ServerConfig.ServerConfigBuilder()
.setId(serverId)
.setPrefix(BotConfig.DEFAULT_PREFIX)
.setWelcomeMessage(newMsg)
.build();
EmbedBuilder response = new EmbedBuilder() ServerConfigController.insert(config);
.setTitle("Welcome Message Set!")
.setDescription("server conf has been created")
.addField("New Welcome Message:", newMsg);
ctx.reply(response); return new EmbedBuilder()
}); .setTitle("Welcome Message Set!")
}); .setDescription("server conf has been created")
.addField("New Welcome Message:", newMsg);
} }
} }

View File

@ -28,7 +28,8 @@ public class DatabaseProvider {
SQLiteConnectionPoolDataSource dataSource = new SQLiteConnectionPoolDataSource(); SQLiteConnectionPoolDataSource dataSource = new SQLiteConnectionPoolDataSource();
dataSource.setDatabaseName(DB_NAME); dataSource.setDatabaseName(DB_NAME);
dataSource.setUrl(DB_ADDR); dataSource.setUrl(DB_ADDR);
return dataSource.getConnection(); c = dataSource.getConnection();
return c;
} catch (SQLException e) { } catch (SQLException e) {
e.printStackTrace(); e.printStackTrace();
System.out.println("Could not connect to database, double check config values"); System.out.println("Could not connect to database, double check config values");
@ -58,6 +59,8 @@ public class DatabaseProvider {
} }
else if (p instanceof Timestamp) { else if (p instanceof Timestamp) {
query.setTimestamp(index, (Timestamp) p); query.setTimestamp(index, (Timestamp) p);
} else if (p == null) {
query.setNull(index, Types.NULL);
} else { } else {
throw new UnknownParameterException(p, index); throw new UnknownParameterException(p, index);
} }

View File

@ -402,7 +402,7 @@ public class OutfitController {
.setTag(rs.getString("tag")) .setTag(rs.getString("tag"))
.setMeta(rs.getString("meta")) .setMeta(rs.getString("meta"))
.setCreated(new Timestamp(rs.getLong("created"))) .setCreated(new Timestamp(rs.getLong("created")))
.setUpdated(new Timestamp((rs.getLong("updated")))) .setUpdated(new Timestamp(rs.getLong("updated")))
.setDeleted(rs.getBoolean("deleted")) .setDeleted(rs.getBoolean("deleted"))
.setFeatured(rs.getBoolean("featured")) .setFeatured(rs.getBoolean("featured"))
.setDisplayCount(rs.getInt("display_count")) .setDisplayCount(rs.getInt("display_count"))

View File

@ -72,7 +72,7 @@ public class ServerConfigController {
} }
private static void updateExec(ServerConfig config) throws SQLException { private static void updateExec(ServerConfig config) throws SQLException {
FSDB.get().query("UPDATE server_config SET prefix = ?, welcome_message = ?, welcome_channel = ?, WHERE id = ?", FSDB.get().query("UPDATE server_config SET prefix = ?, welcome_message = ?, welcome_channel = ? WHERE id = ?",
config.getPrefix(), config.getPrefix(),
config.getWelcomeMessage(), config.getWelcomeMessage(),
config.getWelcomeChannel(), config.getWelcomeChannel(),

View File

@ -17,8 +17,6 @@ import org.javacord.api.event.message.MessageCreateEvent;
import org.javacord.api.listener.message.MessageCreateListener; import org.javacord.api.listener.message.MessageCreateListener;
import org.javacord.api.util.logging.ExceptionLogger; import org.javacord.api.util.logging.ExceptionLogger;
import java.sql.Timestamp;
public class ImageListener implements MessageCreateListener { public class ImageListener implements MessageCreateListener {
@Override @Override
@ -57,8 +55,7 @@ public class ImageListener implements MessageCreateListener {
.setMeta(event.getMessageContent()) .setMeta(event.getMessageContent())
.setLink(upload.getLink()) .setLink(upload.getLink())
.setSubmitter(event.getMessageAuthor().getIdAsString()) .setSubmitter(event.getMessageAuthor().getIdAsString())
.setDeleteHash(upload.getDeleteHash()) .setDeleteHash(upload.getDeleteHash());
.setCreated(new Timestamp(upload.getDateTime()));
GalleryController.getTag(channel.getIdAsString()).thenAccept(tag -> { GalleryController.getTag(channel.getIdAsString()).thenAccept(tag -> {
outfitBuilder.setTag(tag); outfitBuilder.setTag(tag);

View File

@ -6,6 +6,7 @@
package dev.salmonllama.fsbot.listeners; package dev.salmonllama.fsbot.listeners;
import dev.salmonllama.fsbot.config.BotConfig; import dev.salmonllama.fsbot.config.BotConfig;
import dev.salmonllama.fsbot.database.controllers.ServerConfigController;
import org.javacord.api.event.server.member.ServerMemberJoinEvent; import org.javacord.api.event.server.member.ServerMemberJoinEvent;
import org.javacord.api.listener.server.member.ServerMemberJoinListener; import org.javacord.api.listener.server.member.ServerMemberJoinListener;
@ -14,11 +15,14 @@ public class NewMemberListener implements ServerMemberJoinListener {
public void onServerMemberJoin(ServerMemberJoinEvent event) { public void onServerMemberJoin(ServerMemberJoinEvent event) {
if (!event.getServer().getIdAsString().equals(BotConfig.HOME_SERVER)) { if (!event.getServer().getIdAsString().equals(BotConfig.HOME_SERVER)) {
// Only active in the Fashionscape server, currently.
return; return;
} }
// String logMessage = String.format(welcomeMsg, event.getUser().getMentionTag()); // TODO: Use the ServerConfig to retrieve the welcome channel as well.
event.getApi().getServerTextChannelById(BotConfig.WELCOME_CHANNEL).ifPresent( // Get the Welcome Channel
event.getApi().getServerTextChannelById(BotConfig.WELCOME_CHANNEL).ifPresent(channel -> channel.sendMessage("Welcome!")); channel -> ServerConfigController.get(event.getServer().getIdAsString()).thenAcceptAsync( // Fetch the server config, if set.
possibleConfig -> possibleConfig.ifPresent( // If config exists
config -> channel.sendMessage(String.format(config.getWelcomeMessage(), event.getUser().getMentionTag()))))); // Send the welcome message
} }
} }