mirror of
https://github.com/TotalFreedomMC/PlayerParticles.git
synced 2025-08-11 06:45:41 +00:00
Fixed registering permissions before effects/styles were loaded
This commit is contained in:
parent
ee5b9ba7f1
commit
dd9c0a6321
3 changed files with 78 additions and 79 deletions
|
@ -10,7 +10,7 @@ sourceCompatibility = 1.8
|
||||||
targetCompatibility = 1.8
|
targetCompatibility = 1.8
|
||||||
compileJava.options.encoding = 'UTF-8'
|
compileJava.options.encoding = 'UTF-8'
|
||||||
group = 'dev.esophose'
|
group = 'dev.esophose'
|
||||||
version = '7.16'
|
version = '7.17'
|
||||||
|
|
||||||
java {
|
java {
|
||||||
withJavadocJar()
|
withJavadocJar()
|
||||||
|
|
|
@ -68,16 +68,6 @@ public class ParticleManager extends Manager implements Listener, Runnable {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void reload() {
|
public void reload() {
|
||||||
if (this.particleTask != null)
|
|
||||||
this.particleTask.cancel();
|
|
||||||
|
|
||||||
if (this.worldGuardTask != null) {
|
|
||||||
this.worldGuardTask.cancel();
|
|
||||||
this.worldGuardTask = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.particlePlayers.clear();
|
|
||||||
|
|
||||||
Bukkit.getScheduler().runTaskLater(this.playerParticles, () -> {
|
Bukkit.getScheduler().runTaskLater(this.playerParticles, () -> {
|
||||||
long ticks = Setting.TICKS_PER_PARTICLE.getLong();
|
long ticks = Setting.TICKS_PER_PARTICLE.getLong();
|
||||||
this.particleTask = Bukkit.getScheduler().runTaskTimerAsynchronously(this.playerParticles, this, 0, ticks);
|
this.particleTask = Bukkit.getScheduler().runTaskTimerAsynchronously(this.playerParticles, this, 0, ticks);
|
||||||
|
@ -97,8 +87,17 @@ public class ParticleManager extends Manager implements Listener, Runnable {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void disable() {
|
public void disable() {
|
||||||
if (this.particleTask != null)
|
if (this.particleTask != null) {
|
||||||
this.particleTask.cancel();
|
this.particleTask.cancel();
|
||||||
|
this.particleTask = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.worldGuardTask != null) {
|
||||||
|
this.worldGuardTask.cancel();
|
||||||
|
this.worldGuardTask = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.particlePlayers.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -86,82 +86,82 @@ 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();
|
|
||||||
|
|
||||||
// Don't register the permissions if we already have, could have happened because of a reload?
|
|
||||||
if (pluginManager.getPermission("playerparticles.*") != null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
Set<Permission> allPermissions = new HashSet<>();
|
|
||||||
|
|
||||||
// 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);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 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.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));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void reload() {
|
public void reload() {
|
||||||
|
Bukkit.getScheduler().runTaskLater(this.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()) {
|
||||||
|
if (!effect.isSupported())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
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.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));
|
||||||
|
}, 5L);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void disable() {
|
public void disable() {
|
||||||
|
// Unregister all PlayerParticles permissions
|
||||||
|
PluginManager pluginManager = Bukkit.getPluginManager();
|
||||||
|
for (Permission permission : pluginManager.getPermissions())
|
||||||
|
if (permission.getName().startsWith("playerparticles"))
|
||||||
|
pluginManager.removePermission(permission);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue