Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Play the sleep animation for every nearby player.
- * @param alseep - the player asleep.
- */
- private void playSleepAnimation(Player asleep) {
- final PacketContainer bedPacket = plugin.manager.createPacket(PacketType.Play.Server.BED, false);
- final Location loc = asleep.getLocation();
- // [url]http://wiki.vg/Protocol#Use_Bed[/url]
- bedPacket.getEntityModifier(asleep.getWorld()).write(0, asleep);
- bedPacket.getIntegers().write(1, loc.getBlockX()).write(2, loc.getBlockY() + 1).write(3, loc.getBlockZ());
- broadcastNearby(asleep, bedPacket);
- }
- private void stopSleepAnimation(Player sleeping) {
- final PacketContainer animation = plugin.manager.createPacket(PacketType.Play.Server.ANIMATION, false);
- // [url]http://wiki.vg/Protocol#Animation[/url]
- animation.getEntityModifier(sleeping.getWorld()).
- write(0, sleeping);
- animation.getIntegers().
- write(1, 2);
- broadcastNearby(sleeping, animation);
- }
- private void broadcastNearby(Player asleep, PacketContainer bedPacket) {
- for (Player observer : plugin.manager.getEntityTrackers(asleep)) {
- try {
- plugin.manager.sendServerPacket(observer, bedPacket);
- } catch (InvocationTargetException e) {
- throw new RuntimeException("Cannot send packet.", e);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement