added command to set roles for which experience gain is disabled

and separate command to remove them from the list again
added command to see all roles for which experience gain is disabled
This commit is contained in:
Sheldan
2020-05-17 20:35:53 +02:00
parent cf1816597c
commit 0260862e8e
27 changed files with 380 additions and 13 deletions

View File

@@ -0,0 +1,29 @@
package dev.sheldan.abstracto.experience.models.database;
import dev.sheldan.abstracto.core.models.database.ARole;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
@Builder
@Entity
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "disabled_experience_roles")
@Getter
@Setter
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class ADisabledExpRole {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* Reference to the actual {@link ARole} being marked as disabled for experience gain.
*/
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "role_id", nullable = false)
private ARole role;
}

View File

@@ -0,0 +1,19 @@
package dev.sheldan.abstracto.experience.models.templates;
import dev.sheldan.abstracto.core.models.FullRole;
import dev.sheldan.abstracto.core.models.context.UserInitiatedServerContext;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.SuperBuilder;
import java.util.ArrayList;
import java.util.List;
@Getter
@Setter
@SuperBuilder
public class DisabledExperienceRolesModel extends UserInitiatedServerContext {
@Builder.Default
private List<FullRole> roles = new ArrayList<>();
}

View File

@@ -0,0 +1,14 @@
package dev.sheldan.abstracto.experience.service.management;
import dev.sheldan.abstracto.core.models.database.ARole;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.experience.models.database.ADisabledExpRole;
import java.util.List;
public interface DisabledExpRoleManagementService {
ADisabledExpRole setRoleToBeDisabledForExp(ARole role);
void removeRoleToBeDisabledForExp(ARole role);
List<ADisabledExpRole> getDisabledRolesForServer(AServer server);
boolean isExperienceDisabledForRole(ARole role);
}