From 853b05b6abad0fb411496711254905bef182a619 Mon Sep 17 00:00:00 2001 From: Bukkit/Spigot Date: Fri, 18 Nov 2016 11:24:16 +1100 Subject: [PATCH] Get Colors from ShulkerBox; Implement CustomName for Tiles. By: Senmori --- .../src/main/java/org/bukkit/Nameable.java | 28 +++++++++++++++++++ .../main/java/org/bukkit/block/Beacon.java | 3 +- .../java/org/bukkit/block/BrewingStand.java | 3 +- .../src/main/java/org/bukkit/block/Chest.java | 3 +- .../main/java/org/bukkit/block/Dispenser.java | 3 +- .../main/java/org/bukkit/block/Dropper.java | 4 ++- .../main/java/org/bukkit/block/Furnace.java | 3 +- .../main/java/org/bukkit/block/Hopper.java | 5 ++-- .../java/org/bukkit/block/ShulkerBox.java | 12 +++++++- .../main/java/org/bukkit/entity/Entity.java | 27 ++---------------- 10 files changed, 56 insertions(+), 35 deletions(-) create mode 100644 paper-api/src/main/java/org/bukkit/Nameable.java diff --git a/paper-api/src/main/java/org/bukkit/Nameable.java b/paper-api/src/main/java/org/bukkit/Nameable.java new file mode 100644 index 0000000000..49cf519c6b --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/Nameable.java @@ -0,0 +1,28 @@ +package org.bukkit; + +public interface Nameable { + + /** + * Gets the custom name on a mob or block. If there is no name this method + * will return null. + *

+ * This value has no effect on players, they will always use their real + * name. + * + * @return name of the mob/block or null + */ + public String getCustomName(); + + /** + * Sets a custom name on a mob or block. This name will be used in death + * messages and can be sent to the client as a nameplate over the mob. + *

+ * Setting the name to null or an empty string will clear it. + *

+ * This value has no effect on players, they will always use their real + * name. + * + * @param name the name to set + */ + public void setCustomName(String name); +} diff --git a/paper-api/src/main/java/org/bukkit/block/Beacon.java b/paper-api/src/main/java/org/bukkit/block/Beacon.java index a3af3510df..b1f97c9f8c 100644 --- a/paper-api/src/main/java/org/bukkit/block/Beacon.java +++ b/paper-api/src/main/java/org/bukkit/block/Beacon.java @@ -1,6 +1,7 @@ package org.bukkit.block; import java.util.Collection; +import org.bukkit.Nameable; import org.bukkit.entity.LivingEntity; import org.bukkit.inventory.InventoryHolder; import org.bukkit.potion.PotionEffect; @@ -9,7 +10,7 @@ import org.bukkit.potion.PotionEffectType; /** * Represents a beacon. */ -public interface Beacon extends BlockState, InventoryHolder, Lockable { +public interface Beacon extends BlockState, InventoryHolder, Lockable, Nameable { /** * Returns the list of players within the beacon's range of effect. diff --git a/paper-api/src/main/java/org/bukkit/block/BrewingStand.java b/paper-api/src/main/java/org/bukkit/block/BrewingStand.java index 7bc809dea5..ea6ff4e105 100644 --- a/paper-api/src/main/java/org/bukkit/block/BrewingStand.java +++ b/paper-api/src/main/java/org/bukkit/block/BrewingStand.java @@ -1,12 +1,13 @@ package org.bukkit.block; +import org.bukkit.Nameable; import org.bukkit.inventory.BrewerInventory; import org.bukkit.inventory.InventoryHolder; /** * Represents a brewing stand. */ -public interface BrewingStand extends BlockState, InventoryHolder, Lockable { +public interface BrewingStand extends BlockState, InventoryHolder, Lockable, Nameable { /** * How much time is left in the brewing cycle diff --git a/paper-api/src/main/java/org/bukkit/block/Chest.java b/paper-api/src/main/java/org/bukkit/block/Chest.java index e941d8bdea..ade09dddbf 100644 --- a/paper-api/src/main/java/org/bukkit/block/Chest.java +++ b/paper-api/src/main/java/org/bukkit/block/Chest.java @@ -1,12 +1,13 @@ package org.bukkit.block; +import org.bukkit.Nameable; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryHolder; /** * Represents a chest. */ -public interface Chest extends BlockState, InventoryHolder, Lockable { +public interface Chest extends BlockState, InventoryHolder, Lockable, Nameable { /** * Returns the chest's inventory. If this is a double chest, it returns diff --git a/paper-api/src/main/java/org/bukkit/block/Dispenser.java b/paper-api/src/main/java/org/bukkit/block/Dispenser.java index 94d360b375..39ee9b0462 100644 --- a/paper-api/src/main/java/org/bukkit/block/Dispenser.java +++ b/paper-api/src/main/java/org/bukkit/block/Dispenser.java @@ -1,12 +1,13 @@ package org.bukkit.block; +import org.bukkit.Nameable; import org.bukkit.inventory.InventoryHolder; import org.bukkit.projectiles.BlockProjectileSource; /** * Represents a dispenser. */ -public interface Dispenser extends BlockState, InventoryHolder, Lockable { +public interface Dispenser extends BlockState, InventoryHolder, Lockable, Nameable { /** * Gets the BlockProjectileSource object for this dispenser. diff --git a/paper-api/src/main/java/org/bukkit/block/Dropper.java b/paper-api/src/main/java/org/bukkit/block/Dropper.java index 4d3a5036d9..0f1013bd15 100644 --- a/paper-api/src/main/java/org/bukkit/block/Dropper.java +++ b/paper-api/src/main/java/org/bukkit/block/Dropper.java @@ -1,11 +1,13 @@ package org.bukkit.block; +import org.bukkit.Nameable; import org.bukkit.inventory.InventoryHolder; /** * Represents a dropper. */ -public interface Dropper extends BlockState, InventoryHolder, Lockable { +public interface Dropper extends BlockState, InventoryHolder, Lockable, Nameable { + /** * Tries to drop a randomly selected item from the Dropper's inventory, * following the normal behavior of a Dropper. diff --git a/paper-api/src/main/java/org/bukkit/block/Furnace.java b/paper-api/src/main/java/org/bukkit/block/Furnace.java index d943e34f25..b077eb37f4 100644 --- a/paper-api/src/main/java/org/bukkit/block/Furnace.java +++ b/paper-api/src/main/java/org/bukkit/block/Furnace.java @@ -1,12 +1,13 @@ package org.bukkit.block; +import org.bukkit.Nameable; import org.bukkit.inventory.FurnaceInventory; import org.bukkit.inventory.InventoryHolder; /** * Represents a furnace. */ -public interface Furnace extends BlockState, InventoryHolder, Lockable { +public interface Furnace extends BlockState, InventoryHolder, Lockable, Nameable { /** * Get burn time. diff --git a/paper-api/src/main/java/org/bukkit/block/Hopper.java b/paper-api/src/main/java/org/bukkit/block/Hopper.java index 978cf2a7c5..8e5e3e89dc 100644 --- a/paper-api/src/main/java/org/bukkit/block/Hopper.java +++ b/paper-api/src/main/java/org/bukkit/block/Hopper.java @@ -1,10 +1,9 @@ package org.bukkit.block; +import org.bukkit.Nameable; import org.bukkit.inventory.InventoryHolder; /** * Represents a hopper. */ -public interface Hopper extends BlockState, InventoryHolder, Lockable { - -} +public interface Hopper extends BlockState, InventoryHolder, Lockable, Nameable { } diff --git a/paper-api/src/main/java/org/bukkit/block/ShulkerBox.java b/paper-api/src/main/java/org/bukkit/block/ShulkerBox.java index c58711ced5..003cfb8a1a 100644 --- a/paper-api/src/main/java/org/bukkit/block/ShulkerBox.java +++ b/paper-api/src/main/java/org/bukkit/block/ShulkerBox.java @@ -1,8 +1,18 @@ package org.bukkit.block; +import org.bukkit.DyeColor; +import org.bukkit.Nameable; import org.bukkit.inventory.InventoryHolder; /** * Represents a ShulkerBox. */ -public interface ShulkerBox extends BlockState, InventoryHolder, Lockable { } +public interface ShulkerBox extends BlockState, InventoryHolder, Lockable, Nameable { + + /** + * Get the {@link DyeColor} corresponding to this ShulkerBox + * + * @return the {@link DyeColor} of this ShulkerBox + */ + public DyeColor getColor(); +} diff --git a/paper-api/src/main/java/org/bukkit/entity/Entity.java b/paper-api/src/main/java/org/bukkit/entity/Entity.java index 38d665a320..759e3f0d94 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Entity.java +++ b/paper-api/src/main/java/org/bukkit/entity/Entity.java @@ -2,6 +2,7 @@ package org.bukkit.entity; import org.bukkit.Location; import org.bukkit.EntityEffect; +import org.bukkit.Nameable; import org.bukkit.Server; import org.bukkit.World; import org.bukkit.event.entity.EntityDamageEvent; @@ -17,7 +18,7 @@ import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; /** * Represents a base entity in the world */ -public interface Entity extends Metadatable, CommandSender { +public interface Entity extends Metadatable, CommandSender, Nameable { /** * Gets the entity's current position @@ -299,30 +300,6 @@ public interface Entity extends Metadatable, CommandSender { */ public Entity getVehicle(); - /** - * Sets a custom name on a mob. This name will be used in death messages - * and can be sent to the client as a nameplate over the mob. - *

- * Setting the name to null or an empty string will clear it. - *

- * This value has no effect on players, they will always use their real - * name. - * - * @param name the name to set - */ - public void setCustomName(String name); - - /** - * Gets the custom name on a mob. If there is no name this method will - * return null. - *

- * This value has no effect on players, they will always use their real - * name. - * - * @return name of the mob or null - */ - public String getCustomName(); - /** * Sets whether or not to display the mob's custom name client side. The * name will be displayed above the mob similarly to a player.