Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@
import org.bukkit.event.player.PlayerDropItemEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import org.bukkit.permissions.PermissionAttachment;

import java.util.concurrent.ConcurrentHashMap;
import java.util.HashMap;
Expand All @@ -73,16 +74,19 @@ public class BukkitPlayer extends AbstractPlayerActor {

private Player player;
private WorldEditPlugin plugin;
private PermissionAttachment permAttachment;

public BukkitPlayer(Player player) {
super(getExistingMap(WorldEditPlugin.getInstance(), player));
this.plugin = WorldEditPlugin.getInstance();
this.player = player;
this.permAttachment = player.addAttachment(plugin);
}

public BukkitPlayer(WorldEditPlugin plugin, Player player) {
this.plugin = plugin;
this.player = player;
this.permAttachment = player.addAttachment(plugin);
if (Settings.IMP.CLIPBOARD.USE_DISK) {
loadClipboardFromDisk();
}
Expand Down Expand Up @@ -239,16 +243,20 @@ public void setPermission(String permission, boolean value) {
* Permissions are used to managing WorldEdit region restrictions
* - The `/wea` command will give/remove the required bypass permission
*/
boolean usesuperperms = VaultResolver.perms == null;
if (VaultResolver.perms != null) {
if (value) {
if (!VaultResolver.perms.playerAdd(player, permission)) {
player.addAttachment(plugin).setPermission(permission, value);
usesuperperms = true;
}
} else {
if (!VaultResolver.perms.playerRemove(player, permission)) {
usesuperperms = true;
}
} else if (!VaultResolver.perms.playerRemove(player, permission)) {
player.addAttachment(plugin).setPermission(permission, value);
}
} else {
player.addAttachment(plugin).setPermission(permission, value);
}
if (usesuperperms) {
permAttachment.setPermission(permission, value);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -174,11 +174,13 @@ public boolean hasPermission(String perm) {
return permActor.hasPermission(perm);
}

@Override public boolean togglePermission(String permission) {
return permActor.hasPermission(permission);
@Override
public boolean togglePermission(String permission) {
return permActor.togglePermission(permission);
}

@Override public void setPermission(String permission, boolean value) {
@Override
public void setPermission(String permission, boolean value) {
permActor.setPermission(permission, value);
}

Expand Down