aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/elytrium/limboauth/model/RegisteredPlayer.java
diff options
context:
space:
mode:
authorPetr Ilin <hevav@hevav.dev>2023-01-16 07:26:09 +0300
committerPetr Ilin <hevav@hevav.dev>2023-01-16 07:28:15 +0300
commit0e7e93353073dc36bf550de7cb352dbdd5b447de (patch)
tree8c0b3b7d9ff867a3d353a7830343351d2824b484 /src/main/java/net/elytrium/limboauth/model/RegisteredPlayer.java
parenta635de80d46eb3f967c30091283e95819d404b84 (diff)
downloadLimboAuth-0e7e93353073dc36bf550de7cb352dbdd5b447de.tar.gz
LimboAuth-0e7e93353073dc36bf550de7cb352dbdd5b447de.tar.bz2
LimboAuth-0e7e93353073dc36bf550de7cb352dbdd5b447de.zip
1.1.1 release: Client Mod support, RegisteredPlayer refactor
Diffstat (limited to 'src/main/java/net/elytrium/limboauth/model/RegisteredPlayer.java')
-rw-r--r--src/main/java/net/elytrium/limboauth/model/RegisteredPlayer.java108
1 files changed, 90 insertions, 18 deletions
diff --git a/src/main/java/net/elytrium/limboauth/model/RegisteredPlayer.java b/src/main/java/net/elytrium/limboauth/model/RegisteredPlayer.java
index 052b9f0..0b0b85c 100644
--- a/src/main/java/net/elytrium/limboauth/model/RegisteredPlayer.java
+++ b/src/main/java/net/elytrium/limboauth/model/RegisteredPlayer.java
@@ -17,8 +17,14 @@
package net.elytrium.limboauth.model;
+import at.favre.lib.crypto.bcrypt.BCrypt;
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
+import com.velocitypowered.api.proxy.Player;
+import java.net.InetSocketAddress;
+import java.util.Locale;
+import java.util.UUID;
+import net.elytrium.limboauth.Settings;
@DatabaseTable(tableName = "AUTH")
public class RegisteredPlayer {
@@ -33,6 +39,9 @@ public class RegisteredPlayer {
public static final String LOGIN_DATE_FIELD = "LOGINDATE";
public static final String UUID_FIELD = "UUID";
public static final String PREMIUM_UUID_FIELD = "PREMIUMUUID";
+ public static final String TOKEN_ISSUED_AT_FIELD = "ISSUEDTIME";
+
+ private static final BCrypt.Hasher HASHER = BCrypt.withDefaults();
@DatabaseField(canBeNull = false, columnName = NICKNAME_FIELD)
private String nickname;
@@ -41,7 +50,7 @@ public class RegisteredPlayer {
private String lowercaseNickname;
@DatabaseField(canBeNull = false, columnName = HASH_FIELD)
- private String hash;
+ private String hash = "";
@DatabaseField(columnName = IP_FIELD)
private String ip;
@@ -50,20 +59,24 @@ public class RegisteredPlayer {
private String totpToken;
@DatabaseField(columnName = REG_DATE_FIELD)
- private Long regDate;
+ private Long regDate = System.currentTimeMillis();
@DatabaseField(columnName = UUID_FIELD)
- private String uuid;
+ private String uuid = "";
@DatabaseField(columnName = RegisteredPlayer.PREMIUM_UUID_FIELD)
- private String premiumUuid;
+ private String premiumUuid = "";
@DatabaseField(columnName = LOGIN_IP_FIELD)
private String loginIp;
@DatabaseField(columnName = LOGIN_DATE_FIELD)
- private Long loginDate;
+ private Long loginDate = System.currentTimeMillis();
+
+ @DatabaseField(columnName = TOKEN_ISSUED_AT_FIELD)
+ private Long tokenIssuedAt = System.currentTimeMillis();
+ @Deprecated
public RegisteredPlayer(String nickname, String lowercaseNickname,
String hash, String ip, String totpToken, Long regDate, String uuid, String premiumUuid, String loginIp, Long loginDate) {
this.nickname = nickname;
@@ -78,68 +91,113 @@ public class RegisteredPlayer {
this.loginDate = loginDate;
}
+ public RegisteredPlayer(Player player) {
+ this(player.getUsername(), player.getUniqueId(), player.getRemoteAddress());
+ }
+
+ public RegisteredPlayer(String nickname, UUID uuid, InetSocketAddress ip) {
+ this(nickname, uuid.toString(), ip.getAddress().getHostAddress());
+ }
+
+ public RegisteredPlayer(String nickname, String uuid, String ip) {
+ this.nickname = nickname;
+ this.lowercaseNickname = nickname.toLowerCase(Locale.ROOT);
+ this.uuid = uuid;
+ this.ip = ip;
+ this.loginIp = ip;
+ }
+
public RegisteredPlayer() {
}
- public void setNickname(String nickname) {
+ public static String genHash(String password) {
+ return HASHER.hashToString(Settings.IMP.MAIN.BCRYPT_COST, password.toCharArray());
+ }
+
+ public RegisteredPlayer setNickname(String nickname) {
this.nickname = nickname;
+ this.lowercaseNickname = nickname.toLowerCase(Locale.ROOT);
+
+ return this;
}
public String getNickname() {
return this.nickname == null ? this.lowercaseNickname : this.nickname;
}
- public void setLowercaseNickname(String lowercaseNickname) {
- this.lowercaseNickname = lowercaseNickname;
- }
-
public String getLowercaseNickname() {
return this.lowercaseNickname;
}
- public void setHash(String hash) {
+ public RegisteredPlayer setPassword(String password) {
+ this.hash = genHash(password);
+ this.tokenIssuedAt = System.currentTimeMillis();
+
+ return this;
+ }
+
+ public RegisteredPlayer setHash(String hash) {
this.hash = hash;
+ this.tokenIssuedAt = System.currentTimeMillis();
+
+ return this;
}
public String getHash() {
return this.hash == null ? "" : this.hash;
}
- public void setIP(String ip) {
+ public RegisteredPlayer setIP(String ip) {
this.ip = ip;
+
+ return this;
}
public String getIP() {
return this.ip == null ? "" : this.ip;
}
- public void setTotpToken(String totpToken) {
+ public RegisteredPlayer setTotpToken(String totpToken) {
this.totpToken = totpToken;
+
+ return this;
}
public String getTotpToken() {
return this.totpToken == null ? "" : this.totpToken;
}
- public void setRegDate(Long regDate) {
+ public RegisteredPlayer setRegDate(Long regDate) {
this.regDate = regDate;
+
+ return this;
}
public long getRegDate() {
return this.regDate == null ? Long.MIN_VALUE : this.regDate;
}
- public void setUuid(String uuid) {
+ public RegisteredPlayer setUuid(String uuid) {
this.uuid = uuid;
+
+ return this;
}
public String getUuid() {
return this.uuid == null ? "" : this.uuid;
}
- public void setPremiumUuid(String premiumUuid) {
+ public RegisteredPlayer setPremiumUuid(String premiumUuid) {
this.premiumUuid = premiumUuid;
+
+ return this;
+ }
+
+ public RegisteredPlayer setPremiumUuid(UUID premiumUuid) {
+ this.premiumUuid = premiumUuid.toString();
+
+ return this;
}
public String getPremiumUuid() {
@@ -150,15 +208,29 @@ public class RegisteredPlayer {
return this.loginIp == null ? "" : this.uuid;
}
- public void setLoginIp(String loginIp) {
+ public RegisteredPlayer setLoginIp(String loginIp) {
this.loginIp = loginIp;
+
+ return this;
}
public long getLoginDate() {
return this.loginDate == null ? Long.MIN_VALUE : this.loginDate;
}
- public void setLoginDate(Long loginDate) {
+ public RegisteredPlayer setLoginDate(Long loginDate) {
this.loginDate = loginDate;
+
+ return this;
+ }
+
+ public long getTokenIssuedAt() {
+ return this.tokenIssuedAt == null ? Long.MIN_VALUE : this.tokenIssuedAt;
+ }
+
+ public RegisteredPlayer setTokenIssuedAt(Long tokenIssuedAt) {
+ this.tokenIssuedAt = tokenIssuedAt;
+
+ return this;
}
}