npcs 1.19.3
This commit is contained in:
parent
faf9caf6fd
commit
42fbf357c7
2 changed files with 9 additions and 10 deletions
|
@ -8,8 +8,8 @@ import me.night.nullvalkyrie.entities.npcs.NPCManager;
|
||||||
import me.night.nullvalkyrie.events.custom.InteractHologramEvent;
|
import me.night.nullvalkyrie.events.custom.InteractHologramEvent;
|
||||||
import me.night.nullvalkyrie.events.custom.RightClickNPCEvent;
|
import me.night.nullvalkyrie.events.custom.RightClickNPCEvent;
|
||||||
import me.night.nullvalkyrie.util.Util;
|
import me.night.nullvalkyrie.util.Util;
|
||||||
import net.minecraft.network.protocol.game.PacketPlayInUseEntity;
|
import net.minecraft.network.protocol.game.ServerboundInteractPacket;
|
||||||
import net.minecraft.server.level.EntityPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.ArmorStand;
|
import org.bukkit.entity.ArmorStand;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
|
@ -31,7 +31,7 @@ public class PacketHandler extends ChannelDuplexHandler {
|
||||||
@Override
|
@Override
|
||||||
public void channelRead(ChannelHandlerContext c, Object packet) throws Exception {
|
public void channelRead(ChannelHandlerContext c, Object packet) throws Exception {
|
||||||
if (packet.getClass().getSimpleName().equalsIgnoreCase("PacketPlayInUseEntity")) {
|
if (packet.getClass().getSimpleName().equalsIgnoreCase("PacketPlayInUseEntity")) {
|
||||||
PacketPlayInUseEntity pk = (PacketPlayInUseEntity) packet;
|
ServerboundInteractPacket pk = (ServerboundInteractPacket) packet;
|
||||||
int entityID = (int) Util.getFieldValue(packet, "a");
|
int entityID = (int) Util.getFieldValue(packet, "a");
|
||||||
boolean sneak = (boolean) Util.getFieldValue(packet, "c");
|
boolean sneak = (boolean) Util.getFieldValue(packet, "c");
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(Main.getPlugin(Main.class), () -> {
|
Bukkit.getScheduler().scheduleSyncDelayedTask(Main.getPlugin(Main.class), () -> {
|
||||||
|
@ -42,15 +42,14 @@ public class PacketHandler extends ChannelDuplexHandler {
|
||||||
}
|
}
|
||||||
}, 0);
|
}, 0);
|
||||||
Object data = Util.getFieldValue(pk, "b");
|
Object data = Util.getFieldValue(pk, "b");
|
||||||
if (data.toString().split("\\$")[1].charAt(0) == 'e') {
|
if (data.toString().split("\\$")[1].charAt(0) == 'e')
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
try {
|
try {
|
||||||
Object hand = Util.getFieldValue(data, "a");
|
Object hand = Util.getFieldValue(data, "a");
|
||||||
if (!hand.toString().equals("MAIN_HAND")) return;
|
if (!hand.toString().equals("MAIN_HAND")) return;
|
||||||
//Right Click
|
//Right Click
|
||||||
for (EntityPlayer npcs : NPCManager.getNPCs()) {
|
for (ServerPlayer npcs : NPCManager.getNPCs()) {
|
||||||
if (npcs.ae() == entityID && sneak) {
|
if (npcs.getBukkitEntity().getEntityId() == entityID && sneak) {
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(Main.getPlugin(Main.class), () -> Bukkit.getPluginManager().callEvent(new RightClickNPCEvent(player, npcs)), 0);
|
Bukkit.getScheduler().scheduleSyncDelayedTask(Main.getPlugin(Main.class), () -> Bukkit.getPluginManager().callEvent(new RightClickNPCEvent(player, npcs)), 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
package me.night.nullvalkyrie.packets;
|
package me.night.nullvalkyrie.packets;
|
||||||
|
|
||||||
import io.netty.channel.Channel;
|
import io.netty.channel.Channel;
|
||||||
import org.bukkit.craftbukkit.v1_19_R1.entity.CraftPlayer;
|
import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPlayer;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class PacketInjector {
|
public class PacketInjector {
|
||||||
public void addPlayer(Player p) {
|
public void addPlayer(Player p) {
|
||||||
try {
|
try {
|
||||||
Channel ch = ((CraftPlayer) p).getHandle().b.b.m;
|
Channel ch = ((CraftPlayer) p).getHandle().connection.getConnection().channel;
|
||||||
if (ch.pipeline().get("PacketInjector") == null) {
|
if (ch.pipeline().get("PacketInjector") == null) {
|
||||||
PacketHandler h = new PacketHandler(p);
|
PacketHandler h = new PacketHandler(p);
|
||||||
ch.pipeline().addBefore("packet_handler", "PacketInjector", h);
|
ch.pipeline().addBefore("packet_handler", "PacketInjector", h);
|
||||||
|
@ -19,7 +19,7 @@ public class PacketInjector {
|
||||||
|
|
||||||
public void removePlayer(Player p) {
|
public void removePlayer(Player p) {
|
||||||
try {
|
try {
|
||||||
Channel ch = ((CraftPlayer) p).getHandle().b.b.m; // NMS: 1.19.2 https://nms.screamingsandals.org/1.19.2/net/minecraft/server/network/ServerGamePacketListenerImpl.html PlayerConnection -> NetworkManager -> Channel
|
Channel ch = ((CraftPlayer) p).getHandle().connection.getConnection().channel; // NMS: 1.19.2 https://nms.screamingsandals.org/1.19.2/net/minecraft/server/network/ServerGamePacketListenerImpl.html PlayerConnection -> NetworkManager -> Channel
|
||||||
if (ch.pipeline().get("PacketInjector") != null) {
|
if (ch.pipeline().get("PacketInjector") != null) {
|
||||||
ch.pipeline().remove("PacketInjector");
|
ch.pipeline().remove("PacketInjector");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue