Skip to content

Commit

Permalink
Merge branch '1.20.2-server-renderer' into 1.20.2
Browse files Browse the repository at this point in the history
  • Loading branch information
MATRIX-feather committed Jan 4, 2024
2 parents 8327ff9 + 76ccaae commit 830e4ef
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -54,13 +54,9 @@ private void onEquipmentPacket(ClientboundSetEquipmentPacket packet, PacketEvent
return;

//获取此包的来源实体
var sourceNmsEntity = NmsUtils.getNmsLevel(event.getPlayer().getWorld()).getEntity(packet.getEntity());
var sourceNmsEntity = getNmsEntityFrom(event, packet.getEntity());
if (sourceNmsEntity == null)
{
logger.warn("A packet from a player that doesn't exist in its world?!");
logger.warn("Packet: " + event.getPacketType());
return;
}

if (!(sourceNmsEntity.getBukkitEntity() instanceof Player sourcePlayer)) return;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,10 @@ public void onPacketSending(PacketEvent event)
private void onMetaPacket(ClientboundSetEntityDataPacket packet, PacketEvent packetEvent)
{
//获取此包的来源实体
var sourceNmsEntity = NmsUtils.getNmsLevel(packetEvent.getPlayer().getWorld()).getEntity(packet.id());
var sourceNmsEntity = getNmsEntityFrom(packetEvent, packet.id());
if (sourceNmsEntity == null)
{
logger.warn("A packet from a player that doesn't exist in its world?!");
logger.warn("Packet: " + packetEvent.getPacketType());
return;
}


if (!(sourceNmsEntity.getBukkitEntity() instanceof Player sourcePlayer)) return;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,13 +66,10 @@ else if (packetType == PacketType.Play.Server.ENTITY_TELEPORT)
private void onTeleport(ClientboundTeleportEntityPacket packet, PacketEvent event)
{
//获取此包的来源实体
var sourceNmsEntity = NmsUtils.getNmsLevel(event.getPlayer().getWorld()).getEntity(packet.getId());
var sourceNmsEntity = getNmsEntityFrom(event, packet.getId());
if (sourceNmsEntity == null)
{
logger.warn("A packet from a player that doesn't exist in its world?!");
logger.warn("Packet: " + event.getPacketType());
return;
}


if (!(sourceNmsEntity.getBukkitEntity() instanceof Player sourcePlayer)) return;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,21 @@

import com.comphenix.protocol.ProtocolLibrary;
import com.comphenix.protocol.ProtocolManager;
import com.comphenix.protocol.events.PacketEvent;
import com.comphenix.protocol.events.PacketListener;
import net.minecraft.world.entity.Entity;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.Nullable;
import xiamomc.morph.MorphPlugin;
import xiamomc.morph.MorphPluginObject;
import xiamomc.morph.backends.server.renderer.network.PacketFactory;
import xiamomc.morph.backends.server.renderer.network.queue.PacketQueue;
import xiamomc.morph.config.ConfigOption;
import xiamomc.morph.config.MorphConfigManager;
import xiamomc.morph.utilities.NmsUtils;
import xiamomc.pluginbase.Annotations.Initializer;
import xiamomc.pluginbase.Annotations.Resolved;
import xiamomc.pluginbase.Bindables.Bindable;

public abstract class ProtocolListener extends MorphPluginObject implements PacketListener
{
Expand Down Expand Up @@ -36,4 +45,31 @@ public org.bukkit.plugin.Plugin getPlugin()
{
return MorphPlugin.getInstance();
}

private final Bindable<Boolean> debugOutput = new Bindable<>(false);

@Initializer
private void load(MorphConfigManager configManager)
{
configManager.bind(debugOutput, ConfigOption.DEBUG_OUTPUT);
}

@Nullable
protected Entity getNmsEntityFrom(PacketEvent event, int id)
{
var packetTarget = event.getPlayer();
var sourceNmsEntity = NmsUtils.getNmsLevel(packetTarget.getWorld()).getEntity(id);
if (sourceNmsEntity == null)
{
if (debugOutput.get())
{
logger.warn("A packet from a player that doesn't exist in its world?!");
logger.warn("Packet: " + event.getPacketType());
}

return null;
}

return sourceNmsEntity;
}
}

0 comments on commit 830e4ef

Please sign in to comment.