mirror of
https://github.com/TotalFreedomMC/PlayerParticles.git
synced 2025-07-06 05:51:22 +00:00
Register plugin permissions with Bukkit
This commit is contained in:
parent
dc020d5bf8
commit
e994c49bb1
4 changed files with 113 additions and 55 deletions
|
@ -2,10 +2,10 @@
|
||||||
* TODO: v7.0
|
* TODO: v7.0
|
||||||
* + Add ability to create/manage fixed effects from the GUI
|
* + Add ability to create/manage fixed effects from the GUI
|
||||||
* * Convert fixed effect ids into names
|
* * Convert fixed effect ids into names
|
||||||
* + Add effect/style settings folder that lets you disable effects/style and edit style properties
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
* + Added effect/style settings folder that lets you disable effects/style and edit style properties
|
||||||
* + Added setting to disable particles while in combat
|
* + Added setting to disable particles while in combat
|
||||||
* * /ppo now uses your permissions instead of the player you are targetting
|
* * /ppo now uses your permissions instead of the player you are targetting
|
||||||
* + Added effect/style name customization through config files
|
* + Added effect/style name customization through config files
|
||||||
|
|
|
@ -7,11 +7,18 @@ import dev.esophose.playerparticles.particles.PPlayer;
|
||||||
import dev.esophose.playerparticles.particles.ParticleEffect;
|
import dev.esophose.playerparticles.particles.ParticleEffect;
|
||||||
import dev.esophose.playerparticles.styles.ParticleStyle;
|
import dev.esophose.playerparticles.styles.ParticleStyle;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
import org.bukkit.command.ConsoleCommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.permissions.Permissible;
|
import org.bukkit.permissions.Permissible;
|
||||||
|
import org.bukkit.permissions.Permission;
|
||||||
|
import org.bukkit.plugin.PluginManager;
|
||||||
|
|
||||||
public class PermissionManager extends Manager {
|
public class PermissionManager extends Manager {
|
||||||
|
|
||||||
|
@ -54,7 +61,7 @@ public class PermissionManager extends Manager {
|
||||||
/**
|
/**
|
||||||
* Checks if a Permissible has a PlayerParticles permission with a sub-permission
|
* Checks if a Permissible has a PlayerParticles permission with a sub-permission
|
||||||
*
|
*
|
||||||
* @param p The Permissibhle
|
* @param p The Permissible
|
||||||
* @param subPermission The sub-permission
|
* @param subPermission The sub-permission
|
||||||
* @return True if the Player has permission
|
* @return True if the Player has permission
|
||||||
*/
|
*/
|
||||||
|
@ -66,6 +73,57 @@ public class PermissionManager extends Manager {
|
||||||
|
|
||||||
public PermissionManager(PlayerParticles playerParticles) {
|
public PermissionManager(PlayerParticles playerParticles) {
|
||||||
super(playerParticles);
|
super(playerParticles);
|
||||||
|
|
||||||
|
// Register plugin permissions to Bukkit
|
||||||
|
PluginManager pluginManager = Bukkit.getPluginManager();
|
||||||
|
|
||||||
|
Set<Permission> allPermissions = new HashSet<>();
|
||||||
|
|
||||||
|
// Effects
|
||||||
|
Map<String, Boolean> effectPermissions = new HashMap<>();
|
||||||
|
for (ParticleEffect effect : ParticleEffect.values()) {
|
||||||
|
Permission permission = new Permission("playerparticles.effect." + effect.getInternalName());
|
||||||
|
pluginManager.addPermission(permission);
|
||||||
|
effectPermissions.put(permission.getName(), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Effects Wildcard
|
||||||
|
allPermissions.add(new Permission("playerparticles.effect.*", effectPermissions));
|
||||||
|
|
||||||
|
// Styles
|
||||||
|
List<ParticleStyle> styles = this.playerParticles.getManager(ParticleStyleManager.class).getStylesWithDisabled();
|
||||||
|
Map<String, Boolean> stylePermissions = new HashMap<>();
|
||||||
|
for (ParticleStyle style : styles) {
|
||||||
|
Permission permission = new Permission("playerparticles.style." + style.getInternalName());
|
||||||
|
pluginManager.addPermission(permission);
|
||||||
|
stylePermissions.put(permission.getName(), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Styles Wildcard
|
||||||
|
allPermissions.add(new Permission("playerparticles.style.*", stylePermissions));
|
||||||
|
|
||||||
|
// Fixed
|
||||||
|
pluginManager.addPermission(new Permission("playerparticles.fixed"));
|
||||||
|
pluginManager.addPermission(new Permission("playerparticles.fixed.unlimited"));
|
||||||
|
pluginManager.addPermission(new Permission("playerparticles.fixed.clear"));
|
||||||
|
pluginManager.addPermission(new Permission("playerparticles.fixed.teleport"));
|
||||||
|
|
||||||
|
// Misc
|
||||||
|
pluginManager.addPermission(new Permission("playerparticles.reload"));
|
||||||
|
pluginManager.addPermission(new Permission("playerparticles.override"));
|
||||||
|
pluginManager.addPermission(new Permission("playerparticles.gui"));
|
||||||
|
pluginManager.addPermission(new Permission("playerparticles.particles.unlimited"));
|
||||||
|
pluginManager.addPermission(new Permission("playerparticles.groups.unlimited"));
|
||||||
|
|
||||||
|
// Register all non-child permissions
|
||||||
|
Map<String, Boolean> childPermissions = new HashMap<>();
|
||||||
|
for (Permission permission : allPermissions) {
|
||||||
|
pluginManager.addPermission(permission);
|
||||||
|
childPermissions.put(permission.getName(), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Register all permissions as a child to the global plugin permission
|
||||||
|
pluginManager.addPermission(new Permission("playerparticles.*", childPermissions));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -7,8 +7,8 @@ author: Esophose
|
||||||
website: https://www.spigotmc.org/resources/playerparticles.40261/
|
website: https://www.spigotmc.org/resources/playerparticles.40261/
|
||||||
softdepend: [PlaceholderAPI]
|
softdepend: [PlaceholderAPI]
|
||||||
commands:
|
commands:
|
||||||
pp:
|
pp:
|
||||||
description: The main PlayerParticles command. By default, opens the GUI.
|
description: The main PlayerParticles command. By default, opens the GUI.
|
||||||
ppo:
|
ppo:
|
||||||
description: Allows executing a /pp command for another player.
|
description: Allows executing a /pp command for another player.
|
||||||
permission: playerparticles.other
|
permission: playerparticles.override
|
||||||
|
|
|
@ -14,18 +14,18 @@
|
||||||
#
|
#
|
||||||
# Use the following format for adding new groups:
|
# Use the following format for adding new groups:
|
||||||
# group-name:
|
# group-name:
|
||||||
# display-name: 'My Amazing Group'
|
# display-name: 'My Amazing Group'
|
||||||
# gui-icon: 'ENDER_CHEST'
|
# gui-icon: 'ENDER_CHEST'
|
||||||
# permission: 'playerparticles.group.group-name'
|
# permission: 'playerparticles.group.group-name'
|
||||||
# allow-permission-override: true
|
# allow-permission-override: true
|
||||||
# 1:
|
# 1:
|
||||||
# effect: 'dust'
|
# effect: 'dust'
|
||||||
# style: 'wings'
|
# style: 'wings'
|
||||||
# data: '255 255 255'
|
# data: '255 255 255'
|
||||||
# 2:
|
# 2:
|
||||||
# effect: 'cloud'
|
# effect: 'cloud'
|
||||||
# style: 'overhead'
|
# style: 'overhead'
|
||||||
# data: ''
|
# data: ''
|
||||||
#
|
#
|
||||||
# What everything means:
|
# What everything means:
|
||||||
# group-name: The name of the group, how it will be applied by using /pp group load <group-name>.
|
# group-name: The name of the group, how it will be applied by using /pp group load <group-name>.
|
||||||
|
@ -42,41 +42,41 @@
|
||||||
# https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
|
# https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
|
||||||
|
|
||||||
raincloud:
|
raincloud:
|
||||||
display-name: 'Raincloud'
|
display-name: 'Raincloud'
|
||||||
gui-icon: 'ENDER_CHEST'
|
gui-icon: 'ENDER_CHEST'
|
||||||
permission: ''
|
permission: ''
|
||||||
allow-permission-override: false
|
allow-permission-override: false
|
||||||
1:
|
1:
|
||||||
effect: 'cloud'
|
effect: 'cloud'
|
||||||
style: 'overhead'
|
style: 'overhead'
|
||||||
data: ''
|
data: ''
|
||||||
2:
|
2:
|
||||||
effect: 'rain'
|
effect: 'rain'
|
||||||
style: 'overhead'
|
style: 'overhead'
|
||||||
data: ''
|
data: ''
|
||||||
rainbows:
|
rainbows:
|
||||||
display-name: 'Rainbows'
|
display-name: 'Rainbows'
|
||||||
gui-icon: 'ENDER_CHEST'
|
gui-icon: 'ENDER_CHEST'
|
||||||
permission: ''
|
permission: ''
|
||||||
allow-permission-override: false
|
allow-permission-override: false
|
||||||
1:
|
1:
|
||||||
effect: 'dust'
|
effect: 'dust'
|
||||||
style: 'orbit'
|
style: 'orbit'
|
||||||
data: 'rainbow'
|
data: 'rainbow'
|
||||||
2:
|
2:
|
||||||
effect: 'entity_effect'
|
effect: 'entity_effect'
|
||||||
style: 'feet'
|
style: 'feet'
|
||||||
data: 'rainbow'
|
data: 'rainbow'
|
||||||
angel:
|
angel:
|
||||||
display-name: 'Angel'
|
display-name: 'Angel'
|
||||||
gui-icon: 'ENDER_CHEST'
|
gui-icon: 'ENDER_CHEST'
|
||||||
permission: ''
|
permission: ''
|
||||||
allow-permission-override: false
|
allow-permission-override: false
|
||||||
1:
|
1:
|
||||||
effect: 'dust'
|
effect: 'dust'
|
||||||
style: 'wings'
|
style: 'wings'
|
||||||
data: '255 255 255'
|
data: '255 255 255'
|
||||||
2:
|
2:
|
||||||
effect: 'dust'
|
effect: 'dust'
|
||||||
style: 'halo'
|
style: 'halo'
|
||||||
data: '255 255 0'
|
data: '255 255 0'
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue