mirror of
https://github.com/PikaMug/Quests.git
synced 2025-02-10 01:21:30 +01:00
Update method of permission checking, fixes #1313
This commit is contained in:
parent
a5251dd8ce
commit
44f9373e5b
@ -26,7 +26,6 @@ import java.net.URLClassLoader;
|
||||
import java.util.AbstractMap;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.ConcurrentModificationException;
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
@ -68,7 +67,7 @@ import org.bukkit.entity.Tameable;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.permissions.PermissionAttachmentInfo;
|
||||
import org.bukkit.permissions.Permission;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
@ -3508,25 +3507,13 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
|
||||
* @return {@code true} if entity is a Player that has permission
|
||||
*/
|
||||
public boolean canUseQuests(UUID uuid) {
|
||||
if (!(Bukkit.getPlayer(uuid) instanceof Player)) {
|
||||
return false;
|
||||
}
|
||||
Player p = Bukkit.getPlayer(uuid);
|
||||
if (p.isOp()) {
|
||||
return true;
|
||||
}
|
||||
try {
|
||||
for (PermissionAttachmentInfo pm : p.getEffectivePermissions()) {
|
||||
if (pm.getPermission().startsWith("quests")
|
||||
|| pm.getPermission().equals("*")
|
||||
|| pm.getPermission().equals("*.*")) {
|
||||
if (p != null) {
|
||||
for (Permission perm : getDescription().getPermissions()) {
|
||||
if (p.hasPermission(perm.getName())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
} catch (NullPointerException ne) {
|
||||
// User has no permissions
|
||||
} catch (ConcurrentModificationException cme) {
|
||||
// Bummer. Not much we can do about it
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -8,6 +8,25 @@ dev-url: https://github.com/PikaMug/Quests
|
||||
author: PikaMug
|
||||
softdepend: [Citizens, CitizensBooks, Denizen, DungeonsXL, GPS, Heroes, mcMMO, Parties, PhatLoots, PlaceholderAPI, Vault, WorldGuard]
|
||||
permissions:
|
||||
quests.*:
|
||||
description: Access ALL Quests functionality
|
||||
default: op
|
||||
children:
|
||||
quests.quest: true
|
||||
quests.questinfo: true
|
||||
quests.quests: true
|
||||
quests.list: true
|
||||
quests.take: true
|
||||
quests.quit: true
|
||||
quests.stats: true
|
||||
quests.top: true
|
||||
quests.info: true
|
||||
quests.journal: true
|
||||
quests.compass: true
|
||||
quests.admin.*: true
|
||||
quests.editor.*: true
|
||||
quests.events.*: true
|
||||
quests.actions.*: true
|
||||
quests.quest:
|
||||
description: View current quest objectives
|
||||
default: true
|
||||
@ -41,6 +60,24 @@ permissions:
|
||||
quests.compass:
|
||||
description: Use a Compass to target quests
|
||||
default: true
|
||||
quests.admin.*:
|
||||
description: Access all Questadmin functionality
|
||||
default: op
|
||||
children:
|
||||
quests.admin: true
|
||||
quests.admin.stats: true
|
||||
quests.admin.give: true
|
||||
quests.admin.quit: true
|
||||
quests.admin.points: true
|
||||
quests.admin.takepoints: true
|
||||
quests.admin.givepoints: true
|
||||
quests.admin.finish: true
|
||||
quests.admin.nextstage: true
|
||||
quests.admin.setstage: true
|
||||
quests.admin.reset: true
|
||||
quests.admin.remove: true
|
||||
quests.admin.reload: true
|
||||
quests.admin.drop: true
|
||||
quests.admin:
|
||||
description: Display administrator help
|
||||
default: op
|
||||
@ -86,6 +123,14 @@ permissions:
|
||||
quests.admin.drop:
|
||||
description: Ability to drop the Quests Journal
|
||||
default: op
|
||||
quests.editor.*:
|
||||
description: Access all Quests Editor functionality
|
||||
default: op
|
||||
children:
|
||||
quests.editor.editor: true
|
||||
quests.editor.create: true
|
||||
quests.editor.edit: true
|
||||
quests.editor.delete: true
|
||||
quests.editor.editor:
|
||||
description: Ability to open Quests Editor
|
||||
default: op
|
||||
@ -98,6 +143,14 @@ permissions:
|
||||
quests.editor.delete:
|
||||
description: Ability to delete existing quests
|
||||
default: op
|
||||
quests.events.*:
|
||||
description: LEGACY - Access all Actions Editor functionality
|
||||
default: op
|
||||
children:
|
||||
quests.events.editor: true
|
||||
quests.events.create: true
|
||||
quests.events.edit: true
|
||||
quests.events.delete: true
|
||||
quests.events.editor:
|
||||
description: LEGACY - Ability to open Actions Editor
|
||||
default: op
|
||||
@ -110,6 +163,14 @@ permissions:
|
||||
quests.events.delete:
|
||||
description: LEGACY - Ability to delete existing actions
|
||||
default: op
|
||||
quests.actions.*:
|
||||
description: Access all Actions Editor functionality
|
||||
default: op
|
||||
children:
|
||||
quests.actions.editor: true
|
||||
quests.actions.create: true
|
||||
quests.actions.edit: true
|
||||
quests.actions.delete: true
|
||||
quests.actions.editor:
|
||||
description: Ability to open Actions Editor
|
||||
default: op
|
||||
|
Loading…
Reference in New Issue
Block a user