-
-
Notifications
You must be signed in to change notification settings - Fork 294
/
PlayerAnimation.java
124 lines (115 loc) · 4.06 KB
/
PlayerAnimation.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
package net.citizensnpcs.util;
import java.util.Arrays;
import net.minecraft.server.v1_7_R1.EntityPlayer;
import net.minecraft.server.v1_7_R1.Packet;
import net.minecraft.server.v1_7_R1.PacketPlayOutAnimation;
import net.minecraft.server.v1_7_R1.PacketPlayOutBed;
import net.minecraft.server.v1_7_R1.PacketPlayOutEntityMetadata;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
public enum PlayerAnimation {
ARM_SWING {
@Override
protected void playAnimation(EntityPlayer player, int radius) {
playDefaultAnimation(player, radius, 0);
}
},
CRIT {
@Override
protected void playAnimation(EntityPlayer player, int radius) {
playDefaultAnimation(player, radius, 4);
}
},
EAT_FOOD {
@Override
protected void playAnimation(EntityPlayer player, int radius) {
playDefaultAnimation(player, radius, 3);
}
},
HURT {
@Override
protected void playAnimation(EntityPlayer player, int radius) {
playDefaultAnimation(player, radius, 1);
}
},
MAGIC_CRIT {
@Override
protected void playAnimation(EntityPlayer player, int radius) {
playDefaultAnimation(player, radius, 5);
}
},
SIT {
@Override
protected void playAnimation(EntityPlayer player, int radius) {
player.mount(player);
}
},
SLEEP {
@Override
protected void playAnimation(EntityPlayer player, int radius) {
PacketPlayOutBed packet = new PacketPlayOutBed(player, (int) player.locX, (int) player.locY,
(int) player.locZ);
sendPacketNearby(packet, player, radius);
}
},
SNEAK {
@Override
protected void playAnimation(EntityPlayer player, int radius) {
player.getBukkitEntity().setSneaking(true);
sendPacketNearby(new PacketPlayOutEntityMetadata(player.getId(), player.getDataWatcher(), true), player,
radius);
}
},
START_USE_ITEM {
@Override
protected void playAnimation(EntityPlayer player, int radius) {
player.e(true);
sendPacketNearby(new PacketPlayOutEntityMetadata(player.getId(), player.getDataWatcher(), true), player,
radius);
}
},
STOP_SITTING {
@Override
protected void playAnimation(EntityPlayer player, int radius) {
player.mount(null);
}
},
STOP_SLEEPING {
@Override
protected void playAnimation(EntityPlayer player, int radius) {
playDefaultAnimation(player, radius, 2);
}
},
STOP_SNEAKING {
@Override
protected void playAnimation(EntityPlayer player, int radius) {
player.getBukkitEntity().setSneaking(false);
sendPacketNearby(new PacketPlayOutEntityMetadata(player.getId(), player.getDataWatcher(), true), player,
radius);
}
},
STOP_USE_ITEM {
@Override
protected void playAnimation(EntityPlayer player, int radius) {
player.e(false);
sendPacketNearby(new PacketPlayOutEntityMetadata(player.getId(), player.getDataWatcher(), true), player,
radius);
}
};
public void play(Player player) {
play(player, 64);
}
public void play(Player player, int radius) {
playAnimation(((CraftPlayer) player).getHandle(), radius);
}
protected void playAnimation(EntityPlayer player, int radius) {
throw new UnsupportedOperationException("unimplemented animation");
}
protected void playDefaultAnimation(EntityPlayer player, int radius, int code) {
PacketPlayOutAnimation packet = new PacketPlayOutAnimation(player, code);
sendPacketNearby(packet, player, radius);
}
protected void sendPacketNearby(Packet packet, EntityPlayer player, int radius) {
NMS.sendPacketsNearby(player.getBukkitEntity().getLocation(), Arrays.asList(packet), radius);
}
}