For sync purposes
Tried adding database concurrence
This commit is contained in:
1 parent
7da01a64db
commit
182cb1aa9b
6 files changed
+89
-13
No files matched your search
@@ -5,6 +5,7 @@ import java.sql.SQLException;
|
||||
public abstract class AbstractController {
|
||||
|
||||
protected MysqlDatabase database;
|
||||
private boolean isDoingSomething = false;
|
||||
|
||||
/**
|
||||
* The controller name to be used in {@link DBController} get(String controller) method
|
||||
@@ -13,6 +14,22 @@ public abstract class AbstractController {
|
||||
*/
|
||||
public abstract String getControllerName();
|
||||
|
||||
public boolean isDoingSomething() {
|
||||
return isDoingSomething;
|
||||
}
|
||||
|
||||
public AbstractController start() {
|
||||
System.out.println("Starting task..");
|
||||
isDoingSomething = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
public AbstractController end() {
|
||||
System.out.println("Ended task!");
|
||||
isDoingSomething = false;
|
||||
return this;
|
||||
}
|
||||
|
||||
public void reconnect() {
|
||||
database.reconnect();
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import java.sql.SQLException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Set;
|
||||
|
||||
import netneutrality.MusicBot;
|
||||
import org.reflections.Reflections;
|
||||
|
||||
public class DBController {
|
||||
@@ -34,7 +35,15 @@ public class DBController {
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return controllers.get(controller);
|
||||
|
||||
MusicBot.LOGGER.debug("Getting controller " + controllers.get(controller).getControllerName());
|
||||
do {
|
||||
System.out.println("task is running");
|
||||
if (!controllers.get(controller).isDoingSomething()) {
|
||||
return controllers.get(controller).start();
|
||||
}
|
||||
} while (true);
|
||||
|
||||
}
|
||||
|
||||
return null;
|
||||
@@ -69,6 +78,7 @@ public class DBController {
|
||||
* Optional, will be called if the method {@link #get(String) get()} is used
|
||||
*/
|
||||
public static void init() {
|
||||
if (controllers.isEmpty())
|
||||
loadControllers();
|
||||
}
|
||||
|
||||
|
||||
@@ -25,12 +25,12 @@ public class DBBlacklist extends AbstractController {
|
||||
return database;
|
||||
}
|
||||
|
||||
public int add(MBlacklist obj) {
|
||||
public void add(MBlacklist obj) {
|
||||
try {
|
||||
if (!isAlreadyBlacklisted(obj.getWord(), obj.getServerId())) {
|
||||
int result = database.insert("INSERT INTO blacklist VALUES(?,?,?,?)", obj.getWord(), obj.getServerId(),
|
||||
obj.isEnabled(), obj.getCreatorId());
|
||||
return result;
|
||||
end();
|
||||
} else
|
||||
throw new RuntimeException("Word is already blacklisted");
|
||||
} catch (SQLException e) {
|
||||
@@ -38,13 +38,14 @@ public class DBBlacklist extends AbstractController {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return -1;
|
||||
end();
|
||||
}
|
||||
|
||||
public int delete(String word, String serverId) {
|
||||
try {
|
||||
if (isAlreadyBlacklisted(word, serverId)) {
|
||||
int result = database.delete("DELETE FROM blacklist WHERE word = ? AND serverId = ?", word, serverId);
|
||||
end();
|
||||
return result;
|
||||
} else
|
||||
throw new RuntimeException("Is not blacklisted");
|
||||
@@ -53,6 +54,7 @@ public class DBBlacklist extends AbstractController {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
end();
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -60,6 +62,7 @@ public class DBBlacklist extends AbstractController {
|
||||
try {
|
||||
if (isAlreadyBlacklisted(word, serverId)) {
|
||||
int result = database.update("UPDATE blacklist SET isEnabled = 1 WHERE word = ? AND serverId = ?", word, serverId);
|
||||
end();
|
||||
return result;
|
||||
} else
|
||||
throw new RuntimeException("Is not blacklisted");
|
||||
@@ -68,6 +71,7 @@ public class DBBlacklist extends AbstractController {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
end();
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -75,6 +79,7 @@ public class DBBlacklist extends AbstractController {
|
||||
try {
|
||||
if (isAlreadyBlacklisted(word, serverId)) {
|
||||
int result = database.update("UPDATE blacklist SET isEnabled = 0 WHERE word = ? AND serverId = ?", word, serverId);
|
||||
end();
|
||||
return result;
|
||||
} else
|
||||
throw new RuntimeException("Is not blacklisted");
|
||||
@@ -83,6 +88,7 @@ public class DBBlacklist extends AbstractController {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
end();
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -92,8 +98,10 @@ public class DBBlacklist extends AbstractController {
|
||||
ResultSet rs = database.prepareAndExecute("SELECT * FROM blacklist WHERE word = ? AND serverId = ?", word, serverId);
|
||||
Object array[][] = database.convertToArray(rs);
|
||||
if (database.getNbRow() != 0) {
|
||||
return new MBlacklist((String) array[1][0], (Boolean) array[1][2], (String) array[1][3],
|
||||
MBlacklist blacklisted = new MBlacklist((String) array[1][0], (Boolean) array[1][2], (String) array[1][3],
|
||||
(String) array[1][1]);
|
||||
end();
|
||||
return blacklisted;
|
||||
}
|
||||
} else
|
||||
throw new RuntimeException("Is not blacklisted");
|
||||
@@ -101,6 +109,7 @@ public class DBBlacklist extends AbstractController {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
end();
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -127,16 +136,21 @@ public class DBBlacklist extends AbstractController {
|
||||
throw new RuntimeException("Blacklist is empty");
|
||||
}
|
||||
|
||||
end();
|
||||
return output;
|
||||
}
|
||||
|
||||
public boolean isAlreadyBlacklisted(String word, String serverId) throws SQLException {
|
||||
ResultSet rs = database.prepareAndExecute("SELECT COUNT(*) FROM blacklist WHERE word = ? AND serverId = ?", word, serverId);
|
||||
if (rs.next()) {
|
||||
if (rs.getInt(1) == 0)
|
||||
if (rs.getInt(1) == 0) {
|
||||
end();
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
end();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -31,12 +31,15 @@ public class DBMessage extends AbstractController {
|
||||
LogHandler.log(e);
|
||||
}
|
||||
|
||||
end();
|
||||
}
|
||||
|
||||
public int logEdit(String messageId, String newMessage) {
|
||||
|
||||
try {
|
||||
return database.update("UPDATE log_message SET editedMessage = ? WHERE messageId = ?", newMessage, messageId);
|
||||
int result = database.update("UPDATE log_message SET editedMessage = ? WHERE messageId = ?", newMessage, messageId);
|
||||
end();
|
||||
return result;
|
||||
} catch (SQLException e) {
|
||||
LogHandler.log(e);
|
||||
}
|
||||
@@ -49,8 +52,12 @@ public class DBMessage extends AbstractController {
|
||||
try {
|
||||
ResultSet rs = database.prepareAndExecute("SELECT * FROM log_message WHERE messageId = ?", messageId);
|
||||
Object[][] array = database.convertToArray(rs);
|
||||
if (database.getNbRow() != 0)
|
||||
return new MMessage(array[1][0], array[1][1], array[1][2], array[1][3], array[1][4], array[1][5]);
|
||||
if (database.getNbRow() != 0) {
|
||||
MMessage message = new MMessage(array[1][0], array[1][1], array[1][2], array[1][3], array[1][4], array[1][5]);
|
||||
end();
|
||||
return message;
|
||||
}
|
||||
|
||||
|
||||
} catch (SQLException e) {
|
||||
LogHandler.log(e);
|
||||
@@ -75,6 +82,7 @@ public class DBMessage extends AbstractController {
|
||||
LogHandler.log(e);
|
||||
}
|
||||
|
||||
end();
|
||||
return messages;
|
||||
}
|
||||
|
||||
@@ -82,12 +90,16 @@ public class DBMessage extends AbstractController {
|
||||
|
||||
try {
|
||||
ResultSet rs = database.prepareAndExecute("SELECT message FROM log_message WHERE messageId = ?", messageId);
|
||||
if (rs.next())
|
||||
if (rs.next()) {
|
||||
end();
|
||||
return rs.getString(1);
|
||||
}
|
||||
|
||||
} catch (SQLException e) {
|
||||
LogHandler.log(e);
|
||||
}
|
||||
|
||||
end();
|
||||
return "No message found";
|
||||
}
|
||||
|
||||
@@ -95,12 +107,16 @@ public class DBMessage extends AbstractController {
|
||||
|
||||
try {
|
||||
int result = database.insert("INSERT INTO logging VALUES(?,?,?)", serverId, channelId, true);
|
||||
if (result == 1)
|
||||
if (result == 1) {
|
||||
end();
|
||||
return true;
|
||||
}
|
||||
|
||||
} catch (SQLException e) {
|
||||
LogHandler.log(e);
|
||||
}
|
||||
|
||||
end();
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -108,12 +124,16 @@ public class DBMessage extends AbstractController {
|
||||
|
||||
try {
|
||||
int result = database.update("UPDATE logging SET enabled = NOT enabled");
|
||||
if (result == 1)
|
||||
if (result == 1) {
|
||||
end();
|
||||
return true;
|
||||
}
|
||||
|
||||
} catch (SQLException e) {
|
||||
LogHandler.log(e);
|
||||
}
|
||||
|
||||
end();
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -121,12 +141,16 @@ public class DBMessage extends AbstractController {
|
||||
|
||||
try {
|
||||
ResultSet rs = database.prepareAndExecute("SELECT enabled FROM logging WHERE serverId = ? AND channelId = ?", serverId, channelId);
|
||||
if (rs.next())
|
||||
if (rs.next()) {
|
||||
end();
|
||||
return rs.getBoolean(1);
|
||||
}
|
||||
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
end();
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ public class DBSettings extends AbstractController {
|
||||
try {
|
||||
ResultSet rs = database.prepareAndExecute("SELECT channelId FROM logging WHERE serverId = ? AND enabled = 1", serverId);
|
||||
if (rs.next()) {
|
||||
end();
|
||||
return rs.getString(1);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
@@ -27,6 +28,7 @@ public class DBSettings extends AbstractController {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
end();
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -34,6 +36,7 @@ public class DBSettings extends AbstractController {
|
||||
try {
|
||||
ResultSet rs = database.prepareAndExecute("SELECT token FROM settings");
|
||||
if (rs.next()) {
|
||||
end();
|
||||
return rs.getString(1);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
@@ -41,6 +44,7 @@ public class DBSettings extends AbstractController {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
end();
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -48,6 +52,7 @@ public class DBSettings extends AbstractController {
|
||||
try {
|
||||
ResultSet rs = database.prepareAndExecute("SELECT selly_email FROM settings");
|
||||
if (rs.next()) {
|
||||
end();
|
||||
return rs.getString(1);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
@@ -55,6 +60,7 @@ public class DBSettings extends AbstractController {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
end();
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -62,6 +68,7 @@ public class DBSettings extends AbstractController {
|
||||
try {
|
||||
ResultSet rs = database.prepareAndExecute("SELECT selly_key FROM settings");
|
||||
if (rs.next()) {
|
||||
end();
|
||||
return rs.getString(1);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
@@ -69,6 +76,7 @@ public class DBSettings extends AbstractController {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
end();
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -46,10 +46,13 @@ public class NewCommandListener extends ListenerAdapter {
|
||||
|
||||
|
||||
if (event.isFromType(ChannelType.TEXT)) {
|
||||
new Thread(() -> {
|
||||
((DBMessage) DBController.get("message")).log(event.getGuild().getName(), event.getTextChannel().getName(),
|
||||
event.getMember().getUser().getName(),
|
||||
event.getMessage().getCreationTime().format(DateTimeFormatter.ofPattern(Settings.DATETIMEFORMAT)), event.getMessage().getId(),
|
||||
event.getMessage().getContentDisplay().trim());
|
||||
}).start();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user