mirror of
https://github.com/PikaMug/Quests.git
synced 2024-09-29 15:37:27 +02: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.AbstractMap;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.ConcurrentModificationException;
|
|
||||||
import java.util.Enumeration;
|
import java.util.Enumeration;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@ -68,7 +67,7 @@ import org.bukkit.entity.Tameable;
|
|||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.permissions.PermissionAttachmentInfo;
|
import org.bukkit.permissions.Permission;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
import org.bukkit.potion.PotionEffect;
|
import org.bukkit.potion.PotionEffect;
|
||||||
import org.bukkit.potion.PotionEffectType;
|
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
|
* @return {@code true} if entity is a Player that has permission
|
||||||
*/
|
*/
|
||||||
public boolean canUseQuests(UUID uuid) {
|
public boolean canUseQuests(UUID uuid) {
|
||||||
if (!(Bukkit.getPlayer(uuid) instanceof Player)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
Player p = Bukkit.getPlayer(uuid);
|
Player p = Bukkit.getPlayer(uuid);
|
||||||
if (p.isOp()) {
|
if (p != null) {
|
||||||
return true;
|
for (Permission perm : getDescription().getPermissions()) {
|
||||||
}
|
if (p.hasPermission(perm.getName())) {
|
||||||
try {
|
|
||||||
for (PermissionAttachmentInfo pm : p.getEffectivePermissions()) {
|
|
||||||
if (pm.getPermission().startsWith("quests")
|
|
||||||
|| pm.getPermission().equals("*")
|
|
||||||
|| pm.getPermission().equals("*.*")) {
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (NullPointerException ne) {
|
|
||||||
// User has no permissions
|
|
||||||
} catch (ConcurrentModificationException cme) {
|
|
||||||
// Bummer. Not much we can do about it
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,25 @@ dev-url: https://github.com/PikaMug/Quests
|
|||||||
author: PikaMug
|
author: PikaMug
|
||||||
softdepend: [Citizens, CitizensBooks, Denizen, DungeonsXL, GPS, Heroes, mcMMO, Parties, PhatLoots, PlaceholderAPI, Vault, WorldGuard]
|
softdepend: [Citizens, CitizensBooks, Denizen, DungeonsXL, GPS, Heroes, mcMMO, Parties, PhatLoots, PlaceholderAPI, Vault, WorldGuard]
|
||||||
permissions:
|
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:
|
quests.quest:
|
||||||
description: View current quest objectives
|
description: View current quest objectives
|
||||||
default: true
|
default: true
|
||||||
@ -41,6 +60,24 @@ permissions:
|
|||||||
quests.compass:
|
quests.compass:
|
||||||
description: Use a Compass to target quests
|
description: Use a Compass to target quests
|
||||||
default: true
|
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:
|
quests.admin:
|
||||||
description: Display administrator help
|
description: Display administrator help
|
||||||
default: op
|
default: op
|
||||||
@ -86,6 +123,14 @@ permissions:
|
|||||||
quests.admin.drop:
|
quests.admin.drop:
|
||||||
description: Ability to drop the Quests Journal
|
description: Ability to drop the Quests Journal
|
||||||
default: op
|
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:
|
quests.editor.editor:
|
||||||
description: Ability to open Quests Editor
|
description: Ability to open Quests Editor
|
||||||
default: op
|
default: op
|
||||||
@ -98,6 +143,14 @@ permissions:
|
|||||||
quests.editor.delete:
|
quests.editor.delete:
|
||||||
description: Ability to delete existing quests
|
description: Ability to delete existing quests
|
||||||
default: op
|
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:
|
quests.events.editor:
|
||||||
description: LEGACY - Ability to open Actions Editor
|
description: LEGACY - Ability to open Actions Editor
|
||||||
default: op
|
default: op
|
||||||
@ -110,6 +163,14 @@ permissions:
|
|||||||
quests.events.delete:
|
quests.events.delete:
|
||||||
description: LEGACY - Ability to delete existing actions
|
description: LEGACY - Ability to delete existing actions
|
||||||
default: op
|
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:
|
quests.actions.editor:
|
||||||
description: Ability to open Actions Editor
|
description: Ability to open Actions Editor
|
||||||
default: op
|
default: op
|
||||||
|
Loading…
Reference in New Issue
Block a user