LootTable API

Provides API to control what Loot Table an object uses.

Also provides an Event to control if a lootable inventory should
auto replenish for a player.

Provides methods to determine players looted state for an object
This commit is contained in:
Aikar
2016-05-01 15:19:49 -04:00
parent 391451207f
commit 397d3cac4b
16 changed files with 259 additions and 10 deletions

View File

@@ -6,5 +6,5 @@ import org.bukkit.loot.Lootable;
/**
* A {@link Boat} with a chest.
*/
public interface ChestBoat extends Boat, InventoryHolder, Lootable {
public interface ChestBoat extends Boat, InventoryHolder, com.destroystokyo.paper.loottable.LootableEntityInventory { // Paper
}

View File

@@ -61,4 +61,12 @@ public interface Mob extends LivingEntity, Lootable {
*/
@Nullable
public Sound getAmbientSound();
// Paper start - LootTable API
@Override
default void setLootTable(final @Nullable org.bukkit.loot.LootTable table, final long seed) {
this.setLootTable(table);
this.setSeed(seed);
}
// Paper end - LootTable API
}

View File

@@ -1,5 +1,6 @@
package org.bukkit.entity.minecart;
import com.destroystokyo.paper.loottable.LootableEntityInventory;
import org.bukkit.entity.Minecart;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.loot.Lootable;
@@ -7,7 +8,7 @@ import org.bukkit.loot.Lootable;
/**
* Represents a Minecart with a Hopper inside it
*/
public interface HopperMinecart extends Minecart, InventoryHolder, Lootable {
public interface HopperMinecart extends Minecart, InventoryHolder, LootableEntityInventory {
/**
* Checks whether or not this Minecart will pick up

View File

@@ -1,5 +1,6 @@
package org.bukkit.entity.minecart;
import com.destroystokyo.paper.loottable.LootableEntityInventory;
import org.bukkit.entity.Minecart;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.loot.Lootable;
@@ -9,5 +10,5 @@ import org.bukkit.loot.Lootable;
* minecarts} have their own inventory that can be accessed using methods
* from the {@link InventoryHolder} interface.
*/
public interface StorageMinecart extends Minecart, InventoryHolder, Lootable {
public interface StorageMinecart extends Minecart, InventoryHolder, LootableEntityInventory { // Paper
}