Update Host name every time player logs in
This commit is contained in:
parent
316c973114
commit
0ba6ff3d70
|
@ -49,6 +49,8 @@ import org.bukkit.event.player.PlayerQuitEvent;
|
|||
|
||||
import javax.inject.Inject;
|
||||
import java.net.InetAddress;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
|
@ -162,7 +164,7 @@ public class PlayerOnlineListener implements Listener {
|
|||
database.executeTransaction(new WorldNameStoreTransaction(serverUUID, world));
|
||||
|
||||
InetAddress address = player.getAddress().getAddress();
|
||||
Supplier<String> getHostName = address::getHostName;
|
||||
Supplier<String> getHostName = () -> Optional.ofNullable(player.getVirtualHost()).map(InetSocketAddress::getHostName).orElse("Unknown");
|
||||
|
||||
String playerName = player.getName();
|
||||
String displayName = player.getDisplayName();
|
||||
|
|
|
@ -296,4 +296,17 @@ public class DataStoreQueries {
|
|||
}
|
||||
};
|
||||
}
|
||||
|
||||
public static Executable updateHostname(UUID playerUUID, String hostname) {
|
||||
String sql = "UPDATE " + UserInfoTable.TABLE_NAME + " SET " +
|
||||
UserInfoTable.HOSTNAME + "=?" +
|
||||
WHERE + UserInfoTable.USER_UUID + "=?";
|
||||
return new ExecStatement(sql) {
|
||||
@Override
|
||||
public void prepare(PreparedStatement statement) throws SQLException {
|
||||
statement.setString(1, hostname);
|
||||
statement.setString(2, playerUUID.toString());
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
|
@ -46,8 +46,10 @@ public class PlayerServerRegisterTransaction extends PlayerRegisterTransaction {
|
|||
protected void performOperations() {
|
||||
super.performOperations();
|
||||
long registerDate = registered.getAsLong();
|
||||
String hostname = this.hostname.get();
|
||||
|
||||
if (Boolean.FALSE.equals(query(PlayerFetchQueries.isPlayerRegisteredOnServer(playerUUID, serverUUID)))) {
|
||||
execute(DataStoreQueries.registerUserInfo(playerUUID, registerDate, serverUUID, hostname.get()));
|
||||
execute(DataStoreQueries.registerUserInfo(playerUUID, registerDate, serverUUID, hostname));
|
||||
}
|
||||
|
||||
// Updates register date to smallest possible value.
|
||||
|
@ -55,5 +57,7 @@ public class PlayerServerRegisterTransaction extends PlayerRegisterTransaction {
|
|||
if (foundRegisterDate.isPresent() && foundRegisterDate.get() > registerDate) {
|
||||
execute(DataStoreQueries.updateMainRegisterDate(playerUUID, registerDate));
|
||||
}
|
||||
|
||||
execute(DataStoreQueries.updateHostname(playerUUID, hostname));
|
||||
}
|
||||
}
|
|
@ -161,7 +161,7 @@ public class PlayerOnlineListener implements Listener {
|
|||
database.executeTransaction(new WorldNameStoreTransaction(serverUUID, world));
|
||||
|
||||
InetAddress address = player.getSocketAddress().getAddress();
|
||||
Supplier<String> getHostName = address::getHostName;
|
||||
Supplier<String> getHostName = () -> player.getSocketAddress().getHostName();
|
||||
|
||||
String playerName = player.getName();
|
||||
String displayName = player.getDisplayName();
|
||||
|
|
Loading…
Reference in New Issue