added description/long help and usage to all the current commands and updated a few of existing ones

added help info objects to the commands who missed them
changed all commands to be templated and removed the hard coded strings to only rely on templates (other commands might only want to use the direct string)
fixed handling of null parameters/submodules in help command
fixed experience module not showing up in help command
This commit is contained in:
Sheldan
2020-04-28 20:02:03 +02:00
parent 93f587bf26
commit 1fc459f65e
142 changed files with 274 additions and 50 deletions

View File

@@ -38,12 +38,12 @@ public class ExpScale extends AbstractConditionableCommand {
public CommandConfiguration getConfiguration() {
List<Parameter> parameters = new ArrayList<>();
parameters.add(Parameter.builder().name("scale").type(Double.class).build());
HelpInfo helpInfo = HelpInfo.builder().longHelp("The new scale of experience on this server.").usage("expScale").build();
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("expScale")
.module(ExperienceModule.EXPERIENCE)
.description("Sets the experience scale of this server to this value.")
.causesReaction(true)
.templated(true)
.parameters(parameters)
.help(helpInfo)
.build();

View File

@@ -2,7 +2,9 @@ package dev.sheldan.abstracto.experience.commands;
import dev.sheldan.abstracto.core.command.config.ModuleInfo;
import dev.sheldan.abstracto.core.command.config.ModuleInterface;
import org.springframework.stereotype.Component;
@Component
public class ExperienceModule implements ModuleInterface {
public static final String EXPERIENCE = "experience";

View File

@@ -67,11 +67,11 @@ public class LeaderBoardCommand extends AbstractConditionableCommand {
public CommandConfiguration getConfiguration() {
List<Parameter> parameters = new ArrayList<>();
parameters.add(Parameter.builder().name("page").optional(true).type(Integer.class).build());
HelpInfo helpInfo = HelpInfo.builder().longHelp("Shows the leaderboard, first 10 places or given page.").usage("leaderboard").build();
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("leaderboard")
.module(ExperienceModule.EXPERIENCE)
.description("Shows the leaderboard, first 10 places or given page.")
.templated(true)
.causesReaction(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -60,11 +60,11 @@ public class Rank extends AbstractConditionableCommand {
@Override
public CommandConfiguration getConfiguration() {
List<Parameter> parameters = new ArrayList<>();
HelpInfo helpInfo = HelpInfo.builder().longHelp("Shows the leaderboard, first 10 places or given page.").usage("rank").build();
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("rank")
.module(ExperienceModule.EXPERIENCE)
.description("Shows your experience, rank and level on this server.")
.templated(true)
.causesReaction(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -54,11 +54,11 @@ public class SetExpRole extends AbstractConditionableCommand {
List<Parameter> parameters = new ArrayList<>();
parameters.add(Parameter.builder().name("level").type(Integer.class).build());
parameters.add(Parameter.builder().name("roleId").type(Long.class).build());
HelpInfo helpInfo = HelpInfo.builder().longHelp("Sets the role to a certain level").usage("setExpRole <level> <roleId>").build();
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("setExpRole")
.module(ExperienceModule.EXPERIENCE)
.description("Sets the role to a certain level")
.templated(true)
.causesReaction(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -35,11 +35,11 @@ public class SyncRoles extends AbstractConditionableCommand {
@Override
public CommandConfiguration getConfiguration() {
List<Parameter> parameters = new ArrayList<>();
HelpInfo helpInfo = HelpInfo.builder().longHelp("Syncs the role of the current known users with their respective xp.").usage("syncExpRoles").build();
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("syncExpRoles")
.module(ExperienceModule.EXPERIENCE)
.description("Syncs the roles of the users with their respective experience.")
.templated(true)
.causesReaction(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -40,11 +40,11 @@ public class UnSetExpRole extends AbstractConditionableCommand {
public CommandConfiguration getConfiguration() {
List<Parameter> parameters = new ArrayList<>();
parameters.add(Parameter.builder().name("roleId").type(Long.class).build());
HelpInfo helpInfo = HelpInfo.builder().longHelp("Removes the role from the experience tracking").usage("unSetExpRole <roleId>").build();
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("unSetExpRole")
.module(ExperienceModule.EXPERIENCE)
.description("Removes the role from experience tracking")
.templated(true)
.causesReaction(true)
.parameters(parameters)
.help(helpInfo)

View File

@@ -0,0 +1 @@
Changes the experience scale of this server to the new given value.

View File

@@ -0,0 +1,2 @@
Changes the experience scale on this server. This will only affect messages in the future. This scales the experience *after* the calculation has been done.
So if the range is 10-25, a random experience in this range will be determined and *then* multiplied by this scale.

View File

@@ -0,0 +1,3 @@
Shows 10 members of the sever in the form of a leader board.
The information include posted messages/gained experience/current level and rank within the server.
An optional parameter is possible to chose a page. So, `leaderboard 3` would show members from rank 30 to 40.

View File

@@ -0,0 +1 @@
Shows your messages, tracked experience, current level and the experience needed to the next level.

View File

@@ -0,0 +1,2 @@
This causes the given role to be awarded at the given level. This will remove previously levels this role was assigned to, and also recalculate the users of the previous levels.
This will not, however, award the users the new role immediately. This needs to be done by a separate `syncExpRole`.

View File

@@ -0,0 +1,3 @@
This is a process, which iterates over all tracked users and checks if the current experience role aligns with what they should have according to configuration.
If this is not the case, the role is updated. This is necessary after you added a new role to the experience system. This process might take a while to complete
and a progress indicator is shown.

View File

@@ -0,0 +1,3 @@
Removes the role from experience tracking, so users do not gain the role when they reach the configured level.
Executing this means that users currently owning this role, lose it and their role will be recalculated.
This process might take a while depending on the users. A progress indicator is shown