Skip to content

Commit d7185c1

Browse files
Add database connection validation
1 parent 2d2ce65 commit d7185c1

4 files changed

Lines changed: 31 additions & 8 deletions

File tree

src/main/java/com/firecontroller1847/truediscordlink/DatabaseManager.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,24 @@ public boolean isConnected() {
115115
}
116116
}
117117

118+
// Validates the database's connection and, if there isn't one, reconnects it
119+
public void validateConnection() {
120+
if (!this.isConnected()) {
121+
this.reconnect();
122+
}
123+
}
124+
125+
// Reconnects the database
126+
public void reconnect() {
127+
this.disconnect();
128+
new Thread(this::connect).start();
129+
try {
130+
Thread.sleep(1000);
131+
} catch (InterruptedException e) {
132+
// ...
133+
}
134+
}
135+
118136
// Getters
119137
public Database getDatabase() {
120138
return database;

src/main/java/com/firecontroller1847/truediscordlink/commands/CommandLink.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package com.firecontroller1847.truediscordlink.commands;
22

3-
import com.firecontroller1847.truediscordlink.DiscordManager;
4-
import com.firecontroller1847.truediscordlink.FireCommand;
5-
import com.firecontroller1847.truediscordlink.FirePlugin;
6-
import com.firecontroller1847.truediscordlink.TrueDiscordLink;
3+
import com.firecontroller1847.truediscordlink.*;
74
import com.firecontroller1847.truediscordlink.database.DbPlayer;
85
import com.visualfiredev.javabase.Database;
96
import com.visualfiredev.javabase.DatabaseValue;
@@ -39,7 +36,11 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command
3936

4037
// Fetch database & player
4138
Player player = (Player) sender;
42-
Database database = ((TrueDiscordLink) plugin).getDatabaseManager().getDatabase();
39+
DatabaseManager databaseManager = ((TrueDiscordLink) plugin).getDatabaseManager();
40+
Database database = databaseManager.getDatabase();
41+
42+
// Validate database connection
43+
databaseManager.validateConnection();
4344

4445
// Check if user is in database
4546
try {

src/main/java/com/firecontroller1847/truediscordlink/commands/CommandReload.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
1919
discordlink.reload();
2020

2121
// Reconnect database
22-
discordlink.getDatabaseManager().disconnect();
23-
new Thread(discordlink.getDatabaseManager()::connect).start();
22+
discordlink.getDatabaseManager().reconnect();
2423

2524
// Send notification message
2625
sender.sendMessage(discordlink.getTranslation("config.reloaded"));

src/main/java/com/firecontroller1847/truediscordlink/commands/CommandUnlink.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.firecontroller1847.truediscordlink.commands;
22

3+
import com.firecontroller1847.truediscordlink.DatabaseManager;
34
import com.firecontroller1847.truediscordlink.FireCommand;
45
import com.firecontroller1847.truediscordlink.FirePlugin;
56
import com.firecontroller1847.truediscordlink.TrueDiscordLink;
@@ -36,7 +37,11 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command
3637

3738
// Fetch database & player
3839
Player player = (Player) sender;
39-
Database database = ((TrueDiscordLink) plugin).getDatabaseManager().getDatabase();;
40+
DatabaseManager databaseManager = ((TrueDiscordLink) plugin).getDatabaseManager();
41+
Database database = databaseManager.getDatabase();
42+
43+
// Validate database connection
44+
databaseManager.validateConnection();
4045

4146
try {
4247
ArrayList<DbPlayer> results;

0 commit comments

Comments
 (0)