@Override public void run() { database.save().playerWasKicked(uuid); } }
@Override public FetchOperations fetchFromPlanDB() { return dbSystem.getDatabase().fetch(); } }
private void appendServerInformation(StringBuilder content) { ServerProperties serverProperties = serverInfo.getServerProperties(); content.append("<pre>### Server Information<br>") .append("**Plan Version:** ${version}<br>"); content.append("**Server:** "); content.append(serverProperties.getName()) .append(" ").append(serverProperties.getImplVersion()) .append(" (").append(serverProperties.getVersion()); content.append(")<br>"); content.append("**Database:** ").append(database.getType().getName()); content.append("<br><br>"); Properties properties = System.getProperties(); String osName = properties.getProperty("os.name"); String osVersion = properties.getProperty("os.version"); String osArch = properties.getProperty("os.arch"); String javaVendor = properties.getProperty("java.vendor"); String javaVersion = properties.getProperty("java.version"); String javaVMVendor = properties.getProperty("java.vm.vendor"); String javaVMName = properties.getProperty("java.vm.name"); String javaVMVersion = properties.getProperty("java.vm.version"); content.append("**Operating SubSystem:** ").append(osName).append(" (").append(osArch) .append(") version ").append(osVersion).append("<br>"); content.append("**Java Version:** ").append(javaVersion).append(", ").append(javaVendor).append("<br>"); content.append("**Java VM Version:** ").append(javaVMName).append(" version ").append(javaVMVersion) .append(", ").append(javaVMVendor).append("<br>"); content.append("</pre>"); }
@Override public void enable() throws EnableException { try { db.init(); db.scheduleClean(20L); logger.info(locale.getString(PluginLang.ENABLED_DATABASE, db.getType().getName())); } catch (DBInitException e) { Throwable cause = e.getCause(); String message = cause == null ? e.getMessage() : cause.getMessage(); throw new EnableException(db.getType().getName() + " init failure: " + message, cause); } }
private void saveActiveSessions(Map<UUID, Session> activeSessions, long now) throws DBInitException { for (Map.Entry<UUID, Session> entry : activeSessions.entrySet()) { UUID uuid = entry.getKey(); Session session = entry.getValue(); Optional<Long> end = session.getValue(SessionKeys.END); if (!end.isPresent()) { session.endSession(now); } Database database = dbSystem.getDatabase(); if (!database.isOpen()) { database.init(); } try { database.save().session(uuid, session); } catch (DBOpException e) { errorHandler.log(L.ERROR, this.getClass(), e); } } activeSessions.clear(); } }
private Server registerBungeeInfo(Database db) throws EnableException { UUID serverUUID = generateNewUUID(); String accessAddress = webServer.get().getAccessAddress(); Server bungeeCord = new Server(-1, serverUUID, "BungeeCord", accessAddress, serverProperties.getMaxPlayers()); db.save().serverInfoForThisServer(bungeeCord); Optional<Server> bungeeInfo = db.fetch().getBungeeInformation(); if (bungeeInfo.isPresent()) { return bungeeInfo.get(); } throw new EnableException("BungeeCord registration failed (DB)"); }
() -> new IllegalArgumentException(locale.getString(ManageLang.FAIL_INCORRECT_DB, dbName))); Verify.isFalse(dbName.equals(dbSystem.getDatabase().getType().getConfigName()), () -> new IllegalArgumentException(locale.getString(ManageLang.FAIL_SAME_DB))); database.init(); if (!database.isOpen()) { return;
@Override public WebUser getWebUser() throws WebUserAuthException { String decoded = Base64Util.decode(authenticationString); String[] userInfo = decoded.split(":"); if (userInfo.length != 2) { throw new WebUserAuthException(FailReason.USER_AND_PASS_NOT_SPECIFIED); } String user = userInfo[0]; String passwordRaw = userInfo[1]; try { if (!database.check().doesWebUserExists(user)) { throw new WebUserAuthException(FailReason.USER_DOES_NOT_EXIST, user); } WebUser webUser = database.fetch().getWebUser(user); boolean correctPass = PassEncryptUtil.verifyPassword(passwordRaw, webUser.getSaltedPassHash()); if (!correctPass) { throw new WebUserAuthException(FailReason.USER_PASS_MISMATCH, user); } return webUser; } catch (DBOpException | PassEncryptException e) { throw new WebUserAuthException(e); } } }
private void runMoveTask(final Database fromDatabase, final Database toDatabase, Sender sender) { processing.submitCritical(() -> { try { sender.sendMessage(locale.getString(ManageLang.PROGRESS_START)); fromDatabase.backup().backup(toDatabase); sender.sendMessage(locale.getString(ManageLang.PROGRESS_SUCCESS)); boolean movingToCurrentDB = toDatabase.getType() == dbSystem.getDatabase().getType(); if (movingToCurrentDB) { sender.sendMessage(locale.getString(ManageLang.HOTSWAP_REMINDER, toDatabase.getType().getConfigName())); } } catch (Exception e) { errorHandler.log(L.ERROR, this.getClass(), e); sender.sendMessage(locale.getString(ManageLang.PROGRESS_FAIL, e.getMessage())); } }); } }
/** * Creates a new backup sqlite file with the data of given database. * * @param dbName Name of database (mysql/sqlite) * @param copyFromDB Database you want to backup. */ private void createNewBackup(String dbName, Database copyFromDB) { SQLiteDB backupDB = null; try { String timeStamp = iso8601LongFormatter.apply(System.currentTimeMillis()); String fileName = dbName + "-backup-" + timeStamp; backupDB = sqliteFactory.usingFileCalled(fileName); Collection<UUID> uuids = copyFromDB.fetch().getSavedUUIDs(); if (uuids.isEmpty()) { return; } backupDB.init(); copyFromDB.backup().backup(backupDB); } catch (DBException e) { errorHandler.log(L.ERROR, this.getClass(), e); } finally { if (backupDB != null) { backupDB.close(); } } } }
@Override public void onCommand(Sender sender, String commandLabel, String[] args) { Verify.isTrue(args.length >= 2, () -> new IllegalArgumentException(locale.getString(CommandLang.FAIL_REQ_ARGS, 2, Arrays.toString(this.getArguments())))); String backupDbName = args[0]; String dbName = args[1].toLowerCase(); boolean isCorrectDB = DBType.exists(dbName); Verify.isTrue(isCorrectDB, () -> new IllegalArgumentException(locale.getString(ManageLang.FAIL_INCORRECT_DB, dbName))); try { Database database = dbSystem.getActiveDatabaseByName(dbName); Verify.isFalse(backupDbName.contains("database") && database instanceof SQLiteDB, () -> new IllegalArgumentException(locale.getString(ManageLang.FAIL_SAME_DB))); database.init(); if (!Verify.contains("-a", args)) { sender.sendMessage(locale.getString(ManageLang.CONFIRMATION, locale.getString(ManageLang.CONFIRM_OVERWRITE, database.getType().getName()))); return; } runRestoreTask(backupDbName, sender, database); } catch (Exception e) { sender.sendMessage(locale.getString(ManageLang.PROGRESS_FAIL, e.getMessage())); } }
@Override public void onCommand(Sender sender, String commandLabel, String[] args) { Verify.isTrue(args.length >= 1, () -> new IllegalArgumentException(locale.getString(CommandLang.FAIL_REQ_ONE_ARG, Arrays.toString(this.getArguments())))); String user = args[0]; processing.submitNonCritical(() -> { try { Database db = dbSystem.getDatabase(); if (!db.check().doesWebUserExists(user)) { sender.sendMessage("§c[Plan] User Doesn't exist."); return; } db.remove().webUser(user); sender.sendMessage(locale.getString(ManageLang.PROGRESS_SUCCESS)); } catch (Exception e) { errorHandler.log(L.ERROR, this.getClass(), e); sender.sendMessage(locale.getString(ManageLang.PROGRESS_FAIL, e.getMessage())); } }); }
private void sendWebUserNotificationIfNecessary(Sender sender) { if (webServer.isAuthRequired() && CommandUtils.isPlayer(sender) && !dbSystem.getDatabase().check().doesWebUserExists(sender.getName())) { sender.sendMessage("§e" + locale.getString(CommandLang.NO_WEB_USER_NOTIFY)); } }
public void setActiveDatabase(Database db) throws DBException { this.db.close(); this.db = db; }
@Override public void restore(Database fromDatabase) { fromDatabase.backup().backup(db); } }
private Server registerVelocityInfo(Database db) throws EnableException { UUID serverUUID = generateNewUUID(); String accessAddress = webServer.get().getAccessAddress(); // TODO Rework to allow Velocity as name. Server bungeeCord = new Server(-1, serverUUID, "BungeeCord", accessAddress, serverProperties.getMaxPlayers()); db.save().serverInfoForThisServer(bungeeCord); Optional<Server> bungeeInfo = db.fetch().getBungeeInformation(); if (bungeeInfo.isPresent()) { return bungeeInfo.get(); } throw new EnableException("Velocity registration failed (DB)"); }
@Override public void run() { Verify.nullCheck(uuid, () -> new IllegalStateException("UUID was null")); CheckOperations check = database.check(); SaveOperations save = database.save(); try { if (!check.isPlayerRegistered(uuid)) { save.registerNewUser(uuid, registered.getAsLong(), name); } if (!check.isPlayerRegisteredOnThisServer(uuid)) { save.registerNewUserOnThisServer(uuid, registered.getAsLong()); } } finally { for (Runnable runnable : afterProcess) { processing.submit(runnable); } cancel(); } } }
@Override public void onCommand(Sender sender, String commandLabel, String[] args) { Verify.isTrue(args.length >= 1, () -> new IllegalArgumentException(locale.getString(CommandLang.FAIL_REQ_ONE_ARG, Arrays.toString(this.getArguments())))); String user = args[0]; processing.submitNonCritical(() -> { try { Database db = dbSystem.getDatabase(); if (!db.check().doesWebUserExists(user)) { sender.sendMessage(locale.getString(CommandLang.FAIL_WEB_USER_NOT_EXISTS)); return; } WebUser info = db.fetch().getWebUser(user); sender.sendMessage(locale.getString(CommandLang.WEB_USER_LIST, info.getName(), info.getPermLevel())); } catch (Exception e) { errorHandler.log(L.ERROR, this.getClass(), e); sender.sendMessage(locale.getString(ManageLang.PROGRESS_FAIL, e.getMessage())); } }); }