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'
version '2.0.0'
version '2.0.1'
sourceCompatibility = 11

View File

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

View File

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

View File

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

View File

@ -79,7 +79,6 @@ public class RetagCommand extends Command {
msg.delete();
ctx.reply(embed);
// TODO: Log the action in FSBot-log
EmbedBuilder log = new EmbedBuilder()
.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.PermissionType;
import org.javacord.api.entity.message.embed.EmbedBuilder;
import org.javacord.api.util.logging.ExceptionLogger;
import java.util.ArrayList;
import java.util.Arrays;
@ -42,61 +43,72 @@ public class WelcomeMessageCommand extends Command {
switch (args[0]) {
case "get":
get(ctx);
break;
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) {
ServerConfigController.get(ctx.getServer().get().getIdAsString()).thenAcceptAsync(possibleConf -> {
possibleConf.ifPresentOrElse(conf -> {
EmbedBuilder response = new EmbedBuilder()
.setTitle("Current Welcome Message")
.setDescription(conf.getWelcomeMessage());
ctx.getServer().ifPresent( // If server is present (not private message) get the server config
server -> ServerConfigController.get(server.getIdAsString()).thenAcceptAsync(
possibleConf -> possibleConf.ifPresentOrElse( // Check for current server config
conf -> ctx.reply(getMsg(conf)), // Fetch and send the current welcome message
() -> ctx.reply(notFound()) // No welcome message exists, sorrynotsorry
)
));
}
ctx.reply(response);
}, () -> {
EmbedBuilder response = new EmbedBuilder()
.setTitle("Does not exist!")
.setDescription("No welcome message was found! use `~wmsg set` to set one!");
private EmbedBuilder getMsg(ServerConfig config) {
return new EmbedBuilder()
.setTitle("Current Welcome Message")
.setDescription(config.getWelcomeMessage());
}
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) {
ServerConfigController.get(ctx.getServer().get().getIdAsString()).thenAcceptAsync(possibleConf -> {
possibleConf.ifPresentOrElse(conf -> {
// Update the config
ServerConfig config = new ServerConfig.ServerConfigBuilder().from(conf)
.setWelcomeMessage(newMsg)
.build();
ctx.getServer().ifPresent( // If server is present (private msg check) get the server's config
server -> ServerConfigController.get(server.getIdAsString()).thenAcceptAsync( // Check for a current server config
possibleConf -> possibleConf.ifPresentOrElse(
conf -> ctx.reply(updateMsg(conf, newMsg)), // Config exists, update with new welcome message
() -> ctx.reply(setNewMsg(server.getIdAsString(), newMsg))))); // Config does not exist, init and add new welcome message
}
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()
.setTitle("Welcome Message Set")
.addField("New Welcome Message:", config.getWelcomeMessage());
ServerConfigController.update(config).exceptionally(ExceptionLogger.get()); // TODO: Write a discord Throwable consumer like this
ctx.reply(response);
}, () -> {
// Create a config and set the welcome message
ServerConfig config = new ServerConfig.ServerConfigBuilder()
.setId(ctx.getServer().get().getIdAsString())
.setPrefix(BotConfig.DEFAULT_PREFIX)
.setWelcomeMessage(newMsg)
.build();
return new EmbedBuilder()
.setTitle("Welcome Message Set")
.addField("New Welcome Message:", config.getWelcomeMessage());
}
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()
.setTitle("Welcome Message Set!")
.setDescription("server conf has been created")
.addField("New Welcome Message:", newMsg);
ServerConfigController.insert(config);
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();
dataSource.setDatabaseName(DB_NAME);
dataSource.setUrl(DB_ADDR);
return dataSource.getConnection();
c = dataSource.getConnection();
return c;
} catch (SQLException e) {
e.printStackTrace();
System.out.println("Could not connect to database, double check config values");
@ -58,6 +59,8 @@ public class DatabaseProvider {
}
else if (p instanceof Timestamp) {
query.setTimestamp(index, (Timestamp) p);
} else if (p == null) {
query.setNull(index, Types.NULL);
} else {
throw new UnknownParameterException(p, index);
}

View File

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

View File

@ -72,7 +72,7 @@ public class ServerConfigController {
}
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.getWelcomeMessage(),
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.util.logging.ExceptionLogger;
import java.sql.Timestamp;
public class ImageListener implements MessageCreateListener {
@Override
@ -57,8 +55,7 @@ public class ImageListener implements MessageCreateListener {
.setMeta(event.getMessageContent())
.setLink(upload.getLink())
.setSubmitter(event.getMessageAuthor().getIdAsString())
.setDeleteHash(upload.getDeleteHash())
.setCreated(new Timestamp(upload.getDateTime()));
.setDeleteHash(upload.getDeleteHash());
GalleryController.getTag(channel.getIdAsString()).thenAccept(tag -> {
outfitBuilder.setTag(tag);

View File

@ -6,6 +6,7 @@
package dev.salmonllama.fsbot.listeners;
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.listener.server.member.ServerMemberJoinListener;
@ -14,11 +15,14 @@ public class NewMemberListener implements ServerMemberJoinListener {
public void onServerMemberJoin(ServerMemberJoinEvent event) {
if (!event.getServer().getIdAsString().equals(BotConfig.HOME_SERVER)) {
// Only active in the Fashionscape server, currently.
return;
}
// String logMessage = String.format(welcomeMsg, event.getUser().getMentionTag());
event.getApi().getServerTextChannelById(BotConfig.WELCOME_CHANNEL).ifPresent(channel -> channel.sendMessage("Welcome!"));
// TODO: Use the ServerConfig to retrieve the welcome channel as well.
event.getApi().getServerTextChannelById(BotConfig.WELCOME_CHANNEL).ifPresent( // Get the Welcome Channel
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
}
}