mirror of
https://github.com/AtlasMediaGroup/Scissors.git
synced 2024-11-27 07:05:39 +00:00
Add spectator teleport event (#27)
This commit is contained in:
parent
3330671737
commit
acb9c23149
73
patches/api/0002-Add-spectator-teleport-event.patch
Normal file
73
patches/api/0002-Add-spectator-teleport-event.patch
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Allink <arclicious@vivaldi.net>
|
||||||
|
Date: Tue, 5 Jul 2022 03:59:18 +0100
|
||||||
|
Subject: [PATCH] Add spectator teleport event
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/com/github/atlasmediagroup/scissors/event/player/SpectatorTeleportEvent.java b/src/main/java/com/github/atlasmediagroup/scissors/event/player/SpectatorTeleportEvent.java
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000000000000000000000000000000000..6941549c8f15177569f9ce7243b73255c7c5988e
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/src/main/java/com/github/atlasmediagroup/scissors/event/player/SpectatorTeleportEvent.java
|
||||||
|
@@ -0,0 +1,61 @@
|
||||||
|
+package com.github.atlasmediagroup.scissors.event.player;
|
||||||
|
+
|
||||||
|
+import org.bukkit.entity.Entity;
|
||||||
|
+import org.bukkit.entity.Player;
|
||||||
|
+import org.bukkit.event.Cancellable;
|
||||||
|
+import org.bukkit.event.Event;
|
||||||
|
+import org.bukkit.event.HandlerList;
|
||||||
|
+import org.jetbrains.annotations.NotNull;
|
||||||
|
+
|
||||||
|
+/**
|
||||||
|
+ * Called whenever a spectator attempts to teleport to an entity
|
||||||
|
+ */
|
||||||
|
+public class SpectatorTeleportEvent extends Event implements Cancellable
|
||||||
|
+{
|
||||||
|
+ private static final HandlerList handlerList = new HandlerList();
|
||||||
|
+ private final Player player;
|
||||||
|
+ private final Entity target;
|
||||||
|
+ private boolean cancelled;
|
||||||
|
+
|
||||||
|
+ public SpectatorTeleportEvent(@NotNull Player player, @NotNull Entity target)
|
||||||
|
+ {
|
||||||
|
+ System.out.println("[DEBUG] Spectator teleport event called!");
|
||||||
|
+ this.player = player;
|
||||||
|
+ this.target = target;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @NotNull
|
||||||
|
+ public Player getPlayer() {
|
||||||
|
+ return this.player;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @NotNull
|
||||||
|
+ public Entity getTarget() {
|
||||||
|
+ return this.target;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public boolean isCancelled()
|
||||||
|
+ {
|
||||||
|
+ return cancelled;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public void setCancelled(boolean cancelled)
|
||||||
|
+ {
|
||||||
|
+ this.cancelled = cancelled;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @NotNull
|
||||||
|
+ @Override
|
||||||
|
+ public HandlerList getHandlers()
|
||||||
|
+ {
|
||||||
|
+ return handlerList;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @NotNull
|
||||||
|
+ public static org.bukkit.event.HandlerList getHandlerList()
|
||||||
|
+ {
|
||||||
|
+ return handlerList;
|
||||||
|
+ }
|
||||||
|
+}
|
32
patches/server/0034-Add-spectator-teleport-event.patch
Normal file
32
patches/server/0034-Add-spectator-teleport-event.patch
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Allink <arclicious@vivaldi.net>
|
||||||
|
Date: Tue, 5 Jul 2022 04:00:42 +0100
|
||||||
|
Subject: [PATCH] Add spectator teleport event
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
|
index 1901a14556b197b70a2e8bb46d07a216d5d6c07e..047eef16aa457757f968e2210dcba03207cf7448 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
|
@@ -1,5 +1,6 @@
|
||||||
|
package net.minecraft.server.network;
|
||||||
|
|
||||||
|
+import com.github.atlasmediagroup.scissors.event.player.SpectatorTeleportEvent;
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
import com.google.common.primitives.Floats;
|
||||||
|
import com.mojang.brigadier.ParseResults;
|
||||||
|
@@ -1948,6 +1949,14 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
||||||
|
Entity entity = packet.getEntity(worldserver);
|
||||||
|
|
||||||
|
if (entity != null) {
|
||||||
|
+ // Scissors start - Add spectator teleport event
|
||||||
|
+ final SpectatorTeleportEvent event = new SpectatorTeleportEvent(this.player.getBukkitEntity(), entity.getBukkitEntity());
|
||||||
|
+
|
||||||
|
+ if(!event.callEvent()) {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ // Scissors end
|
||||||
|
+
|
||||||
|
this.player.teleportTo(worldserver, entity.getX(), entity.getY(), entity.getZ(), entity.getYRot(), entity.getXRot(), org.bukkit.event.player.PlayerTeleportEvent.TeleportCause.SPECTATE); // CraftBukkit
|
||||||
|
return;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user