mirror of
https://github.com/TotalFreedomMC/PlayerParticles.git
synced 2024-05-29 16:21:18 +00:00
Delay registering permissions until all styles are loaded
This commit is contained in:
parent
2e0fc35df1
commit
1c48ff3894
|
@ -1,6 +1,6 @@
|
|||
=== v7.22 ===
|
||||
+ Added a permission playerparticles.basecommand (granted by default) which can be revoked to block access to /pp
|
||||
+ Added Polish (po_PO) translation
|
||||
+ Added Polish (pl_PL) translation
|
||||
* Fixed a ClassDefNotFoundError when editing particle data in the GUI on versions below 1.13
|
||||
* Fixed the dust-size not working for dust particles
|
||||
=== v7.21 ===
|
||||
|
|
|
@ -87,70 +87,72 @@ public class PermissionManager extends Manager {
|
|||
public PermissionManager(PlayerParticles playerParticles) {
|
||||
super(playerParticles);
|
||||
|
||||
try {
|
||||
// Register plugin permissions to Bukkit
|
||||
PluginManager pluginManager = Bukkit.getPluginManager();
|
||||
Bukkit.getScheduler().runTaskLater(playerParticles, () -> {
|
||||
try {
|
||||
// Register plugin permissions to Bukkit
|
||||
PluginManager pluginManager = Bukkit.getPluginManager();
|
||||
|
||||
Set<Permission> allPermissions = new HashSet<>();
|
||||
Set<Permission> allPermissions = new HashSet<>();
|
||||
|
||||
// Effects
|
||||
Map<String, Boolean> effectPermissions = new HashMap<>();
|
||||
for (ParticleEffect effect : ParticleEffect.values()) {
|
||||
if (!effect.isSupported())
|
||||
continue;
|
||||
// Effects
|
||||
Map<String, Boolean> effectPermissions = new HashMap<>();
|
||||
for (ParticleEffect effect : ParticleEffect.values()) {
|
||||
if (!effect.isSupported())
|
||||
continue;
|
||||
|
||||
Permission permission = new Permission("playerparticles.effect." + effect.getInternalName());
|
||||
pluginManager.addPermission(permission);
|
||||
effectPermissions.put(permission.getName(), true);
|
||||
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
|
||||
Map<String, Boolean> stylePermissions = new HashMap<>();
|
||||
for (ParticleStyle style : this.playerParticles.getManager(ParticleStyleManager.class).getStylesWithDisabled()) {
|
||||
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.max"));
|
||||
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.reset.others"));
|
||||
pluginManager.addPermission(new Permission("playerparticles.gui"));
|
||||
|
||||
pluginManager.addPermission(new Permission("playerparticles.particles.max"));
|
||||
pluginManager.addPermission(new Permission("playerparticles.particles.unlimited"));
|
||||
|
||||
pluginManager.addPermission(new Permission("playerparticles.groups.max"));
|
||||
pluginManager.addPermission(new Permission("playerparticles.groups.unlimited"));
|
||||
|
||||
pluginManager.addPermission(new Permission("playerparticles.worldguard.bypass"));
|
||||
|
||||
// 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));
|
||||
} catch (Exception e) {
|
||||
playerParticles.getLogger().warning("Failed to register permissions dynamically. Did you load PlayerParticles through means other than a restart or reload?");
|
||||
}
|
||||
|
||||
// Effects Wildcard
|
||||
allPermissions.add(new Permission("playerparticles.effect.*", effectPermissions));
|
||||
|
||||
// Styles
|
||||
Map<String, Boolean> stylePermissions = new HashMap<>();
|
||||
for (ParticleStyle style : this.playerParticles.getManager(ParticleStyleManager.class).getStylesWithDisabled()) {
|
||||
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.max"));
|
||||
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.reset.others"));
|
||||
pluginManager.addPermission(new Permission("playerparticles.gui"));
|
||||
|
||||
pluginManager.addPermission(new Permission("playerparticles.particles.max"));
|
||||
pluginManager.addPermission(new Permission("playerparticles.particles.unlimited"));
|
||||
|
||||
pluginManager.addPermission(new Permission("playerparticles.groups.max"));
|
||||
pluginManager.addPermission(new Permission("playerparticles.groups.unlimited"));
|
||||
|
||||
pluginManager.addPermission(new Permission("playerparticles.worldguard.bypass"));
|
||||
|
||||
// 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));
|
||||
} catch (Exception e) {
|
||||
playerParticles.getLogger().warning("Failed to register permissions dynamically. Did you load PlayerParticles through means other than a restart or reload?");
|
||||
}
|
||||
}, 2L);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in a new issue