Skip to content

Commit 1fdbab1

Browse files
committed
Run permission adding tasks async
1 parent d4b5426 commit 1fdbab1

File tree

1 file changed

+17
-14
lines changed

1 file changed

+17
-14
lines changed

Spigot/src/main/java/me/innectic/permissify/spigot/events/PlayerJoin.java

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import me.innectic.permissify.api.permission.Permission;
2828
import me.innectic.permissify.api.permission.PermissionGroup;
2929
import me.innectic.permissify.spigot.PermissifyMain;
30+
import org.bukkit.Bukkit;
3031
import org.bukkit.entity.Player;
3132
import org.bukkit.event.EventHandler;
3233
import org.bukkit.event.Listener;
@@ -42,20 +43,22 @@ public class PlayerJoin implements Listener {
4243

4344
@EventHandler
4445
public void onPlayerJoinEvent(PlayerJoinEvent e) {
45-
Player player = e.getPlayer();
46-
if (player == null) return;
47-
// Set the permissions of the player
48-
PermissifyMain.getInstance().getPermissifyAPI().getDatabaseHandler().ifPresent(handler -> {
49-
// Check if the player should be in a default group.
50-
if (handler.getDefaultGroup().isPresent() && !handler.getDefaultGroup().get().hasPlayer(player.getUniqueId())) {
51-
handler.addPlayerToGroup(player.getUniqueId(), handler.getDefaultGroup().get());
52-
handler.setPrimaryGroup(handler.getDefaultGroup().get(), player.getUniqueId());
53-
}
54-
handler.updateCache(player.getUniqueId());
55-
List<Permission> permissions = handler.getPermissions(player.getUniqueId());
56-
// Add the permissions to the player
57-
handler.getGroups(player.getUniqueId()).stream().map(PermissionGroup::getPermissions).forEach(permissions::addAll);
58-
permissions.forEach(permission -> player.addAttachment(PermissifyMain.getInstance(), permission.getPermission(), permission.isGranted()));
46+
Bukkit.getScheduler().runTaskAsynchronously(PermissifyMain.getInstance(), () -> {
47+
Player player = e.getPlayer();
48+
if (player == null) return;
49+
// Set the permissions of the player
50+
PermissifyMain.getInstance().getPermissifyAPI().getDatabaseHandler().ifPresent(handler -> {
51+
// Check if the player should be in a default group.
52+
if (handler.getDefaultGroup().isPresent() && !handler.getDefaultGroup().get().hasPlayer(player.getUniqueId())) {
53+
handler.addPlayerToGroup(player.getUniqueId(), handler.getDefaultGroup().get());
54+
handler.setPrimaryGroup(handler.getDefaultGroup().get(), player.getUniqueId());
55+
}
56+
handler.updateCache(player.getUniqueId());
57+
List<Permission> permissions = handler.getPermissions(player.getUniqueId());
58+
// Add the permissions to the player
59+
handler.getGroups(player.getUniqueId()).stream().map(PermissionGroup::getPermissions).forEach(permissions::addAll);
60+
permissions.forEach(permission -> player.addAttachment(PermissifyMain.getInstance(), permission.getPermission(), permission.isGranted()));
61+
});
5962
});
6063
}
6164
}

0 commit comments

Comments
 (0)