[AB-63] adding fun and entertainment related commands commands: roll, roulette, lovecalc, choose, 8ball

This commit is contained in:
Sheldan
2020-12-13 20:42:41 +01:00
parent 325264a325
commit 69aa82e26e
30 changed files with 1070 additions and 6 deletions

View File

@@ -0,0 +1,21 @@
package dev.sheldan.abstracto.utility.config;
import dev.sheldan.abstracto.core.command.config.ModuleInfo;
import dev.sheldan.abstracto.core.command.config.ModuleInterface;
import org.springframework.stereotype.Component;
@Component
public class EntertainmentModuleInterface implements ModuleInterface {
public static final String ENTERTAINMENT = "entertainment";
@Override
public ModuleInfo getInfo() {
return ModuleInfo.builder().name(ENTERTAINMENT).description("Entertainment commands").build();
}
@Override
public String getParentModule() {
return "default";
}
}

View File

@@ -0,0 +1,26 @@
package dev.sheldan.abstracto.utility.config.features;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.List;
import static dev.sheldan.abstracto.utility.config.features.UtilityFeature.ENTERTAINMENT;
@Component
public class EntertainmentFeature implements FeatureConfig {
public static final String ROULETTE_BULLETS_CONFIG_KEY = "rouletteBullets";
public static final String ROLL_DEFAULT_HIGH_KEY = "rollDefaultHigh";
@Override
public FeatureEnum getFeature() {
return ENTERTAINMENT;
}
@Override
public List<String> getRequiredSystemConfigKeys() {
return Arrays.asList(ROULETTE_BULLETS_CONFIG_KEY, ROLL_DEFAULT_HIGH_KEY);
}
}

View File

@@ -6,7 +6,7 @@ import lombok.Getter;
@Getter
public enum UtilityFeature implements FeatureEnum {
REMIND("remind"), STARBOARD("starboard"), SUGGEST("suggestion"), UTILITY("utility"),
LINK_EMBEDS("link_embeds"), REPOST_DETECTION("repostDetection");
LINK_EMBEDS("link_embeds"), REPOST_DETECTION("repostDetection"), ENTERTAINMENT("entertainment");
private String key;

View File

@@ -0,0 +1,13 @@
package dev.sheldan.abstracto.utility.models.template.commands;
import dev.sheldan.abstracto.core.models.context.SlimUserInitiatedServerContext;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.SuperBuilder;
@Getter
@Setter
@SuperBuilder
public class ChooseResponseModel extends SlimUserInitiatedServerContext {
private String chosenValue;
}

View File

@@ -0,0 +1,13 @@
package dev.sheldan.abstracto.utility.models.template.commands;
import dev.sheldan.abstracto.core.models.context.SlimUserInitiatedServerContext;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.SuperBuilder;
@Getter
@Setter
@SuperBuilder
public class EightBallResponseModel extends SlimUserInitiatedServerContext {
private String chosenKey;
}

View File

@@ -0,0 +1,15 @@
package dev.sheldan.abstracto.utility.models.template.commands;
import dev.sheldan.abstracto.core.models.context.SlimUserInitiatedServerContext;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.SuperBuilder;
@Getter
@Setter
@SuperBuilder
public class LoveCalcResponseModel extends SlimUserInitiatedServerContext {
private String firstPart;
private String secondPart;
private Integer rolled;
}

View File

@@ -0,0 +1,13 @@
package dev.sheldan.abstracto.utility.models.template.commands;
import dev.sheldan.abstracto.core.models.context.SlimUserInitiatedServerContext;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.SuperBuilder;
@Getter
@Setter
@SuperBuilder
public class RollResponseModel extends SlimUserInitiatedServerContext {
private Integer rolled;
}

View File

@@ -0,0 +1,13 @@
package dev.sheldan.abstracto.utility.models.template.commands;
import dev.sheldan.abstracto.core.models.context.SlimUserInitiatedServerContext;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.SuperBuilder;
@Getter
@Setter
@SuperBuilder
public class RouletteResponseModel extends SlimUserInitiatedServerContext {
private Boolean result;
}

View File

@@ -0,0 +1,13 @@
package dev.sheldan.abstracto.utility.service;
import net.dv8tion.jda.api.entities.Member;
import java.util.List;
public interface EntertainmentService {
String getEightBallValue(String text);
Integer getLoveCalcValue(String firstPart, String secondPart);
Integer calculateRollResult(Integer low, Integer high);
boolean executeRoulette(Member memberExecuting);
String takeChoice(List<String> choices, Member memberExecuting);
}