mirror of
https://github.com/plan-player-analytics/Plan.git
synced 2024-12-28 12:07:35 +01:00
Server Information Storage
This commit is contained in:
parent
cee61ceda5
commit
e44b20d74f
@ -16,14 +16,12 @@ public class ServerInfo {
|
|||||||
private final UUID uuid;
|
private final UUID uuid;
|
||||||
private String name;
|
private String name;
|
||||||
private String webAddress;
|
private String webAddress;
|
||||||
private int port;
|
|
||||||
|
|
||||||
public ServerInfo(int id, UUID uuid, String name, String webAddress, int port) {
|
public ServerInfo(int id, UUID uuid, String name, String webAddress) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.uuid = uuid;
|
this.uuid = uuid;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.webAddress = webAddress;
|
this.webAddress = webAddress;
|
||||||
this.port = port;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getId() {
|
public int getId() {
|
||||||
@ -42,10 +40,6 @@ public class ServerInfo {
|
|||||||
return webAddress;
|
return webAddress;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getPort() {
|
|
||||||
return port;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setName(String name) {
|
public void setName(String name) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
}
|
}
|
||||||
@ -54,7 +48,4 @@ public class ServerInfo {
|
|||||||
this.webAddress = webAddress;
|
this.webAddress = webAddress;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPort(int port) {
|
|
||||||
this.port = port;
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -8,6 +8,7 @@ import com.djrapitops.plugin.config.BukkitConfig;
|
|||||||
import main.java.com.djrapitops.plan.Plan;
|
import main.java.com.djrapitops.plan.Plan;
|
||||||
import org.bukkit.configuration.InvalidConfigurationException;
|
import org.bukkit.configuration.InvalidConfigurationException;
|
||||||
import org.bukkit.configuration.file.FileConfiguration;
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
|
import org.bukkit.configuration.file.FileConfigurationOptions;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@ -25,13 +26,14 @@ import java.util.UUID;
|
|||||||
*/
|
*/
|
||||||
public class ServerInfoFile extends BukkitConfig<Plan> {
|
public class ServerInfoFile extends BukkitConfig<Plan> {
|
||||||
public ServerInfoFile(Plan plugin) throws IOException, InvalidConfigurationException {
|
public ServerInfoFile(Plan plugin) throws IOException, InvalidConfigurationException {
|
||||||
super(plugin, "ServerInfo");
|
super(plugin, "ServerInfoFile");
|
||||||
FileConfiguration config = getConfig();
|
FileConfiguration config = getConfig();
|
||||||
config.options().copyDefaults(true);
|
FileConfigurationOptions options = config.options();
|
||||||
config.addDefault("Server.ID", "-1");
|
options.copyDefaults(true);
|
||||||
|
options.header("IMPORTANT: Do not edit this file unless you want to lose your data!");
|
||||||
|
config.addDefault("Server.ID", -1);
|
||||||
config.addDefault("Server.UUID", "");
|
config.addDefault("Server.UUID", "");
|
||||||
config.addDefault("Bungee.WebAddress", "");
|
config.addDefault("Bungee.WebAddress", "");
|
||||||
config.addDefault("Bungee.Port", -1);
|
|
||||||
config.addDefault("Bungee.Fail", 0);
|
config.addDefault("Bungee.Fail", 0);
|
||||||
save();
|
save();
|
||||||
}
|
}
|
||||||
@ -44,7 +46,6 @@ public class ServerInfoFile extends BukkitConfig<Plan> {
|
|||||||
serverMap.put("UUID", thisServer.getUuid().toString());
|
serverMap.put("UUID", thisServer.getUuid().toString());
|
||||||
|
|
||||||
bungeeMap.put("WebAddress", bungee.getWebAddress());
|
bungeeMap.put("WebAddress", bungee.getWebAddress());
|
||||||
bungeeMap.put("Port", bungee.getPort());
|
|
||||||
|
|
||||||
getConfig().set("Server", serverMap);
|
getConfig().set("Server", serverMap);
|
||||||
getConfig().set("Bungee", bungeeMap);
|
getConfig().set("Bungee", bungeeMap);
|
||||||
@ -67,10 +68,6 @@ public class ServerInfoFile extends BukkitConfig<Plan> {
|
|||||||
return getConfig().getString("Bungee.WebAddress");
|
return getConfig().getString("Bungee.WebAddress");
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getBungeePort() {
|
|
||||||
return getConfig().getInt("Bungee.Port");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void markConnectionFail() throws IOException {
|
public void markConnectionFail() throws IOException {
|
||||||
FileConfiguration config = getConfig();
|
FileConfiguration config = getConfig();
|
||||||
int fails = config.getInt("Bungee.Fail");
|
int fails = config.getInt("Bungee.Fail");
|
||||||
|
@ -10,12 +10,12 @@ import main.java.com.djrapitops.plan.Plan;
|
|||||||
import main.java.com.djrapitops.plan.Settings;
|
import main.java.com.djrapitops.plan.Settings;
|
||||||
import main.java.com.djrapitops.plan.database.Database;
|
import main.java.com.djrapitops.plan.database.Database;
|
||||||
import main.java.com.djrapitops.plan.database.tables.ServerTable;
|
import main.java.com.djrapitops.plan.database.tables.ServerTable;
|
||||||
import main.java.com.djrapitops.plan.utilities.HtmlUtils;
|
|
||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.configuration.InvalidConfigurationException;
|
import org.bukkit.configuration.InvalidConfigurationException;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -25,11 +25,13 @@ import java.util.UUID;
|
|||||||
*/
|
*/
|
||||||
public class ServerInfoManager {
|
public class ServerInfoManager {
|
||||||
|
|
||||||
|
private Plan plugin;
|
||||||
private ServerInfo serverInfo;
|
private ServerInfo serverInfo;
|
||||||
private ServerInfoFile serverInfoFile;
|
private ServerInfoFile serverInfoFile;
|
||||||
private ServerTable serverTable;
|
private ServerTable serverTable;
|
||||||
|
|
||||||
public ServerInfoManager(Plan plugin) {
|
public ServerInfoManager(Plan plugin) {
|
||||||
|
this.plugin = plugin;
|
||||||
Database db = plugin.getDB();
|
Database db = plugin.getDB();
|
||||||
if ("sqlite".equals(db.getConfigName())) {
|
if ("sqlite".equals(db.getConfigName())) {
|
||||||
return;
|
return;
|
||||||
@ -45,27 +47,60 @@ public class ServerInfoManager {
|
|||||||
serverTable = db.getServerTable();
|
serverTable = db.getServerTable();
|
||||||
|
|
||||||
int serverID = serverInfoFile.getID();
|
int serverID = serverInfoFile.getID();
|
||||||
if (serverID == -1) {
|
|
||||||
registerServer(plugin);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void registerServer(Plan plugin) {
|
|
||||||
UUID serverUUID = generateNewUUID(plugin.getServer());
|
|
||||||
// TODO Clean Up HtmlUtils so this method can make sense
|
|
||||||
String[] address = (HtmlUtils.getProtocol() + "/" + HtmlUtils.getIP()).split(":");
|
|
||||||
String webAddress = address[0];
|
|
||||||
int port = Integer.parseInt(address[1]);
|
|
||||||
String name = Settings.SERVER_NAME.toString();
|
|
||||||
try {
|
try {
|
||||||
serverTable.saveCurrentServerInfo(new ServerInfo(-1, serverUUID, name, webAddress, port));
|
if (serverID == -1) {
|
||||||
|
registerServer();
|
||||||
|
} else {
|
||||||
|
updateDbInfo(serverID);
|
||||||
|
}
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
Log.toLog(this.getClass().getName(), e);
|
Log.toLog(this.getClass().getName(), e);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public UUID generateNewUUID(Server server) {
|
private void updateDbInfo(int serverID) throws SQLException {
|
||||||
|
UUID uuid = serverInfoFile.getUUID();
|
||||||
|
String name = Settings.SERVER_NAME.toString();
|
||||||
|
String webAddress = plugin.getUiServer().getAccessAddress();
|
||||||
|
if ("plan".equalsIgnoreCase(name)) {
|
||||||
|
name = "Server" + Integer.toString(serverID);
|
||||||
|
}
|
||||||
|
|
||||||
|
serverInfo = new ServerInfo(serverID, uuid, name, webAddress);
|
||||||
|
serverTable.saveCurrentServerInfo(serverInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void registerServer() throws SQLException {
|
||||||
|
UUID serverUUID = generateNewUUID(plugin.getServer());
|
||||||
|
String webAddress = plugin.getUiServer().getAccessAddress();
|
||||||
|
String name = Settings.SERVER_NAME.toString();
|
||||||
|
serverInfo = new ServerInfo(-1, serverUUID, name, webAddress);
|
||||||
|
serverTable.saveCurrentServerInfo(serverInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
private UUID generateNewUUID(Server server) {
|
||||||
String seed = server.getName() + server.getIp() + server.getPort() + server.getVersion() + server.getBukkitVersion();
|
String seed = server.getName() + server.getIp() + server.getPort() + server.getVersion() + server.getBukkitVersion();
|
||||||
return UUID.nameUUIDFromBytes(seed.getBytes());
|
return UUID.nameUUIDFromBytes(seed.getBytes());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Optional<String> getBungeeConnectionAddress() {
|
||||||
|
try {
|
||||||
|
String bungeeWebAddress = serverInfoFile.getBungeeWebAddress();
|
||||||
|
if (!bungeeWebAddress.isEmpty()) {
|
||||||
|
return Optional.of(bungeeWebAddress);
|
||||||
|
}
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
/* Ignored */
|
||||||
|
}
|
||||||
|
return Optional.empty();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getServerID() {
|
||||||
|
return serverInfo.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getServerName() {
|
||||||
|
return serverInfo.getName();
|
||||||
|
}
|
||||||
}
|
}
|
@ -20,28 +20,29 @@ public abstract class WhereParser extends SqlParser {
|
|||||||
private int conditions = 0;
|
private int conditions = 0;
|
||||||
|
|
||||||
public WhereParser where(String... conditions) {
|
public WhereParser where(String... conditions) {
|
||||||
return and(conditions);
|
|
||||||
}
|
|
||||||
|
|
||||||
public WhereParser and(String... conditions) {
|
|
||||||
return whereOperator("AND", conditions);
|
|
||||||
}
|
|
||||||
|
|
||||||
public WhereParser or(String... conditions) {
|
|
||||||
return whereOperator("OR", conditions);
|
|
||||||
}
|
|
||||||
|
|
||||||
private WhereParser whereOperator(String operator, String... conditions) {
|
|
||||||
append(" WHERE ");
|
append(" WHERE ");
|
||||||
for (String condition : conditions) {
|
for (String condition : conditions) {
|
||||||
if (this.conditions > 0) {
|
if (this.conditions > 0) {
|
||||||
addSpace().append(operator).addSpace();
|
append(" AND ");
|
||||||
}
|
}
|
||||||
|
|
||||||
append("(").append(condition).append(")");
|
append("(").append(condition).append(")");
|
||||||
this.conditions++;
|
this.conditions++;
|
||||||
}
|
}
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public WhereParser and(String condition) {
|
||||||
|
append(" AND ");
|
||||||
|
append("(").append(condition).append(")");
|
||||||
|
this.conditions++;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public WhereParser or(String condition) {
|
||||||
|
append(" OR ");
|
||||||
|
append("(").append(condition).append(")");
|
||||||
|
this.conditions++;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,15 +4,19 @@
|
|||||||
*/
|
*/
|
||||||
package main.java.com.djrapitops.plan.database.tables;
|
package main.java.com.djrapitops.plan.database.tables;
|
||||||
|
|
||||||
|
import com.djrapitops.plugin.utilities.Verify;
|
||||||
import main.java.com.djrapitops.plan.Log;
|
import main.java.com.djrapitops.plan.Log;
|
||||||
import main.java.com.djrapitops.plan.data.server.ServerInfo;
|
import main.java.com.djrapitops.plan.data.server.ServerInfo;
|
||||||
import main.java.com.djrapitops.plan.database.databases.SQLDB;
|
import main.java.com.djrapitops.plan.database.databases.SQLDB;
|
||||||
import main.java.com.djrapitops.plan.database.sql.Insert;
|
import main.java.com.djrapitops.plan.database.sql.*;
|
||||||
import main.java.com.djrapitops.plan.database.sql.Sql;
|
|
||||||
import main.java.com.djrapitops.plan.database.sql.TableSqlParser;
|
|
||||||
|
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* //TODO Class Javadoc Comment
|
* //TODO Class Javadoc Comment
|
||||||
@ -25,7 +29,7 @@ public class ServerTable extends Table {
|
|||||||
private final String columnServerUUID;
|
private final String columnServerUUID;
|
||||||
private final String columnServerName;
|
private final String columnServerName;
|
||||||
private final String columnWebserverAddress;
|
private final String columnWebserverAddress;
|
||||||
private final String columnWebserverPort;
|
private final String columnInstalled;
|
||||||
|
|
||||||
public ServerTable(String name, SQLDB db, boolean usingMySQL) {
|
public ServerTable(String name, SQLDB db, boolean usingMySQL) {
|
||||||
super("plan_servers", db, usingMySQL);
|
super("plan_servers", db, usingMySQL);
|
||||||
@ -33,7 +37,7 @@ public class ServerTable extends Table {
|
|||||||
columnServerUUID = "uuid";
|
columnServerUUID = "uuid";
|
||||||
columnServerName = "name";
|
columnServerName = "name";
|
||||||
columnWebserverAddress = "web_address";
|
columnWebserverAddress = "web_address";
|
||||||
columnWebserverPort = "web_port";
|
columnInstalled = "is_installed";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -44,7 +48,8 @@ public class ServerTable extends Table {
|
|||||||
.column(columnServerUUID, Sql.varchar(36)).notNull().unique()
|
.column(columnServerUUID, Sql.varchar(36)).notNull().unique()
|
||||||
.column(columnServerName, Sql.varchar(100))
|
.column(columnServerName, Sql.varchar(100))
|
||||||
.column(columnWebserverAddress, Sql.varchar(100))
|
.column(columnWebserverAddress, Sql.varchar(100))
|
||||||
.column(columnWebserverPort, Sql.INT)
|
.column(columnInstalled, Sql.BOOL).notNull().defaultValue(false)
|
||||||
|
.primaryKey(usingMySQL, columnServerID)
|
||||||
.toString());
|
.toString());
|
||||||
return true;
|
return true;
|
||||||
} catch (SQLException ex) {
|
} catch (SQLException ex) {
|
||||||
@ -62,25 +67,161 @@ public class ServerTable extends Table {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateServerInfo(ServerInfo info) {
|
private void updateServerInfo(ServerInfo info) throws SQLException {
|
||||||
//TODO Continue here, create Update SqlParser.
|
PreparedStatement statement = null;
|
||||||
|
try {
|
||||||
|
statement = prepareStatement(Update.values(tableName,
|
||||||
|
columnServerUUID,
|
||||||
|
columnServerName,
|
||||||
|
columnWebserverAddress,
|
||||||
|
columnInstalled)
|
||||||
|
.where(columnServerID + "=?")
|
||||||
|
.toString()
|
||||||
|
);
|
||||||
|
statement.setString(1, info.getUuid().toString());
|
||||||
|
statement.setString(2, info.getName());
|
||||||
|
statement.setString(3, info.getWebAddress());
|
||||||
|
statement.setBoolean(4, true);
|
||||||
|
statement.setInt(5, info.getId());
|
||||||
|
statement.executeUpdate();
|
||||||
|
} finally {
|
||||||
|
close(statement);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void saveNewServerInfo(ServerInfo info) throws SQLException {
|
/**
|
||||||
|
* Inserts new row for a server into the table.
|
||||||
|
*
|
||||||
|
* @param info Info to instert (All variables should be present.
|
||||||
|
* @throws IllegalStateException if one of the ServerInfo variables is null
|
||||||
|
* @throws SQLException
|
||||||
|
*/
|
||||||
|
private void saveNewServerInfo(ServerInfo info) throws SQLException {
|
||||||
|
UUID uuid = info.getUuid();
|
||||||
|
String name = info.getName();
|
||||||
|
String webAddress = info.getWebAddress();
|
||||||
|
Verify.nullCheck(uuid, name, webAddress);
|
||||||
PreparedStatement statement = null;
|
PreparedStatement statement = null;
|
||||||
try {
|
try {
|
||||||
statement = prepareStatement(Insert.values(tableName,
|
statement = prepareStatement(Insert.values(tableName,
|
||||||
columnServerUUID,
|
columnServerUUID,
|
||||||
columnServerName,
|
columnServerName,
|
||||||
columnWebserverAddress,
|
columnWebserverAddress,
|
||||||
columnWebserverPort));
|
columnInstalled));
|
||||||
statement.setString(1, info.getUuid().toString());
|
|
||||||
statement.setString(2, info.getName());
|
statement.setString(1, uuid.toString());
|
||||||
statement.setString(3, info.getWebAddress());
|
statement.setString(2, name);
|
||||||
statement.setInt(4, info.getPort());
|
statement.setString(3, webAddress);
|
||||||
|
statement.setBoolean(4, true);
|
||||||
statement.execute();
|
statement.execute();
|
||||||
} finally {
|
} finally {
|
||||||
close(statement);
|
close(statement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns server ID for a matching UUID
|
||||||
|
*
|
||||||
|
* @param serverUUID UUID of the server.
|
||||||
|
* @return ID or or empty optional.
|
||||||
|
* @throws SQLException
|
||||||
|
*/
|
||||||
|
public Optional<Integer> getServerID(UUID serverUUID) throws SQLException {
|
||||||
|
PreparedStatement statement = null;
|
||||||
|
ResultSet set = null;
|
||||||
|
try {
|
||||||
|
statement = prepareStatement(Select.from(tableName,
|
||||||
|
columnServerID)
|
||||||
|
.where(columnServerUUID + "=?")
|
||||||
|
.toString());
|
||||||
|
statement.setString(1, serverUUID.toString());
|
||||||
|
set = statement.executeQuery();
|
||||||
|
if (set.next()) {
|
||||||
|
return Optional.of(set.getInt(columnServerID));
|
||||||
|
} else {
|
||||||
|
return Optional.empty();
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
close(set, statement);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns server Name for a matching UUID
|
||||||
|
*
|
||||||
|
* @param serverUUID UUID of the server.
|
||||||
|
* @return Name or empty optional.
|
||||||
|
* @throws SQLException
|
||||||
|
*/
|
||||||
|
public Optional<String> getServerName(UUID serverUUID) throws SQLException {
|
||||||
|
PreparedStatement statement = null;
|
||||||
|
ResultSet set = null;
|
||||||
|
try {
|
||||||
|
statement = prepareStatement(Select.from(tableName,
|
||||||
|
columnServerName)
|
||||||
|
.where(columnServerUUID + "=?")
|
||||||
|
.toString());
|
||||||
|
statement.setString(1, serverUUID.toString());
|
||||||
|
set = statement.executeQuery();
|
||||||
|
if (set.next()) {
|
||||||
|
return Optional.of(set.getString(columnServerName));
|
||||||
|
} else {
|
||||||
|
return Optional.empty();
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
close(set, statement);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used to get BungeeCord WebServer info if present.
|
||||||
|
*
|
||||||
|
* @return information about Bungee server.
|
||||||
|
* @throws SQLException
|
||||||
|
*/
|
||||||
|
public Optional<ServerInfo> getBungeeInfo() throws SQLException {
|
||||||
|
PreparedStatement statement = null;
|
||||||
|
ResultSet set = null;
|
||||||
|
try {
|
||||||
|
statement = prepareStatement(Select.from(tableName, "*")
|
||||||
|
.where(columnServerName + "=?")
|
||||||
|
.toString());
|
||||||
|
statement.setString(1, "BungeeCord");
|
||||||
|
set = statement.executeQuery();
|
||||||
|
if (set.next()) {
|
||||||
|
return Optional.of(new ServerInfo(
|
||||||
|
set.getInt(columnServerID),
|
||||||
|
UUID.fromString(set.getString(columnServerUUID)),
|
||||||
|
set.getString(columnServerName),
|
||||||
|
set.getString(columnWebserverAddress)));
|
||||||
|
} else {
|
||||||
|
return Optional.empty();
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
close(set, statement);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ServerInfo> getBukkitServers() throws SQLException {
|
||||||
|
PreparedStatement statement = null;
|
||||||
|
ResultSet set = null;
|
||||||
|
try {
|
||||||
|
statement = prepareStatement(Select.from(tableName, "*")
|
||||||
|
.where(columnServerName + "!=?")
|
||||||
|
.toString());
|
||||||
|
statement.setString(1, "BungeeCord");
|
||||||
|
set = statement.executeQuery();
|
||||||
|
List<ServerInfo> servers = new ArrayList<>();
|
||||||
|
while (set.next()) {
|
||||||
|
servers.add(new ServerInfo(
|
||||||
|
set.getInt(columnServerID),
|
||||||
|
UUID.fromString(set.getString(columnServerUUID)),
|
||||||
|
set.getString(columnServerName),
|
||||||
|
set.getString(columnWebserverAddress)));
|
||||||
|
}
|
||||||
|
return servers;
|
||||||
|
} finally {
|
||||||
|
close(set, statement);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -531,4 +531,8 @@ public class WebServer {
|
|||||||
public boolean isAuthRequired() {
|
public boolean isAuthRequired() {
|
||||||
return usingHttps;
|
return usingHttps;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getAccessAddress() {
|
||||||
|
return getProtocol()+":/"+ HtmlUtils.getIP();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user