Skip to content

Commit 10601b6

Browse files
committed
Finish up 1.0.1
1 parent dc1a6b8 commit 10601b6

File tree

4 files changed

+20
-26
lines changed

4 files changed

+20
-26
lines changed

API/src/main/java/me/innectic/permissify/api/database/handlers/SQLHandler.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -451,10 +451,8 @@ public Tristate deleteGroup(String name) {
451451
if (!group.isPresent())
452452
return Tristate.NONE;
453453

454-
if (defaultGroup.isPresent() && defaultGroup.get().getName().equalsIgnoreCase(name)) {
455-
setDefaultGroup(null);
456-
}
457-
Set<UUID> players = group.get().getPlayers().keySet();
454+
if (defaultGroup.isPresent() && defaultGroup.get().getName().equalsIgnoreCase(name)) setDefaultGroup(null);
455+
Set<UUID> players = new HashSet<>(group.get().getPlayers().keySet());
458456
// Delete from the cache
459457
cachedGroups.remove(name);
460458
players.forEach(uuid -> this.removePlayerFromGroup(uuid, group.get()));
@@ -519,7 +517,6 @@ public Tristate addPlayerToGroup(UUID uuid, PermissionGroup group) {
519517
public Tristate removePlayerFromGroup(UUID uuid, PermissionGroup group) {
520518
if (!group.hasPlayer(uuid)) return Tristate.NONE;
521519
group.removePlayer(uuid);
522-
System.out.println(group.getClass().hashCode() + " - " + cachedGroups.get(group.getName()).getClass().hashCode());
523520

524521
Optional<Connection> connection = getConnection();
525522
if (!connection.isPresent()) {

Spigot/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<dependency>
2222
<groupId>org.spigotmc</groupId>
2323
<artifactId>spigot-api</artifactId>
24-
<version>1.13-pre7-R0.1-SNAPSHOT</version>
24+
<version>1.13-R0.1-SNAPSHOT</version>
2525
</dependency>
2626
<dependency>
2727
<groupId>me.innectic</groupId>

Spigot/src/main/java/me/innectic/permissify/spigot/commands/subcommand/PlayerCommand.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -206,9 +206,7 @@ public String handleRemovePermission(CommandSender sender, String[] args) {
206206
}
207207

208208
plugin.getPermissifyAPI().getDatabaseHandler().get().removePermission(targetPlayer.getUniqueId(), args[1]);
209-
if (targetPlayer.isOnline())
210-
plugin.getAttachmentManager().getAttachment(targetPlayer.getUniqueId(), Optional.empty()).ifPresent(self ->
211-
self.unsetPermission(args[1]));
209+
if (targetPlayer.isOnline()) PermissionUtil.applyPermissions(targetPlayer.getPlayer());
212210

213211
plugin.getPermissifyAPI().getDatabaseHandler().get().updateCache(targetPlayer.getUniqueId());
214212
return PermissifyConstants.PERMISSION_REMOVED_PLAYER

Spigot/src/main/java/me/innectic/permissify/spigot/utils/PermissionUtil.java

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.bukkit.entity.Player;
3232
import org.bukkit.permissions.PermissionAttachment;
3333

34+
import java.util.Objects;
3435
import java.util.Optional;
3536

3637
/**
@@ -49,18 +50,25 @@ public static boolean hasPermissionOrSuperAdmin(CommandSender sender, String per
4950
return sender instanceof CommandBlock || sender instanceof ConsoleCommandSender;
5051
}
5152

53+
private static void removeAllPermissions(Player player) {
54+
player.getEffectivePermissions().stream().map(info -> {
55+
if (info.getAttachment() == null) {
56+
// When the attachment is null, this is something coming from default Spigot
57+
return null;
58+
}
59+
return info.getAttachment();
60+
}).filter(Objects::nonNull).forEach(PermissionAttachment::remove);
61+
}
62+
5263
public static void applyPermissions(Player player) {
5364
PermissifyMain plugin = PermissifyMain.getInstance();
5465

55-
System.out.println("FIRST");
56-
plugin.getAttachmentManager().getAllAttachmentsForPlayer(player.getUniqueId()).forEach(entry -> entry.getPermissions().keySet().forEach(System.out::println));
57-
// plugin.getAttachmentManager().removeAttachment(player.getUniqueId());
66+
removeAllPermissions(player);
5867
plugin.getAttachmentManager().resetAllPermissibles(player.getUniqueId());
68+
5969
plugin.getAttachmentManager().setAttachment(player.getUniqueId(), player.addAttachment(plugin), Optional.empty());
6070
player.recalculatePermissions();
6171

62-
plugin.getAttachmentManager().getAllAttachmentsForPlayer(player.getUniqueId()).forEach(attachment -> player.getEffectivePermissions().forEach(info -> attachment.unsetPermission(info.getPermission())));
63-
6472
plugin.getPermissifyAPI().getDatabaseHandler().ifPresent(handler -> {
6573
// Check if the player should be in a default group.
6674
if (handler.getDefaultGroup().isPresent() && !handler.getDefaultGroup().get().hasPlayer(player.getUniqueId())) {
@@ -71,24 +79,15 @@ public static void applyPermissions(Player player) {
7179

7280
// Add the player's "self" permissions
7381
plugin.getAttachmentManager().getAttachment(player.getUniqueId(), Optional.empty()).ifPresent(self ->
74-
handler.getPermissions(player.getUniqueId()).forEach(permission -> {
75-
System.out.println(permission.getPermission() + " -> " + permission.isGranted());
76-
self.setPermission(permission.getPermission(), permission.isGranted());
77-
}));
82+
handler.getPermissions(player.getUniqueId()).forEach(permission -> self.setPermission(permission.getPermission(), permission.isGranted())));
7883

7984
// Add the player's group permissions
8085
handler.getGroups(player.getUniqueId()).forEach(group -> {
81-
PermissionAttachment attachment = plugin.getAttachmentManager().getAttachment(player.getUniqueId(), Optional.of(group.getName())).orElse(player.addAttachment(plugin));
82-
attachment.getPermissions().keySet().forEach(attachment::unsetPermission);
86+
PermissionAttachment attachment = player.addAttachment(plugin);
8387

84-
group.getPermissions().forEach(permission -> {
85-
System.out.println(group.getName() + ": " + permission.getPermission() + " -> " + permission.isGranted());
86-
attachment.setPermission(permission.getPermission(), permission.isGranted());
87-
});
88+
group.getPermissions().forEach(permission -> attachment.setPermission(permission.getPermission(), permission.isGranted()));
8889
plugin.getAttachmentManager().setAttachment(player.getUniqueId(), attachment, Optional.of(group.getName()));
8990
});
9091
});
91-
System.out.println("SECOND");
92-
plugin.getAttachmentManager().getAllAttachmentsForPlayer(player.getUniqueId()).forEach(entry -> entry.getPermissions().keySet().forEach(System.out::println));
9392
}
9493
}

0 commit comments

Comments
 (0)