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