Skip to content

Commit b884d09

Browse files
committed
Improve ReloadCommand nad DispatcherCommands.
1 parent 233cbf4 commit b884d09

7 files changed

Lines changed: 57 additions & 15 deletions

File tree

automessage-core/src/main/java/com/github/imdmk/automessage/AutoMessagePlugin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ void enable(@NotNull PluginSettings settings) {
9696
.commands(
9797
new DisableCommand(messageDispatcherConfig, messageService),
9898
new EnableCommand(messageDispatcherConfig, messageService),
99-
new ReloadCommand(logger, configManager, messageService)
99+
new ReloadCommand(logger, configManager, taskScheduler, messageService)
100100
)
101101

102102
.build();

automessage-core/src/main/java/com/github/imdmk/automessage/command/dispatcher/DisableCommand.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,14 @@ public DisableCommand(
2727

2828
@Execute
2929
void disable(@Context CommandSender sender) {
30+
if (!dispatcherConfig.isEnabled()) {
31+
messageService.send(sender, n -> n.dispatcherMessages.dispatcherAlreadyDisabled());
32+
return;
33+
}
34+
3035
dispatcherConfig.setEnabled(false);
3136
dispatcherConfig.save();
37+
3238
messageService.send(sender, n -> n.dispatcherMessages.dispatcherDisabled());
3339
}
3440
}

automessage-core/src/main/java/com/github/imdmk/automessage/command/dispatcher/EnableCommand.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,14 @@ public EnableCommand(
2727

2828
@Execute
2929
void enable(@Context CommandSender sender) {
30+
if (dispatcherConfig.isEnabled()) {
31+
messageService.send(sender, n -> n.dispatcherMessages.dispatcherAlreadyEnabled());
32+
return;
33+
}
34+
3035
dispatcherConfig.setEnabled(true);
3136
dispatcherConfig.save();
37+
3238
messageService.send(sender, n -> n.dispatcherMessages.dispatcherEnabled());
3339
}
3440
}

automessage-core/src/main/java/com/github/imdmk/automessage/command/dispatcher/messages/DispatcherMessages.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ public interface DispatcherMessages {
66

77
Notice dispatcherEnabled();
88

9+
Notice dispatcherAlreadyEnabled();
10+
911
Notice dispatcherDisabled();
1012

13+
Notice dispatcherAlreadyDisabled();
1114
}

automessage-core/src/main/java/com/github/imdmk/automessage/command/dispatcher/messages/DispatcherMessagesImpl.java

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,43 @@
66

77
public final class DispatcherMessagesImpl extends OkaeriConfig implements DispatcherMessages {
88

9-
@Comment({"#", "# Message shown when automatic message dispatching gets enabled.", "#"})
9+
@Comment({"#", "# Sent when automatic message dispatching is successfully enabled.", "#"})
1010
Notice dispatcherEnabled = Notice.chat(
11-
"<dark_gray>• <green>Automatic messages have been enabled.<dark_gray>"
11+
"<dark_gray>• <green>Automatic messages have been <bold>enabled</bold>.<dark_gray>"
1212
);
1313

14-
@Comment({"#", "# Message shown when automatic message dispatching gets disabled.", "#"})
14+
@Comment({"#", "# Sent when a user attempts to enable dispatching, but it is already active.", "#"})
15+
Notice dispatcherAlreadyEnabled = Notice.chat(
16+
"<dark_gray>• <yellow>Automatic messages are already enabled.<dark_gray>"
17+
);
18+
19+
@Comment({"#", "# Sent when automatic message dispatching is successfully disabled.", "#"})
1520
Notice dispatcherDisabled = Notice.chat(
16-
"<dark_gray>• <red>Automatic messages have been disabled.<dark_gray>"
21+
"<dark_gray>• <red>Automatic messages have been <bold>disabled</bold>.<dark_gray>"
22+
);
23+
24+
@Comment({"#", "# Sent when a user attempts to disable dispatching, but it is already inactive.", "#"})
25+
Notice dispatcherAlreadyDisabled = Notice.chat(
26+
"<dark_gray>• <yellow>Automatic messages are already disabled.<dark_gray>"
1727
);
1828

1929
@Override
2030
public Notice dispatcherEnabled() {
2131
return dispatcherEnabled;
2232
}
2333

34+
@Override
35+
public Notice dispatcherAlreadyEnabled() {
36+
return dispatcherAlreadyEnabled;
37+
}
38+
2439
@Override
2540
public Notice dispatcherDisabled() {
2641
return dispatcherDisabled;
2742
}
43+
44+
@Override
45+
public Notice dispatcherAlreadyDisabled() {
46+
return dispatcherAlreadyDisabled;
47+
}
2848
}

automessage-core/src/main/java/com/github/imdmk/automessage/command/reload/ReloadCommand.java

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.github.imdmk.automessage.config.ConfigManager;
44
import com.github.imdmk.automessage.platform.logger.PluginLogger;
5+
import com.github.imdmk.automessage.platform.scheduler.TaskScheduler;
56
import com.github.imdmk.automessage.shared.message.MessageService;
67
import com.github.imdmk.automessage.shared.validate.Validator;
78
import dev.rollczi.litecommands.annotations.command.Command;
@@ -11,34 +12,37 @@
1112
import org.bukkit.command.CommandSender;
1213
import org.jetbrains.annotations.NotNull;
1314

14-
import java.util.concurrent.CompletableFuture;
15-
1615
@Command(name = "automessage reload")
1716
@Permission("command.automessage.reload")
1817
public final class ReloadCommand {
1918

2019
private final PluginLogger logger;
2120
private final ConfigManager configManager;
21+
private final TaskScheduler taskScheduler;
2222
private final MessageService messageService;
2323

2424
public ReloadCommand(
2525
@NotNull PluginLogger logger,
2626
@NotNull ConfigManager configManager,
27+
@NotNull TaskScheduler taskScheduler,
2728
@NotNull MessageService messageService
2829
) {
2930
this.logger = Validator.notNull(logger, "logger");
3031
this.configManager = Validator.notNull(configManager, "configManager");
32+
this.taskScheduler = Validator.notNull(taskScheduler, "taskScheduler");
3133
this.messageService = Validator.notNull(messageService, "messageService");
3234
}
3335

3436
@Execute
3537
void reload(@Context CommandSender sender) {
36-
CompletableFuture.runAsync(configManager::loadAll)
37-
.thenAccept(v -> messageService.send(sender, n -> n.reloadMessages.configReloadedSuccess()))
38-
.exceptionally(e -> {
39-
logger.error(e, "Failed to reload plugin config");
40-
messageService.send(sender, n -> n.reloadMessages.configReloadFailed());
41-
return null;
42-
});
38+
taskScheduler.runAsync(() -> {
39+
try {
40+
configManager.loadAll();
41+
messageService.send(sender, n -> n.reloadMessages.configReloadedSuccess());
42+
} catch (Exception e) {
43+
logger.error(e, "Failed to reload plugin config");
44+
messageService.send(sender, n -> n.reloadMessages.configReloadFailed());
45+
}
46+
});
4347
}
4448
}

automessage-core/src/main/java/com/github/imdmk/automessage/scheduled/dispatcher/MessageDispatcherConfig.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import com.github.imdmk.automessage.scheduled.selector.MessageSelectorType;
55
import eu.okaeri.configs.annotation.Comment;
66
import eu.okaeri.configs.serdes.OkaeriSerdesPack;
7-
import eu.okaeri.configs.serdes.commons.SerdesCommons;
87
import org.jetbrains.annotations.NotNull;
98

109
import java.time.Duration;
@@ -27,6 +26,10 @@ public void setEnabled(boolean enabled) {
2726
this.enabled = enabled;
2827
}
2928

29+
public boolean isEnabled() {
30+
return enabled;
31+
}
32+
3033
@Override
3134
public @NotNull OkaeriSerdesPack getSerdesPack() {
3235
return registry -> {

0 commit comments

Comments
 (0)