Don't glitch out when trying to sleep.
This commit is contained in:
parent
69b104f749
commit
5c94b59801
2
pom.xml
2
pom.xml
@ -61,7 +61,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.comphenix.protocol</groupId>
|
<groupId>com.comphenix.protocol</groupId>
|
||||||
<artifactId>ProtocolLib</artifactId>
|
<artifactId>ProtocolLib</artifactId>
|
||||||
<version>3.0.0-SNAPSHOT</version>
|
<version>3.1.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<version>7.9.1-SNAPSHOT</version>
|
<version>7.9.1-SNAPSHOT</version>
|
||||||
|
@ -786,9 +786,9 @@ public class PacketsManager {
|
|||||||
|| event.getPacketType() == PacketType.Play.Server.ENTITY_EFFECT
|
|| event.getPacketType() == PacketType.Play.Server.ENTITY_EFFECT
|
||||||
|| event.getPacketType() == PacketType.Play.Server.ENTITY_EQUIPMENT) {
|
|| event.getPacketType() == PacketType.Play.Server.ENTITY_EQUIPMENT) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
} else if (event.getPacketType() == PacketType.Play.Server.BED) {
|
||||||
|
ReflectionManager.setAllowSleep(observer);
|
||||||
else if (event.getPacketType() == PacketType.Play.Server.ENTITY_STATUS) {
|
} else if (event.getPacketType() == PacketType.Play.Server.ENTITY_STATUS) {
|
||||||
Disguise disguise = DisguiseAPI.getDisguise(event.getPlayer(), event.getPlayer());
|
Disguise disguise = DisguiseAPI.getDisguise(event.getPlayer(), event.getPlayer());
|
||||||
if (disguise.isSelfDisguiseSoundsReplaced() && !disguise.getType().isPlayer()
|
if (disguise.isSelfDisguiseSoundsReplaced() && !disguise.getType().isPlayer()
|
||||||
&& event.getPacket().getBytes().read(0) == (ReflectionManager.isAfter17() ? 2 : 1)) {
|
&& event.getPacket().getBytes().read(0) == (ReflectionManager.isAfter17() ? 2 : 1)) {
|
||||||
|
@ -10,6 +10,7 @@ import org.bukkit.Location;
|
|||||||
import org.bukkit.Sound;
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
public class ReflectionManager {
|
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) {
|
public static Object createEntityInstance(String entityName) {
|
||||||
try {
|
try {
|
||||||
Class entityClass = getNmsClass("Entity" + entityName);
|
Class entityClass = getNmsClass("Entity" + entityName);
|
||||||
|
Loading…
Reference in New Issue
Block a user