Merge branch 'master' of github.com:Akarin-project/Paper

This commit is contained in:
Sotr
2019-03-07 12:44:05 +08:00
8 changed files with 40 additions and 8 deletions

View File

@@ -119,7 +119,7 @@ public class EntityBoat extends Entity {
this.world.getServer().getPluginManager().callEvent(event);
if (event.isCancelled()) {
return true;
return false;
}
// f = event.getDamage(); // TODO Why don't we do this?
// CraftBukkit end

View File

@@ -26,7 +26,7 @@ public class EntityLargeFireball extends EntityFireball {
boolean flag = this.world.getGameRules().getBoolean("mobGriefing");
// CraftBukkit start - fire ExplosionPrimeEvent
ExplosionPrimeEvent event = new ExplosionPrimeEvent((org.bukkit.entity.Explosive) org.bukkit.craftbukkit.entity.CraftEntity.getEntity(this.world.getServer(), this));
ExplosionPrimeEvent event = new ExplosionPrimeEvent((org.bukkit.entity.Explosive) this.getBukkitEntity());
this.world.getServer().getPluginManager().callEvent(event);
if (!event.isCancelled()) {

View File

@@ -939,7 +939,7 @@ public abstract class EntityLiving extends Entity {
return false;
} else if (this.world.isClientSide) {
return false;
} else if (this.getHealth() <= 0.0F) {
} else if (this.dead || this.killed || this.getHealth() <= 0.0F) { // CraftBukkit - Don't allow entities that got set to dead/killed elsewhere to get damaged and die
return false;
} else if (damagesource.p() && this.hasEffect(MobEffects.FIRE_RESISTANCE)) {
return false;

View File

@@ -118,7 +118,7 @@ public abstract class EntityMinecartAbstract extends Entity implements INamableT
this.world.getServer().getPluginManager().callEvent(event);
if (event.isCancelled()) {
return true;
return false;
}
f = (float) event.getDamage();

View File

@@ -93,9 +93,8 @@ public class EntityTNTPrimed extends Entity {
// CraftBukkit start
// float f = 4.0F;
org.bukkit.craftbukkit.CraftServer server = this.world.getServer();
ExplosionPrimeEvent event = new ExplosionPrimeEvent((org.bukkit.entity.Explosive) org.bukkit.craftbukkit.entity.CraftEntity.getEntity(server, this));
server.getPluginManager().callEvent(event);
ExplosionPrimeEvent event = new ExplosionPrimeEvent((org.bukkit.entity.Explosive) this.getBukkitEntity());
this.world.getServer().getPluginManager().callEvent(event);
if (!event.isCancelled()) {
this.world.createExplosion(this, this.locX, this.locY + (double) (this.length / 16.0F), this.locZ, event.getRadius(), event.getFire(), true);

View File

@@ -38,4 +38,14 @@ public class CraftVex extends CraftMonster implements Vex {
public EntityType getType() {
return EntityType.VEX;
}
@Override
public boolean isCharging() {
return getHandle().dA();
}
@Override
public void setCharging(boolean charging) {
getHandle().a(charging);
}
}

View File

@@ -128,7 +128,7 @@ public class InventoryWrapper implements IInventory {
List<ItemStack> items = new ArrayList<ItemStack>(size);
for (int i = 0; i < size; i++) {
items.set(i, getItem(i));
items.add(getItem(i));
}
return items;

View File

@@ -0,0 +1,23 @@
package org.bukkit.craftbukkit.inventory;
import junit.framework.Assert;
import org.bukkit.Material;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.junit.Test;
public class InventoryWrapperTest {
@Test
public void test() {
Inventory raw = new CraftInventoryCustom(null, 9);
raw.addItem(new ItemStack(Material.STONE));
Assert.assertTrue(raw.contains(Material.STONE));
InventoryWrapper wrapper = new InventoryWrapper(raw);
CraftInventory proxy = new CraftInventory(wrapper);
Assert.assertTrue(proxy.contains(Material.STONE));
}
}