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

@@ -5,4 +5,4 @@ import org.bukkit.loot.Lootable;
/**
* Represents a captured state of a Barrel.
*/
public interface Barrel extends Container, Lootable, Lidded { }
public interface Barrel extends Container, com.destroystokyo.paper.loottable.LootableBlockInventory, Lidded { } // Paper

View File

@@ -1,5 +1,7 @@
package org.bukkit.block;
import com.destroystokyo.paper.loottable.LootableBlockInventory; // Paper
import org.bukkit.Nameable; // Paper
import org.bukkit.inventory.Inventory;
import org.bukkit.loot.Lootable;
import org.jetbrains.annotations.NotNull;
@@ -7,7 +9,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Represents a captured state of a chest.
*/
public interface Chest extends Container, Lootable, Lidded {
public interface Chest extends Container, LootableBlockInventory, Lidded { // Paper
/**
* Gets the inventory of the chest block represented by this block state.

View File

@@ -7,7 +7,7 @@ import org.jetbrains.annotations.ApiStatus;
* Represents a captured state of a crafter.
*/
@ApiStatus.Experimental
public interface Crafter extends Container, Lootable {
public interface Crafter extends Container, com.destroystokyo.paper.loottable.LootableBlockInventory { // Paper - LootTable API
/**
* Gets the number of ticks which this block will remain in the crafting

View File

@@ -1,5 +1,6 @@
package org.bukkit.block;
import com.destroystokyo.paper.loottable.LootableBlockInventory;
import org.bukkit.Nameable;
import org.bukkit.loot.Lootable;
import org.bukkit.projectiles.BlockProjectileSource;
@@ -8,7 +9,7 @@ import org.jetbrains.annotations.Nullable;
/**
* Represents a captured state of a dispenser.
*/
public interface Dispenser extends Container, Nameable, Lootable {
public interface Dispenser extends Container, Nameable, LootableBlockInventory { // Paper
/**
* Gets the BlockProjectileSource object for the dispenser.

View File

@@ -1,11 +1,12 @@
package org.bukkit.block;
import com.destroystokyo.paper.loottable.LootableBlockInventory;
import org.bukkit.loot.Lootable;
/**
* Represents a captured state of a dropper.
*/
public interface Dropper extends Container, Lootable {
public interface Dropper extends Container, LootableBlockInventory { // Paper
/**
* Tries to drop a randomly selected item from the dropper's inventory,

View File

@@ -1,8 +1,9 @@
package org.bukkit.block;
import com.destroystokyo.paper.loottable.LootableBlockInventory;
import org.bukkit.loot.Lootable;
/**
* Represents a captured state of a hopper.
*/
public interface Hopper extends Container, Lootable { }
public interface Hopper extends Container, LootableBlockInventory { } // Paper

View File

@@ -1,5 +1,6 @@
package org.bukkit.block;
import com.destroystokyo.paper.loottable.LootableBlockInventory;
import org.bukkit.DyeColor;
import org.bukkit.loot.Lootable;
import org.jetbrains.annotations.Nullable;
@@ -7,7 +8,7 @@ import org.jetbrains.annotations.Nullable;
/**
* Represents a captured state of a ShulkerBox.
*/
public interface ShulkerBox extends Container, Lootable, Lidded {
public interface ShulkerBox extends Container, LootableBlockInventory, Lidded { // Paper
/**
* Get the {@link DyeColor} corresponding to this ShulkerBox