mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-03-06 00:15:32 +00:00
[AB-132] fixing experience job not creating user experience records in the database
fixing setup command not being considered templated changing column name for counters fixing liquibase configuration for creating postgres functions fixing duration format expcetion model not available in the template enabling builds for hotfix/bugfix branches
This commit is contained in:
@@ -15,4 +15,6 @@ public class ExperienceGainResult {
|
||||
private Long newExperience;
|
||||
private Integer newLevel;
|
||||
private Long newMessageCount;
|
||||
@Builder.Default
|
||||
private boolean createUserExperience = false;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package dev.sheldan.abstracto.experience.models;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
public class ServerExperience {
|
||||
private Long serverId;
|
||||
@Builder.Default
|
||||
private List<Long> userInServerIds = new ArrayList<>();
|
||||
}
|
||||
@@ -7,6 +7,7 @@ import dev.sheldan.abstracto.core.utils.CompletableFutureList;
|
||||
import dev.sheldan.abstracto.experience.models.LeaderBoard;
|
||||
import dev.sheldan.abstracto.experience.models.LeaderBoardEntry;
|
||||
import dev.sheldan.abstracto.experience.models.RoleCalculationResult;
|
||||
import dev.sheldan.abstracto.experience.models.ServerExperience;
|
||||
import dev.sheldan.abstracto.experience.models.database.AExperienceLevel;
|
||||
import dev.sheldan.abstracto.experience.models.database.AExperienceRole;
|
||||
import dev.sheldan.abstracto.experience.models.database.AUserExperience;
|
||||
@@ -35,7 +36,7 @@ public interface AUserExperienceService {
|
||||
* containing a list of {@link AUserInAServer} which should gain experience in the minute used as key in the HashMap
|
||||
* @return
|
||||
*/
|
||||
Map<Long, List<AServer>> getRuntimeExperience();
|
||||
Map<Long, List<ServerExperience>> getRuntimeExperience();
|
||||
|
||||
/**
|
||||
* Calculates the appropriate level of the given {@link AUserExperience} according to the given {@link AExperienceLevel}
|
||||
@@ -64,7 +65,7 @@ public interface AUserExperienceService {
|
||||
* of each user by 1.
|
||||
* @param serverExp The list of {@link AServer} containing the users which get experience
|
||||
*/
|
||||
CompletableFuture<Void> handleExperienceGain(List<AServer> serverExp);
|
||||
CompletableFuture<Void> handleExperienceGain(List<ServerExperience> serverExp);
|
||||
|
||||
/**
|
||||
* Calculates the currently appropriate {@link AExperienceRole} for the given user and updates the role on the
|
||||
|
||||
@@ -7,6 +7,7 @@ import dev.sheldan.abstracto.experience.models.database.LeaderBoardEntryResult;
|
||||
import dev.sheldan.abstracto.experience.models.database.AUserExperience;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* Service used to manage the record in the {@link AUserExperience} table
|
||||
@@ -19,6 +20,9 @@ public interface UserExperienceManagementService {
|
||||
*/
|
||||
AUserExperience findUserInServer(AUserInAServer aUserInAServer);
|
||||
|
||||
Optional<AUserExperience> findByUserInServerIdOptional(Long userInServerId);
|
||||
AUserExperience findByUserInServerId(Long userInServerId);
|
||||
|
||||
/**
|
||||
* Creates a {@link AUserExperience} object with the default values (0 xp, 0 messages) for the given {@link AUserInAServer} object.
|
||||
* @param aUserInAServer The {@link AUserInAServer} to create the {@link AUserExperience} object for.
|
||||
|
||||
Reference in New Issue
Block a user