mirror of
https://github.com/TotalFreedomMC/PlayerParticles.git
synced 2025-07-30 17:31:52 +00:00
Fix a NPE trying to get effects/styles for an offline player
This commit is contained in:
parent
3d5fd84822
commit
f51fae2f63
2 changed files with 14 additions and 5 deletions
|
@ -12,6 +12,7 @@ import dev.esophose.playerparticles.styles.DefaultStyles;
|
|||
import dev.esophose.playerparticles.styles.ParticleStyle;
|
||||
import dev.esophose.playerparticles.util.ParticleUtils;
|
||||
import dev.esophose.playerparticles.util.StringPlaceholders;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
|
@ -308,8 +309,16 @@ public class ParticlePair {
|
|||
*/
|
||||
public static ParticlePair getNextDefault(PPlayer pplayer) {
|
||||
PermissionManager permissionManager = PlayerParticles.getInstance().getManager(PermissionManager.class);
|
||||
List<ParticleEffect> effects = permissionManager.getEffectsUserHasPermissionFor(pplayer);
|
||||
List<ParticleStyle> styles = permissionManager.getStylesUserHasPermissionFor(pplayer);
|
||||
|
||||
List<ParticleEffect> effects;
|
||||
List<ParticleStyle> styles;
|
||||
if (pplayer.getPlayer() == null) {
|
||||
effects = Collections.emptyList();
|
||||
styles = Collections.emptyList();
|
||||
} else {
|
||||
effects = permissionManager.getEffectsUserHasPermissionFor(pplayer);
|
||||
styles = permissionManager.getStylesUserHasPermissionFor(pplayer);
|
||||
}
|
||||
|
||||
return new ParticlePair(pplayer.getUniqueId(), // @formatter:off
|
||||
pplayer.getNextActiveParticleId(),
|
||||
|
|
|
@ -64,11 +64,11 @@ public class ParticleStyleCelebration extends DefaultParticleStyle {
|
|||
if (player != null && (NMSUtil.getVersionNumber() < 8 || player.getGameMode() != GameMode.SPECTATOR) && permissionManager.isWorldEnabled(player.getWorld().getName()))
|
||||
for (ParticlePair particle : pplayer.getActiveParticles())
|
||||
if (particle.getStyle() == this)
|
||||
this.spawnFirework(player.getLocation(), pplayer, pplayer.getPlayer(), particle, random);
|
||||
this.spawnFirework(player.getLocation(), pplayer, particle, random);
|
||||
|
||||
for (FixedParticleEffect fixedEffect : pplayer.getFixedParticles())
|
||||
if (fixedEffect.getParticlePair().getStyle() == this && permissionManager.isWorldEnabled(fixedEffect.getLocation().getWorld().getName()))
|
||||
this.spawnFirework(fixedEffect.getLocation(), pplayer, null, fixedEffect.getParticlePair(), random);
|
||||
this.spawnFirework(fixedEffect.getLocation(), pplayer, fixedEffect.getParticlePair(), random);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -109,7 +109,7 @@ public class ParticleStyleCelebration extends DefaultParticleStyle {
|
|||
this.fuseEffect = ParticleEffect.FIREWORK;
|
||||
}
|
||||
|
||||
private void spawnFirework(final Location location, final PPlayer pplayer, final Player player, final ParticlePair particle, final Random random) {
|
||||
private void spawnFirework(final Location location, final PPlayer pplayer, final ParticlePair particle, final Random random) {
|
||||
double angle = random.nextDouble() * Math.PI * 2;
|
||||
double distanceFrom = this.baseDistanceFrom + random.nextDouble() * this.distanceFromRandomizer;
|
||||
double dx = MathL.sin(angle) * distanceFrom;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue