SPIGOT-5542: Cancelling EntityToggleGlideEvent doesn't stop client from gliding

This commit is contained in:
md_5 2020-01-25 11:30:39 +11:00
parent 596b0b2d07
commit e911c70f85

View File

@ -416,12 +416,20 @@
} else {
super.e(vec3d);
}
@@ -1467,12 +1648,17 @@
@@ -1467,12 +1648,24 @@
}
public void startGliding() {
+ if (!org.bukkit.craftbukkit.event.CraftEventFactory.callToggleGlideEvent(this, true).isCancelled()) // CraftBukkit
this.setFlag(7, true);
- this.setFlag(7, true);
+ // CraftBukkit start
+ if (!org.bukkit.craftbukkit.event.CraftEventFactory.callToggleGlideEvent(this, true).isCancelled()) {
+ this.setFlag(7, true);
+ } else {
+ // SPIGOT-5542: must toggle like below
+ this.setFlag(7, true);
+ this.setFlag(7, false);
+ }
+ // CraftBukkit end
}
public void stopGliding() {
@ -434,7 +442,7 @@
}
@Override
@@ -1687,26 +1873,31 @@
@@ -1687,26 +1880,31 @@
protected void releaseShoulderEntities() {
if (this.e + 20L < this.world.getTime()) {