mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-03-24 05:39:44 +00:00
added javadoc to experience tracking module
changed persistence configuration for entities, so cascade is more correct changed the way channels get their server assigned added feature to only change the exp role of a user, if he doesn't already have the new target role added the name of the needed feature, to the message indicating that a feature has been disabled updated unsetExpRole to have a status update message, because there might be a lot of users which need a role update
This commit is contained in:
@@ -19,7 +19,7 @@ public class FeatureEnabledCondition implements CommandCondition {
|
||||
String reason = "";
|
||||
if(featureName != null) {
|
||||
featureFlagValue = featureFlagManagementService.getFeatureFlagValue(featureName, context.getGuild().getIdLong());
|
||||
reason = "Feature has been disabled.";
|
||||
reason = "Feature has been disabled. Necessary feature is: " + featureName;
|
||||
}
|
||||
return ConditionResult.builder().reason(reason).result(featureFlagValue).build();
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ public class ACommand {
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@Getter
|
||||
@Setter
|
||||
@JoinColumn(name = "module_id")
|
||||
@JoinColumn(name = "module_id", nullable = false)
|
||||
private AModule module;
|
||||
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ public class AModule {
|
||||
|
||||
@OneToMany(
|
||||
fetch = FetchType.LAZY,
|
||||
cascade = CascadeType.ALL,
|
||||
cascade = {CascadeType.PERSIST, CascadeType.MERGE},
|
||||
orphanRemoval = true)
|
||||
@Builder.Default
|
||||
@JoinColumn(name = "module_id")
|
||||
|
||||
@@ -26,7 +26,7 @@ public class AChannel implements SnowFlake {
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@Getter
|
||||
@Setter
|
||||
@JoinColumn(name = "server_id")
|
||||
@JoinColumn(name = "server_id", nullable = false)
|
||||
private AServer server;
|
||||
|
||||
@Getter
|
||||
|
||||
@@ -25,7 +25,7 @@ public class AChannelGroup {
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@Getter
|
||||
@Setter
|
||||
@JoinColumn(name = "group_server")
|
||||
@JoinColumn(name = "group_server", nullable = false)
|
||||
private AServer server;
|
||||
|
||||
@ManyToMany
|
||||
|
||||
@@ -36,6 +36,7 @@ public class AEmote {
|
||||
private Boolean custom;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "emote_server_id", nullable = false)
|
||||
private AServer serverRef;
|
||||
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ public class AFeatureFlag implements SnowFlake {
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@Getter
|
||||
@Setter
|
||||
@JoinColumn(name = "server_id")
|
||||
@JoinColumn(name = "server_id", nullable = false)
|
||||
private AServer server;
|
||||
|
||||
@Getter
|
||||
|
||||
@@ -13,13 +13,14 @@ import javax.persistence.*;
|
||||
public class ARole implements SnowFlake {
|
||||
|
||||
@Id
|
||||
@Getter @Setter
|
||||
@Getter
|
||||
@Setter
|
||||
private Long id;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@Getter
|
||||
@Setter
|
||||
@JoinColumn(name = "role_server_id")
|
||||
@JoinColumn(name = "role_server_id", nullable = false)
|
||||
private AServer server;
|
||||
|
||||
@Getter
|
||||
|
||||
@@ -23,7 +23,6 @@ public class AServer implements SnowFlake {
|
||||
|
||||
@OneToMany(
|
||||
fetch = FetchType.LAZY,
|
||||
cascade = CascadeType.ALL,
|
||||
orphanRemoval = true)
|
||||
@Builder.Default
|
||||
@JoinColumn(name = "role_server_id")
|
||||
@@ -31,7 +30,7 @@ public class AServer implements SnowFlake {
|
||||
|
||||
@OneToMany(
|
||||
fetch = FetchType.LAZY,
|
||||
cascade = CascadeType.ALL,
|
||||
cascade = {CascadeType.PERSIST, CascadeType.MERGE},
|
||||
orphanRemoval = true)
|
||||
@Builder.Default
|
||||
@JoinColumn(name = "server_id")
|
||||
@@ -39,7 +38,7 @@ public class AServer implements SnowFlake {
|
||||
|
||||
@OneToMany(
|
||||
fetch = FetchType.LAZY,
|
||||
cascade = CascadeType.ALL,
|
||||
cascade = {CascadeType.PERSIST, CascadeType.MERGE},
|
||||
orphanRemoval = true)
|
||||
@Builder.Default
|
||||
@JoinColumn(name = "group_server")
|
||||
@@ -47,15 +46,17 @@ public class AServer implements SnowFlake {
|
||||
|
||||
@OneToMany(
|
||||
fetch = FetchType.LAZY,
|
||||
mappedBy = "serverReference",
|
||||
cascade = {CascadeType.PERSIST, CascadeType.MERGE})
|
||||
cascade = {CascadeType.PERSIST, CascadeType.MERGE},
|
||||
orphanRemoval = true)
|
||||
@JoinColumn(name = "serverReference")
|
||||
@Builder.Default
|
||||
private List<AUserInAServer> users = new ArrayList<>();
|
||||
|
||||
@OneToMany(
|
||||
fetch = FetchType.LAZY,
|
||||
mappedBy = "serverRef",
|
||||
cascade = {CascadeType.PERSIST, CascadeType.MERGE})
|
||||
cascade = {CascadeType.PERSIST, CascadeType.MERGE},
|
||||
orphanRemoval = true)
|
||||
@JoinColumn(name = "emote_server_id")
|
||||
@Builder.Default
|
||||
private List<AEmote> emotes = new ArrayList<>();
|
||||
|
||||
|
||||
@@ -18,7 +18,6 @@ public class AUser {
|
||||
|
||||
@OneToMany(
|
||||
fetch = FetchType.LAZY,
|
||||
mappedBy = "userReference",
|
||||
cascade = {CascadeType.PERSIST, CascadeType.MERGE})
|
||||
private List<AUserInAServer> servers;
|
||||
}
|
||||
|
||||
@@ -17,10 +17,10 @@ public class AUserInAServer {
|
||||
private Long userInServerId;
|
||||
|
||||
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
|
||||
@JoinColumn(name = "userReference")
|
||||
@JoinColumn(name = "userReference", nullable = false)
|
||||
private AUser userReference;
|
||||
|
||||
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
|
||||
@JoinColumn(name = "serverReference")
|
||||
@JoinColumn(name = "serverReference", nullable = false)
|
||||
private AServer serverReference;
|
||||
}
|
||||
|
||||
@@ -2,11 +2,10 @@ package dev.sheldan.abstracto.core.service;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.GuildChannelMember;
|
||||
import dev.sheldan.abstracto.core.models.database.AEmote;
|
||||
import dev.sheldan.abstracto.core.models.database.AServer;
|
||||
import dev.sheldan.abstracto.core.models.database.AUser;
|
||||
import net.dv8tion.jda.api.JDA;
|
||||
import net.dv8tion.jda.api.entities.Emote;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.TextChannel;
|
||||
import net.dv8tion.jda.api.entities.*;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.security.auth.login.LoginException;
|
||||
@@ -19,6 +18,7 @@ public interface BotService {
|
||||
JDA getInstance();
|
||||
GuildChannelMember getServerChannelUser(Long serverId, Long channelId, Long userId);
|
||||
Member getMemberInServer(Long serverId, Long memberId);
|
||||
Member getMemberInServer(AServer server, AUser member);
|
||||
CompletableFuture<Void> deleteMessage(Long serverId, Long channelId, Long messageId);
|
||||
Optional<Emote> getEmote(Long serverId, AEmote emote);
|
||||
Optional<TextChannel> getTextChannelFromServer(Guild serverId, Long textChannelId);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package dev.sheldan.abstracto.core.service;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.database.ARole;
|
||||
import dev.sheldan.abstracto.core.models.database.AServer;
|
||||
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Role;
|
||||
|
||||
public interface RoleService {
|
||||
@@ -10,5 +10,8 @@ public interface RoleService {
|
||||
void removeRoleFromUser(AUserInAServer aUserInAServer, ARole role);
|
||||
void markDeleted(Role role);
|
||||
void markDeleted(Long id);
|
||||
boolean isRoleInServer(AServer server, ARole role);
|
||||
Role getRoleFromGuild(ARole role);
|
||||
boolean memberHasRole(Member member, Role role);
|
||||
boolean memberHasRole(Member member, ARole role);
|
||||
boolean isRoleInServer(ARole role);
|
||||
}
|
||||
|
||||
@@ -2,10 +2,11 @@ package dev.sheldan.abstracto.core.service.management;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.database.AChannel;
|
||||
import dev.sheldan.abstracto.core.models.database.AChannelType;
|
||||
import dev.sheldan.abstracto.core.models.database.AServer;
|
||||
|
||||
public interface ChannelManagementService {
|
||||
AChannel loadChannel(Long id);
|
||||
AChannel createChannel(Long id, AChannelType type);
|
||||
AChannel createChannel(Long id, AChannelType type, AServer server);
|
||||
void markAsDeleted(Long id);
|
||||
void removeChannel(Long id);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user