Skip to content

Commit

Permalink
Version 1.4
Browse files Browse the repository at this point in the history
Fixed particles breaking after player's death
Fixed particles breaking after leaving the server
Fixed particle's location
  • Loading branch information
poqdavid committed Feb 14, 2022
1 parent 45232fd commit 8341c5e
Show file tree
Hide file tree
Showing 7 changed files with 72 additions and 73 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ m_description=A plugin for crazy cool effects

## Version
m_major=1
m_minor=3
m_minor=4
m_api=S7.4
m_suffix=STABLE

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
import org.spongepowered.api.command.args.CommandContext;
import org.spongepowered.api.command.spec.CommandExecutor;
import org.spongepowered.api.entity.living.player.Player;
import org.spongepowered.api.scheduler.Task;
import org.spongepowered.api.text.Text;
import org.spongepowered.api.text.format.TextColors;

Expand All @@ -49,12 +48,7 @@ public CommandResult execute(CommandSource src, CommandContext args) throws Comm

src.sendMessage(Text.of(TextColors.GOLD, "Stopping all Tasks!!"));
for (Player player : Sponge.getServer().getOnlinePlayers()) {
for (Task task : Sponge.getScheduler().getScheduledTasks(NyxEffect.getInstance())) {
if (task.getName().contains(player.getUniqueId().toString())) {
NyxEffect.getInstance().getLogger().info("Stopping Task: " + task.getName());
task.cancel();
}
}
Tools.UserTaskStop(player, "all", false);
}
src.sendMessage(Text.of(TextColors.GOLD, "Stopped all Tasks!!"));

Expand All @@ -68,7 +62,7 @@ public CommandResult execute(CommandSource src, CommandContext args) throws Comm

src.sendMessage(Text.of(TextColors.GOLD, "Starting all Tasks!!"));
for (Player player : Sponge.getServer().getOnlinePlayers()) {
NyxEffect.getInstance().StartPlayerrEffcts(player);
Tools.UserTaskStart(player, "all", false);
}
src.sendMessage(Text.of(TextColors.GOLD, "Started all Tasks!!"));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,12 @@

import io.github.poqdavid.nyx.nyxcore.Utils.CoreTools;
import io.github.poqdavid.nyx.nyxeffect.NyxEffect;
import org.spongepowered.api.Sponge;
import io.github.poqdavid.nyx.nyxeffect.Utils.Tools;
import org.spongepowered.api.entity.living.player.Player;
import org.spongepowered.api.event.Listener;
import org.spongepowered.api.event.entity.DestructEntityEvent;
import org.spongepowered.api.event.entity.SpawnEntityEvent;
import org.spongepowered.api.event.network.ClientConnectionEvent;
import org.spongepowered.api.scheduler.Task;

@SuppressWarnings("unused")
public class NyxEffectListener {
Expand All @@ -35,21 +36,36 @@ public class NyxEffectListener {
public void onPlayerJoin(ClientConnectionEvent.Join event) {
if (!NyxEffect.HOLDEFFECTS) {
final Player player = CoreTools.getPlayer(event.getCause()).get();
NyxEffect.getInstance().StartPlayerrEffcts(player);
Tools.UserTaskStart(player, "all", false);
}
}

@Listener
public void onEntitySpawn(SpawnEntityEvent event) {
if (event.getCause().root() instanceof net.minecraft.entity.player.EntityPlayerMP) {
if (!NyxEffect.HOLDEFFECTS) {
final Player player = (Player) event.getCause().root();
Tools.UserTaskRestart(player, "all", false);
}
}
}

@Listener
public void onPlayerDisconnect(ClientConnectionEvent.Disconnect event) {
if (!NyxEffect.HOLDEFFECTS) {
final Player player = CoreTools.getPlayer(event.getCause()).get();
Tools.UserTaskStop(player, "all", false);
}
}

for (Task task : Sponge.getScheduler().getScheduledTasks(NyxEffect.getInstance())) {
if (task.getName().contains(player.getUniqueId().toString())) {
NyxEffect.getInstance().getLogger().info("Stopping Task: " + task.getName());
task.cancel();
}
@Listener
public void onPlayerDeath(DestructEntityEvent.Death event) {
if (!NyxEffect.HOLDEFFECTS) {
if (event.getTargetEntity() instanceof Player) {
final Player player = (Player) event.getTargetEntity();
Tools.UserTaskStop(player, "all", false);
}
}
}

}
35 changes: 0 additions & 35 deletions src/main/java/io/github/poqdavid/nyx/nyxeffect/NyxEffect.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
import io.github.poqdavid.nyx.nyxcore.Utils.NCLogger;
import io.github.poqdavid.nyx.nyxeffect.Commands.CommandManager;
import io.github.poqdavid.nyx.nyxeffect.Listeners.NyxEffectListener;
import io.github.poqdavid.nyx.nyxeffect.Tasks.EffectTask;
import io.github.poqdavid.nyx.nyxeffect.Utils.Data.EffectsData;
import io.github.poqdavid.nyx.nyxeffect.Utils.Data.ParticlesData;
import io.github.poqdavid.nyx.nyxeffect.Utils.Data.PlayerData;
Expand Down Expand Up @@ -63,7 +62,6 @@
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.*;
import java.util.concurrent.TimeUnit;

@Plugin(id = "nyxeffect", name = "@name@", version = "@version@", description = "@description@", url = "https://github.com/poqdavid/NyxEffect", authors = {"@authors@"}, dependencies = {@Dependency(id = "nyxcore", version = "1.+", optional = false)})
public class NyxEffect {
Expand Down Expand Up @@ -651,37 +649,4 @@ public void RegisterEffectNodes() {

}

public void StartPlayerrEffcts(Player player) {

PlayerEvent.putIfAbsent(player.getUniqueId(), new PlayerData(player.getName(), false));

if (UserParticlesLIST != null) {
if (UserParticlesLIST.get(player.getUniqueId().toString()) != null) {
if (!UserParticlesLIST.get(player.getUniqueId().toString()).contains("NONE")) {
Tools.AddMovementTask(player);
}
}
}


if (UserParticlesLIST.containsKey(player.getUniqueId().toString())) {
final List<String> pd = UserParticlesLIST.get(player.getUniqueId().toString());
for (String effect : pd) {
for (ParticlesData pdent : ParticlesLIST) {

if (pdent.getEffectsData().getId().equalsIgnoreCase(effect)) {
Task.builder().execute(new EffectTask(player, NyxEffect, pdent.getEffectsData().getParticleDataList()))
.async()
.interval(pdent.getEffectsData().getInterval(), TimeUnit.MILLISECONDS)
.name("TaskOwner: " + player.getUniqueId() + " Effect: " + pdent.getEffectsData().getId().toLowerCase()).submit(NyxEffect);

}

}

}

}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import io.github.poqdavid.nyx.nyxeffect.NyxEffect;
import io.github.poqdavid.nyx.nyxeffect.Utils.Data.ParticleDataList;
import io.github.poqdavid.nyx.nyxeffect.Utils.Tools;
import org.spongepowered.api.Sponge;
import org.spongepowered.api.block.BlockState;
import org.spongepowered.api.data.key.Keys;
import org.spongepowered.api.effect.particle.ParticleEffect;
Expand All @@ -38,18 +39,20 @@
import org.spongepowered.api.world.World;

import java.util.List;
import java.util.UUID;
import java.util.function.Consumer;

public class EffectTask implements Consumer<Task> {
private final NyxEffect cf;
private final Player player;
private final Player playerobj;
private final List<ParticleDataList> pds_list;
private Boolean taskran = false;
private Task task;
private Vector3d rotation = new Vector3d(0, 0, 0);

public EffectTask(Player player, NyxEffect cf, List<ParticleDataList> pds_list) {
this.cf = cf;
this.player = player;
this.playerobj = player;
this.pds_list = pds_list;
}

Expand All @@ -63,24 +66,26 @@ public void accept(Task task) {
}


if (!this.cf.PlayerEvent.containsKey(this.player.getUniqueId())) {
if (!this.cf.PlayerEvent.containsKey(this.playerobj.getUniqueId())) {
this.cf.getLogger().info("Stopping Task: " + task.getName());
this.task.cancel();
} else {
this.Run(this.player, this.pds_list);
this.Run(playerobj.getUniqueId(), this.pds_list);
}

}

private void Run(Player player, List<ParticleDataList> pdslist) {
private void Run(UUID uuid, List<ParticleDataList> pdslist) {
try {
Player player = Sponge.getServer().getPlayer(uuid).orElse(playerobj);
for (ParticleDataList pds : pdslist) {
Vector3d loc;
Vector3d playerR = player.getRotation();

if (pds.getParticleEffect().getRelatedlocation()) {
final Vector3d rotation = player.getRotation();
this.rotation = new Vector3d(0, playerR.getY(), playerR.getZ());

final Quaterniond Qu = Quaterniond.fromAxesAnglesDeg(rotation.getX(), -rotation.getY(), rotation.getZ());
if (pds.getParticleEffect().getRelatedlocation()) {
final Quaterniond Qu = Quaterniond.fromAxesAnglesDeg(this.rotation.getX(), -this.rotation.getY(), this.rotation.getZ());

if (pds.getParticleEffect().getRelatedrotation()) {
loc = CoreTools.GetLocation(player, Qu, Qu.rotate(pds.getVector3d())).getPosition();
Expand All @@ -89,8 +94,7 @@ private void Run(Player player, List<ParticleDataList> pdslist) {
}
} else {
if (pds.getParticleEffect().getRelatedrotation()) {
final Vector3d rotation = player.getRotation();
final Quaterniond Qu = Quaterniond.fromAxesAnglesDeg(rotation.getX(), -rotation.getY(), rotation.getZ());
final Quaterniond Qu = Quaterniond.fromAxesAnglesDeg(this.rotation.getX(), -this.rotation.getY(), this.rotation.getZ());
loc = CoreTools.GetLocation(player, Qu, Qu.rotate(pds.getVector3d())).getPosition();
} else {
loc = player.getLocation().getPosition().add(pds.getVector3d());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,16 @@

import com.flowpowered.math.vector.Vector3d;
import io.github.poqdavid.nyx.nyxeffect.NyxEffect;
import org.spongepowered.api.Sponge;
import org.spongepowered.api.entity.living.player.Player;
import org.spongepowered.api.scheduler.Task;

import java.util.UUID;
import java.util.function.Consumer;

public class MovementDetectionTask implements Consumer<Task> {
private final NyxEffect cf;
private final Player player;
private final Player playerobj;
private Boolean taskran = false;
private Task task;

Expand All @@ -41,7 +43,7 @@ public class MovementDetectionTask implements Consumer<Task> {

public MovementDetectionTask(Player player, NyxEffect cf) {
this.cf = cf;
this.player = player;
this.playerobj = player;
}

@Override
Expand All @@ -54,17 +56,19 @@ public void accept(Task task) {
}


if (!this.cf.PlayerEvent.containsKey(this.player.getUniqueId())) {
if (!this.cf.PlayerEvent.containsKey(this.playerobj.getUniqueId())) {
this.cf.getLogger().info("Stopping Task: " + task.getName());
this.task.cancel();
} else {
this.Run(this.player);
this.Run(this.playerobj.getUniqueId());
}

}

private void Run(Player player) {
private void Run(UUID uuid) {
try {
Player player = Sponge.getServer().getPlayer(uuid).orElse(playerobj);

this.loc1 = player.getLocation().getPosition();
this.rot1 = player.getHeadRotation();

Expand Down
28 changes: 22 additions & 6 deletions src/main/java/io/github/poqdavid/nyx/nyxeffect/Utils/Tools.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import io.github.poqdavid.nyx.nyxeffect.Tasks.MovementDetectionTask;
import io.github.poqdavid.nyx.nyxeffect.Utils.Data.EffectsData;
import io.github.poqdavid.nyx.nyxeffect.Utils.Data.ParticlesData;
import io.github.poqdavid.nyx.nyxeffect.Utils.Data.PlayerData;
import org.apache.commons.io.FileUtils;
import org.spongepowered.api.Sponge;
import org.spongepowered.api.block.BlockType;
Expand Down Expand Up @@ -215,6 +216,16 @@ public static void ClearBlockTask(Player player, Vector3i loc, long delay) {

}

public static boolean TaskDoesNotExist(String name) {
boolean output = true;
for (Task taskd : Sponge.getScheduler().getScheduledTasks(NyxEffect.getInstance())) {
if (taskd.getName().equals(name)) {
output = false;
}
}
return output;
}

public static void UserTaskStop(Player player, String task, Boolean sendmsg) {
final String uuid = player.getUniqueId().toString();
if (sendmsg) {
Expand All @@ -228,6 +239,7 @@ public static void UserTaskStop(Player player, String task, Boolean sendmsg) {
taskd.cancel();
}
}
NyxEffect.getInstance().PlayerEvent.remove(player.getUniqueId());
} else {

if (task.equals("movement")) {
Expand All @@ -248,19 +260,22 @@ public static void UserTaskStart(Player player, String task, Boolean sendmsg) {
player.sendMessage(Text.of(TextColors.AQUA, "Starting task/s"));
}

NyxEffect.getInstance().PlayerEvent.putIfAbsent(player.getUniqueId(), new PlayerData(player.getName(), false));

if (task.equals("all")) {
Tools.AddMovementTask(player);
if (NyxEffect.getInstance().UserParticlesLIST.containsKey(player.getUniqueId().toString())) {
final List<String> pd = NyxEffect.getInstance().UserParticlesLIST.get(player.getUniqueId().toString());
for (String effect : pd) {
for (ParticlesData pdent : NyxEffect.getInstance().ParticlesLIST) {

if (pdent.getEffectsData().getId().equalsIgnoreCase(effect)) {
Task.builder().execute(new EffectTask(player, NyxEffect.getInstance(), pdent.getEffectsData().getParticleDataList()))
.async()
.interval(pdent.getEffectsData().getInterval(), TimeUnit.MILLISECONDS)
.name("TaskOwner: " + player.getUniqueId() + " Effect: " + pdent.getEffectsData().getId().toLowerCase()).submit(NyxEffect.getInstance());

String name = "TaskOwner: " + player.getUniqueId() + " Effect: " + pdent.getEffectsData().getId().toLowerCase();
if (TaskDoesNotExist(name)) {
Task.builder().execute(new EffectTask(player, NyxEffect.getInstance(), pdent.getEffectsData().getParticleDataList()))
.async()
.interval(pdent.getEffectsData().getInterval(), TimeUnit.MILLISECONDS)
.name(name).submit(NyxEffect.getInstance());
}
}

}
Expand All @@ -284,6 +299,7 @@ public static void UserTaskStart(Player player, String task, Boolean sendmsg) {

public static void UserTaskRestart(Player player, String task, Boolean sendmsg) {
UserTaskStop(player, task, sendmsg);

UserTaskStart(player, task, sendmsg);
}

Expand Down

0 comments on commit 8341c5e

Please sign in to comment.