mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-12 11:17:58 +00:00
added template support to echo
replaced HashMaps for templates with concrete models, so the interface is easier known added rendering method for objects directly added default parameters available for commands split up service beans for server/channel into management and service bean added server reference in AChannel refactored join/leave listener
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
package dev.sheldan.abstracto.core.management;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.AChannel;
|
||||
import dev.sheldan.abstracto.core.models.AChannelType;
|
||||
|
||||
public interface ChannelManagementService {
|
||||
AChannel loadChannel(Long id);
|
||||
AChannel createChannel(Long id, AChannelType type);
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package dev.sheldan.abstracto.core.management;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.AChannel;
|
||||
import dev.sheldan.abstracto.core.models.AServer;
|
||||
import dev.sheldan.abstracto.core.models.PostTarget;
|
||||
|
||||
public interface PostTargetManagement {
|
||||
void createPostTarget(String name, AChannel targetChanel, AServer server);
|
||||
void createOrUpdate(String name, AChannel targetChannel, AServer server);
|
||||
void createOrUpdate(String name, Long channelId, AServer server);
|
||||
void createOrUpdate(String name, Long channelId, Long serverId);
|
||||
PostTarget getPostTarget(String name, AServer server);
|
||||
PostTarget getPostTarget(String name, Long serverId);
|
||||
void updatePostTarget(PostTarget target, AChannel newTargetChannel, AServer server);
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package dev.sheldan.abstracto.core.management;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.ARole;
|
||||
|
||||
public interface RoleManagementService {
|
||||
ARole createRole(Long id);
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package dev.sheldan.abstracto.core.management;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.AChannel;
|
||||
import dev.sheldan.abstracto.core.models.AServer;
|
||||
import dev.sheldan.abstracto.core.models.PostTarget;
|
||||
|
||||
public interface ServerManagementService {
|
||||
AServer createServer(Long id);
|
||||
AServer loadServer(Long id);
|
||||
void addChannelToServer(AServer server, AChannel channel);
|
||||
AChannel getPostTarget(Long serverId, String name);
|
||||
AChannel getPostTarget(Long serverId, PostTarget target);
|
||||
AChannel getPostTarget(AServer server, PostTarget target);
|
||||
AChannel getPostTarget(AServer server, String name);
|
||||
}
|
||||
@@ -1,9 +1,6 @@
|
||||
package dev.sheldan.abstracto.core.models;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.*;
|
||||
import net.dv8tion.jda.api.entities.ChannelType;
|
||||
|
||||
import javax.persistence.*;
|
||||
@@ -24,6 +21,10 @@ public class AChannel implements SnowFlake {
|
||||
@ManyToMany(mappedBy = "channels")
|
||||
private Set<ChannelGroup> groups;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@Getter @Setter
|
||||
private AServer server;
|
||||
|
||||
@Getter
|
||||
@Enumerated(EnumType.STRING)
|
||||
private AChannelType type;
|
||||
|
||||
@@ -25,7 +25,11 @@ public class AServer implements SnowFlake {
|
||||
@Builder.Default
|
||||
private List<ARole> roles = new ArrayList<>();
|
||||
|
||||
@OneToMany(fetch = FetchType.LAZY)
|
||||
@OneToMany(
|
||||
fetch = FetchType.LAZY,
|
||||
mappedBy = "server",
|
||||
cascade = CascadeType.ALL,
|
||||
orphanRemoval = true)
|
||||
@Getter
|
||||
@Builder.Default
|
||||
private List<AChannel> channels = new ArrayList<>();
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
package dev.sheldan.abstracto.core.service;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.AChannel;
|
||||
import dev.sheldan.abstracto.core.models.AChannelType;
|
||||
|
||||
public interface ChannelService {
|
||||
AChannel loadChannel(Long id);
|
||||
AChannel createChannel(Long id, AChannelType type);
|
||||
void sendTextInAChannel(String text, AChannel channel);
|
||||
}
|
||||
|
||||
@@ -1,14 +1,7 @@
|
||||
package dev.sheldan.abstracto.core.service;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.AChannel;
|
||||
import dev.sheldan.abstracto.core.models.AServer;
|
||||
import dev.sheldan.abstracto.core.models.PostTarget;
|
||||
|
||||
public interface PostTargetService {
|
||||
void createPostTarget(String name, AChannel targetChanel, AServer server);
|
||||
void createOrUpdate(String name, AChannel targetChannel, AServer server);
|
||||
void createOrUpdate(String name, Long channelId, AServer server);
|
||||
void createOrUpdate(String name, Long channelId, Long serverId);
|
||||
PostTarget getPostTarget(String name, AServer server);
|
||||
void updatePostTarget(PostTarget target, AChannel newTargetChannel, AServer server);
|
||||
void sendTextInPostTarget(String text, PostTarget target);
|
||||
}
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
package dev.sheldan.abstracto.core.service;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.ARole;
|
||||
|
||||
public interface RoleService {
|
||||
ARole createRole(Long id);
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
package dev.sheldan.abstracto.core.service;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.AChannel;
|
||||
import dev.sheldan.abstracto.core.models.AServer;
|
||||
|
||||
public interface ServerService {
|
||||
AServer createServer(Long id);
|
||||
AServer loadServer(Long id);
|
||||
void addChannelToServer(AServer server, AChannel channel);
|
||||
}
|
||||
Reference in New Issue
Block a user