Mirror von
https://github.com/Moulberry/AxiomPaperPlugin.git
synchronisiert 2024-11-16 21:30:08 +01:00
Merge pull request #6 from Boy0000/entity-manip-event
feat: add AxiomManipulateEntityEvent
Dieser Commit ist enthalten in:
Commit
b9225711d0
@ -0,0 +1,57 @@
|
||||
package com.moulberry.axiom.event;
|
||||
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
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;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class AxiomManipulateEntityEvent extends Event implements Cancellable {
|
||||
|
||||
private static final HandlerList HANDLERS = new HandlerList();
|
||||
|
||||
private final Player player;
|
||||
private final Entity entity;
|
||||
|
||||
private boolean cancelled = false;
|
||||
|
||||
public AxiomManipulateEntityEvent(Player player, @NotNull Entity entity) {
|
||||
this.player = player;
|
||||
this.entity = entity;
|
||||
}
|
||||
|
||||
public Player getPlayer() {
|
||||
return player;
|
||||
}
|
||||
|
||||
public Entity getEntity() {
|
||||
return entity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCancelled() {
|
||||
return this.cancelled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCancelled(boolean cancel) {
|
||||
this.cancelled = cancel;
|
||||
}
|
||||
|
||||
public static HandlerList getHandlerList() {
|
||||
return HANDLERS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull HandlerList getHandlers() {
|
||||
return HANDLERS;
|
||||
}
|
||||
}
|
@ -2,6 +2,7 @@ package com.moulberry.axiom.packet;
|
||||
|
||||
import com.moulberry.axiom.AxiomPaper;
|
||||
import com.moulberry.axiom.NbtSanitization;
|
||||
import com.moulberry.axiom.event.AxiomManipulateEntityEvent;
|
||||
import com.moulberry.axiom.integration.Integration;
|
||||
import com.moulberry.axiom.integration.plotsquared.PlotSquaredIntegration;
|
||||
import com.moulberry.axiom.viaversion.UnknownVersionHelper;
|
||||
@ -124,6 +125,9 @@ public class ManipulateEntityPacketListener implements PluginMessageListener {
|
||||
continue;
|
||||
}
|
||||
|
||||
AxiomManipulateEntityEvent manipulateEvent = new AxiomManipulateEntityEvent(player, entity.getBukkitEntity());
|
||||
if (!manipulateEvent.callEvent()) continue;
|
||||
|
||||
if (entry.merge != null && !entry.merge.isEmpty()) {
|
||||
NbtSanitization.sanitizeEntity(entry.merge);
|
||||
|
||||
@ -156,7 +160,7 @@ public class ManipulateEntityPacketListener implements PluginMessageListener {
|
||||
|
||||
if (Integration.canPlaceBlock(player, new Location(player.getWorld(),
|
||||
containing.getX(), containing.getY(), containing.getZ()))) {
|
||||
entity.teleportTo(serverLevel, newX, newY, newZ, Set.of(), newYaw, newPitch);
|
||||
entity.teleportTo(serverLevel, newX, newY, newZ, Set.of(), newYaw, newPitch);
|
||||
}
|
||||
|
||||
entity.setYHeadRot(newYaw);
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren