Skip to content

Commit 1117624

Browse files
committed
stuff
1 parent 905786f commit 1117624

6 files changed

Lines changed: 25 additions & 31 deletions

File tree

PotatoDiscordLink/src/main/java/com/mcdragonmasters/potatodiscordlink/PotatoDiscordLink.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ public class PotatoDiscordLink extends PotatoPlugin {
3535
private static JDA jda;
3636
@Getter
3737
private static LinkManager linkManager;
38-
@Override
3938
@SneakyThrows
39+
@Override
4040
public void onEnable() {
4141
saveDefaultConfig();
4242
INSTANCE = this;

PotatoEssentials/src/main/java/com/mcdragonmasters/potatoessentials/PotatoPlugin.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,8 @@
77

88
public abstract class PotatoPlugin extends JavaPlugin {
99
private PotatoLogger logger = null;
10-
private PotatoCommandRegistrar commandRegistrar = null;
10+
private final PotatoCommandRegistrar commandRegistrar = new PotatoCommandRegistrar(this);
1111
public PotatoCommandRegistrar getCommandRegistrar() {
12-
if (this.commandRegistrar == null) {
13-
this.commandRegistrar = new PotatoCommandRegistrar(this);
14-
}
1512
return this.commandRegistrar;
1613
}
1714
@Override

PotatoEssentials/src/main/java/com/mcdragonmasters/potatoessentials/commands/EnchantCommand.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import com.mcdragonmasters.potatoessentials.utils.PotatoCommand;
55
import com.mcdragonmasters.potatoessentials.utils.Replacer;
66
import com.mcdragonmasters.potatoessentials.utils.Utils;
7-
import dev.jorel.commandapi.CommandAPI;
87
import dev.jorel.commandapi.CommandAPICommand;
98
import dev.jorel.commandapi.arguments.Argument;
109
import dev.jorel.commandapi.arguments.EnchantmentArgument;
@@ -30,7 +29,6 @@ public EnchantCommand() {
3029

3130
@Override
3231
public void register() {
33-
CommandAPI.unregister(name);
3432
new CommandAPICommand(name)
3533
.withPermission(permission)
3634
.withArguments(playerArg)

PotatoEssentials/src/main/java/com/mcdragonmasters/potatoessentials/commands/GameModeCommand.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.mcdragonmasters.potatoessentials.commands;
22
import com.mcdragonmasters.potatoessentials.utils.PotatoCommand;
3-
import dev.jorel.commandapi.CommandAPI;
43
import dev.jorel.commandapi.CommandAPICommand;
54
import dev.jorel.commandapi.arguments.Argument;
65
import dev.jorel.commandapi.arguments.EntitySelectorArgument;
@@ -24,8 +23,6 @@ public GameModeCommand() {
2423
@Override
2524
public void register() {
2625

27-
CommandAPI.unregister("gamemode");
28-
2926
Argument<String> gmArg = new MultiLiteralArgument("gamemode",
3027
"adventure", "creative", "spectator", "survival",
3128
"a", "c", "sp", "s", "0", "1", "2", "3");

PotatoEssentials/src/main/java/com/mcdragonmasters/potatoessentials/commands/messaging/MessageCommand.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import com.mcdragonmasters.potatoessentials.utils.PotatoCommand;
55
import com.mcdragonmasters.potatoessentials.utils.Replacer;
66
import com.mcdragonmasters.potatoessentials.utils.Utils;
7-
import dev.jorel.commandapi.CommandAPI;
87
import dev.jorel.commandapi.CommandAPICommand;
98
import dev.jorel.commandapi.arguments.Argument;
109
import dev.jorel.commandapi.arguments.EntitySelectorArgument;
@@ -35,11 +34,6 @@ public MessageCommand() {
3534

3635
@Override
3736
public void register() {
38-
CommandAPI.unregister("message");
39-
CommandAPI.unregister("msg");
40-
CommandAPI.unregister("whisper");
41-
CommandAPI.unregister("w");
42-
4337
new CommandAPICommand(name)
4438
.withAliases(aliases)
4539
.withPermission(permission)

PotatoEssentials/src/main/java/com/mcdragonmasters/potatoessentials/utils/PotatoCommandRegistrar.java

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
package com.mcdragonmasters.potatoessentials.utils;
22

3-
import com.mcdragonmasters.potatoessentials.PotatoEssentials;
43
import com.mcdragonmasters.potatoessentials.PotatoPlugin;
54
import dev.jorel.commandapi.CommandAPI;
5+
import dev.jorel.commandapi.CommandAPIBukkit;
66
import dev.jorel.commandapi.InternalConfig;
77
import lombok.Getter;
8+
import lombok.Setter;
89

910
import java.lang.reflect.Field;
10-
import java.util.ArrayList;
11-
import java.util.Arrays;
12-
import java.util.HashMap;
13-
import java.util.List;
11+
import java.util.*;
12+
import java.util.function.Function;
1413
import java.util.logging.Level;
1514

1615
public class PotatoCommandRegistrar {
@@ -22,29 +21,39 @@ public class PotatoCommandRegistrar {
2221
@Getter
2322
private final List<String> registeredCommandNames = new ArrayList<>();
2423
private final HashMap<Class<? extends PotatoCommand>, PotatoCommand> commandInstances = new HashMap<>();
24+
@Setter
25+
private Function<String, Boolean> commandEnabledCheck;
2526

2627
public PotatoCommandRegistrar(PotatoPlugin plugin) {
2728
this.plugin = plugin;
2829
this.LOGGER = plugin.getLogger();
29-
PotatoEssentials.INSTANCE.getCmdAPIConfig().setNamespace(plugin.getName().toLowerCase());
30-
try {
31-
Field field = InternalConfig.class.getDeclaredField("namespace");
32-
field.setAccessible(true);
33-
field.set(CommandAPI.getConfiguration(), plugin.getName().toLowerCase());
34-
} catch (Exception e) {
35-
LOGGER.log(Level.SEVERE, "error setting namespace", e);
36-
}
30+
setCommandEnabledCheck((name) -> plugin.getConfig().getBoolean("commands."+name+".enabled"));
3731
}
3832

3933
public <T extends PotatoCommand> T getCommandInstance(Class<T> clazz) {
4034
return clazz.cast(commandInstances.get(clazz));
4135
}
4236

4337
public void register(PotatoCommand command, boolean forced) {
38+
if (!CommandAPI.getConfiguration().getNamespace().equals(plugin.getName().toLowerCase())) {
39+
try {
40+
Field field = InternalConfig.class.getDeclaredField("namespace");
41+
field.setAccessible(true);
42+
field.set(CommandAPI.getConfiguration(), plugin.getName().toLowerCase());
43+
} catch (Exception e) {
44+
LOGGER.log(Level.SEVERE, "error setting namespace", e);
45+
}
46+
}
4447
String name = command.getName();
4548
if (commandInstances.containsKey(command.getClass())) {
4649
LOGGER.warning("Command '"+command+"' was registered multiple times!");
47-
} else if (forced || Config.commandEnabled(name, plugin.getConfig())) {
50+
} else if (forced || commandEnabledCheck.apply(name)) {
51+
for (String alias : command.getAliases()) {
52+
CommandAPIBukkit.unregister(alias, false, true);
53+
CommandAPIBukkit.unregister(alias, false, false);
54+
}
55+
CommandAPIBukkit.unregister(name, false, true);
56+
CommandAPIBukkit.unregister(name, false, false);
4857
command.registrar = this;
4958
command.register();
5059
var msg = "Registering command '%s'";
@@ -63,7 +72,6 @@ public void register(List<PotatoCommand> commands) {
6372
this.register(command, false);
6473
}
6574
}
66-
6775
public void register(PotatoCommand... commands) {
6876
this.register(Arrays.asList(commands));
6977
}

0 commit comments

Comments
 (0)