mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-04 16:45:44 +00:00
added jda utilities dependency
added modmail with some simple features (chat between user and moderator), and initial server selection (currently allows all servers, and does not consider the modmail feature) added the initial commands, not all of them hold logic currently added some checks to not crash when a command has null configuration changed systemconfig to also have a long value, because double is not fit for all cases added locking mechanism, to effectively lock the whole table without using the ... proper locking mechanism (needs to be reviewed) changed interface in channel service to be a message channel instead of a textChannel changed starboard post to be a user in a server instead of only user
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
package dev.sheldan.abstracto.core.command.models;
|
||||
|
||||
public enum TableLocks {
|
||||
CHANNELS
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package dev.sheldan.abstracto.core.listener;
|
||||
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
|
||||
public interface PrivateMessageReceivedListener extends FeatureAware {
|
||||
void execute(Message message);
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package dev.sheldan.abstracto.core.models;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.database.AServer;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
|
||||
@Setter
|
||||
@Getter
|
||||
@Builder
|
||||
public class FullGuild {
|
||||
private AServer server;
|
||||
private Guild guild;
|
||||
}
|
||||
@@ -43,15 +43,6 @@ public class AChannel implements SnowFlake {
|
||||
@Column
|
||||
private Boolean deleted;
|
||||
|
||||
public static AChannelType getAChannelType(ChannelType type) {
|
||||
switch (type) {
|
||||
case TEXT: return AChannelType.TEXT;
|
||||
case PRIVATE: return AChannelType.DM;
|
||||
case VOICE: return AChannelType.VOICE;
|
||||
case CATEGORY: return AChannelType.CATEGORY;
|
||||
default: return AChannelType.UNKOWN;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
|
||||
@@ -1,5 +1,17 @@
|
||||
package dev.sheldan.abstracto.core.models.database;
|
||||
|
||||
import net.dv8tion.jda.api.entities.ChannelType;
|
||||
|
||||
public enum AChannelType {
|
||||
TEXT, DM, VOICE, NEWS, CATEGORY, UNKOWN
|
||||
TEXT, DM, VOICE, NEWS, CATEGORY, UNKOWN;
|
||||
|
||||
public static AChannelType getAChannelType(ChannelType type) {
|
||||
switch (type) {
|
||||
case TEXT: return AChannelType.TEXT;
|
||||
case PRIVATE: return AChannelType.DM;
|
||||
case VOICE: return AChannelType.VOICE;
|
||||
case CATEGORY: return AChannelType.CATEGORY;
|
||||
default: return AChannelType.UNKOWN;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,10 @@ public class AConfig {
|
||||
@Setter
|
||||
private Double doubleValue;
|
||||
|
||||
@Column
|
||||
@Setter
|
||||
private Long longValue;
|
||||
|
||||
@OneToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "server_id", nullable = false)
|
||||
@Getter
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
package dev.sheldan.abstracto.core.service;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.database.AServer;
|
||||
import dev.sheldan.abstracto.templating.model.MessageToSend;
|
||||
import dev.sheldan.abstracto.core.models.database.AChannel;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.entities.MessageChannel;
|
||||
import net.dv8tion.jda.api.entities.MessageEmbed;
|
||||
import net.dv8tion.jda.api.entities.TextChannel;
|
||||
|
||||
@@ -12,14 +14,16 @@ import java.util.concurrent.CompletableFuture;
|
||||
|
||||
public interface ChannelService {
|
||||
void sendTextInAChannel(String text, AChannel channel);
|
||||
void sendTextInAChannel(String text, TextChannel channel);
|
||||
void sendTextInAChannel(String text, MessageChannel channel);
|
||||
CompletableFuture<Message> sendTextInAChannelFuture(String text, AChannel channel);
|
||||
CompletableFuture<Message> sendTextInAChannelFuture(String text, TextChannel channel);
|
||||
CompletableFuture<Message> sendTextInAChannelFuture(String text, MessageChannel channel);
|
||||
CompletableFuture<Message> sendEmbedInAChannelFuture(MessageEmbed embed, AChannel channel);
|
||||
CompletableFuture<Message> sendEmbedInAChannelFuture(MessageEmbed embed, TextChannel channel);
|
||||
CompletableFuture<Message> sendEmbedInAChannelFuture(MessageEmbed embed, MessageChannel channel);
|
||||
List<CompletableFuture<Message>> sendMessageToEndInAChannel(MessageToSend messageToSend, AChannel channel);
|
||||
List<CompletableFuture<Message>> sendMessageToEndInTextChannel(MessageToSend messageToSend, TextChannel textChannel);
|
||||
List<CompletableFuture<Message>> sendMessageToEndInTextChannel(MessageToSend messageToSend, MessageChannel textChannel);
|
||||
Optional<TextChannel> getTextChannelInGuild(Long serverId, Long channelId);
|
||||
void editMessageInAChannel(MessageToSend messageToSend, AChannel channel, Long messageId);
|
||||
void editMessageInAChannel(MessageToSend messageToSend, TextChannel channel, Long messageId);
|
||||
void editMessageInAChannel(MessageToSend messageToSend, MessageChannel channel, Long messageId);
|
||||
|
||||
CompletableFuture<TextChannel> createTextChannel(String name, AServer server, Long categoryId);
|
||||
}
|
||||
|
||||
@@ -2,9 +2,12 @@ package dev.sheldan.abstracto.core.service;
|
||||
|
||||
public interface ConfigService {
|
||||
Double getDoubleValue(String name, Long serverId);
|
||||
Long getLongValue(String name, Long serverId);
|
||||
Double getDoubleValue(String name, Long serverId, Double defaultValue);
|
||||
String getStringValue(String name, Long serverId, String defaultValue);
|
||||
Long getLongValue(String name, Long serverId, Long defaultValue);
|
||||
void setDoubleValue(String name, Long serverId, Double value);
|
||||
void setLongValue(String name, Long serverId, Long value);
|
||||
void setStringValue(String name, Long serverId, String value);
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
package dev.sheldan.abstracto.core.service;
|
||||
|
||||
import dev.sheldan.abstracto.core.command.models.TableLocks;
|
||||
|
||||
public interface LockService {
|
||||
void lockTable(TableLocks toLock);
|
||||
}
|
||||
@@ -8,5 +8,6 @@ public interface ChannelManagementService {
|
||||
AChannel loadChannel(Long id);
|
||||
AChannel createChannel(Long id, AChannelType type, AServer server);
|
||||
AChannel markAsDeleted(Long id);
|
||||
boolean channelExists(Long id);
|
||||
void removeChannel(Long id);
|
||||
}
|
||||
|
||||
@@ -7,10 +7,12 @@ public interface ConfigManagementService {
|
||||
AConfig setOrCreateDoubleValue(Long serverId, String name, Double value);
|
||||
AConfig createConfig(Long serverId, String name, String value);
|
||||
AConfig createConfig(Long serverId, String name, Double value);
|
||||
AConfig createConfig(Long serverId, String name, Long value);
|
||||
AConfig createIfNotExists(Long serverId, String name, String value);
|
||||
AConfig createIfNotExists(Long serverId, String name, Double value);
|
||||
AConfig loadConfig(Long serverId, String name);
|
||||
boolean configExists(Long serverId, String name);
|
||||
AConfig setDoubleValue(Long serverId, String name, Double value);
|
||||
AConfig setLongValue(Long serverId, String name, Long value);
|
||||
AConfig setStringValue(Long serverId, String name, String value);
|
||||
}
|
||||
|
||||
@@ -5,10 +5,13 @@ import dev.sheldan.abstracto.core.models.database.AUser;
|
||||
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface UserInServerManagementService {
|
||||
AUserInAServer loadUser(Long serverId, Long userId);
|
||||
AUserInAServer loadUser(AServer server, AUser user);
|
||||
AUserInAServer loadUser(Member member);
|
||||
AUserInAServer createUserInServer(Member member);
|
||||
AUserInAServer createUserInServer(Long guildId, Long userId);
|
||||
List<AUserInAServer> getUserInAllServers(Long userId);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user