Skip to content

Commit a684df9

Browse files
committed
fix permissions registration
1 parent c630253 commit a684df9

2 files changed

Lines changed: 17 additions & 1 deletion

File tree

src/main/java/pro/cloudnode/smp/cloudnodemsg/CloudnodeMSG.java

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

33
import org.bukkit.entity.Player;
44
import org.bukkit.metadata.MetadataValue;
5+
import org.bukkit.permissions.Permission;
56
import org.bukkit.plugin.java.JavaPlugin;
67
import org.jetbrains.annotations.NotNull;
78
import pro.cloudnode.smp.cloudnodemsg.command.IgnoreCommand;
@@ -30,6 +31,8 @@ public void onEnable() {
3031
saveDefaultConfig();
3132
reload();
3233

34+
Permissions.register();
35+
3336
Objects.requireNonNull(getCommand("cloudnodemsg")).setExecutor(new MainCommand());
3437
Objects.requireNonNull(getCommand("message")).setExecutor(new MessageCommand());
3538
Objects.requireNonNull(getCommand("reply")).setExecutor(new ReplyCommand());

src/main/java/pro/cloudnode/smp/cloudnodemsg/Permissions.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,18 @@
33
import org.bukkit.Bukkit;
44
import org.bukkit.permissions.Permission;
55
import org.bukkit.permissions.PermissionDefault;
6+
import org.jetbrains.annotations.NotNull;
67
import org.jspecify.annotations.NullMarked;
78

9+
import java.util.ArrayDeque;
10+
import java.util.Queue;
11+
812
@NullMarked
913
public final class Permissions {
1014
private static final String NAME = "cloudnodemsg";
1115

16+
private static final Queue<Permission> REGISTRATION_QUEUE = new ArrayDeque<>();
17+
1218
public static final Permission USE = create(
1319
"use",
1420
"Allows access to the private message (/msg) and reply (/r) commands",
@@ -78,7 +84,14 @@ private static Permission create(
7884
) {
7985
final var permission = create(node, description);
8086
permission.setDefault(permissionDefault);
81-
Bukkit.getPluginManager().addPermission(permission);
87+
REGISTRATION_QUEUE.add(permission);
8288
return permission;
8389
}
90+
91+
public static void register() {
92+
final var pm = Bukkit.getPluginManager();
93+
while (!REGISTRATION_QUEUE.isEmpty()) {
94+
pm.addPermission(REGISTRATION_QUEUE.poll());
95+
}
96+
}
8497
}

0 commit comments

Comments
 (0)