mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2025-06-27 19:24:43 +02:00
Permission stuff
This commit is contained in:
@ -31,6 +31,7 @@ public class BukkitPlayer extends PlotPlayer {
|
||||
private long last = 0;
|
||||
public HashSet<String> hasPerm = new HashSet<>();
|
||||
public HashSet<String> noPerm = new HashSet<>();
|
||||
public boolean offline;
|
||||
|
||||
/**
|
||||
* Please do not use this method. Instead use BukkitUtil.getPlayer(Player), as it caches player objects.
|
||||
@ -40,6 +41,11 @@ public class BukkitPlayer extends PlotPlayer {
|
||||
this.player = player;
|
||||
}
|
||||
|
||||
public BukkitPlayer(final Player player, boolean offline) {
|
||||
this.player = player;
|
||||
this.offline = offline;
|
||||
}
|
||||
|
||||
public long getPreviousLogin() {
|
||||
if (last == 0) {
|
||||
last = player.getLastPlayed();
|
||||
@ -78,6 +84,9 @@ public class BukkitPlayer extends PlotPlayer {
|
||||
this.hasPerm.add(perm);
|
||||
return true;
|
||||
}
|
||||
if (offline && EconHandler.manager != null) {
|
||||
return EconHandler.manager.hasPermission(getName(), perm);
|
||||
}
|
||||
return this.player.hasPermission(perm);
|
||||
}
|
||||
|
||||
@ -106,7 +115,7 @@ public class BukkitPlayer extends PlotPlayer {
|
||||
|
||||
@Override
|
||||
public boolean isOnline() {
|
||||
return this.player.isOnline();
|
||||
return !offline && this.player.isOnline();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -123,7 +132,7 @@ public class BukkitPlayer extends PlotPlayer {
|
||||
@Override
|
||||
public void setAttribute(String key) {
|
||||
key = "plotsquared_user_attributes." + key;
|
||||
EconHandler.manager.setPermission(this, key, true);
|
||||
EconHandler.manager.setPermission(getName(), key, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -141,7 +150,7 @@ public class BukkitPlayer extends PlotPlayer {
|
||||
@Override
|
||||
public void removeAttribute(String key) {
|
||||
key = "plotsquared_user_attributes." + key;
|
||||
EconHandler.manager.setPermission(this, key, false);
|
||||
EconHandler.manager.setPermission(getName(), key, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -4,8 +4,10 @@ import net.milkbowl.vault.economy.Economy;
|
||||
import net.milkbowl.vault.permission.Permission;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||
|
||||
import com.intellectualcrafters.plot.PS;
|
||||
import com.intellectualcrafters.plot.object.OfflinePlotPlayer;
|
||||
import com.intellectualcrafters.plot.object.PlotPlayer;
|
||||
import com.intellectualcrafters.plot.util.EconHandler;
|
||||
@ -68,12 +70,17 @@ public class BukkitEconHandler extends EconHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPermission(PlotPlayer player, String perm, boolean value) {
|
||||
public void setPermission(String player, String perm, boolean value) {
|
||||
if (value) {
|
||||
perms.playerAdd(((BukkitPlayer) player).player, perm);
|
||||
perms.playerAdd((World) null, player, perm);
|
||||
}
|
||||
else {
|
||||
perms.playerRemove(((BukkitPlayer) player).player, perm);
|
||||
perms.playerRemove((World) null, player, perm);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String player, String perm) {
|
||||
return perms.playerHas((String) null, Bukkit.getOfflinePlayer(player), perm);
|
||||
}
|
||||
}
|
||||
|
@ -118,7 +118,7 @@ public class BukkitUtil extends BlockManager {
|
||||
}
|
||||
Player player = OfflinePlayerUtil.loadPlayer(op);
|
||||
player.loadData();
|
||||
return new BukkitPlayer(player);
|
||||
return new BukkitPlayer(player, true);
|
||||
}
|
||||
|
||||
public static PlotPlayer getPlayer(final Player player) {
|
||||
|
@ -141,7 +141,7 @@ public class SpongePlayer extends PlotPlayer {
|
||||
@Override
|
||||
public void setAttribute(String key) {
|
||||
key = "plotsquared_user_attributes." + key;
|
||||
EconHandler.manager.setPermission(this, key, true);
|
||||
EconHandler.manager.setPermission(getName(), key, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -156,7 +156,7 @@ public class SpongePlayer extends PlotPlayer {
|
||||
@Override
|
||||
public void removeAttribute(String key) {
|
||||
key = "plotsquared_user_attributes." + key;
|
||||
EconHandler.manager.setPermission(this, key, false);
|
||||
EconHandler.manager.setPermission(getName(), key, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Reference in New Issue
Block a user