mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-03-29 23:02:49 +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:
@@ -44,7 +44,6 @@ public class ChannelListener extends ListenerAdapter {
|
||||
AServer serverObject = serverRepository.getOne(event.getGuild().getIdLong());
|
||||
TextChannel createdChannel = event.getChannel();
|
||||
AChannelType type = AChannel.getAChannelType(createdChannel.getType());
|
||||
AChannel newChannel = channelManagementService.createChannel(createdChannel.getIdLong(), type);
|
||||
serverManagementService.addChannelToServer(serverObject, newChannel);
|
||||
channelManagementService.createChannel(createdChannel.getIdLong(), type, serverObject);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@ import dev.sheldan.abstracto.core.exception.ChannelException;
|
||||
import dev.sheldan.abstracto.core.exception.GuildException;
|
||||
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 lombok.extern.slf4j.Slf4j;
|
||||
import net.dv8tion.jda.api.JDA;
|
||||
import net.dv8tion.jda.api.JDABuilder;
|
||||
@@ -69,6 +71,11 @@ public class BotServiceBean implements BotService {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Member getMemberInServer(AServer server, AUser member) {
|
||||
return getMemberInServer(server.getId(), member.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> deleteMessage(Long serverId, Long channelId, Long messageId) {
|
||||
Optional<TextChannel> textChannelOptional = getTextChannelFromServer(serverId, channelId);
|
||||
|
||||
@@ -3,11 +3,11 @@ package dev.sheldan.abstracto.core.service;
|
||||
import dev.sheldan.abstracto.core.exception.GuildException;
|
||||
import dev.sheldan.abstracto.core.exception.RoleException;
|
||||
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 dev.sheldan.abstracto.core.service.management.RoleManagementService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Role;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -72,12 +72,27 @@ public class RoleServiceBean implements RoleService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isRoleInServer(AServer server, ARole role) {
|
||||
Optional<Guild> guildById = botService.getGuildById(server.getId());
|
||||
public Role getRoleFromGuild(ARole role) {
|
||||
Optional<Guild> guildById = botService.getGuildById(role.getServer().getId());
|
||||
if(guildById.isPresent()) {
|
||||
return guildById.get().getRoleById(role.getId()) != null;
|
||||
return guildById.get().getRoleById(role.getId());
|
||||
} else {
|
||||
throw new GuildException(String.format("Failed to load guild %s.", server.getId()));
|
||||
throw new GuildException(String.format("Failed to load guild %s.", role.getServer().getId()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean memberHasRole(Member member, Role role) {
|
||||
return member.getRoles().stream().anyMatch(role1 -> role1.getIdLong() == role.getIdLong());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean memberHasRole(Member member, ARole role) {
|
||||
return member.getRoles().stream().anyMatch(role1 -> role1.getIdLong() == role.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isRoleInServer(ARole role) {
|
||||
return getRoleFromGuild(role) != null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,8 +104,7 @@ public class StartupServiceBean implements Startup {
|
||||
GuildChannel channel1 = available.stream().filter(channel -> channel.getIdLong() == aLong).findFirst().get();
|
||||
log.trace("Adding new channel: {}", aLong);
|
||||
AChannelType type = AChannel.getAChannelType(channel1.getType());
|
||||
AChannel newChannel = channelManagementService.createChannel(channel1.getIdLong(), type);
|
||||
serverManagementService.addChannelToServer(existingServer, newChannel);
|
||||
channelManagementService.createChannel(channel1.getIdLong(), type, existingServer);
|
||||
});
|
||||
|
||||
Set<Long> noLongAvailable = SetUtils.difference(knownChannelsIds, existingChannelsIds);
|
||||
|
||||
@@ -2,6 +2,7 @@ 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;
|
||||
import dev.sheldan.abstracto.core.repository.ChannelRepository;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -20,9 +21,16 @@ public class ChannelManagementServiceBean implements ChannelManagementService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public AChannel createChannel(Long id, AChannelType type) {
|
||||
public AChannel createChannel(Long id, AChannelType type, AServer server) {
|
||||
log.info("Creating channel {} with type {}", id, type);
|
||||
return repository.save(AChannel.builder().id(id).type(type).deleted(false).build());
|
||||
AChannel build = AChannel
|
||||
.builder()
|
||||
.id(id)
|
||||
.type(type)
|
||||
.server(server)
|
||||
.deleted(false)
|
||||
.build();
|
||||
return repository.save(build);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -22,7 +22,6 @@ public class ConfigManagementServiceBean implements ConfigManagementService {
|
||||
createConfig(serverId, name, value);
|
||||
} else {
|
||||
config.setStringValue(value);
|
||||
configRepository.save(config);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +32,6 @@ public class ConfigManagementServiceBean implements ConfigManagementService {
|
||||
createConfig(serverId, name, value);
|
||||
} else {
|
||||
config.setDoubleValue(value);
|
||||
configRepository.save(config);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,7 +93,6 @@ public class ConfigManagementServiceBean implements ConfigManagementService {
|
||||
public void setDoubleValue(Long serverId, String name, Double value) {
|
||||
AConfig config = loadConfig(serverId, name);
|
||||
config.setDoubleValue(value);
|
||||
configRepository.save(config);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -14,7 +14,13 @@ public class RoleManagementServiceBean implements RoleManagementService {
|
||||
|
||||
@Override
|
||||
public ARole createRole(Long id, AServer server) {
|
||||
return repository.save(ARole.builder().id(id).server(server).deleted(false).build());
|
||||
ARole build = ARole
|
||||
.builder()
|
||||
.id(id)
|
||||
.server(server)
|
||||
.deleted(false)
|
||||
.build();
|
||||
return repository.save(build);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -25,6 +31,5 @@ public class RoleManagementServiceBean implements RoleManagementService {
|
||||
@Override
|
||||
public void markDeleted(ARole role) {
|
||||
role.setDeleted(true);
|
||||
repository.save(role);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,7 +42,6 @@ public class ServerManagementServiceBean implements ServerManagementService {
|
||||
public void addChannelToServer(AServer server, AChannel channel) {
|
||||
server.getChannels().add(channel);
|
||||
channel.setServer(server);
|
||||
repository.save(server);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user