mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-15 20:16:34 +00:00
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:
@@ -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;
|
||||
}
|
||||
@@ -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<>();
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user