summaryrefslogtreewikicommitdiff
path: root/src/main/java/net/tylermurphy/hideAndSeek/game/events/Glow.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/game/events/Glow.java')
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/game/events/Glow.java33
1 files changed, 30 insertions, 3 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/events/Glow.java b/src/main/java/net/tylermurphy/hideAndSeek/game/events/Glow.java
index a0031e5..a1d7295 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/game/events/Glow.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/game/events/Glow.java
@@ -1,14 +1,22 @@
package net.tylermurphy.hideAndSeek.game.events;
+import com.comphenix.protocol.PacketType;
+import com.comphenix.protocol.ProtocolLibrary;
+import com.comphenix.protocol.ProtocolManager;
+import com.comphenix.protocol.events.PacketContainer;
+import com.comphenix.protocol.wrappers.WrappedDataWatcher;
import net.tylermurphy.hideAndSeek.Main;
-import net.tylermurphy.hideAndSeek.game.util.Packet;
import org.bukkit.entity.Player;
+import java.lang.reflect.InvocationTargetException;
+
import static net.tylermurphy.hideAndSeek.configuration.Config.glowLength;
import static net.tylermurphy.hideAndSeek.configuration.Config.glowStackable;
public class Glow {
+ private static final ProtocolManager protocolManager = ProtocolLibrary.getProtocolManager();
+
private int glowTime;
private boolean running;
@@ -25,7 +33,7 @@ public class Glow {
private void sendPackets() {
for (Player hider : Main.getInstance().getBoard().getHiders())
for (Player seeker : Main.getInstance().getBoard().getSeekers())
- Packet.setGlow(hider, seeker, true);
+ setGlow(hider, seeker, true);
}
public void update() {
@@ -43,7 +51,7 @@ public class Glow {
running = false;
for (Player hider : Main.getInstance().getBoard().getHiders()) {
for (Player seeker : Main.getInstance().getBoard().getSeekers()) {
- Packet.setGlow(hider, seeker, false);
+ setGlow(hider, seeker, false);
}
}
}
@@ -52,4 +60,23 @@ public class Glow {
return running;
}
+ public void setGlow(Player player, Player target, boolean glowing) {
+ PacketContainer packet = protocolManager.createPacket(PacketType.Play.Server.ENTITY_METADATA);
+ packet.getIntegers().write(0, target.getEntityId());
+ WrappedDataWatcher watcher = new WrappedDataWatcher();
+ WrappedDataWatcher.Serializer serializer = WrappedDataWatcher.Registry.get(Byte.class);
+ watcher.setEntity(target);
+ if (glowing) {
+ watcher.setObject(0, serializer, (byte) (0x40));
+ } else {
+ watcher.setObject(0, serializer, (byte) (0x0));
+ }
+ packet.getWatchableCollectionModifier().write(0, watcher.getWatchableObjects());
+ try {
+ protocolManager.sendServerPacket(player, packet);
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ }
+ }
+
}