9
9
import cn .nukkit .block .BlockStairs ;
10
10
import cn .nukkit .entity .Entity ;
11
11
import cn .nukkit .entity .data .EntityMetadata ;
12
- import cn .nukkit .entity .item .EntityItem ;
13
12
import cn .nukkit .event .EventHandler ;
14
13
import cn .nukkit .event .Listener ;
15
14
import cn .nukkit .event .player .PlayerInteractEvent ;
16
15
import cn .nukkit .event .player .PlayerQuitEvent ;
17
16
import cn .nukkit .event .server .DataPacketReceiveEvent ;
18
17
import cn .nukkit .network .protocol .AddEntityPacket ;
19
- import cn .nukkit .network .protocol .MoveEntityPacket ;
18
+ import cn .nukkit .network .protocol .MoveEntityAbsolutePacket ;
20
19
import cn .nukkit .network .protocol .PlayerActionPacket ;
21
20
import cn .nukkit .network .protocol .ProtocolInfo ;
22
21
import cn .nukkit .network .protocol .RemoveEntityPacket ;
@@ -35,77 +34,78 @@ public class PmChair extends PluginBase implements Listener {
35
34
public static final int m_version = 1 ;
36
35
37
36
@ Override
38
- public void onEnable (){
37
+ public void onEnable () {
39
38
this .getServer ().getPluginManager ().registerEvents (this , this );
40
39
this .loadMessage ();
41
40
}
42
41
43
- public void loadMessage (){
42
+ public void loadMessage () {
44
43
this .saveResource ("messages.yml" );
45
44
this .messages = new Config (new File (this .getDataFolder (), "messages.yml" ), Config .YAML ).getAll ();
46
45
this .updateMessage ();
47
46
}
48
47
49
- public void updateMessage (){
50
- if ((int ) this .messages .get ("m_version" ) < m_version ) {
48
+ public void updateMessage () {
49
+ if ((int ) this .messages .get ("m_version" ) < m_version ) {
51
50
this .saveResource ("messages.yml" , true );
52
51
new Config (new File (this .getDataFolder (), "messages.yml" ), Config .YAML ).getAll ().forEach ((k , v ) -> this .messages .put (k , (String ) v ));
53
52
}
54
53
}
55
54
56
- public String get (String m ){
55
+ public String get (String m ) {
57
56
return (String ) this .messages .get (this .messages .get ("default-language" ) + "-" + m );
58
57
}
59
58
60
59
@ EventHandler
61
- public void onTouch (PlayerInteractEvent event ){
60
+ public void onTouch (PlayerInteractEvent event ) {
62
61
Player player = event .getPlayer ();
63
- if (player .isSneaking () || event .getAction () != PlayerInteractEvent .Action .RIGHT_CLICK_BLOCK ){
62
+ if (player .isSneaking () || event .getAction () != PlayerInteractEvent .Action .RIGHT_CLICK_BLOCK ) {
64
63
return ;
65
64
}
66
65
67
66
String name = player .getName ().toLowerCase ();
68
67
Block block = event .getBlock ();
69
68
70
- if (! this .onChair .containsKey (name )){
71
- if (block instanceof BlockStairs ){
72
- if (! this .doubleTap .containsKey (name )){
69
+ if (! this .onChair .containsKey (name )) {
70
+ if (block instanceof BlockStairs ) {
71
+ if (! this .doubleTap .containsKey (name )) {
73
72
this .doubleTap .put (name , System .currentTimeMillis ());
74
73
player .sendPopup (TextFormat .RED + this .get ("touch-popup" ));
75
74
return ;
76
75
}
77
- if (System .currentTimeMillis () - this .doubleTap .get (name ) < 500 ){
78
-
79
- AddEntityPacket AddTagblockPacket = new AddEntityPacket ();
76
+
77
+ if (System .currentTimeMillis () - this .doubleTap .get (name ) < 500 ) {
78
+
79
+ AddEntityPacket addTagblockPacket = new AddEntityPacket ();
80
80
long eid = Entity .entityCount ++;
81
81
this .tagblock .put (name , eid );
82
- AddTagblockPacket .entityRuntimeId = eid ;
83
- AddTagblockPacket .entityUniqueId = eid ;
84
- AddTagblockPacket .speedX = 0 ;
85
- AddTagblockPacket .speedY = 0 ;
86
- AddTagblockPacket .speedZ = 0 ;
87
- AddTagblockPacket .pitch = 0 ;
88
- AddTagblockPacket .yaw = 0 ;
89
- AddTagblockPacket .x = (float ) (block .getX () + 0.5 );
90
- AddTagblockPacket .y = (float ) (block .getY () + 0.3 );
91
- AddTagblockPacket .z = (float ) (block .getZ () + 0.5 );
92
- AddTagblockPacket .type = 15 ;
82
+ addTagblockPacket .entityRuntimeId = eid ;
83
+ addTagblockPacket .entityUniqueId = eid ;
84
+ addTagblockPacket .speedX = 0 ;
85
+ addTagblockPacket .speedY = 0 ;
86
+ addTagblockPacket .speedZ = 0 ;
87
+ addTagblockPacket .pitch = 0 ;
88
+ addTagblockPacket .yaw = 0 ;
89
+ addTagblockPacket .x = (float ) (block .getX () + 0.5 );
90
+ addTagblockPacket .y = (float ) (block .getY () + 0.3 );
91
+ addTagblockPacket .z = (float ) (block .getZ () + 0.5 );
92
+ addTagblockPacket .type = 84 ;
93
93
94
94
long flags = 0 ;
95
95
flags |= 1 << Entity .DATA_FLAG_CAN_SHOW_NAMETAG ;
96
96
flags |= 1 << Entity .DATA_FLAG_INVISIBLE ;
97
97
flags |= 1 << Entity .DATA_FLAG_NO_AI ;
98
98
flags |= 1 << Entity .DATA_FLAG_ALWAYS_SHOW_NAMETAG ;
99
99
100
- AddTagblockPacket .metadata = new EntityMetadata ()
100
+ addTagblockPacket .metadata = new EntityMetadata ()
101
101
.putLong (Entity .DATA_FLAGS , flags )
102
102
.putShort (Entity .DATA_AIR , 400 )
103
103
.putShort (Entity .DATA_MAX_AIR , 400 )
104
104
.putString (Entity .DATA_NAMETAG , TextFormat .AQUA + this .get ("tagblock-message" ))
105
105
.putLong (Entity .DATA_LEAD_HOLDER_EID , -1 )
106
106
.putFloat (Entity .DATA_SCALE , 0.0001f );
107
107
108
- MoveEntityPacket moveTagblockPacket = new MoveEntityPacket ();
108
+ MoveEntityAbsolutePacket moveTagblockPacket = new MoveEntityAbsolutePacket ();
109
109
moveTagblockPacket .eid = eid ;
110
110
moveTagblockPacket .x = (float ) (block .getX () + 0.5 );
111
111
moveTagblockPacket .y = (float ) (block .getY () + 0.7 );
@@ -126,22 +126,22 @@ public void onTouch(PlayerInteractEvent event){
126
126
addEntityPacket .x = (float ) (block .getX () + 0.5 );
127
127
addEntityPacket .y = (float ) (block .getY () + 1.6 );
128
128
addEntityPacket .z = (float ) (block .getZ () + 0.5 );
129
- addEntityPacket .type = 15 ;
129
+ addEntityPacket .type = 84 ;
130
130
131
131
flags = 0 ;
132
- // flags |= 1 << Entity.DATA_FLAG_CAN_SHOW_NAMETAG;
132
+ flags |= 1 << Entity .DATA_FLAG_CAN_SHOW_NAMETAG ;
133
133
flags |= 1 << Entity .DATA_FLAG_INVISIBLE ;
134
134
flags |= 1 << Entity .DATA_FLAG_NO_AI ;
135
- // flags |= 1 << Entity.DATA_FLAG_ALWAYS_SHOW_NAMETAG;
135
+ flags |= 1 << Entity .DATA_FLAG_ALWAYS_SHOW_NAMETAG ;
136
136
137
137
addEntityPacket .metadata = new EntityMetadata ()
138
138
.putLong (Entity .DATA_FLAGS , flags )
139
139
.putShort (Entity .DATA_AIR , 400 )
140
140
.putShort (Entity .DATA_MAX_AIR , 400 )
141
- .putLong (Entity .DATA_LEAD_HOLDER_EID , -1 );
142
- // .putFloat(Entity.DATA_SCALE, 0.0001f);
141
+ .putLong (Entity .DATA_LEAD_HOLDER_EID , -1 )
142
+ .putFloat (Entity .DATA_SCALE , 0.0001f );
143
143
144
- MoveEntityPacket moveEntityPacket = new MoveEntityPacket ();
144
+ MoveEntityAbsolutePacket moveEntityPacket = new MoveEntityAbsolutePacket ();
145
145
moveEntityPacket .eid = eid ;
146
146
moveEntityPacket .x = (float ) (block .getX () + 0.5 );
147
147
moveEntityPacket .y = (float ) (block .getY () + 1.6 );
@@ -153,29 +153,28 @@ public void onTouch(PlayerInteractEvent event){
153
153
SetEntityLinkPacket setEntityLinkPacket = new SetEntityLinkPacket ();
154
154
setEntityLinkPacket .rider = eid ;
155
155
setEntityLinkPacket .riding = player .getId ();
156
- setEntityLinkPacket .type = SetEntityLinkPacket .TYPE_RIDE ;
156
+ setEntityLinkPacket .type = SetEntityLinkPacket .TYPE_PASSENGER ;
157
157
158
158
this .getServer ().getOnlinePlayers ().values ().forEach ((target ) -> {
159
159
target .dataPacket (addEntityPacket );
160
160
target .dataPacket (moveEntityPacket );
161
-
162
- target .dataPacket (AddTagblockPacket );
161
+ target .dataPacket (addTagblockPacket );
163
162
target .dataPacket (moveTagblockPacket );
164
- if (target != player ){
163
+ if (target != player ) {
165
164
target .dataPacket (setEntityLinkPacket );
166
165
}
167
166
});
168
167
169
- setEntityLinkPacket .riding = 0 ;
170
168
player .dataPacket (setEntityLinkPacket );
169
+ player .setDataFlag (Entity .DATA_FLAGS , Entity .DATA_FLAG_RIDING , true );
171
170
this .doubleTap .remove (name );
172
- }else {
171
+ } else {
173
172
this .doubleTap .put (name , System .currentTimeMillis ());
174
173
player .sendPopup (TextFormat .RED + this .get ("touch-popup" ));
175
174
return ;
176
175
}
177
176
}
178
- }else {
177
+ } else {
179
178
RemoveEntityPacket removeEntityPacket = new RemoveEntityPacket ();
180
179
removeEntityPacket .eid = this .onChair .remove (name );
181
180
RemoveEntityPacket removeTagblockPacket = new RemoveEntityPacket ();
@@ -188,11 +187,11 @@ public void onTouch(PlayerInteractEvent event){
188
187
}
189
188
190
189
@ EventHandler
191
- public void onJump (DataPacketReceiveEvent event ){
192
- if (event .getPacket ().pid () == ProtocolInfo .PLAYER_ACTION_PACKET ){
190
+ public void onJump (DataPacketReceiveEvent event ) {
191
+ if (event .getPacket ().pid () == ProtocolInfo .PLAYER_ACTION_PACKET ) {
193
192
PlayerActionPacket packet = (PlayerActionPacket ) event .getPacket ();
194
193
String name = event .getPlayer ().getName ().toLowerCase ();
195
- if (packet .action == PlayerActionPacket .ACTION_JUMP && this .onChair .containsKey (name )){
194
+ if (packet .action == PlayerActionPacket .ACTION_JUMP && this .onChair .containsKey (name )) {
196
195
RemoveEntityPacket removeEntityPacket = new RemoveEntityPacket ();
197
196
removeEntityPacket .eid = this .onChair .remove (name );
198
197
RemoveEntityPacket removeTagblockPacket = new RemoveEntityPacket ();
@@ -206,9 +205,9 @@ public void onJump(DataPacketReceiveEvent event){
206
205
}
207
206
208
207
@ EventHandler
209
- public void onQuit (PlayerQuitEvent event ){
208
+ public void onQuit (PlayerQuitEvent event ) {
210
209
String name = event .getPlayer ().getName ().toLowerCase ();
211
- if (! this .onChair .containsKey (name )){
210
+ if (! this .onChair .containsKey (name )) {
212
211
return ;
213
212
}
214
213
RemoveEntityPacket removeEntityPacket = new RemoveEntityPacket ();
0 commit comments