mirror of
https://github.com/TotalFreedomMC/PlayerParticles.git
synced 2025-07-03 04:21:20 +00:00
Extra API validation, added return values to most API methods
This commit is contained in:
parent
ed6787ffaa
commit
d176162462
1 changed files with 267 additions and 130 deletions
|
@ -22,6 +22,7 @@ import java.util.Map;
|
|||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
@ -122,21 +123,24 @@ public final class PlayerParticlesAPI {
|
|||
*
|
||||
* @param player The player to add to
|
||||
* @param particle The particle to add
|
||||
* @return The ParticlePair that was added or null if failed
|
||||
*/
|
||||
public void addActivePlayerParticle(@NotNull Player player, @NotNull ParticlePair particle) {
|
||||
@Nullable
|
||||
public ParticlePair addActivePlayerParticle(@NotNull Player player, @NotNull ParticlePair particle) {
|
||||
Objects.requireNonNull(particle);
|
||||
|
||||
DataManager dataManager = this.playerParticles.getManager(DataManager.class);
|
||||
PPlayer pplayer = this.getPPlayer(player);
|
||||
if (pplayer == null)
|
||||
return;
|
||||
return null;
|
||||
|
||||
ParticleGroup particleGroup = pplayer.getActiveParticleGroup();
|
||||
if (particleGroup.getParticles().containsKey(particle.getId()))
|
||||
throw new IllegalArgumentException("A particle with the id " + particle.getId() + " already exists");
|
||||
throw new IllegalArgumentException("A particle already exists with the id " + particle.getId());
|
||||
|
||||
pplayer.getActiveParticleGroup().getParticles().put(particle.getId(), particle);
|
||||
dataManager.saveParticleGroup(player.getUniqueId(), pplayer.getActiveParticleGroup());
|
||||
return particle;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -145,9 +149,11 @@ public final class PlayerParticlesAPI {
|
|||
* @param player The player to add to
|
||||
* @param effect The effect of the particle
|
||||
* @param style The style of the particle
|
||||
* @return The ParticlePair that was added or null if failed
|
||||
*/
|
||||
public void addActivePlayerParticle(@NotNull Player player, @NotNull ParticleEffect effect, @NotNull ParticleStyle style) {
|
||||
this.addActivePlayerParticle(player, effect, style, null, null, null);
|
||||
@Nullable
|
||||
public ParticlePair addActivePlayerParticle(@NotNull Player player, @NotNull ParticleEffect effect, @NotNull ParticleStyle style) {
|
||||
return this.addActivePlayerParticle(player, effect, style, null, null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -156,10 +162,12 @@ public final class PlayerParticlesAPI {
|
|||
* @param player The player to add to
|
||||
* @param effect The effect of the particle
|
||||
* @param style The style of the particle
|
||||
* @param colorData The color data of the particle
|
||||
* @param colorData The color data of the particle.
|
||||
* @return The ParticlePair that was added or null if failed
|
||||
*/
|
||||
public void addActivePlayerParticle(@NotNull Player player, @NotNull ParticleEffect effect, @NotNull ParticleStyle style, @NotNull OrdinaryColor colorData) {
|
||||
this.addActivePlayerParticle(player, effect, style, colorData, null, null);
|
||||
@Nullable
|
||||
public ParticlePair addActivePlayerParticle(@NotNull Player player, @NotNull ParticleEffect effect, @NotNull ParticleStyle style, @NotNull OrdinaryColor colorData) {
|
||||
return this.addActivePlayerParticle(player, effect, style, colorData, null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -169,9 +177,11 @@ public final class PlayerParticlesAPI {
|
|||
* @param effect The effect of the particle
|
||||
* @param style The style of the particle
|
||||
* @param noteColorData The note color data of the particle
|
||||
* @return The ParticlePair that was added or null if failed
|
||||
*/
|
||||
public void addActivePlayerParticle(@NotNull Player player, @NotNull ParticleEffect effect, @NotNull ParticleStyle style, @NotNull NoteColor noteColorData) {
|
||||
this.addActivePlayerParticle(player, effect, style, null, noteColorData, null);
|
||||
@Nullable
|
||||
public ParticlePair addActivePlayerParticle(@NotNull Player player, @NotNull ParticleEffect effect, @NotNull ParticleStyle style, @NotNull NoteColor noteColorData) {
|
||||
return this.addActivePlayerParticle(player, effect, style, null, noteColorData, null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -181,9 +191,11 @@ public final class PlayerParticlesAPI {
|
|||
* @param effect The effect of the particle
|
||||
* @param style The style of the particle
|
||||
* @param materialData The material data of the particle
|
||||
* @return The ParticlePair that was added or null if failed
|
||||
*/
|
||||
public void addActivePlayerParticle(@NotNull Player player, @NotNull ParticleEffect effect, @NotNull ParticleStyle style, @NotNull Material materialData) {
|
||||
this.addActivePlayerParticle(player, effect, style, null, null, materialData);
|
||||
@Nullable
|
||||
public ParticlePair addActivePlayerParticle(@NotNull Player player, @NotNull ParticleEffect effect, @NotNull ParticleStyle style, @NotNull Material materialData) {
|
||||
return this.addActivePlayerParticle(player, effect, style, null, null, materialData);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -193,14 +205,16 @@ public final class PlayerParticlesAPI {
|
|||
* @param colorData The color data of the particle
|
||||
* @param noteColorData The note color data of the particle
|
||||
* @param materialData The material data of the particle
|
||||
* @return The ParticlePair that was added or null if failed
|
||||
*/
|
||||
private void addActivePlayerParticle(@NotNull Player player, @NotNull ParticleEffect effect, @NotNull ParticleStyle style, @Nullable OrdinaryColor colorData, @Nullable NoteColor noteColorData, @Nullable Material materialData) {
|
||||
@Nullable
|
||||
private ParticlePair addActivePlayerParticle(@NotNull Player player, @NotNull ParticleEffect effect, @NotNull ParticleStyle style, @Nullable OrdinaryColor colorData, @Nullable NoteColor noteColorData, @Nullable Material materialData) {
|
||||
Objects.requireNonNull(effect);
|
||||
Objects.requireNonNull(style);
|
||||
|
||||
PPlayer pplayer = this.getPPlayer(player);
|
||||
if (pplayer == null)
|
||||
return;
|
||||
return null;
|
||||
|
||||
Material itemMaterialData = null;
|
||||
Material blockMaterialData = null;
|
||||
|
@ -214,6 +228,7 @@ public final class PlayerParticlesAPI {
|
|||
|
||||
ParticlePair particle = new ParticlePair(player.getUniqueId(), pplayer.getNextActiveParticleId(), effect, style, itemMaterialData, blockMaterialData, colorData, noteColorData);
|
||||
this.addActivePlayerParticle(player, particle);
|
||||
return particle;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -222,16 +237,21 @@ public final class PlayerParticlesAPI {
|
|||
* @param player The player to edit from
|
||||
* @param id The ID of the target particle
|
||||
* @param effect The new effect for the particle
|
||||
* @return The ParticlePair that was edited or null if failed
|
||||
*/
|
||||
public void editActivePlayerParticle(@NotNull Player player, int id, @NotNull ParticleEffect effect) {
|
||||
@Nullable
|
||||
public ParticlePair editActivePlayerParticle(@NotNull Player player, int id, @NotNull ParticleEffect effect) {
|
||||
Objects.requireNonNull(effect);
|
||||
|
||||
DataManager dataManager = this.playerParticles.getManager(DataManager.class);
|
||||
ParticleGroup group = this.validateActivePlayerParticle(player, id);
|
||||
if (group != null) {
|
||||
group.getParticles().get(id).setEffect(effect);
|
||||
if (group == null)
|
||||
return null;
|
||||
|
||||
ParticlePair particle = group.getParticles().get(id);
|
||||
particle.setEffect(effect);
|
||||
dataManager.saveParticleGroup(player.getUniqueId(), group);
|
||||
}
|
||||
return particle;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -240,16 +260,21 @@ public final class PlayerParticlesAPI {
|
|||
* @param player The player to edit from
|
||||
* @param id The ID of the target particle
|
||||
* @param style The new style for the particle
|
||||
* @return The ParticlePair that was edited or null if failed
|
||||
*/
|
||||
public void editActivePlayerParticle(@NotNull Player player, int id, @NotNull ParticleStyle style) {
|
||||
@Nullable
|
||||
public ParticlePair editActivePlayerParticle(@NotNull Player player, int id, @NotNull ParticleStyle style) {
|
||||
Objects.requireNonNull(style);
|
||||
|
||||
DataManager dataManager = this.playerParticles.getManager(DataManager.class);
|
||||
ParticleGroup group = this.validateActivePlayerParticle(player, id);
|
||||
if (group != null) {
|
||||
group.getParticles().get(id).setStyle(style);
|
||||
if (group == null)
|
||||
return null;
|
||||
|
||||
ParticlePair particle = group.getParticles().get(id);
|
||||
particle.setStyle(style);
|
||||
dataManager.saveParticleGroup(player.getUniqueId(), group);
|
||||
}
|
||||
return particle;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -258,16 +283,21 @@ public final class PlayerParticlesAPI {
|
|||
* @param player The player to edit from
|
||||
* @param id The ID of the target particle
|
||||
* @param colorData The new color data for the particle
|
||||
* @return The ParticlePair that was edited or null if failed
|
||||
*/
|
||||
public void editActivePlayerParticle(@NotNull Player player, int id, @NotNull OrdinaryColor colorData) {
|
||||
@Nullable
|
||||
public ParticlePair editActivePlayerParticle(@NotNull Player player, int id, @NotNull OrdinaryColor colorData) {
|
||||
Objects.requireNonNull(colorData);
|
||||
|
||||
DataManager dataManager = this.playerParticles.getManager(DataManager.class);
|
||||
ParticleGroup group = this.validateActivePlayerParticle(player, id);
|
||||
if (group != null) {
|
||||
group.getParticles().get(id).setColor(colorData);
|
||||
if (group == null)
|
||||
return null;
|
||||
|
||||
ParticlePair particle = group.getParticles().get(id);
|
||||
particle.setColor(colorData);
|
||||
dataManager.saveParticleGroup(player.getUniqueId(), group);
|
||||
}
|
||||
return particle;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -276,16 +306,21 @@ public final class PlayerParticlesAPI {
|
|||
* @param player The player to edit from
|
||||
* @param id The ID of the target particle
|
||||
* @param noteColorData The new note color data for the particle
|
||||
* @return The ParticlePair that was edited or null if failed
|
||||
*/
|
||||
public void editActivePlayerParticle(@NotNull Player player, int id, @NotNull NoteColor noteColorData) {
|
||||
@Nullable
|
||||
public ParticlePair editActivePlayerParticle(@NotNull Player player, int id, @NotNull NoteColor noteColorData) {
|
||||
Objects.requireNonNull(noteColorData);
|
||||
|
||||
DataManager dataManager = this.playerParticles.getManager(DataManager.class);
|
||||
ParticleGroup group = this.validateActivePlayerParticle(player, id);
|
||||
if (group != null) {
|
||||
group.getParticles().get(id).setNoteColor(noteColorData);
|
||||
if (group == null)
|
||||
return null;
|
||||
|
||||
ParticlePair particle = group.getParticles().get(id);
|
||||
particle.setNoteColor(noteColorData);
|
||||
dataManager.saveParticleGroup(player.getUniqueId(), group);
|
||||
}
|
||||
return particle;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -294,20 +329,25 @@ public final class PlayerParticlesAPI {
|
|||
* @param player The player to edit from
|
||||
* @param id The ID of the target particle
|
||||
* @param materialData The new material data for the particle
|
||||
* @return The ParticlePair that was edited or null if failed
|
||||
*/
|
||||
public void editActivePlayerParticle(@NotNull Player player, int id, @NotNull Material materialData) {
|
||||
@Nullable
|
||||
public ParticlePair editActivePlayerParticle(@NotNull Player player, int id, @NotNull Material materialData) {
|
||||
Objects.requireNonNull(materialData);
|
||||
|
||||
DataManager dataManager = this.playerParticles.getManager(DataManager.class);
|
||||
ParticleGroup group = this.validateActivePlayerParticle(player, id);
|
||||
if (group != null) {
|
||||
if (group == null)
|
||||
return null;
|
||||
|
||||
ParticlePair particle = group.getParticles().get(id);
|
||||
if (materialData.isBlock()) {
|
||||
group.getParticles().get(id).setBlockMaterial(materialData);
|
||||
particle.setBlockMaterial(materialData);
|
||||
} else {
|
||||
group.getParticles().get(id).setItemMaterial(materialData);
|
||||
particle.setItemMaterial(materialData);
|
||||
}
|
||||
dataManager.saveParticleGroup(player.getUniqueId(), group);
|
||||
}
|
||||
return particle;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -315,14 +355,18 @@ public final class PlayerParticlesAPI {
|
|||
*
|
||||
* @param player The player to remove from
|
||||
* @param id The ID of the particle to remove
|
||||
* @return The ParticlePair that was removed or null if failed
|
||||
*/
|
||||
public void removeActivePlayerParticle(@NotNull Player player, int id) {
|
||||
@Nullable
|
||||
public ParticlePair removeActivePlayerParticle(@NotNull Player player, int id) {
|
||||
DataManager dataManager = this.playerParticles.getManager(DataManager.class);
|
||||
ParticleGroup group = this.validateActivePlayerParticle(player, id);
|
||||
if (group != null) {
|
||||
group.getParticles().remove(id);
|
||||
if (group == null)
|
||||
return null;
|
||||
|
||||
ParticlePair particle = group.getParticles().remove(id);
|
||||
dataManager.saveParticleGroup(player.getUniqueId(), group);
|
||||
}
|
||||
return particle;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -330,18 +374,22 @@ public final class PlayerParticlesAPI {
|
|||
*
|
||||
* @param player The player to remove from
|
||||
* @param effect The effect of the particle(s) to remove
|
||||
* @return A Set of removed ParticlePairs or null if failed
|
||||
*/
|
||||
public void removeActivePlayerParticle(@NotNull Player player, @NotNull ParticleEffect effect) {
|
||||
@Nullable
|
||||
public Set<ParticlePair> removeActivePlayerParticles(@NotNull Player player, @NotNull ParticleEffect effect) {
|
||||
Objects.requireNonNull(effect);
|
||||
|
||||
DataManager dataManager = this.playerParticles.getManager(DataManager.class);
|
||||
PPlayer pplayer = this.getPPlayer(player);
|
||||
if (pplayer == null)
|
||||
return;
|
||||
return null;
|
||||
|
||||
ParticleGroup group = pplayer.getActiveParticleGroup();
|
||||
group.getParticles().values().removeIf(x -> x.getEffect().equals(effect));
|
||||
Set<ParticlePair> removedParticles = group.getParticles().values().stream().filter(x -> x.getEffect().equals(effect)).collect(Collectors.toSet());
|
||||
group.getParticles().values().removeAll(removedParticles);
|
||||
dataManager.saveParticleGroup(player.getUniqueId(), group);
|
||||
return removedParticles;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -349,18 +397,22 @@ public final class PlayerParticlesAPI {
|
|||
*
|
||||
* @param player The player to remove from
|
||||
* @param style The style of the particle(s) to remove
|
||||
* @return A Set of removed ParticlePairs or null if failed
|
||||
*/
|
||||
public void removeActivePlayerParticle(@NotNull Player player, @NotNull ParticleStyle style) {
|
||||
@Nullable
|
||||
public Set<ParticlePair> removeActivePlayerParticles(@NotNull Player player, @NotNull ParticleStyle style) {
|
||||
Objects.requireNonNull(style);
|
||||
|
||||
DataManager dataManager = this.playerParticles.getManager(DataManager.class);
|
||||
PPlayer pplayer = this.getPPlayer(player);
|
||||
if (pplayer == null)
|
||||
return;
|
||||
return null;
|
||||
|
||||
ParticleGroup group = pplayer.getActiveParticleGroup();
|
||||
group.getParticles().values().removeIf(x -> x.getStyle().equals(style));
|
||||
Set<ParticlePair> removedParticles = group.getParticles().values().stream().filter(x -> x.getStyle().equals(style)).collect(Collectors.toSet());
|
||||
group.getParticles().values().removeAll(removedParticles);
|
||||
dataManager.saveParticleGroup(player.getUniqueId(), group);
|
||||
return removedParticles;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -387,15 +439,18 @@ public final class PlayerParticlesAPI {
|
|||
* Removes all active particles from a player
|
||||
*
|
||||
* @param player The player to remove from
|
||||
* @return The number of particles removed or null if failed
|
||||
*/
|
||||
public void resetActivePlayerParticles(@NotNull Player player) {
|
||||
public Integer resetActivePlayerParticles(@NotNull Player player) {
|
||||
DataManager dataManager = this.playerParticles.getManager(DataManager.class);
|
||||
PPlayer pplayer = this.getPPlayer(player);
|
||||
if (pplayer == null)
|
||||
return;
|
||||
return null;
|
||||
|
||||
int amount = pplayer.getActiveParticleGroup().getParticles().size();
|
||||
pplayer.getActiveParticleGroup().getParticles().clear();
|
||||
dataManager.saveParticleGroup(pplayer.getUniqueId(), pplayer.getActiveParticleGroup());
|
||||
return amount;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -438,8 +493,10 @@ public final class PlayerParticlesAPI {
|
|||
*
|
||||
* @param player The player to save to
|
||||
* @param particleGroup The particle group to save
|
||||
* @return The ParticleGroup that was saved or null if failed
|
||||
*/
|
||||
public void savePlayerParticleGroup(@NotNull Player player, @NotNull ParticleGroup particleGroup) {
|
||||
@Nullable
|
||||
public ParticleGroup savePlayerParticleGroup(@NotNull Player player, @NotNull ParticleGroup particleGroup) {
|
||||
Objects.requireNonNull(particleGroup);
|
||||
|
||||
if (particleGroup.getParticles().isEmpty() && !particleGroup.getName().equals(ParticleGroup.DEFAULT_NAME))
|
||||
|
@ -448,10 +505,14 @@ public final class PlayerParticlesAPI {
|
|||
DataManager dataManager = this.playerParticles.getManager(DataManager.class);
|
||||
PPlayer pplayer = this.getPPlayer(player);
|
||||
if (pplayer == null)
|
||||
return;
|
||||
return null;
|
||||
|
||||
if (pplayer.getParticleGroups().containsKey(particleGroup.getName().toLowerCase()))
|
||||
throw new IllegalArgumentException("A group already exists with the name " + particleGroup);
|
||||
|
||||
pplayer.getParticleGroups().put(particleGroup.getName().toLowerCase(), particleGroup);
|
||||
dataManager.saveParticleGroup(player.getUniqueId(), particleGroup);
|
||||
return particleGroup;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -460,15 +521,17 @@ public final class PlayerParticlesAPI {
|
|||
* @param player The player to save to
|
||||
* @param groupName The name of the group to save
|
||||
* @param particles Particles that are part of the group
|
||||
* @return The ParticleGroup that was saved or null if failed
|
||||
*/
|
||||
public void savePlayerParticleGroup(@NotNull Player player, @NotNull String groupName, @NotNull Collection<ParticlePair> particles) {
|
||||
@Nullable
|
||||
public ParticleGroup savePlayerParticleGroup(@NotNull Player player, @NotNull String groupName, @NotNull Collection<ParticlePair> particles) {
|
||||
Objects.requireNonNull(groupName);
|
||||
Objects.requireNonNull(particles);
|
||||
|
||||
Map<Integer, ParticlePair> mappedParticles = new HashMap<>();
|
||||
particles.forEach(x -> mappedParticles.put(x.getId(), x));
|
||||
ParticleGroup particleGroup = new ParticleGroup(groupName.toLowerCase(), mappedParticles);
|
||||
this.savePlayerParticleGroup(player, particleGroup);
|
||||
return this.savePlayerParticleGroup(player, particleGroup);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -476,15 +539,22 @@ public final class PlayerParticlesAPI {
|
|||
*
|
||||
* @param player The player to remove from
|
||||
* @param groupName The name of the particle group to remove
|
||||
* @return The ParticleGroup that was removed or null if failed
|
||||
*/
|
||||
public void removePlayerParticleGroup(@NotNull Player player, @NotNull String groupName) {
|
||||
@Nullable
|
||||
public ParticleGroup removePlayerParticleGroup(@NotNull Player player, @NotNull String groupName) {
|
||||
DataManager dataManager = this.playerParticles.getManager(DataManager.class);
|
||||
PPlayer pplayer = this.getPPlayer(player);
|
||||
if (pplayer == null)
|
||||
return;
|
||||
return null;
|
||||
|
||||
ParticleGroup group = pplayer.getParticleGroupByName(groupName);
|
||||
if (group == null)
|
||||
throw new IllegalArgumentException("No group exists with the name " + groupName);
|
||||
|
||||
pplayer.getParticleGroups().remove(groupName.toLowerCase());
|
||||
dataManager.removeParticleGroup(player.getUniqueId(), groupName);
|
||||
return group;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -492,11 +562,13 @@ public final class PlayerParticlesAPI {
|
|||
*
|
||||
* @param player The player to remove from
|
||||
* @param particleGroup The particle group
|
||||
* @return The ParticleGroup that was removed or null if failed
|
||||
*/
|
||||
public void removePlayerParticleGroup(@NotNull Player player, @NotNull ParticleGroup particleGroup) {
|
||||
@Nullable
|
||||
public ParticleGroup removePlayerParticleGroup(@NotNull Player player, @NotNull ParticleGroup particleGroup) {
|
||||
Objects.requireNonNull(particleGroup);
|
||||
|
||||
this.removePlayerParticleGroup(player, particleGroup.getName());
|
||||
return this.removePlayerParticleGroup(player, particleGroup.getName());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -522,22 +594,46 @@ public final class PlayerParticlesAPI {
|
|||
* Creates a fixed particle effect for a player
|
||||
*
|
||||
* @param sender The sender to create for, either a Player or ConsoleCommandSender
|
||||
* @param location The location to create at
|
||||
* @param particle The particle to display
|
||||
* @param fixedEffect The FixedParticleEffect
|
||||
* @return The FixedParticleEffect that was created or null if failed
|
||||
*/
|
||||
public void createFixedParticleEffect(@NotNull CommandSender sender, @NotNull Location location, @NotNull ParticlePair particle) {
|
||||
Objects.requireNonNull(location);
|
||||
Objects.requireNonNull(location.getWorld());
|
||||
Objects.requireNonNull(particle);
|
||||
@Nullable
|
||||
public FixedParticleEffect createFixedParticleEffect(@NotNull CommandSender sender, @NotNull FixedParticleEffect fixedEffect) {
|
||||
Objects.requireNonNull(fixedEffect);
|
||||
|
||||
DataManager dataManager = this.playerParticles.getManager(DataManager.class);
|
||||
PPlayer pplayer = this.getPPlayer(sender);
|
||||
if (pplayer == null)
|
||||
return;
|
||||
return null;
|
||||
|
||||
if (pplayer.getFixedEffectIds().contains(fixedEffect.getId()))
|
||||
throw new IllegalArgumentException("A fixed effect already exists with the id " + fixedEffect.getId());
|
||||
|
||||
FixedParticleEffect fixedEffect = new FixedParticleEffect(pplayer.getUniqueId(), pplayer.getNextFixedEffectId(), location, particle);
|
||||
pplayer.addFixedEffect(fixedEffect);
|
||||
dataManager.saveFixedEffect(fixedEffect);
|
||||
return fixedEffect;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a fixed particle effect for a player
|
||||
*
|
||||
* @param sender The sender to create for, either a Player or ConsoleCommandSender
|
||||
* @param location The location to create at
|
||||
* @param particle The particle to display
|
||||
* @return The FixedParticleEffect that was created or null if failed
|
||||
*/
|
||||
@Nullable
|
||||
public FixedParticleEffect createFixedParticleEffect(@NotNull CommandSender sender, @NotNull Location location, @NotNull ParticlePair particle) {
|
||||
Objects.requireNonNull(location);
|
||||
Objects.requireNonNull(location.getWorld());
|
||||
Objects.requireNonNull(particle);
|
||||
|
||||
PPlayer pplayer = this.getPPlayer(sender);
|
||||
if (pplayer == null)
|
||||
return null;
|
||||
|
||||
FixedParticleEffect fixedEffect = new FixedParticleEffect(pplayer.getUniqueId(), pplayer.getNextFixedEffectId(), location, particle);
|
||||
return this.createFixedParticleEffect(sender, fixedEffect);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -547,9 +643,11 @@ public final class PlayerParticlesAPI {
|
|||
* @param location The location to create at
|
||||
* @param effect The effect of the particle
|
||||
* @param style The style of the particle
|
||||
* @return The FixedParticleEffect that was created or null if failed
|
||||
*/
|
||||
public void createFixedParticleEffect(@NotNull CommandSender sender, @NotNull Location location, @NotNull ParticleEffect effect, @NotNull ParticleStyle style) {
|
||||
this.createFixedParticleEffect(sender, location, effect, style, null, null, null);
|
||||
@Nullable
|
||||
public FixedParticleEffect createFixedParticleEffect(@NotNull CommandSender sender, @NotNull Location location, @NotNull ParticleEffect effect, @NotNull ParticleStyle style) {
|
||||
return this.createFixedParticleEffect(sender, location, effect, style, null, null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -560,9 +658,11 @@ public final class PlayerParticlesAPI {
|
|||
* @param effect The effect of the particle
|
||||
* @param style The style of the particle
|
||||
* @param colorData The color data of the particle
|
||||
* @return The FixedParticleEffect that was created or null if failed
|
||||
*/
|
||||
public void createFixedParticleEffect(@NotNull CommandSender sender, @NotNull Location location, @NotNull ParticleEffect effect, @NotNull ParticleStyle style, @NotNull OrdinaryColor colorData) {
|
||||
this.createFixedParticleEffect(sender, location, effect, style, colorData, null, null);
|
||||
@Nullable
|
||||
public FixedParticleEffect createFixedParticleEffect(@NotNull CommandSender sender, @NotNull Location location, @NotNull ParticleEffect effect, @NotNull ParticleStyle style, @NotNull OrdinaryColor colorData) {
|
||||
return this.createFixedParticleEffect(sender, location, effect, style, colorData, null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -573,9 +673,11 @@ public final class PlayerParticlesAPI {
|
|||
* @param effect The effect of the particle
|
||||
* @param style The style of the particle
|
||||
* @param noteColorData The note color data of the particle
|
||||
* @return The FixedParticleEffect that was created or null if failed
|
||||
*/
|
||||
public void createFixedParticleEffect(@NotNull CommandSender sender, @NotNull Location location, @NotNull ParticleEffect effect, @NotNull ParticleStyle style, @NotNull NoteColor noteColorData) {
|
||||
this.createFixedParticleEffect(sender, location, effect, style, null, noteColorData, null);
|
||||
@Nullable
|
||||
public FixedParticleEffect createFixedParticleEffect(@NotNull CommandSender sender, @NotNull Location location, @NotNull ParticleEffect effect, @NotNull ParticleStyle style, @NotNull NoteColor noteColorData) {
|
||||
return this.createFixedParticleEffect(sender, location, effect, style, null, noteColorData, null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -586,9 +688,11 @@ public final class PlayerParticlesAPI {
|
|||
* @param effect The effect of the particle
|
||||
* @param style The style of the particle
|
||||
* @param materialData The material data of the particle
|
||||
* @return The FixedParticleEffect that was created or null if failed
|
||||
*/
|
||||
public void createFixedParticleEffect(@NotNull CommandSender sender, @NotNull Location location, @NotNull ParticleEffect effect, @NotNull ParticleStyle style, @NotNull Material materialData) {
|
||||
this.createFixedParticleEffect(sender, location, effect, style, null, null, materialData);
|
||||
@Nullable
|
||||
public FixedParticleEffect createFixedParticleEffect(@NotNull CommandSender sender, @NotNull Location location, @NotNull ParticleEffect effect, @NotNull ParticleStyle style, @NotNull Material materialData) {
|
||||
return this.createFixedParticleEffect(sender, location, effect, style, null, null, materialData);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -601,8 +705,10 @@ public final class PlayerParticlesAPI {
|
|||
* @param colorData The color data of the particle
|
||||
* @param noteColorData The note color data of the particle
|
||||
* @param materialData The material data of the particle
|
||||
* @return The FixedParticleEffect that was created or null if failed
|
||||
*/
|
||||
private void createFixedParticleEffect(@NotNull CommandSender sender, @NotNull Location location, @NotNull ParticleEffect effect, @NotNull ParticleStyle style, @Nullable OrdinaryColor colorData, @Nullable NoteColor noteColorData, @Nullable Material materialData) {
|
||||
@Nullable
|
||||
private FixedParticleEffect createFixedParticleEffect(@NotNull CommandSender sender, @NotNull Location location, @NotNull ParticleEffect effect, @NotNull ParticleStyle style, @Nullable OrdinaryColor colorData, @Nullable NoteColor noteColorData, @Nullable Material materialData) {
|
||||
Objects.requireNonNull(location);
|
||||
Objects.requireNonNull(location.getWorld());
|
||||
Objects.requireNonNull(effect);
|
||||
|
@ -610,7 +716,7 @@ public final class PlayerParticlesAPI {
|
|||
|
||||
PPlayer pplayer = this.getPPlayer(sender);
|
||||
if (pplayer == null)
|
||||
return;
|
||||
return null;
|
||||
|
||||
Material itemMaterialData = null;
|
||||
Material blockMaterialData = null;
|
||||
|
@ -623,7 +729,7 @@ public final class PlayerParticlesAPI {
|
|||
}
|
||||
|
||||
ParticlePair particle = new ParticlePair(pplayer.getUniqueId(), 1, effect, style, itemMaterialData, blockMaterialData, colorData, noteColorData);
|
||||
this.createFixedParticleEffect(sender, location, particle);
|
||||
return this.createFixedParticleEffect(sender, location, particle);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -631,20 +737,23 @@ public final class PlayerParticlesAPI {
|
|||
*
|
||||
* @param sender The sender to edit from, either a Player or ConsoleCommandSender
|
||||
* @param fixedEffect The modified fixed effect to edit
|
||||
* @return The FixedParticleEffect that was edited or null if failed
|
||||
*/
|
||||
public void editFixedParticleEffect(@NotNull CommandSender sender, @NotNull FixedParticleEffect fixedEffect) {
|
||||
public FixedParticleEffect editFixedParticleEffect(@NotNull CommandSender sender, @NotNull FixedParticleEffect fixedEffect) {
|
||||
Objects.requireNonNull(fixedEffect);
|
||||
|
||||
PPlayer pplayer = this.getPPlayer(sender);
|
||||
if (pplayer == null)
|
||||
return;
|
||||
return null;
|
||||
|
||||
DataManager dataManager = this.playerParticles.getManager(DataManager.class);
|
||||
if (this.validateFixedParticleEffect(sender, fixedEffect.getId()) != null) {
|
||||
if (this.validateFixedParticleEffect(sender, fixedEffect.getId()) == null)
|
||||
return null;
|
||||
|
||||
pplayer.removeFixedEffect(fixedEffect.getId());
|
||||
pplayer.addFixedEffect(fixedEffect);
|
||||
dataManager.updateFixedEffect(fixedEffect);
|
||||
}
|
||||
return fixedEffect;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -653,17 +762,21 @@ public final class PlayerParticlesAPI {
|
|||
* @param sender The sender to edit from, either a Player or ConsoleCommandSender
|
||||
* @param id The ID of the fixed particle effect
|
||||
* @param location The new location
|
||||
* @return The FixedParticleEffect that was edited or null if failed
|
||||
*/
|
||||
public void editFixedParticleEffect(@NotNull CommandSender sender, int id, @NotNull Location location) {
|
||||
@Nullable
|
||||
public FixedParticleEffect editFixedParticleEffect(@NotNull CommandSender sender, int id, @NotNull Location location) {
|
||||
Objects.requireNonNull(location);
|
||||
Objects.requireNonNull(location.getWorld());
|
||||
|
||||
DataManager dataManager = this.playerParticles.getManager(DataManager.class);
|
||||
FixedParticleEffect fixedEffect = this.validateFixedParticleEffect(sender, id);
|
||||
if (fixedEffect != null) {
|
||||
if (fixedEffect == null)
|
||||
return null;
|
||||
|
||||
fixedEffect.setCoordinates(location.getX(), location.getY(), location.getZ());
|
||||
dataManager.saveFixedEffect(fixedEffect);
|
||||
}
|
||||
return fixedEffect;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -672,16 +785,20 @@ public final class PlayerParticlesAPI {
|
|||
* @param sender The sender to edit from, either a Player or ConsoleCommandSender
|
||||
* @param id The ID of the fixed particle effect
|
||||
* @param effect The new effect
|
||||
* @return The FixedParticleEffect that was edited or null if failed
|
||||
*/
|
||||
public void editFixedParticleEffect(@NotNull CommandSender sender, int id, @NotNull ParticleEffect effect) {
|
||||
@Nullable
|
||||
public FixedParticleEffect editFixedParticleEffect(@NotNull CommandSender sender, int id, @NotNull ParticleEffect effect) {
|
||||
Objects.requireNonNull(effect);
|
||||
|
||||
DataManager dataManager = this.playerParticles.getManager(DataManager.class);
|
||||
FixedParticleEffect fixedEffect = this.validateFixedParticleEffect(sender, id);
|
||||
if (fixedEffect != null) {
|
||||
if (fixedEffect == null)
|
||||
return null;
|
||||
|
||||
fixedEffect.getParticlePair().setEffect(effect);
|
||||
dataManager.saveFixedEffect(fixedEffect);
|
||||
}
|
||||
return fixedEffect;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -690,16 +807,20 @@ public final class PlayerParticlesAPI {
|
|||
* @param sender The sender to edit from, either a Player or ConsoleCommandSender
|
||||
* @param id The ID of the fixed particle effect
|
||||
* @param style The new style
|
||||
* @return The FixedParticleEffect that was edited or null if failed
|
||||
*/
|
||||
public void editFixedParticleEffect(@NotNull CommandSender sender, int id, @NotNull ParticleStyle style) {
|
||||
@Nullable
|
||||
public FixedParticleEffect editFixedParticleEffect(@NotNull CommandSender sender, int id, @NotNull ParticleStyle style) {
|
||||
Objects.requireNonNull(style);
|
||||
|
||||
DataManager dataManager = this.playerParticles.getManager(DataManager.class);
|
||||
FixedParticleEffect fixedEffect = this.validateFixedParticleEffect(sender, id);
|
||||
if (fixedEffect != null) {
|
||||
if (fixedEffect == null)
|
||||
return null;
|
||||
|
||||
fixedEffect.getParticlePair().setStyle(style);
|
||||
dataManager.saveFixedEffect(fixedEffect);
|
||||
}
|
||||
return fixedEffect;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -708,16 +829,20 @@ public final class PlayerParticlesAPI {
|
|||
* @param sender The sender to edit from, either a Player or ConsoleCommandSender
|
||||
* @param id The ID of the fixed particle effect
|
||||
* @param colorData The new color data
|
||||
* @return The FixedParticleEffect that was edited or null if failed
|
||||
*/
|
||||
public void editFixedParticleEffect(@NotNull CommandSender sender, int id, @NotNull OrdinaryColor colorData) {
|
||||
@Nullable
|
||||
public FixedParticleEffect editFixedParticleEffect(@NotNull CommandSender sender, int id, @NotNull OrdinaryColor colorData) {
|
||||
Objects.requireNonNull(colorData);
|
||||
|
||||
DataManager dataManager = this.playerParticles.getManager(DataManager.class);
|
||||
FixedParticleEffect fixedEffect = this.validateFixedParticleEffect(sender, id);
|
||||
if (fixedEffect != null) {
|
||||
if (fixedEffect == null)
|
||||
return null;
|
||||
|
||||
fixedEffect.getParticlePair().setColor(colorData);
|
||||
dataManager.saveFixedEffect(fixedEffect);
|
||||
}
|
||||
return fixedEffect;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -726,16 +851,20 @@ public final class PlayerParticlesAPI {
|
|||
* @param sender The sender to edit from, either a Player or ConsoleCommandSender
|
||||
* @param id The ID of the fixed particle effect
|
||||
* @param noteColorData The new note color data
|
||||
* @return The FixedParticleEffect that was edited or null if failed
|
||||
*/
|
||||
public void editFixedParticleEffect(@NotNull CommandSender sender, int id, @NotNull NoteColor noteColorData) {
|
||||
@Nullable
|
||||
public FixedParticleEffect editFixedParticleEffect(@NotNull CommandSender sender, int id, @NotNull NoteColor noteColorData) {
|
||||
Objects.requireNonNull(noteColorData);
|
||||
|
||||
DataManager dataManager = this.playerParticles.getManager(DataManager.class);
|
||||
FixedParticleEffect fixedEffect = this.validateFixedParticleEffect(sender, id);
|
||||
if (fixedEffect != null) {
|
||||
if (fixedEffect == null)
|
||||
return null;
|
||||
|
||||
fixedEffect.getParticlePair().setNoteColor(noteColorData);
|
||||
dataManager.saveFixedEffect(fixedEffect);
|
||||
}
|
||||
return fixedEffect;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -744,20 +873,24 @@ public final class PlayerParticlesAPI {
|
|||
* @param sender The sender to edit from, either a Player or ConsoleCommandSender
|
||||
* @param id The ID of the fixed particle effect
|
||||
* @param materialData The new material data
|
||||
* @return The FixedParticleEffect that was edited or null if failed
|
||||
*/
|
||||
public void editFixedParticleEffect(@NotNull CommandSender sender, int id, @NotNull Material materialData) {
|
||||
@Nullable
|
||||
public FixedParticleEffect editFixedParticleEffect(@NotNull CommandSender sender, int id, @NotNull Material materialData) {
|
||||
Objects.requireNonNull(materialData);
|
||||
|
||||
DataManager dataManager = this.playerParticles.getManager(DataManager.class);
|
||||
FixedParticleEffect fixedEffect = this.validateFixedParticleEffect(sender, id);
|
||||
if (fixedEffect != null) {
|
||||
if (fixedEffect == null)
|
||||
return null;
|
||||
|
||||
if (materialData.isBlock()) {
|
||||
fixedEffect.getParticlePair().setBlockMaterial(materialData);
|
||||
} else {
|
||||
fixedEffect.getParticlePair().setItemMaterial(materialData);
|
||||
}
|
||||
dataManager.saveFixedEffect(fixedEffect);
|
||||
}
|
||||
return fixedEffect;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -765,18 +898,22 @@ public final class PlayerParticlesAPI {
|
|||
*
|
||||
* @param sender The sender to remove from, either a Player or ConsoleCommandSender
|
||||
* @param id The ID of the fixed particle effect
|
||||
* @return The FixedParticleEffect that was removed or null if failed
|
||||
*/
|
||||
public void removeFixedEffect(@NotNull CommandSender sender, int id) {
|
||||
@Nullable
|
||||
public FixedParticleEffect removeFixedEffect(@NotNull CommandSender sender, int id) {
|
||||
DataManager dataManager = this.playerParticles.getManager(DataManager.class);
|
||||
FixedParticleEffect fixedEffect = this.validateFixedParticleEffect(sender, id);
|
||||
if (fixedEffect != null) {
|
||||
if (fixedEffect == null)
|
||||
return null;
|
||||
|
||||
PPlayer pplayer = this.getPPlayer(sender);
|
||||
if (pplayer == null)
|
||||
return;
|
||||
return null;
|
||||
|
||||
pplayer.removeFixedEffect(id);
|
||||
dataManager.removeFixedEffect(pplayer.getUniqueId(), fixedEffect.getId());
|
||||
}
|
||||
return fixedEffect;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue