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.styles.ParticleStyle;
|
||||||
import dev.esophose.playerparticles.util.ParticleUtils;
|
import dev.esophose.playerparticles.util.ParticleUtils;
|
||||||
import dev.esophose.playerparticles.util.StringPlaceholders;
|
import dev.esophose.playerparticles.util.StringPlaceholders;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
@ -308,8 +309,16 @@ public class ParticlePair {
|
||||||
*/
|
*/
|
||||||
public static ParticlePair getNextDefault(PPlayer pplayer) {
|
public static ParticlePair getNextDefault(PPlayer pplayer) {
|
||||||
PermissionManager permissionManager = PlayerParticles.getInstance().getManager(PermissionManager.class);
|
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
|
return new ParticlePair(pplayer.getUniqueId(), // @formatter:off
|
||||||
pplayer.getNextActiveParticleId(),
|
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()))
|
if (player != null && (NMSUtil.getVersionNumber() < 8 || player.getGameMode() != GameMode.SPECTATOR) && permissionManager.isWorldEnabled(player.getWorld().getName()))
|
||||||
for (ParticlePair particle : pplayer.getActiveParticles())
|
for (ParticlePair particle : pplayer.getActiveParticles())
|
||||||
if (particle.getStyle() == this)
|
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())
|
for (FixedParticleEffect fixedEffect : pplayer.getFixedParticles())
|
||||||
if (fixedEffect.getParticlePair().getStyle() == this && permissionManager.isWorldEnabled(fixedEffect.getLocation().getWorld().getName()))
|
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;
|
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 angle = random.nextDouble() * Math.PI * 2;
|
||||||
double distanceFrom = this.baseDistanceFrom + random.nextDouble() * this.distanceFromRandomizer;
|
double distanceFrom = this.baseDistanceFrom + random.nextDouble() * this.distanceFromRandomizer;
|
||||||
double dx = MathL.sin(angle) * distanceFrom;
|
double dx = MathL.sin(angle) * distanceFrom;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue