Don't glitch out when trying to sleep.
This commit is contained in:
		@@ -786,9 +786,9 @@ public class PacketsManager {
 | 
			
		||||
                                || event.getPacketType() == PacketType.Play.Server.ENTITY_EFFECT
 | 
			
		||||
                                || event.getPacketType() == PacketType.Play.Server.ENTITY_EQUIPMENT) {
 | 
			
		||||
                            event.setCancelled(true);
 | 
			
		||||
                        }
 | 
			
		||||
 | 
			
		||||
                        else if (event.getPacketType() == PacketType.Play.Server.ENTITY_STATUS) {
 | 
			
		||||
                        } else if (event.getPacketType() == PacketType.Play.Server.BED) {
 | 
			
		||||
                            ReflectionManager.setAllowSleep(observer);
 | 
			
		||||
                        } else if (event.getPacketType() == PacketType.Play.Server.ENTITY_STATUS) {
 | 
			
		||||
                            Disguise disguise = DisguiseAPI.getDisguise(event.getPlayer(), event.getPlayer());
 | 
			
		||||
                            if (disguise.isSelfDisguiseSoundsReplaced() && !disguise.getType().isPlayer()
 | 
			
		||||
                                    && event.getPacket().getBytes().read(0) == (ReflectionManager.isAfter17() ? 2 : 1)) {
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,7 @@ import org.bukkit.Location;
 | 
			
		||||
import org.bukkit.Sound;
 | 
			
		||||
import org.bukkit.World;
 | 
			
		||||
import org.bukkit.entity.Entity;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
import org.bukkit.inventory.ItemStack;
 | 
			
		||||
 | 
			
		||||
public class ReflectionManager {
 | 
			
		||||
@@ -56,6 +57,17 @@ public class ReflectionManager {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static void setAllowSleep(Player player) {
 | 
			
		||||
        try {
 | 
			
		||||
            Object nmsEntity = getNmsEntity(player);
 | 
			
		||||
            Object connection = nmsEntity.getClass().getField("playerConnection").get(nmsEntity);
 | 
			
		||||
            Field check = connection.getClass().getField("checkMovement");
 | 
			
		||||
            check.setBoolean(connection, true);
 | 
			
		||||
        } catch (Exception ex) {
 | 
			
		||||
            ex.printStackTrace();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static Object createEntityInstance(String entityName) {
 | 
			
		||||
        try {
 | 
			
		||||
            Class entityClass = getNmsClass("Entity" + entityName);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user