diff --git a/src/main/java/me/savvy/rixa/Rixa.java b/src/main/java/me/savvy/rixa/Rixa.java index a691142..7f5a6d5 100644 --- a/src/main/java/me/savvy/rixa/Rixa.java +++ b/src/main/java/me/savvy/rixa/Rixa.java @@ -19,6 +19,7 @@ import me.savvy.rixa.commands.mod.DeleteMessagesCommand; import me.savvy.rixa.commands.mod.MuteCommand; import me.savvy.rixa.commands.mod.PurgeMessagesCommand; import me.savvy.rixa.commands.mod.RaidModeCommand; +import me.savvy.rixa.data.database.sql.other.DatabaseTables; import me.savvy.rixa.data.filemanager.ConfigManager; import me.savvy.rixa.data.filemanager.LanguageManager; import me.savvy.rixa.events.BotEvent; @@ -40,6 +41,7 @@ import net.dv8tion.jda.core.hooks.AnnotatedEventManager; import javax.security.auth.login.LoginException; import java.io.File; +import java.util.Arrays; import java.util.LinkedList; import java.util.List; import java.util.concurrent.Executors; @@ -86,14 +88,11 @@ public class Rixa { getInstance().setExecutorService(Executors.newSingleThreadScheduledExecutor()); database = Database.options() .type("mysql") - .hostname(String.valueOf(config.getJsonObject().getJSONObject("sql").getString("hostName")), Integer.valueOf(config.getJsonObject().getJSONObject("sql").getInt("portNumber"))) + .hostname(String.valueOf(config.getJsonObject().getJSONObject("sql").getString("hostName")), config.getJsonObject().getJSONObject("sql").getInt("portNumber")) .database(String.valueOf(config.getJsonObject().getJSONObject("sql").getString("databaseName"))) .auth(String.valueOf(config.getJsonObject().getJSONObject("sql").getString("userName")), String.valueOf(config.getJsonObject().getJSONObject("sql").getString("password"))) .build(); - Update update = new Update("CREATE TABLE IF NOT EXISTS `core` (`guild_id` varchar(255) NOT NULL, `guild_name` varchar(255) NOT NULL, PRIMARY KEY (`guild_id`));"); - database.send(update); - Update modules = new Update("CREATE TABLE IF NOT EXISTS `modules` (`guild_id` varchar(255) NOT NULL, `levels` varchar(255) NOT NULL, `enabled` INT(11) NOT NULL, PRIMARY KEY (`guild_id`));"); - database.send(modules); + Arrays.stream(DatabaseTables.values()).forEach(databaseTables -> database.send(new Update(databaseTables.getQuery()))); getInstance().setLanguageManager(new LanguageManager(new File("Rixa/languages/language.json"))); try { int shards = 5; @@ -155,4 +154,14 @@ public class Rixa { return Logger.getLogger("Rixa"); } + public void exit() { + try { + database.close(); + getShardsList().forEach(JDA::shutdown); + Thread.sleep(5000); + System.exit(0); + } catch (InterruptedException ex) { + getLogger().severe("Could not shutdown Rixa instance."); + } + } } diff --git a/src/main/java/me/savvy/rixa/commands/admin/RoleRewardsCommand.java b/src/main/java/me/savvy/rixa/commands/admin/RoleRewardsCommand.java new file mode 100644 index 0000000..8b5d529 --- /dev/null +++ b/src/main/java/me/savvy/rixa/commands/admin/RoleRewardsCommand.java @@ -0,0 +1,79 @@ +package me.savvy.rixa.commands.admin; + +import me.savvy.rixa.commands.handlers.Command; +import me.savvy.rixa.commands.handlers.CommandExec; +import me.savvy.rixa.commands.handlers.CommandType; +import me.savvy.rixa.guild.RixaGuild; +import me.savvy.rixa.utils.MessageBuilder; +import net.dv8tion.jda.core.entities.ChannelType; +import net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent; + +import java.util.HashMap; +import java.util.Map; + +public class RoleRewardsCommand implements CommandExec { + + @Command( + description = "View Role Rewards.", + type = CommandType.ADMIN, + channelType = ChannelType.TEXT, + usage = "%prolerewards", mainCommand = "rolerewards", + aliases = {"rolereward", "rw"}) + public void execute(GuildMessageReceivedEvent event) { + RixaGuild rixaGuild = RixaGuild.getGuild(event.getGuild()); + String[] args = event.getMessage().getContent().split(" "); + + // ?rw [level] [role] + switch (args.length) { + case 4: + if (!isInt(args[2])) { + new MessageBuilder(event.getMember().getAsMention() + ", incorrect usage try [" + args[0] + " [level] [role]."). + setColor(event.getMember().getColor()).queue(event.getChannel()); + return; + } + if (rixaGuild.getLevelsModule().getRoleRewards().containsKey(Integer.parseInt(args[2]))) { + new MessageBuilder(event.getMember().getAsMention() + ", incorrect usage try [" + args[0] + " [level] [role]."). + setColor(event.getMember().getColor()).queue(event.getChannel()); + return; + } + switch (args[1].toLowerCase()) { + case "add": + break; + case "remove": + break; + default: + new MessageBuilder(event.getMember().getAsMention() + ", incorrect usage try [" + args[0] + " [level] [role]."). + setColor(event.getMember().getColor()).queue(event.getChannel()); + break; + } + break; + case 2: + switch(args[1].toLowerCase()) { + case "list": + Map rewards = new HashMap<>(); + rixaGuild.getLevelsModule().getRoleRewards().forEach((integer, s) -> { + + }); + break; + default: + new MessageBuilder(event.getMember().getAsMention() + ", incorrect usage try [" + args[0] + " [level] [role]."). + setColor(event.getMember().getColor()).queue(event.getChannel()); + break; + } + break; + default: + new MessageBuilder(event.getMember().getAsMention() + ", incorrect usage try [" + args[0] + " [level] [role]."). + setColor(event.getMember().getColor()).queue(event.getChannel()); + break; + } + } + + private boolean isInt(String s) { + try { + Integer.parseInt(s); + return true; + } catch (NumberFormatException ex) { + return false; + } + } +} diff --git a/src/main/java/me/savvy/rixa/commands/owner/CheckGuildCommand.java b/src/main/java/me/savvy/rixa/commands/owner/CheckGuildCommand.java new file mode 100644 index 0000000..dd01062 --- /dev/null +++ b/src/main/java/me/savvy/rixa/commands/owner/CheckGuildCommand.java @@ -0,0 +1,61 @@ +package me.savvy.rixa.commands.owner; + +import me.savvy.rixa.Rixa; +import me.savvy.rixa.commands.handlers.Command; +import me.savvy.rixa.commands.handlers.CommandExec; +import me.savvy.rixa.commands.handlers.CommandType; +import me.savvy.rixa.enums.Result; +import me.savvy.rixa.utils.MessageBuilder; +import net.dv8tion.jda.core.entities.ChannelType; +import net.dv8tion.jda.core.entities.Member; +import net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent; + +import java.sql.PreparedStatement; +import java.sql.SQLException; + +public class CheckGuildCommand implements CommandExec { + + @Override + @Command(mainCommand = "checkguild", + description = "Update Rixa's database!", + channelType = ChannelType.TEXT, + showInHelp = false, + type = CommandType.BOT_OWNER, + aliases = { "cg", "checkg", "guildcheck", "gc"}) + public void execute(GuildMessageReceivedEvent event) { + if (!event.getAuthor().getId().equalsIgnoreCase("202944101333729280")) { + new MessageBuilder(event.getMember().getAsMention() + ", you do not have permission for this command.") + .setColor(event.getMember().getColor()).queue(event.getChannel()); + return; + } + new MessageBuilder(event.getAuthor().getAsMention() + ", updating guild!").setColor(event.getMember().getColor()).queue(event.getChannel()); + int updated = 0; + for (Member member: event.getGuild().getMembers()) { + if (member.getUser().getId().equalsIgnoreCase(event.getAuthor().getId())) continue; + try { + if (!(checkExists(member.getUser().getId()))) { + PreparedStatement ps = Rixa.getDbManager().getConnection().prepareStatement("INSERT INTO `user` (`user_id`, `user_name`, `avatar_hash`) VALUES (?, ?, ?)"); + ps.setString(1, member.getUser().getId()); + ps.setString(2, member.getUser().getName()); + ps.setString(3, member.getUser().getAvatarId()); + Rixa.getDbManager().executeUpdate(ps); + updated++; + } + } catch (SQLException e) { + e.printStackTrace(); + } + } + new MessageBuilder(event.getAuthor().getAsMention() + ", successfully updated " + updated + " out of " + + event.getGuild().getMembers().size() + " users in database.").setColor(event.getMember().getColor()).queue(event.getChannel()); + } + + private boolean checkExists(String userId) { + Result r = Result.ERROR; + try { + r = Rixa.getDbManager().checkExists("SELECT `user_id` FROM `user` WHERE `user_id` = '" + userId + "';"); + } catch (SQLException e) { + e.printStackTrace(); + } + return r == Result.TRUE; + } +} diff --git a/src/main/java/me/savvy/rixa/commands/owner/CleanGuildCommand.java b/src/main/java/me/savvy/rixa/commands/owner/CleanGuildCommand.java new file mode 100644 index 0000000..620559c --- /dev/null +++ b/src/main/java/me/savvy/rixa/commands/owner/CleanGuildCommand.java @@ -0,0 +1,79 @@ +package me.savvy.rixa.commands.owner; + +import me.savvy.rixa.Rixa; +import me.savvy.rixa.commands.handlers.Command; +import me.savvy.rixa.commands.handlers.CommandExec; +import me.savvy.rixa.commands.handlers.CommandType; +import me.savvy.rixa.data.database.sql.DatabaseManager; +import me.savvy.rixa.enums.Result; +import me.savvy.rixa.utils.MessageBuilder; +import net.dv8tion.jda.core.entities.ChannelType; +import net.dv8tion.jda.core.entities.Member; +import net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent; + +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +public class CleanGuildCommand implements CommandExec { + + @Override + @Command(mainCommand = "cleanguilds", + description = "Clean Inactive Guilds From Rixa's Database!", + channelType = ChannelType.TEXT, + showInHelp = false, + type = CommandType.BOT_OWNER) + public void execute(GuildMessageReceivedEvent event) { + if (!event.getAuthor().getId().equalsIgnoreCase("202944101333729280")) { + new MessageBuilder(event.getMember().getAsMention() + ", you do not have permission for this command.") + .setColor(event.getMember().getColor()).queue(event.getChannel()); + return; + } + new MessageBuilder("Cleaning...").setColor(event.getMember().getColor()).queue(event.getChannel()); + int cleaned = 0; + DatabaseManager dbManager = Rixa.getDbManager(); + ResultSet rs = dbManager.executeQuery("SELECT * FROM `core`;"); + try { + while (rs.next()) { + if (event.getJDA().getGuildById(rs.getString("guild_id")) == null) { + cleaned++; + String id = rs.getString("guild_id"); + //`core`, `levels`, `settings`, `music`, `modules`, `permissions` + if (checkExists("core", id)) + dbManager.executeUpdate("DELETE FROM `core` WHERE `guild_id` = " + id); + + if (checkExists("levels", id)) + dbManager.executeUpdate("DELETE FROM `levels` WHERE `guild_id` = " + id); + + if (checkExists("settings", id)) + dbManager.executeUpdate("DELETE FROM `settings` WHERE `guild_id` = " + id); + + if (checkExists("music", id)) + dbManager.executeUpdate("DELETE FROM `music` WHERE `guild_id` = " + id); + + if (checkExists("modules", id)) + dbManager.executeUpdate("DELETE FROM `modules` WHERE `guild_id` = " + id); + + if (checkExists("permissions", id)) + dbManager.executeUpdate("DELETE FROM `permissions` WHERE `guild_id` = " + id); + } + } + rs.getStatement().close(); + rs.close(); + new MessageBuilder(event.getAuthor().getAsMention() + ", successfully cleaned " + cleaned + " guilds from the database").setColor(event.getMember().getColor()).queue(event.getChannel()); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + private boolean checkExists(String table, String guildId) { + /*Result r = Result.ERROR; + try { + r = Rixa.getDbManager().checkExists("SELECT `" + guildId + "` FROM `" + table + "` WHERE `guild_id` = '" + guildId + "';"); + } catch (SQLException e) { + e.printStackTrace(); + } + return r == Result.TRUE;*/ + return true; + } +} diff --git a/src/main/java/me/savvy/rixa/data/database/Data.java b/src/main/java/me/savvy/rixa/data/database/Data.java new file mode 100644 index 0000000..2d3c113 --- /dev/null +++ b/src/main/java/me/savvy/rixa/data/database/Data.java @@ -0,0 +1,6 @@ +package me.savvy.rixa.data.database; + +public interface Data { + + +} diff --git a/src/main/java/me/savvy/rixa/data/database/sql/SQLBuilder.java b/src/main/java/me/savvy/rixa/data/database/sql/SQLBuilder.java new file mode 100644 index 0000000..6ccc762 --- /dev/null +++ b/src/main/java/me/savvy/rixa/data/database/sql/SQLBuilder.java @@ -0,0 +1,98 @@ +package me.savvy.rixa.data.database.sql; + +import me.savvy.rixa.Rixa; + +import java.sql.*; + +public class SQLBuilder { + + private String userName, password, port, databaseName, hostName; + private Connection connection; + + public SQLBuilder(String userName, String password, String port, String databaseName, String hostName) { + this.userName = userName; + this.password = password; + this.port = port; + this.databaseName = databaseName; + this.hostName = hostName; + } + + public PreparedStatement getPreparedStatement(String query) throws SQLException { + return getConnection().prepareStatement(query); + } + + public SQLBuilder executeUpdate(PreparedStatement preparedStatement) throws SQLException { + preparedStatement.executeUpdate(); + return this; + } + + public SQLBuilder executeUpdate(String query) throws SQLException { + PreparedStatement stmt = getConnection().prepareStatement(query); + stmt.executeUpdate(); + stmt.close(); + return this; + } + + public ResultSet executeQuery(PreparedStatement preparedStatement) throws SQLException { + return preparedStatement.executeQuery(); + } + + + public Object getObject(PreparedStatement preparedStatement, String objectToGet) throws SQLException { + Object result = null; + ResultSet results = preparedStatement.executeQuery(); + if (results.next()) { + result = results.getObject(objectToGet); + } + results.close(); + return result; + } + + public String getString(PreparedStatement preparedStatement, String stringToGet) throws SQLException { + return String.valueOf(getObject(preparedStatement, stringToGet)); + } + + public Integer getInteger(PreparedStatement preparedStatement, String intToGet) throws SQLException { + return (int) getObject(preparedStatement, intToGet); + } + + public boolean getBoolean(PreparedStatement preparedStatement, String booleanToGet) throws SQLException { + return (boolean) getObject(preparedStatement, booleanToGet); + } + + + public Connection getConnection() { + if (connection == null) { + connect(); + } + return connection; + } + + private SQLBuilder connect() { + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (ClassNotFoundException e) { + Rixa.getInstance().getLogger().severe("Could not find JDBC Driver"); + e.printStackTrace(); + return this; + } + try { + connection = DriverManager.getConnection + (String.format("jdbc:mysql://%s:%s/%s", this.hostName, this.port, this.databaseName), + this.userName, this.password); + } catch (SQLException ex) { + ex.printStackTrace(); + } + return this; + } + + public void closeConnection() { + try { + if ((getConnection() != null) && (!getConnection().isClosed())) { + getConnection().close(); + } + } catch (SQLException e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/src/main/java/me/savvy/rixa/data/database/sql/other/DatabaseTables.java b/src/main/java/me/savvy/rixa/data/database/sql/other/DatabaseTables.java new file mode 100644 index 0000000..09e8595 --- /dev/null +++ b/src/main/java/me/savvy/rixa/data/database/sql/other/DatabaseTables.java @@ -0,0 +1,57 @@ +package me.savvy.rixa.data.database.sql.other; + +public enum DatabaseTables { + + CORE("CREATE TABLE `core` ( `id` int(11) NOT NULL AUTO_INCREMENT, `guild_id` varchar(255) NOT NULL, `guild_name` varchar(255) NOT NULL," + + " `description` text, `enlisted` tinyint(1) NOT NULL DEFAULT '0', `icon` varchar(255) DEFAULT NULL, `link` varchar(255) DEFAULT NULL," + + " `keywords` text, `creation_date` varchar(255) NOT NULL DEFAULT 'N/A', `guild_region` varchar(255) NOT NULL DEFAULT 'N/A'," + + " `guild_owner` varchar(255) NOT NULL DEFAULT 'N/A'\n" + + "), PRIMARY KEY(`id`);"), + + LEVELS("CREATE TABLE `levels` ( `id` int(11) NOT NULL AUTO_INCREMENT, `guild_id` varchar(255) NOT NULL, `user_id` varchar(255) NOT NULL," + + " `experience` int(90) NOT NULL\n" + + "), PRIMARY KEY(`id`);"), + + MODULES("CREATE TABLE `modules` ( `guild_id` varchar(255) DEFAULT NULL, `levels` tinyint(1) NOT NULL DEFAULT '1'\n" + + ")"), + + MUSIC("CREATE TABLE `music` ( `guild_id` varchar(255) NOT NULL, `music_role` varchar(255) NOT NULL DEFAULT 'default_value'," + + " `skip_amount` int(5) NOT NULL DEFAULT '0', `max_playlist_amount` int(5) NOT NULL DEFAULT '100', `enabled` tinyint(1) NOT NULL DEFAULT '0'\n" + + "), PRIMARY KEY(`id`), UNIQUE KEY (`guild_id`);"), + + PERMISSIONS("CREATE TABLE `permissions` ( `role_id` varchar(255) NOT NULL, `guild_id` varchar(255) NOT NULL, `MUTE` tinyint(1) NOT NULL DEFAULT '0'," + + " `ADD_ROLE` tinyint(1) NOT NULL DEFAULT '0', `REMOVE_ROLE` tinyint(1) NOT NULL DEFAULT '0', `CLEAR_CHAT` tinyint(1) NOT NULL DEFAULT '0'," + + " `ACCESS_CONFIG` tinyint(1) NOT NULL DEFAULT '0', `PM_MESSAGE` tinyint(1) NOT NULL DEFAULT '0', `KICK_MEMBER` tinyint(1) NOT NULL DEFAULT '0'," + + " `BAN_MEMBER` tinyint(1) NOT NULL DEFAULT '0', `TOGGLE_RAIDMODE` tinyint(4) NOT NULL DEFAULT '0'\n" + + ")"), + + POLLS("CREATE TABLE `polls` ( `id` int(9) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `description` text," + + " `option_1` varchar(255) DEFAULT NULL, `option_2` varchar(255) DEFAULT NULL, `option_3` varchar(255) DEFAULT NULL," + + " `option_4` varchar(255) DEFAULT NULL, `option_5` varchar(255) DEFAULT NULL, `option_6` varchar(255) DEFAULT NULL," + + " `option_7` varchar(255) DEFAULT NULL, `option_8` varchar(255) DEFAULT NULL, `option_9` varchar(255) DEFAULT NULL," + + " `option_10` varchar(255) DEFAULT NULL\n" + + "), PRIMARY KEY(`id`);"), + + ROLE_REWARDS("CREATE TABLE `role_rewards` ( `guild_id` varchar(255) NOT NULL, `level` int(9) NOT NULL, `role_id` varchar(255) NOT NULL\n" + + "), PRIMARY KEY(`guild_id`);"), + + SETTINGS("CREATE TABLE `settings` ( `guild_id` varchar(255) NOT NULL, `log_enabled` tinyint(1) NOT NULL, `log_channel` varchar(255) NOT NULL," + + " `joinMessage` text NOT NULL, `quitMessage` text NOT NULL, `greetings` varchar(255) NOT NULL, `farewell` varchar(255) NOT NULL," + + " `prefix` varchar(5) NOT NULL, `joinPm` text NOT NULL, `joinVerification` tinyint(1) NOT NULL, `defaultRole` varchar(255) NOT NULL, `muteRole` varchar(255) NOT NULL\n" + + ")"), + + TWITTER("CREATE TABLE `twitter` (`guild_id` varchar(255) NOT NULL, `consumer_key` varchar(255) NOT NULL, `consumer_secret` varchar(255) NOT NULL, " + + "`access_key` varchar(255) NOT NULL, `access_secret` varchar(255) NOT NULL, `tweet_channel` varchar(255) NOT NULL, `updates_channel` varchar(255) NOT NULL)"), + + USER("CREATE TABLE `user` (`user_id` varchar(255) NOT NULL, `user_name` varchar(255) NOT NULL, `avatar_hash` varchar(255) DEFAULT 'N/A'), UNIQUE KEY(`id`);"); // USER is mostly used for http://rixa.io. + + private String query; + + DatabaseTables(String s) { + query = s; + } + + public String getQuery() { + return query; + } +} diff --git a/src/main/java/me/savvy/rixa/events/GuildEvent.java b/src/main/java/me/savvy/rixa/events/GuildEvent.java new file mode 100644 index 0000000..e6d8b96 --- /dev/null +++ b/src/main/java/me/savvy/rixa/events/GuildEvent.java @@ -0,0 +1,62 @@ +package me.savvy.rixa.events; + +import me.savvy.rixa.Rixa; +import net.dv8tion.jda.core.events.guild.update.GuildUpdateIconEvent; +import net.dv8tion.jda.core.events.guild.update.GuildUpdateNameEvent; +import net.dv8tion.jda.core.events.guild.update.GuildUpdateOwnerEvent; +import net.dv8tion.jda.core.events.guild.update.GuildUpdateRegionEvent; +import net.dv8tion.jda.core.hooks.SubscribeEvent; + +import java.sql.PreparedStatement; +import java.sql.SQLException; + +public class GuildEvent { + + @SubscribeEvent + public void onNameUpdate(GuildUpdateNameEvent event) { + try { + PreparedStatement ps = Rixa.getDbManager().getConnection().prepareStatement("UPDATE `core` SET `guild_name` = ? WHERE `core`.`guild_id` = ?;"); + ps.setString(1, event.getGuild().getName()); + ps.setString(2, event.getGuild().getId()); + Rixa.getDbManager().executeUpdate(ps); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + @SubscribeEvent + public void onIconUpdate(GuildUpdateIconEvent event) { + try { + PreparedStatement ps = Rixa.getDbManager().getConnection().prepareStatement("UPDATE `core` SET `icon` = ? WHERE `core`.`guild_id` = ?;"); + ps.setString(1, event.getGuild().getIconId()); + ps.setString(2, event.getGuild().getId()); + Rixa.getDbManager().executeUpdate(ps); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + @SubscribeEvent + public void onOwnerUpdate(GuildUpdateOwnerEvent event) { + try { + PreparedStatement ps = Rixa.getDbManager().getConnection().prepareStatement("UPDATE `core` SET `guild_owner` = ? WHERE `core`.`guild_id` = ?;"); + ps.setString(1, event.getGuild().getOwner().getUser().getName()); + ps.setString(2, event.getGuild().getId()); + Rixa.getDbManager().executeUpdate(ps); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + @SubscribeEvent + public void onRegionUpdate(GuildUpdateRegionEvent event) { + try { + PreparedStatement ps = Rixa.getDbManager().getConnection().prepareStatement("UPDATE `core` SET `guild_region` = ? WHERE `core`.`guild_id` = ?;"); + ps.setString(1, event.getGuild().getRegion().getName()); + ps.setString(2, event.getGuild().getId()); + Rixa.getDbManager().executeUpdate(ps); + } catch (SQLException e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/me/savvy/rixa/modules/economy/Economy.java b/src/main/java/me/savvy/rixa/modules/economy/Economy.java new file mode 100644 index 0000000..ede68c6 --- /dev/null +++ b/src/main/java/me/savvy/rixa/modules/economy/Economy.java @@ -0,0 +1,4 @@ +package me.savvy.rixa.modules.economy; + +public class Economy { +} diff --git a/src/main/java/me/savvy/rixa/modules/levels/LevelsModule.java b/src/main/java/me/savvy/rixa/modules/levels/LevelsModule.java index 484182f..534e247 100644 --- a/src/main/java/me/savvy/rixa/modules/levels/LevelsModule.java +++ b/src/main/java/me/savvy/rixa/modules/levels/LevelsModule.java @@ -84,8 +84,7 @@ public class LevelsModule implements RixaModule { .append("`") .append(i + start + 1/*(page > 1) ? ((i + 1) * 10) : i + 1*/) .append(")` ") - .append( - user.getUser().getName()) + .append(user.getUser().getName()) .append("#").append(user.getUser().getDiscriminator()) .append(" (Lvl. ").append(user.getLevel()).append(")") .append("\n"); @@ -132,8 +131,8 @@ public class LevelsModule implements RixaModule { insert(); } String query = "SELECT `levels` FROM `modules` WHERE `guild_id` = ?;"; - PreparedStatement ps = null; - ResultSet rs = null; + PreparedStatement ps; + ResultSet rs; try { ps = Rixa.getDatabase().getConnection().get().prepareStatement(query); ps.setString(1, getRixaGuild().getGuild().getId());