1
1
package net .minecraft .server ;
2
2
3
+ import com .google .common .collect .Lists ;
3
4
import com .google .common .primitives .Doubles ;
4
5
import com .google .common .primitives .Floats ;
6
+ import com .google .common .util .concurrent .Futures ;
5
7
6
8
import io .akarin .api .internal .Akari ;
7
9
import io .akarin .server .core .AkarinGlobalConfig ;
10
12
import java .io .IOException ;
11
13
import java .util .ArrayList ;
12
14
import java .util .Collections ;
15
+ import java .util .Iterator ;
16
+ import java .util .List ;
13
17
import java .util .Set ;
14
18
import org .apache .commons .lang3 .StringUtils ;
15
19
import org .apache .logging .log4j .LogManager ;
@@ -382,10 +386,13 @@ public void a(PacketPlayInVehicleMove packetplayinvehiclemove) {
382
386
}
383
387
384
388
entity .setLocation (d3 , d4 , d5 , f , f1 );
389
+ Location curPos = getPlayer ().getLocation (); // Paper
390
+ player .setLocation (d3 , d4 , d5 , f , f1 ); // Paper
385
391
boolean flag2 = worldserver .getCubes (entity , entity .getBoundingBox ().shrink (0.0625D )).isEmpty ();
386
392
387
393
if (flag && (flag1 || !flag2 )) {
388
394
entity .setLocation (d0 , d1 , d2 , f , f1 );
395
+ player .setLocation (d0 , d1 , d2 , f , f1 ); // Paper
389
396
this .networkManager .sendPacket (new PacketPlayOutVehicleMove (entity ));
390
397
return ;
391
398
}
@@ -395,7 +402,7 @@ public void a(PacketPlayInVehicleMove packetplayinvehiclemove) {
395
402
// Spigot Start
396
403
if ( !hasMoved )
397
404
{
398
- Location curPos = player .getLocation ();
405
+ // Location curPos = player.getLocation(); // Paper - move up
399
406
lastPosX = curPos .getX ();
400
407
lastPosY = curPos .getY ();
401
408
lastPosZ = curPos .getZ ();
@@ -2310,32 +2317,26 @@ public void a(PacketPlayInTabComplete packet) {
2310
2317
buffer , isCommand , blockpos != null ? MCUtil .toLocation (player .world , blockpos ) : null );
2311
2318
event .callEvent ();
2312
2319
completions = event .isCancelled () ? com .google .common .collect .ImmutableList .of () : event .getCompletions ();
2313
- if (event .isCancelled () || event .isHandled ()) {
2314
- // Still fire sync event with the provided completions, if someone is listening
2315
- if (!event .isCancelled () && org .bukkit .event .server .TabCompleteEvent .getHandlerList ().getRegisteredListeners ().length > 0 ) {
2316
- java .util .List <String > finalCompletions = completions ;
2317
- Waitable <java .util .List <String >> syncCompletions = new Waitable <java .util .List <String >>() {
2318
- @ Override
2319
- protected java .util .List <String > evaluate () {
2320
- org .bukkit .event .server .TabCompleteEvent syncEvent = new org .bukkit .event .server .TabCompleteEvent (PlayerConnection .this .getPlayer (), buffer , finalCompletions , isCommand , blockpos != null ? MCUtil .toLocation (player .world , blockpos ) : null );
2321
- return syncEvent .callEvent () ? syncEvent .getCompletions () : com .google .common .collect .ImmutableList .of ();
2322
- }
2323
- };
2324
- server .getServer ().processQueue .add (syncCompletions );
2325
- try {
2326
- completions = syncCompletions .get ();
2327
- } catch (InterruptedException | ExecutionException e1 ) {
2328
- e1 .printStackTrace ();
2320
+ if (!event .isHandled ()) {
2321
+ // If the event isn't handled, we can assume that we have no completions, and so we'll ask the server
2322
+
2323
+ Waitable <java .util .List <String >> syncCompletions = new Waitable <java .util .List <String >>() {
2324
+ @ Override
2325
+ protected java .util .List <String > evaluate () {
2326
+ return minecraftServer .tabCompleteCommand (player , buffer , blockpos , isCommand );
2329
2327
}
2328
+ };
2329
+ server .getServer ().processQueue .add (syncCompletions );
2330
+ try {
2331
+ completions = syncCompletions .get ();
2332
+ } catch (InterruptedException | ExecutionException e1 ) {
2333
+ e1 .printStackTrace ();
2330
2334
}
2331
2335
2332
2336
this .player .playerConnection .sendPacket (new PacketPlayOutTabComplete (completions .toArray (new String [completions .size ()])));
2333
- return ;
2337
+ } else if (!event .isCancelled ()) {
2338
+ this .player .playerConnection .sendPacket (new PacketPlayOutTabComplete (completions .toArray (new String [completions .size ()])));
2334
2339
}
2335
- minecraftServer .postToMainThread (() -> {
2336
- java .util .List <String > syncCompletions = this .minecraftServer .tabCompleteCommand (this .player , buffer , blockpos , isCommand );
2337
- this .player .playerConnection .sendPacket (new PacketPlayOutTabComplete (syncCompletions .toArray (new String [syncCompletions .size ()])));
2338
- });
2339
2340
// Paper end
2340
2341
}
2341
2342
@@ -2377,7 +2378,6 @@ public void a(PacketPlayInCustomPayload packetplayincustompayload) {
2377
2378
}
2378
2379
2379
2380
if (itemstack .getItem () == Items .WRITABLE_BOOK && itemstack .getItem () == itemstack1 .getItem ()) {
2380
- itemstack1 = new ItemStack (Items .WRITABLE_BOOK ); // CraftBukkit
2381
2381
itemstack1 .a ("pages" , (NBTBase ) itemstack .getTag ().getList ("pages" , 8 ));
2382
2382
CraftEventFactory .handleEditBookEvent (player , itemstack1 ); // CraftBukkit
2383
2383
}
0 commit comments