Allowed multiple users to be added/removed to/from multiple roles, fixed outstanding bugs/errors, moved pandorabots api to module, made pandorabots api per server rather than global, added shutdown command which saves all data and safely ends JDA process
This commit is contained in:
		@@ -38,4 +38,4 @@ compileJava.options.encoding = 'UTF-8'
 | 
			
		||||
compileJava.options.fork = true
 | 
			
		||||
 | 
			
		||||
// Change this if you are getting errors building
 | 
			
		||||
compileJava.options.forkOptions.executable = 'C:\\Program Files\\Java\\jdk1.8.0_131\\bin\\javac.exe'
 | 
			
		||||
compileJava.options.forkOptions.executable = 'C:\\Program Files\\Java\\jdk1.8.0_144\\bin\\javac.exe'
 | 
			
		||||
@@ -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.commands.owner.OwnerCommand;
 | 
			
		||||
import me.savvy.rixa.data.database.sql.other.DatabaseTables;
 | 
			
		||||
import me.savvy.rixa.data.filemanager.ConfigManager;
 | 
			
		||||
import me.savvy.rixa.data.filemanager.LanguageManager;
 | 
			
		||||
@@ -27,6 +28,7 @@ import me.savvy.rixa.events.MemberEvent;
 | 
			
		||||
import me.savvy.rixa.events.MessageEvent;
 | 
			
		||||
import me.savvy.rixa.events.Shutdown;
 | 
			
		||||
import me.savvy.rixa.events.VoiceChannel;
 | 
			
		||||
import me.savvy.rixa.guild.RixaGuild;
 | 
			
		||||
import me.savvy.rixa.guild.management.Guilds;
 | 
			
		||||
import me.savvy.rixa.modules.reactions.handlers.React;
 | 
			
		||||
import me.savvy.rixa.modules.reactions.handlers.ReactionManager;
 | 
			
		||||
@@ -75,10 +77,6 @@ public class Rixa {
 | 
			
		||||
    @Setter
 | 
			
		||||
    private ScheduledExecutorService executorService;
 | 
			
		||||
 | 
			
		||||
    private static ChatterBotFactory factory;
 | 
			
		||||
    private static ChatterBotSession chatBotSession;
 | 
			
		||||
    private static ChatterBot chatBot;
 | 
			
		||||
 | 
			
		||||
    // String search = event.getMessage().getContent().substring(event.getMessage().getContent().indexOf(" ") + 1);
 | 
			
		||||
    public static void main(String[] args) {
 | 
			
		||||
        instance = new Rixa();
 | 
			
		||||
@@ -142,15 +140,8 @@ public class Rixa {
 | 
			
		||||
                new BatchMoveCommand(), new MuteCommand(), new MusicCommand(),
 | 
			
		||||
                new ConfigCommand(), new UrbanDictionaryCommand(), new YoutubeCommand(),
 | 
			
		||||
                new AddRoleCommand(), new RemoveRoleCommand(), new LevelsCommand(),
 | 
			
		||||
                new LeaderboardCommand(), new RaidModeCommand());
 | 
			
		||||
                new LeaderboardCommand(), new RaidModeCommand(), new OwnerCommand());
 | 
			
		||||
        register(new HelpReaction(), new ConfigReaction(), new LeaderboardReaction());
 | 
			
		||||
        try {
 | 
			
		||||
            factory = new ChatterBotFactory();
 | 
			
		||||
            chatBot = factory.create(ChatterBotType.PANDORABOTS, "b0dafd24ee35a477");
 | 
			
		||||
            chatBotSession = chatBot.createSession();
 | 
			
		||||
        } catch (Exception e) {
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static void register(CommandExec... commandExecs) {
 | 
			
		||||
@@ -165,10 +156,6 @@ public class Rixa {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static ChatterBotSession getChatBotSession() {
 | 
			
		||||
        return chatBotSession;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Logger getLogger() {
 | 
			
		||||
        return Logger.getLogger("Rixa");
 | 
			
		||||
    }
 | 
			
		||||
@@ -179,7 +166,7 @@ public class Rixa {
 | 
			
		||||
 | 
			
		||||
    public void close() {
 | 
			
		||||
        try {
 | 
			
		||||
            Guilds.getGuilds().values().parallelStream().forEach((rixaGuild) -> rixaGuild.save());
 | 
			
		||||
            Guilds.getGuilds().values().parallelStream().forEach(RixaGuild::save);
 | 
			
		||||
            Thread.sleep(1200);
 | 
			
		||||
            database.close();
 | 
			
		||||
            Thread.sleep(200);
 | 
			
		||||
 
 | 
			
		||||
@@ -40,9 +40,9 @@ public class AddRoleCommand implements CommandExec {
 | 
			
		||||
            }
 | 
			
		||||
            try {
 | 
			
		||||
                List<Role> roles = event.getMessage().getMentionedRoles();
 | 
			
		||||
                User user = event.getMessage().getMentionedUsers().get(0);
 | 
			
		||||
                event.getGuild().getController().addRolesToMember(event.getGuild().getMember(user), roles).queue();
 | 
			
		||||
                new MessageBuilder("Successfully given " + user.getAsMention() + " `" + roles.size() + "` role(s)").setColor(event.getMember().getColor()).queue(event.getChannel());
 | 
			
		||||
                int users = event.getMessage().getMentionedUsers().size();
 | 
			
		||||
                event.getMessage().getMentionedUsers().forEach(user -> event.getGuild().getController().addRolesToMember(event.getGuild().getMember(user), roles).queue());
 | 
			
		||||
                new MessageBuilder("Successfully given " + users + " `" + roles.size() + "` role(s)").setColor(event.getMember().getColor()).queue(event.getChannel());
 | 
			
		||||
            } catch (PermissionException ex) {
 | 
			
		||||
                new MessageBuilder(event.getMember().getAsMention() + ", sorry I do not have permission for this!").setColor(event.getMember().getColor()).queue(event.getChannel());
 | 
			
		||||
            }
 | 
			
		||||
 
 | 
			
		||||
@@ -40,9 +40,9 @@ public class RemoveRoleCommand implements CommandExec {
 | 
			
		||||
            }
 | 
			
		||||
            try {
 | 
			
		||||
                List<Role> roles = event.getMessage().getMentionedRoles();
 | 
			
		||||
                User user = event.getMessage().getMentionedUsers().get(0);
 | 
			
		||||
                event.getGuild().getController().removeRolesFromMember(event.getGuild().getMember(user), roles).queue();
 | 
			
		||||
                new MessageBuilder("Successfully removed `" + roles.size() + "` role(s) from " + user.getAsMention() + "!").setColor(event.getMember().getColor()).queue(event.getChannel());
 | 
			
		||||
                int users = event.getMessage().getMentionedUsers().size();
 | 
			
		||||
                event.getMessage().getMentionedUsers().forEach(user -> event.getGuild().getController().removeRolesFromMember(event.getGuild().getMember(user), roles).queue());
 | 
			
		||||
                new MessageBuilder("Successfully removed `" + roles.size() + "` role(s) from " + users + " user(s)!").setColor(event.getMember().getColor()).queue(event.getChannel());
 | 
			
		||||
            } catch (PermissionException ex) {
 | 
			
		||||
                new MessageBuilder(event.getMember().getAsMention() + ", sorry I do not have permission for this!").setColor(event.getMember().getColor()).queue(event.getChannel());
 | 
			
		||||
            }
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										29
									
								
								src/main/java/me/savvy/rixa/commands/owner/OwnerCommand.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								src/main/java/me/savvy/rixa/commands/owner/OwnerCommand.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
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.utils.MessageBuilder;
 | 
			
		||||
import net.dv8tion.jda.core.entities.ChannelType;
 | 
			
		||||
import net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent;
 | 
			
		||||
 | 
			
		||||
public class OwnerCommand implements CommandExec {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    @Command(mainCommand = "shutdown",
 | 
			
		||||
            description = "Shutdown Rixa instance, save all data.",
 | 
			
		||||
            channelType = ChannelType.TEXT,
 | 
			
		||||
            showInHelp = false,
 | 
			
		||||
            type = CommandType.BOT_OWNER)
 | 
			
		||||
    public void execute(GuildMessageReceivedEvent event) {
 | 
			
		||||
        if (!Rixa.getConfig().getJsonObject().getJSONArray("botAdmins").toList().contains(event.getMember().getUser().getId())) {
 | 
			
		||||
            new MessageBuilder(event.getMember().getAsMention() + ", you do not have permission for this command.")
 | 
			
		||||
                    .setColor(event.getMember().getColor()).queue(event.getChannel());
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        Rixa.getInstance().close();
 | 
			
		||||
        Rixa.getInstance().exit();
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -6,6 +6,7 @@ import me.savvy.rixa.commands.handlers.CommandHandler;
 | 
			
		||||
import me.savvy.rixa.commands.handlers.CommandRegistrar;
 | 
			
		||||
import me.savvy.rixa.guild.RixaGuild;
 | 
			
		||||
import me.savvy.rixa.guild.management.Guilds;
 | 
			
		||||
import me.savvy.rixa.modules.conversations.ConversationModule;
 | 
			
		||||
import me.savvy.rixa.modules.levels.LevelsModule;
 | 
			
		||||
import me.savvy.rixa.modules.reactions.handlers.ReactRegistrar;
 | 
			
		||||
import me.savvy.rixa.modules.reactions.handlers.ReactionManager;
 | 
			
		||||
@@ -43,13 +44,15 @@ public class MessageEvent {
 | 
			
		||||
        if (event.getGuild() == null) return;
 | 
			
		||||
        if (event.getAuthor().isBot()) return;
 | 
			
		||||
 | 
			
		||||
        RixaGuild rixaGuild = Guilds.getGuild(event.getGuild());
 | 
			
		||||
 | 
			
		||||
        if (event.getMessage().getContent().startsWith
 | 
			
		||||
                ("@" + event.getGuild().getSelfMember().getEffectiveName())) {
 | 
			
		||||
            try {
 | 
			
		||||
                String s = event.getMessage().getContent().replace
 | 
			
		||||
                        ("@" + event.getGuild().getSelfMember().getEffectiveName() + " ", "");
 | 
			
		||||
                if (s.isEmpty()) return;
 | 
			
		||||
                s = Rixa.getChatBotSession().think(s);
 | 
			
		||||
                s = ((ConversationModule) rixaGuild.getModule("Conversations")).getChatBotSession().think(s);
 | 
			
		||||
                if (s.isEmpty()) return;
 | 
			
		||||
                event.getChannel().sendMessage(s).queue();
 | 
			
		||||
                return;
 | 
			
		||||
@@ -57,15 +60,12 @@ public class MessageEvent {
 | 
			
		||||
                ex.printStackTrace();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        RixaGuild rixaGuild = Guilds.getGuild(event.getGuild());
 | 
			
		||||
        String prefix = rixaGuild
 | 
			
		||||
                .getGuildSettings()
 | 
			
		||||
                .getPrefix();
 | 
			
		||||
        //checkMessage(event.getMessage());
 | 
			
		||||
        if (!event.getMessage().getContent().startsWith(prefix)) {
 | 
			
		||||
            if (!(((LevelsModule) rixaGuild.getModule("Levels")).isEnabled())) {
 | 
			
		||||
            if (!(rixaGuild.getModule("Levels").isEnabled())) {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            /*if(!event.getAuthor().getId().equalsIgnoreCase("202944101333729280") &&
 | 
			
		||||
 
 | 
			
		||||
@@ -11,6 +11,7 @@ import me.savvy.rixa.enums.Result;
 | 
			
		||||
import me.savvy.rixa.guild.management.GuildSettings;
 | 
			
		||||
import me.savvy.rixa.guild.management.Guilds;
 | 
			
		||||
import me.savvy.rixa.modules.RixaModule;
 | 
			
		||||
import me.savvy.rixa.modules.conversations.ConversationModule;
 | 
			
		||||
import me.savvy.rixa.modules.levels.LevelsModule;
 | 
			
		||||
import me.savvy.rixa.modules.music.MusicModule;
 | 
			
		||||
import net.dv8tion.jda.core.entities.Guild;
 | 
			
		||||
@@ -45,8 +46,9 @@ public class RixaGuild {
 | 
			
		||||
        this.guild = guild;
 | 
			
		||||
        this.modules = new HashMap<>();
 | 
			
		||||
        this.db = Rixa.getDatabase();
 | 
			
		||||
        modules.put("Music", new MusicModule());
 | 
			
		||||
        modules.put("Levels", new LevelsModule());
 | 
			
		||||
        modules.put("Music", new MusicModule(this));
 | 
			
		||||
        modules.put("Levels", new LevelsModule(this));
 | 
			
		||||
        modules.put("Conversations", new ConversationModule(this));
 | 
			
		||||
        load();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -60,6 +60,7 @@ public class GuildSettings {
 | 
			
		||||
        if (!optional.isPresent()) return;
 | 
			
		||||
        if (!(optional.get() instanceof ResultSet)) return;
 | 
			
		||||
        ResultSet set = (ResultSet) optional.get();
 | 
			
		||||
        if (set.next()) {
 | 
			
		||||
        this.prefix = (set.getString("prefix"));
 | 
			
		||||
        this.defaultRole = (set.getString("defaultRole"));
 | 
			
		||||
        this.joinMessage = (set.getString("joinMessage"));
 | 
			
		||||
@@ -73,14 +74,17 @@ public class GuildSettings {
 | 
			
		||||
        if (!set.getString("farewell").equalsIgnoreCase("default_value")) {
 | 
			
		||||
            quitMessageChannel = guild.getTextChannelById(set.getString("farewell"));
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
        query = new Query("SELECT * FROM `core` WHERE `guild_id` = ?");
 | 
			
		||||
        query.setString(guild.getId());
 | 
			
		||||
        optional = Rixa.getDatabase().send(query);
 | 
			
		||||
        if (!optional.isPresent()) return;
 | 
			
		||||
        if (!(optional.get() instanceof ResultSet)) return;
 | 
			
		||||
        set = (ResultSet) optional.get();
 | 
			
		||||
        this.description = (set.getString("description"));
 | 
			
		||||
        this.enlisted = (set.getBoolean("enlisted"));
 | 
			
		||||
        if (set.next()) {
 | 
			
		||||
            this.description = (set.getString("description"));
 | 
			
		||||
            this.enlisted = (set.getBoolean("enlisted"));
 | 
			
		||||
        }
 | 
			
		||||
        this.raidMode = false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,5 @@
 | 
			
		||||
package me.savvy.rixa.modules;
 | 
			
		||||
 | 
			
		||||
import me.savvy.rixa.guild.RixaGuild;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Created by Timber on 5/23/2017.
 | 
			
		||||
 */
 | 
			
		||||
@@ -13,7 +11,7 @@ public interface RixaModule {
 | 
			
		||||
 | 
			
		||||
    boolean isEnabled();
 | 
			
		||||
 | 
			
		||||
    void load(RixaGuild guild);
 | 
			
		||||
    void load();
 | 
			
		||||
 | 
			
		||||
    void save();
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,50 @@
 | 
			
		||||
package me.savvy.rixa.modules.conversations;
 | 
			
		||||
 | 
			
		||||
import com.google.code.chatterbotapi.*;
 | 
			
		||||
import me.savvy.rixa.guild.RixaGuild;
 | 
			
		||||
import me.savvy.rixa.modules.RixaModule;
 | 
			
		||||
 | 
			
		||||
public class ConversationModule implements RixaModule {
 | 
			
		||||
 | 
			
		||||
    private final RixaGuild rixaGuild;
 | 
			
		||||
    private ChatterBotFactory factory;
 | 
			
		||||
    private ChatterBotSession chatBotSession;
 | 
			
		||||
    private ChatterBot chatBot;
 | 
			
		||||
 | 
			
		||||
    public ConversationModule(RixaGuild rixaGuild) {
 | 
			
		||||
        this.rixaGuild = rixaGuild;
 | 
			
		||||
        load();
 | 
			
		||||
    }
 | 
			
		||||
    @Override
 | 
			
		||||
    public String getName() {
 | 
			
		||||
        return "ConversationModule";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public String getDescription() {
 | 
			
		||||
        return "Conversation API - PandoraBots";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean isEnabled() {
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void load() {
 | 
			
		||||
        try {
 | 
			
		||||
            factory = new ChatterBotFactory();
 | 
			
		||||
            chatBot = factory.create(ChatterBotType.PANDORABOTS, "b0dafd24ee35a477");
 | 
			
		||||
            chatBotSession = chatBot.createSession();
 | 
			
		||||
        } catch (Exception e) {
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void save() {}
 | 
			
		||||
 | 
			
		||||
    public ChatterBotSession getChatBotSession() {
 | 
			
		||||
        return chatBotSession;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -10,6 +10,9 @@ import java.util.Map;
 | 
			
		||||
 | 
			
		||||
public class Economy implements RixaModule {
 | 
			
		||||
 | 
			
		||||
    public Economy(RixaGuild rixaGuild) {
 | 
			
		||||
        this.rixaGuild = rixaGuild;
 | 
			
		||||
    }
 | 
			
		||||
    @Getter
 | 
			
		||||
    private RixaGuild rixaGuild;
 | 
			
		||||
    @Getter
 | 
			
		||||
@@ -33,9 +36,7 @@ public class Economy implements RixaModule {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void load(RixaGuild rixaGuild) {
 | 
			
		||||
        this.rixaGuild = rixaGuild;
 | 
			
		||||
    }
 | 
			
		||||
    public void load() { }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void save() {
 | 
			
		||||
@@ -44,6 +45,6 @@ public class Economy implements RixaModule {
 | 
			
		||||
 | 
			
		||||
    public void setEnabled(boolean enabled) {
 | 
			
		||||
        this.enabled = enabled;
 | 
			
		||||
        DatabaseUtils.update("modules", "levels", "guild_id", enabled, rixaGuild.getGuild().getId());
 | 
			
		||||
        DatabaseUtils.update("modules", "x", "guild_id", enabled, rixaGuild.getGuild().getId());
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -13,6 +13,7 @@ import me.savvy.rixa.utils.DatabaseUtils;
 | 
			
		||||
import me.savvy.rixa.utils.MessageBuilder;
 | 
			
		||||
import net.dv8tion.jda.core.entities.Member;
 | 
			
		||||
 | 
			
		||||
import java.sql.PreparedStatement;
 | 
			
		||||
import java.sql.ResultSet;
 | 
			
		||||
import java.sql.SQLException;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
@@ -30,12 +31,42 @@ public class LevelsModule implements RixaModule {
 | 
			
		||||
    @Setter
 | 
			
		||||
    private boolean enabled;
 | 
			
		||||
 | 
			
		||||
    public LevelsModule(RixaGuild rixaGuild) {
 | 
			
		||||
        this.rixaGuild = rixaGuild;
 | 
			
		||||
        load();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void load() {
 | 
			
		||||
        try {
 | 
			
		||||
            Query query = new Query("SELECT * FROM `modules` WHERE `guild_id`=?;");
 | 
			
		||||
            query.setString(rixaGuild.getGuild().getId());
 | 
			
		||||
            Optional<?> o = Rixa.getDatabase().send(query);
 | 
			
		||||
            if (!o.isPresent()) return;
 | 
			
		||||
            else if (!(o.get() instanceof ResultSet)) return;
 | 
			
		||||
            ResultSet set = (ResultSet) o.get();
 | 
			
		||||
            if (set.next()) {
 | 
			
		||||
                setEnabled(set.getBoolean("levels"));
 | 
			
		||||
            } else {
 | 
			
		||||
                Update update = new Update("INSERT INTO `modules` (`guild_id`) VALUES (?);");
 | 
			
		||||
                update.setString(rixaGuild.getGuild().getId());
 | 
			
		||||
                Rixa.getDatabase().send(update);
 | 
			
		||||
                setEnabled(true);
 | 
			
		||||
            }
 | 
			
		||||
            set.close();
 | 
			
		||||
        } catch (SQLException e) {
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private List<UserData> leaderboard(Member member) {
 | 
			
		||||
        Database db = Rixa.getDatabase();
 | 
			
		||||
        ResultSet rs = null;
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
            rs = db.getConnection().get().prepareStatement(String.format("SELECT * FROM `levels` WHERE `guild_id` = '%s' ORDER BY `experience` DESC;", member.getGuild().getId())).executeQuery();
 | 
			
		||||
            PreparedStatement ps = db.getConnection().get().prepareStatement("SELECT * FROM `levels` WHERE `guild_id` = ? ORDER BY `experience` DESC;");
 | 
			
		||||
            ps.setString(1, member.getGuild().getId());
 | 
			
		||||
            rs = ps.executeQuery();
 | 
			
		||||
        } catch (SQLException e) {
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
        }
 | 
			
		||||
@@ -98,30 +129,6 @@ public class LevelsModule implements RixaModule {
 | 
			
		||||
        return "Rixa levels module.";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void load(RixaGuild rixaGuild) {
 | 
			
		||||
        try {
 | 
			
		||||
            this.rixaGuild = rixaGuild;
 | 
			
		||||
            Query query = new Query("SELECT * FROM `modules` WHERE `guild_id`=?;");
 | 
			
		||||
            query.setString(rixaGuild.getGuild().getId());
 | 
			
		||||
            Optional<?> o = Rixa.getDatabase().send(query);
 | 
			
		||||
            if (!o.isPresent()) return;
 | 
			
		||||
            else if (!(o.get() instanceof ResultSet)) return;
 | 
			
		||||
            ResultSet set = (ResultSet) o.get();
 | 
			
		||||
            if (set.next()) {
 | 
			
		||||
                setEnabled(set.getBoolean("levels"));
 | 
			
		||||
            } else {
 | 
			
		||||
                Update update = new Update("INSERT INTO `modules` (`guild_id`) VALUES (?);");
 | 
			
		||||
                update.setString(rixaGuild.getGuild().getId());
 | 
			
		||||
                Rixa.getDatabase().send(update);
 | 
			
		||||
                setEnabled(true);
 | 
			
		||||
            }
 | 
			
		||||
            set.close();
 | 
			
		||||
        } catch (SQLException e) {
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void save() {
 | 
			
		||||
        DatabaseUtils.update("modules", "levels", "guild_id", enabled, rixaGuild.getGuild().getId());
 | 
			
		||||
 
 | 
			
		||||
@@ -20,6 +20,9 @@ import java.util.Optional;
 | 
			
		||||
 */
 | 
			
		||||
public class MusicModule implements RixaModule {
 | 
			
		||||
 | 
			
		||||
    public MusicModule(RixaGuild rixaGuild) {
 | 
			
		||||
        this.guild = rixaGuild.getGuild();
 | 
			
		||||
    }
 | 
			
		||||
    private Database db;
 | 
			
		||||
    @Getter
 | 
			
		||||
    @Setter
 | 
			
		||||
@@ -31,9 +34,8 @@ public class MusicModule implements RixaModule {
 | 
			
		||||
    private Guild guild;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void load(RixaGuild rixaGuild) {
 | 
			
		||||
    public void load() {
 | 
			
		||||
        try {
 | 
			
		||||
            this.guild = rixaGuild.getGuild();
 | 
			
		||||
            this.enabled = false;
 | 
			
		||||
            this.musicRole = "default_value";
 | 
			
		||||
            db = Rixa.getDatabase();
 | 
			
		||||
 
 | 
			
		||||
@@ -62,7 +62,7 @@ public class TwitterModule implements RixaModule {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void load(RixaGuild guild) { }
 | 
			
		||||
    public void load() { }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void save() { }
 | 
			
		||||
 
 | 
			
		||||
@@ -13,6 +13,7 @@ import java.util.Optional;
 | 
			
		||||
public class DatabaseUtils {
 | 
			
		||||
 | 
			
		||||
    public static Result update(String table, String setting, String key, Object placeholder, Object placeholder2) {
 | 
			
		||||
 | 
			
		||||
        Update update = new Update("UPDATE `" + table + "` SET `" + setting + "` = ? WHERE `" + key + "` = ?;");
 | 
			
		||||
        update.setObject(placeholder);
 | 
			
		||||
        update.setObject(placeholder2);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user