use of com.djrapitops.plan.storage.database.Database in project Plan by plan-player-analytics.
the class DatabaseCommands method onHotswap.
public void onHotswap(CMDSender sender, Arguments arguments) {
DBType toDB = arguments.get(0).flatMap(DBType::getForName).orElseThrow(() -> new IllegalArgumentException(locale.getString(CommandLang.FAIL_INCORRECT_DB, arguments.get(0).orElse("<MySQL/SQLite>"))));
try {
Database database = dbSystem.getActiveDatabaseByType(toDB);
database.init();
if (database.getState() == Database.State.CLOSED) {
return;
}
config.set(DatabaseSettings.TYPE, toDB.getName());
config.save();
} catch (DBOpException | IOException e) {
errorLogger.warn(e, ErrorContext.builder().related(toDB).build());
sender.send(locale.getString(CommandLang.PROGRESS_FAIL, e.getMessage()));
return;
}
statusCommands.onReload(sender);
}
use of com.djrapitops.plan.storage.database.Database in project Plan by plan-player-analytics.
the class DatabaseCommands method performBackup.
public void performBackup(CMDSender sender, Arguments arguments, String dbName, Database fromDB) {
Database toDB = null;
try {
String timeStamp = timestamp.apply(System.currentTimeMillis());
String fileName = dbName + "-backup-" + timeStamp;
sender.send(locale.getString(CommandLang.DB_BACKUP_CREATE, fileName, dbName));
toDB = sqliteFactory.usingFileCalled(fileName);
toDB.init();
toDB.executeTransaction(new BackupCopyTransaction(fromDB, toDB)).get();
} catch (DBOpException | ExecutionException e) {
errorLogger.error(e, ErrorContext.builder().related(sender, arguments).build());
} catch (InterruptedException e) {
toDB.close();
Thread.currentThread().interrupt();
} finally {
if (toDB != null) {
toDB.close();
}
}
}
use of com.djrapitops.plan.storage.database.Database in project Plan by plan-player-analytics.
the class DatabaseCommands method performClear.
private void performClear(CMDSender sender, DBType fromDB) {
try {
Database fromDatabase = dbSystem.getActiveDatabaseByType(fromDB);
fromDatabase.init();
sender.send(locale.getString(CommandLang.DB_REMOVAL, fromDB.getName()));
fromDatabase.executeTransaction(new RemoveEverythingTransaction()).get();
queryService.dataCleared();
sender.send(locale.getString(CommandLang.PROGRESS_SUCCESS));
// Reload plugin to register the server into the database
// Otherwise errors will start.
statusCommands.onReload(sender);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
} catch (DBOpException | ExecutionException e) {
sender.send(locale.getString(CommandLang.PROGRESS_FAIL, e.getMessage()));
errorLogger.error(e, ErrorContext.builder().related(sender, fromDB.getName()).build());
}
}
use of com.djrapitops.plan.storage.database.Database in project Plan by plan-player-analytics.
the class PluginStatusCommands method onInfo.
public void onInfo(CMDSender sender) {
String yes = locale.getString(GenericLang.YES);
String no = locale.getString(GenericLang.NO);
Database database = dbSystem.getDatabase();
String updateAvailable = versionChecker.isNewVersionAvailable() ? yes : no;
String proxyAvailable = database.query(ServerQueries.fetchProxyServerInformation()).isPresent() ? yes : no;
String[] messages = { locale.getString(CommandLang.HEADER_INFO), "", locale.getString(CommandLang.INFO_VERSION, pluginInformation.getVersion()), locale.getString(CommandLang.INFO_UPDATE, updateAvailable), locale.getString(CommandLang.INFO_DATABASE, database.getType().getName() + " (" + database.getState().name() + ")"), locale.getString(CommandLang.INFO_PROXY_CONNECTION, proxyAvailable), "", ">" };
sender.send(messages);
}
use of com.djrapitops.plan.storage.database.Database in project Plan by plan-player-analytics.
the class RegistrationCommands method registerUser.
private void registerUser(User user, CMDSender sender, int permissionLevel) {
String username = user.getUsername();
user.setPermissionLevel(permissionLevel);
try {
Database database = dbSystem.getDatabase();
boolean userExists = database.query(WebUserQueries.fetchUser(username)).isPresent();
if (userExists)
throw new IllegalArgumentException(locale.getString(CommandLang.FAIL_WEB_USER_EXISTS));
database.executeTransaction(new RegisterWebUserTransaction(user)).get();
sender.send(locale.getString(CommandLang.WEB_USER_REGISTER_SUCCESS, username));
logger.info(locale.getString(CommandLang.WEB_USER_REGISTER_NOTIFY, username, permissionLevel));
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
} catch (DBOpException | ExecutionException e) {
errorLogger.warn(e, ErrorContext.builder().related(sender, user, permissionLevel).build());
}
}
Aggregations