Add tags to license usage logs
This commit is contained in:
parent
98b67aba4f
commit
01a356a09d
@ -7,7 +7,6 @@ import lombok.ToString;
|
||||
import me.braydon.license.exception.APIException;
|
||||
import me.braydon.license.exception.LicenseHwidLimitExceededException;
|
||||
import me.braydon.license.exception.LicenseIpLimitExceededException;
|
||||
import org.mindrot.jbcrypt.BCrypt;
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
||||
@ -129,13 +128,10 @@ public class License {
|
||||
/**
|
||||
* Invoked when this license is used.
|
||||
*
|
||||
* @param ip the ip used
|
||||
* @param ipSalt the IP salt to use
|
||||
* @param hwid the hardware id used
|
||||
* @param hashedIp the hashed ip used
|
||||
* @param hwid the hardware id used
|
||||
*/
|
||||
public void use(@NonNull String ip, @NonNull String ipSalt, @NonNull String hwid) throws APIException {
|
||||
String hashedIp = BCrypt.hashpw(ip, ipSalt); // Hash the IP
|
||||
|
||||
public void use(@NonNull String hashedIp, @NonNull String hwid) throws APIException {
|
||||
// IP limit has been exceeded
|
||||
if (!ips.contains(hashedIp) && ips.size() >= ipLimit) {
|
||||
throw new LicenseIpLimitExceededException();
|
||||
|
@ -106,14 +106,29 @@ public final class LicenseService {
|
||||
throw new LicenseNotFoundException();
|
||||
}
|
||||
License license = optionalLicense.get(); // The license found
|
||||
String hashedIp = BCrypt.hashpw(ip, ipsSalt); // Hash the IP
|
||||
|
||||
// Log the license being used, if enabled
|
||||
if (discordService.isLogUses()) {
|
||||
// god i hate sending discord embeds, it's so big and ugly :(
|
||||
boolean newIp = !license.getIps().contains(hashedIp); // If the IP is new
|
||||
boolean newHwid = !license.getHwids().contains(hwid);
|
||||
|
||||
// Constructing tags
|
||||
StringBuilder tags = new StringBuilder();
|
||||
if (newIp) { // New IP
|
||||
tags.append("New IP");
|
||||
}
|
||||
if (newHwid) { // New HWID
|
||||
if (tags.length() > 0) {
|
||||
tags.append(" & ");
|
||||
}
|
||||
tags.append("New HWID");
|
||||
}
|
||||
long expirationDate = (license.getCreated().getTime() + license.getDuration()) / 1000L;
|
||||
discordService.sendLog(new EmbedBuilder()
|
||||
.setColor(Color.BLUE)
|
||||
.setTitle("License Used")
|
||||
.setTitle("License Used" + (!tags.isEmpty() ? " (" + tags + ")" : ""))
|
||||
.addField("License",
|
||||
"`" + MiscUtils.obfuscateKey(key) + "`",
|
||||
true
|
||||
@ -169,7 +184,7 @@ public final class LicenseService {
|
||||
throw new LicenseExpiredException();
|
||||
}
|
||||
try {
|
||||
license.use(ip, ipsSalt, hwid); // Use the license
|
||||
license.use(hashedIp, hwid); // Use the license
|
||||
repository.save(license); // Save the used license
|
||||
log.info("License key {} for product {} was used by {} ({})", key, product, ip, hwid);
|
||||
return license;
|
||||
|
Loading…
x
Reference in New Issue
Block a user